Notaas MCP Server & Agentic Onboarding
Conecte assistentes de IA (Claude Code, Cursor, Windsurf, VS Code Copilot, Claude Desktop e n8n) diretamente à API v1 da Notaas via Model Context Protocol (MCP). Realize desde o onboarding completo de um novo CNPJ (Zero to First Invoice) até a emissão e diagnóstico de NFS-e, NF-e (55), NFC-e (65), CT-e (57) e MDF-e (58).
1. Como Conectar (Remote HTTP vs. Local npx)
O @notaas/mcp suporta os dois transportes oficiais da especificação MCP. Se você conectar sem API Key, as 5 tools públicas de inteligência tributária e o pareamento Device Flow RFC 8628 já ficam imediatamente disponíveis.
Opção A — Remote MCP Server (Streamable HTTP · Zero Instalação)
// ~/.cursor/mcp.json ou configuração do Claude Code / Windsurf
{
"mcpServers": {
"notaas": {
"url": "https://platform.notaas.com.br/api/mcp",
"headers": {
"x-api-key": "ntaas_sua_project_key_ou_ntaas_org_token"
}
}
}
}Opção B — Execução Local via npx (stdio · Habilita Referência Local Zero-Trust para PFX)
{
"mcpServers": {
"notaas": {
"command": "npx",
"args": ["-y", "@notaas/mcp"],
"env": {
"NOTAAS_API_KEY": "ntaas_sua_project_key_ou_ntaas_org_token"
}
}
}
}2. Como Funciona o Upload do Certificado Digital A1 (.pfx) via MCP
Durante o onboarding de uma empresa, pedir que o usuário cole o arquivo .pfx e digite a senha diretamente no chat de uma IA comum é uma má prática de segurança (pois grava a chave privada no histórico do provedor de LLM). Ao mesmo tempo, obrigar o desenvolvedor a sair da IDE e fazer login no painel web quebra a experiência.
Para resolver isso, o Notaas MCP v0.2.0 oferece 4 modos seguros e o próprio agente pergunta ao usuário qual opção ele prefere utilizar:
| Modo | Tool MCP | Passa pelo LLM? | Exige Login Web? | Quando usar |
|---|---|---|---|---|
| 1. Referência Local Zero-Trust (stdio) | org_upload_project_certificate | Não (Nunca) | Não | Dev usando Cursor / Claude Code via npx local |
| 2. Terminal One-Liner (read -s + curl) | org_create_certificate_upload_session | Não (Nunca) | Não | Dev em qualquer IDE (Remote HTTP ou Local) |
| 3. Link Dropzone Sem Login (15 min) | org_create_certificate_upload_session | Não (Nunca) | Zero Login | Quando o .pfx e a senha estão com o contador/cliente |
| 4. Payload Direto (pfxBase64 + password) | org_upload_project_certificate | Sim (na tool call) | Não | Agentes 100% autônomos (n8n, Secret Managers) |
Opção 1 — Referência Local Zero-Trust (pfxFilePath + passwordEnvVar / passwordFilePath)
Exclusiva do modo local stdio (npx @notaas/mcp). O LLM envia apenas o caminho do arquivo na sua máquina e o nome da variável de ambiente (ou caminho de um arquivo texto) que contém a senha. Quem lê os bytes do disco e a senha é o processo local Node.js do MCP, enviando via multipart/form-data direto para a API da Notaas. No servidor HTTP remoto, esses parâmetros são bloqueados por fail-closed.
// Chamada da tool org_upload_project_certificate no modo stdio:
{
"projectId": "6f9b1c20-8a4d-4e3a-9c11-223344556677",
"pfxFilePath": "~/certs/empresa_a1.pfx",
"passwordEnvVar": "NOTAAS_CERT_PASS"
}Opções 2 e 3 — Sessão Descartável One-Time (org_create_certificate_upload_session)
Gera um token de uso único (ntaas_cert_up_<64_hex>, persistido apenas como hash SHA-256 no banco, TTL de 15 minutos, limite de 5 tentativas de senha e revogação automática se o Org Token de origem for revogado). A resposta entrega simultaneamente:
- Opção 2 (
terminalCommand): comando pronto comread -r -s -ppara o dev colar no terminal da IDE e digitar a senha de forma oculta. - Opção 3 (
uploadSessionUrl): linkhttps://platform.notaas.com.br/onboarding/cert#token=...(sem login Clerk e usando hash#tokenpara nunca vazar em headers HTTP Referer), ideal para enviar ao contador do cliente.
// Exemplo do comando gerado na Opção 2 (Terminal da IDE):
read -r -s -p 'Senha do Certificado A1: ' NOTAAS_PFX_PASS && echo '' && \
{ curl -sS -X POST 'https://platform.notaas.com.br/api/v1/mcp/certificate-upload' \
-H 'x-cert-upload-token: ntaas_cert_up_9f8e7d...' \
-F 'file=@/caminho/para/certificado.pfx' \
--form-string "password=$NOTAAS_PFX_PASS"; unset NOTAAS_PFX_PASS; }3. Onboarding Passo a Passo por Persona (“Zero to First Invoice”)
O prompt guiado /onboard-new-company adapta o fluxo de ativação de acordo com o perfil de quem está conduzindo a integração. Escolha abaixo a sua persona para ver a sequência exata de etapas e tools:
Desenvolvedor em Cursor, Claude Code, Windsurf ou VS Code
Você está construindo ou integrando um sistema emissor, tem o arquivo .pfx na sua máquina local e quer ir do zero até a primeira nota fiscal autorizada em homologação sem abrir o painel web.
1. Conectar sem chave e iniciar o Device Flow
Adicione o @notaas/mcp na sua IDE sem API Key e invoque o prompt /onboard-new-company (ou peça "quero configurar minha empresa na Notaas"). O agente chama notaas_start_account_onboarding e exibe um código curto (ex: NT-7F4K-9P2M) com o link /onboarding/mcp.
2. Autorizar em 1 clique e receber o token de bootstrap (24h)
Ao clicar em Autorizar no navegador, o agente faz polling automático via notaas_claim_account_onboarding e recebe em memória um Organization Token temporário (ntaas_org_*, válido por 24h) cifrado ponta a ponta com AES-256-GCM.
3. Criar o Projeto Emissor e validar cobertura municipal
O agente valida a cidade em notaas_check_city_coverage, consulta códigos LC 116 em notaas_lookup_tax_codes e cria o projeto emissor (ambiente=2 Homologação) usando org_create_project.
4. Enviar o Certificado A1 sem expor a senha ao LLM (Opção 1 ou 2)
No modo local stdio, você define export NOTAAS_CERT_PASS="sua_senha" no seu terminal e informa ao agente apenas o caminho ~/Downloads/empresa.pfx e o nome da variável NOTAAS_CERT_PASS. O processo local do MCP lê o arquivo e a senha direto da sua máquina e faz o upload via org_upload_project_certificate sem enviar os bytes nem a senha para a OpenAI/Anthropic.
5. Gerar Project API Key, validar prontidão e emitir a 1ª nota
O agente gera a chave definitiva (org_create_project_api_key), confere os 5 pré-requisitos em org_check_project_readiness (ready: true), revoga o token temporário (org_revoke_onboarding_token) e, após sua confirmação humana, emite a primeira NFS-e/NF-e.
Software House ou BPO Contábil ativando múltiplos clientes
Sua equipe técnica gerencia dezenas ou centenas de CNPJs emissores via Organization Token, mas o arquivo .pfx e a senha do Certificado Digital A1 estão em posse do dono da empresa ou do contador do cliente.
1. Cadastrar o novo CNPJ sub-cliente na organização
Com seu Organization Token (ntaas_org_*) configurado, peça ao agente para criar o projeto do cliente com org_create_project informando CNPJ, Razão Social, Inscrição Municipal, código IBGE e regime tributário.
2. Migrar a numeração fiscal do sistema anterior
O agente consulta org_get_project_numbering e alinha o último número de RPS (NFS-e), NF-e (55) e NFC-e (65) com org_configure_project_numbering usando modo="avancar" para evitar colisão de numeração na prefeitura/SEFAZ.
3. Gerar o Link Dropzone Descartável (Sem Login) para o Contador (Opção 3)
O agente chama org_create_certificate_upload_session. A API gera um token one-time (TTL 15 minutos) e retorna a URL https://platform.notaas.com.br/onboarding/cert#token=ntaas_cert_up_.... Você envia esse link no WhatsApp ou e-mail do contador do cliente.
4. Contador envia o .pfx sem login e o agente detecta no chat
O contador abre o link (que exibe apenas a Razão Social e o CNPJ da empresa, sem pedir login Clerk), seleciona o .pfx e digita a senha. A plataforma valida se o titular X.509 pertence ao CNPJ do projeto, ativa o certificado no cofre S3 e destrói o link imediatamente. Nem a IA nem o seu time técnico precisam ver a senha do cliente.
5. Provisionar API Key isolada, logotipo e webhook de produção
O agente confirma o certificado via org_get_project_certificate_status, sobe o logotipo do cliente para o DANFE/DANFSe (org_upload_project_logo), cria a Project API Key isolada (org_create_project_api_key) e registra o endpoint de webhook do ERP (webhooks_create_endpoint).
Pipelines 100% autônomos e Agentes em Nuvem
Você opera workflows automatizados no n8n, LangGraph ou microsserviços internos que buscam os dados e o certificado da empresa em um cofre corporativo (AWS Secrets Manager, HashiCorp Vault, 1Password) e precisam fazer o onboarding sem intervenção manual.
1. Conectar o MCP Client via Streamable HTTP Stateless
Aponte o nó MCP Client do n8n ou SDK para POST https://platform.notaas.com.br/api/mcp enviando o header x-api-key com seu Organization Token (ntaas_org_*) ou Project API Key (ntaas_*).
2. Provisionar o projeto e parâmetros IBS/CBS (LC 214/2025)
O workflow chama org_create_project configurando automaticamente código de serviço nacional (codigoTributacao), defaultCstIbscbs, defaultClassificacaoTributaria e defaultNbs.
3. Injetar o Certificado A1 diretamente do Secret Manager (Opção 4)
O workflow lê o binário .pfx em Base64 e a senha do cofre de segredos e chama org_upload_project_certificate({ projectId, pfxBase64, password, fileName: "cert.pfx" }).
4. Executar o gate determinístico de prontidão (Fail-Closed)
Antes de liberar o cliente para faturamento, o agente chama org_check_project_readiness. O agregador valida o conteúdo de 5 rotas (cadastro, validade do certificado, séries, chaves ativas e engine municipal ativa) e só retorna ready=true se todas passarem.
5. Emitir em lote e tratar rejeições com Auto-Triage
Para faturamento recorrente, o agente chama nfse_emit_batch (até 100 notas por chamada) ou nfe_emit/cte_emit/mdfe_emit. Se alguma nota falhar, chama nfse_diagnose_error para receber a causa raiz estruturada.
Auditoria, Reforma Tributária IBS/CBS e Triagem no Claude Desktop
Você atua na operação fiscal, contabilidade ou suporte técnico N2 e quer usar o Claude Desktop ou Cursor para auditar notas, consultar regras da Reforma Tributária e diagnosticar rejeições de prefeituras/SEFAZ com garantia absoluta de que o agente não emitirá nem cancelará nada por acidente.
1. Ativar a trava física de Somente Leitura (Read-Only Guard)
Configure x-mcp-readonly: true (ou NOTAAS_MCP_READ_ONLY=true). O servidor MCP oculta todas as tools de escrita (emissão, cancelamento, inutilização, upload e até o Device Flow), expondo apenas as 21 ferramentas puras de consulta e diagnóstico.
2. Consultar cobertura de 5.570 municípios e códigos LC 116
Pergunte em linguagem natural: "Quais municípios do PR usam a engine Equiplano?" ou "Qual o código de tributação nacional e municipal para desenvolvimento de software em São Paulo?". O agente usa notaas_check_city_coverage e notaas_lookup_tax_codes.
3. Simular regras e alíquotas da Reforma Tributária (IBS/CBS 2026)
Use notaas_explain_ibs_cbs_reference para consultar os códigos CST IBS/CBS, cClassTrib (NT 2025.002-RTC / LC 214/2025) e o demonstrativo de cálculo das alíquotas de teste de 2026 (CBS 0,9% + IBS 0,1%).
4. Diagnosticar rejeições de NFS-e, NF-e, CT-e e MDF-e
Informe o UUID da invoice rejeitada ou invoque o prompt /diagnose-fiscal-rejection. O agente chama nfse_diagnose_error, analisa o rejection_errors da prefeitura/SEFAZ e explica exatamente qual campo corrigir.
5. Monitorar vencimento de Certificados A1 e MDF-e abertos
Use org_check_project_readiness para auditar certificados prestes a vencer (alerta automático <= 30 dias) e mdfe_list_open_alerts para identificar manifestos não encerrados antes que bloqueiem a placa na SEFAZ.
4. Endpoints REST do Onboarding MCP & Certificados
/org/projects/{id}/certificate/upload-session🔑 x-api-keyCria uma sessão efêmera one-time (TTL 15 minutos) para envio do Certificado Digital A1 via terminal (read -s + curl) ou Dropzone Web sem login (/onboarding/cert#token=...). Requer Organization Token com escopo certificates:write.
// Response 201
{
"sessionId": "8f14e45f-ceea-467f-a8c9-...",
"projectId": "6f9b1c20-8a4d-4e3a-9c11-...",
"projectName": "Matriz SP",
"razaoSocial": "ACME TECNOLOGIA LTDA",
"cnpj": "12345678000195",
"uploadToken": "ntaas_cert_up_64_caracteres_hexadecimais...",
"uploadSessionUrl": "https://platform.notaas.com.br/onboarding/cert#token=ntaas_cert_up_...",
"terminalCommand": "read -r -s -p \"Senha do Certificado A1: \" NOTAAS_PFX_PASS && echo \"\" && curl -sS -X POST ...",
"expiresAt": "2026-10-28T10:30:00.000Z",
"ttlMinutes": 15
}/mcp/certificate-upload🔑 x-api-keyConsome atomicamente o token descartável ntaas_cert_up_* (enviado no header x-cert-upload-token), valida a senha e o CNPJ/CPF do titular X.509 ICP-Brasil contra o projeto e ativa o Certificado A1.
Headers & Body (multipart/form-data)
| Campo | Tipo | Req? | Descrição |
|---|---|---|---|
| x-cert-upload-token | header | sim | Token descartável ntaas_cert_up_<64_hex> obtido em upload-session. |
| file | File (.pfx/.p12) | sim | Binário do Certificado Digital A1 (máx. 50 KB). |
| password | string | sim | Senha de instalação do certificado. |