mcpField
F
fiscal

fiscal

Remote
brasilnfe.com.brFinance0Updated 20w ago

About fiscal

Brasil NFe MCP exposes Brazilian fiscal infrastructure as tools, resources, and prompts for businesses and finance teams handling tax documents through conversation. It covers multiple electronic document types, SEFAZ queries, fiscal events, and file downloads, using the same backend as Brasil NFe's REST API.

Key features

  1. 01Issue and query six Brazilian fiscal document types
  2. 02Handle cancellation, corrections, and recipient events
  3. 03Check SEFAZ, taxpayer registrations, and taxes
  4. 04Manage customers, products, and tax rules
  5. 05Download XML, PDF, and period archives

Use cases

  1. 01Issue an NF-e or NFC-e through conversation
  2. 02Check SEFAZ status and company registration details
  3. 03Cancel a document or submit a correction event
  4. 04Download a single invoice or files for a period

MCP support

The MCP service uses Streamable HTTP to provide compatible clients with more than 30 tools, five resources, and five prompts, with Bearer token authentication. It shares its fiscal backend with the Brasil NFe REST API.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://api.brasilnfe.com.br/services/Mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

All endpoints
Streamable HTTPhttps://api.brasilnfe.com.br/services/McpAuth required

Tools

34
ParameterTypeRequiredDescription
Loteinteger|nullNoInvoice batch
Serieinteger|nullNoSérie da nota Fiscal
Codigostring|nullNoB03 - Código numérico que compõe a Chave de Acesso. Número aleatório gerado pelo emitente para cada NF-e.
Numerointeger|nullNoNúmero da nota fiscal
Clienteobject|nullNoDestinatário da nota. OBRIGATÓRIO para NF-e (modelo 55). Para NFC-e (modelo 65) só é obrigatório quando IndicadorPresenca = 4 (entrega a domicílio). Quando informado para NF-e mod 55, exige: CpfCnpj, NmCliente, IndicadorIe (1/2/9), Endereco com Logradouro e UF (e CEP/Município/Bairro quando não exportação).
Cliente.Iestring|nullNo
Cliente.IsUfstring|nullNo
Cliente.Contatoobject|nullNo
Cliente.Contato.Faxstring|nullNo
Cliente.Contato.Emailstring|nullNo
Cliente.Contato.Telefonestring|nullNo
Cliente.CpfCnpjstringYesCPF (11 dígitos) ou CNPJ (14 dígitos) do destinatário. Aceita com ou sem máscara - o sistema normaliza. Obrigatório para NF-e (modelo 55). Em operações de exportação (CFOP iniciado em 3/7) pode ter de 5 a 20 caracteres.
Cliente.Enderecoobject|nullNo
Cliente.Endereco.Ufstring|nullNo
Cliente.Endereco.Cepstring|nullNo
Cliente.Endereco.Paisstring|nullNo
Cliente.Endereco.Bairrostring|nullNo
Cliente.Endereco.Numerostring|nullNo
Cliente.Endereco.CodPaisintegerNo
Cliente.Endereco.Municipiostring|nullNo
Cliente.Endereco.Logradourostring|nullNo
Cliente.Endereco.Complementostring|nullNo
Cliente.Endereco.CodMunicipiostring|nullNo
Cliente.NmClientestringYesNome/Razão Social do destinatário (máx 60 caracteres). Obrigatório para NF-e (modelo 55).
Cliente.IndicadorIeenumNoIndicador de Inscrição Estadual. Para NFC-e (modelo 65) DEVE ser 9. Para NF-e (modelo 55) aceita 1, 2 ou 9. Valores: 1 - Contribuinte ICMS (informar a IE do destinatário); 2 - Contribuinte isento de Inscrição no cadastro de Contribuintes do ICMS; 9 - Não Contribuinte, que pode ou não possuir Inscrição Estadual no Cadastro de Contribuintes do ICMS1 | 2 | 9
Entregaobject|nullNo
Entrega.Iestring|nullNo
Entrega.Nomestring|nullNo
Entrega.Contatoobject|nullNo
Entrega.Contato.Faxstring|nullNo
Entrega.Contato.Emailstring|nullNo
Entrega.Contato.Telefonestring|nullNo
Entrega.CpfCnpjstring|nullNo
Entrega.Enderecoobject|nullNo
Entrega.Endereco.Ufstring|nullNo
Entrega.Endereco.Cepstring|nullNo
Entrega.Endereco.Paisstring|nullNo
Entrega.Endereco.Bairrostring|nullNo
Entrega.Endereco.Numerostring|nullNo
Entrega.Endereco.CodPaisintegerNo
Entrega.Endereco.Municipiostring|nullNo
Entrega.Endereco.Logradourostring|nullNo
Entrega.Endereco.Complementostring|nullNo
Entrega.Endereco.CodMunicipiostring|nullNo
Exportaobject|nullNo
Exporta.UFSaidaPaisstring|nullNoSigla da UF de Embarque ou de transposição de fronteira
Exporta.LocalDespachostring|nullNoDescrição do local de despacho
Exporta.LocalEmbarqueTranspstring|nullNoDescrição do Local de Embarque ou de transposição de fronteira
Cobrancaobject|nullNo
Cobranca.Faturaobject|nullNo
Cobranca.Fatura.ValornumberNo
Cobranca.Fatura.Numerostring|nullNo
Cobranca.Fatura.DescontonumberNo
Cobranca.Fatura.ValorLiquidonumberNo
Cobranca.Parcelasarray|nullNo
ProdutosarrayYesItens da nota fiscal. Mínimo 1 item.
Retencoesobject|nullNoRetenções federais totais da nota (IRRF, PIS/COFINS/CSLL retidos, Previdência). Gera a tag retTrib no XML.
Retencoes.ValorIRRFnumber|nullNoValor retido do IRRF
Retencoes.ValorRetidoPISnumber|nullNoValor retido de PIS
Retencoes.BaseCalculoIRRFnumber|nullNoBase de cálculo do IRRF
Retencoes.ValorRetidoCSLLnumber|nullNoValor retido de CSLL
Retencoes.ValorRetidoCOFINSnumber|nullNoValor retido de COFINS
Retencoes.ValorRetencaoPrevidencianumber|nullNoValor da retenção da Previdência Social
Retencoes.BaseCalculoRetencaoPrevidencianumber|nullNoBase de cálculo da retenção da Previdência Social
TipoDanfeenumNoFormato de impressão do DANFE (tag tpImp da NF-e). Não informado = padrão atual (1-Retrato para NF-e, 4 para NFC-e). Valores: 0 - Sem geração de DANFE; 1 - DANFE normal, Retrato (padrão NF-e); 2 - DANFE normal, Paisagem; 3 - DANFE Simplificado; 4 - DANFE NFC-e (padrão NFC-e; somente modelo 65); 5 - DANFE NFC-e em mensagem eletrônica (somente modelo 65); 6 - DANFE Simplificado Tipo 2 (NT 2026.002/2026.003, Ajuste SINIEF 13/26; somente modelo 55) - NF-e de varejo em operação típica de NFC-e, impressa em bobina com QR Code. Exige operação interna (CFOP 5xxx), consumidor final, finalidade 1-Normal, saída, sem notas referenciadas e IndicadorPresenca 1, 4 ou 5.0 | 1 | 2 | 3 | 4 | 5 | 6 | null
FinalidadeenumYesPurpose of issuing the invoice. Values: 1 - Normal (most common case); 2 - Complementary (referencing a previous invoice in NFReferencia); 3 - Adjustment; 4 - Return; 5 - Credit note; 6 - Debit note1 | 2 | 3 | 4 | 5 | 6
Observacaostring|nullNo
Pagamentosarray|nullNoPayment methods. REQUIRED when Finalidade = 1 (Normal). May be empty for purposes 2/3/4/5/6. For NFC-e (mod 65), there must be at least one payment with FormaPagamento different from "90" (no payment).
TpNFDebitoenumNoDebit note type. Required when Finalidade = 6. SEFAZ code: Values: 1 - Transfer of credits to Cooperatives; 2 - Credit reversal for immune/exempt sales; 3 - Debits from invoices not processed in the assessment; 4 - Fines and interest; 5 - Transfer of credit through succession; 6 - Advance payment; 7 - Inventory loss1 | 2 | 3 | 4 | 5 | 6 | 7 | null
Transporteobject|nullNo
Transporte.IEstring|nullNo
Transporte.UFstring|nullNo
Transporte.CNPJstring|nullNo
Transporte.Balsastring|nullNo
Transporte.Vagaostring|nullNo
Transporte.Reboquearray|nullNo
Transporte.Veiculoobject|nullNo
Transporte.Veiculo.UFstring|nullNo
Transporte.Veiculo.RNTCstring|nullNo
Transporte.Veiculo.Placastring|nullNo
Transporte.Volumesarray|nullNo
Transporte.DsEnderecostring|nullNo
Transporte.NmMunicipiostring|nullNo
Transporte.ModalidadeFreteenumNo0 - Freight contracted by the Sender (CIF); 1 - Freight contracted by the Recipient (FOB); 2 - Freight contracted by Third Parties; 3 - Sender's own transport; 4 - Recipient's own transport; 9 - No transport occurrence0 | 1 | 2 | 3 | 4 | 9
Transporte.NmTransportadorstring|nullNo
ValorFretenumber|nullNoTotal freight amount for the invoice. When provided, it is distributed proportionally among items (in proportion to each item's ValorTotal), REPLACING the ValorFrete provided for each product. Not provided (null) = the freight for each item is used as submitted.
ValorTotalnumber|nullNoExpected invoice total (vNF), used only for validation. If provided and different from the calculated total (products - discounts + freight + insurance + other expenses + taxes included in the total), issuance is blocked and the error details the calculation. Not provided (null) = no validation.
DataEmissaostring|nullNoDate and time of the product/service's outbound or inbound movement (sends the current date if not provided)
EnviarEmailbooleanNo
TpNFCreditoenumNoCredit note type. Required when Finalidade = 5. SEFAZ code: Values: 1 - Fines and interest; 2 - Appropriation of presumed IBS credit on the debit balance in the ZFM; 3 - Return due to total refusal at delivery or inability to locate the recipient; 4 - Reduction of amounts; 5 - Transfer of credit through succession; 6 - Return due to partial refusal at delivery1 | 2 | 3 | 4 | 5 | 6 | null
CalcularIBPTbooleanNoCalculates the approximate tax amount (vTotTrib, IBPT table, Lei 12.741/2012). Default: true.
NFReferenciaarray|nullNoReference invoices
TipoAmbienteenumYesSEFAZ environment identification. Values: 1 - Production (REAL issuance, with fiscal value, irreversible); 2 - Homologation (test, without fiscal value - use during development and testing)1 | 2
Intermediadorobject|nullNoIntermediary/marketplace data (third-party website or platform).
Intermediador.CnpjstringYesCNPJ of the transaction intermediary (marketplace/third-party platform). Required.
Intermediador.IdCadIntTranstringYesSeller identification on the intermediary's website (registered user/login). Required.
Justificativastring|nullNoUse when the issuance type is not normal
ValorDescontonumber|nullNoTotal discount amount for the invoice. When provided, it is distributed proportionally among items (in proportion to each item's ValorTotal), REPLACING the ValorDesconto provided for each product. Not provided (null) = the discount for each item is used as submitted.
ConsumidorFinalbooleanNoIndicates whether the transaction is with a final consumer (for NFC-e, must be 1; validate!)
ModeloDocumentoenumYesFiscal document model code. Values: 55 - NF-e (B2B / recipient identified by CPF/CNPJ); 65 - NFC-e (final consumer / retail)55 | 65
ObservacaoFiscostring|nullNo
DataEntradaSaidastring|nullNoDate and time of the product/service's outbound or inbound movement
NaturezaOperacaostringYesDescription of the nature of the transaction (max. 60 characters). Examples: "Venda de mercadoria", "Remessa para industrialização", "Devolução de venda".
IndicadorPresencaenumYesIndicador de presença do comprador no estabelecimento comercial no momento da operação. Padrão sugerido para NF-e B2B = 9 (operação não presencial, outros). Para NFC-e varejo = 1 (presencial). Valores: 0 - Não se aplica; 1 - Operação presencial;; 2 - Operação não presencial, pela Internet;; 3 - Operação não presencial, Teleatendimento;; 4 - NFC-e em operação com entrega a domicílio;; 5 - Presencial fora do estabelecimento;; 9 - Operação não presencial, outros.0 | 1 | 2 | 3 | 4 | 5 | 9
confirmacaoUsuariobooleanNoEnvie true SOMENTE depois que o usuário viu a pré-visualização final e confirmou explicitamente a emissão nesta conversa. Obrigatório em conexões OAuth.
IdentificadorInternostring|nullNo
NFPagamentoAntecipadoarray|nullNoGrupo de notas de antecipação de pagamento (gPagAntecipado - Reforma Tributária).

Details

From the project README
Brasil NFe

Brasil NFe MCP

Servidor MCP fiscal brasileiro - sua IA emite NF-e, NFC-e, NFS-e, CT-e, MDF-e e DC-e.

Site - Documentação MCP - Demo ao vivo - Painel

English - Português


O que é

O Brasil NFe MCP é o primeiro servidor MCP (Model Context Protocol) que expõe a infraestrutura fiscal brasileira inteira como ferramentas, recursos e prompts pra qualquer cliente compatível com MCP - Claude Desktop, Cursor, Windsurf, VS Code Copilot, Zed, Continue.dev, JetBrains, ou sua própria aplicação.

Plugue o servidor no seu cliente MCP e o agente de IA passa a emitir nota fiscal por linguagem natural direto na conversa - "emite uma NFC-e de R$ 89,90 pro CPF tal" - e o documento vai pra SEFAZ. A IA descobre as tools sozinha, monta o payload pelo schema e traduz erros da SEFAZ pra linguagem clara.

REST API ou MCP?

Os dois são produtos de primeira linha da Brasil NFe e expõem a mesma infraestrutura fiscal - mesmo backend SEFAZ, mesmo SLA, mesmo suporte humano. A escolha é pelo tipo de integração, não pela qualidade:

Use a API REST quandoUse o MCP quando
Você tem ERP, sistema de gestão ou app próprio com fluxo de emissão já definidoQuer um assistente IA, copilot ou agente decidindo quando e como emitir
O processamento é em lote, agendado ou movido por evento de fila/webhookO fluxo é conversacional - usuário (ou agente) no loop dirigindo cada passo
A integração é determinística e você tem controle pixel-perfect da UI/UXO cliente quer plugar Claude / Cursor / Copilot do contador direto na operação
Volume alto, paralelismo otimizado, contratos de payload estáveisSessão interativa, exploratória, ad-hoc por linguagem natural

Os dois conversam com o mesmo backend - dá pra ter o ERP integrado via REST e ao mesmo tempo plugar a IA do contador no MCP. Quando uma rota nova entra na API REST, ela já vira tool MCP automaticamente. Roadmap fiscal unificado, dois canais de consumo.

Endpoint público

https://api.brasilnfe.com.br/services/Mcp
RecursoMétodoCaminho
JSON-RPCPOST/services/Mcp
SSE streamGET/services/Mcp
Encerrar sessãoDELETE/services/Mcp
DiscoveryGET/.well-known/mcp
HealthGET/services/Mcp/info
  • Transport: Streamable HTTP
  • Spec: MCP 2025-06-18
  • Auth: Bearer token (Authorization: Bearer <TOKEN>)
  • Rate-limit: 60 requisições/minuto por token (default)

O que está exposto

30+ tools em 8 categorias
CategoriaToolsO que faz
NF-e / NFC-enfe_emitir, nfe_emitir_complementar, nfe_previsualizarEmite produto B2B (modelo 55) ou cupom de varejo (modelo 65), gera DANFE prévio
NFS-enfse_emitir, nfse_consultarEmite e consulta nota de serviço (5.500+ regras municipais embutidas)
CT-ecte_emitir, cte_desacordoEmite conhecimento de transporte, registra desacordo do tomador
MDF-emdfe_emitir, mdfe_encerrarEmite manifesto de carga, encerra ao fim do transporte
DC-edce_emitirEmite declaração de conteúdo (PF/MEI)
NF-EnerComnfenercom_gerar_arquivo, nfenercom_emitirEmite NF de energia comercializada
Eventos fiscaisevento_cancelar, evento_carta_correcao, evento_manifestar, evento_inutilizarCancela, corrige (CC-e), manifesta destinatário, inutiliza numeração
Consultas SEFAZsefaz_status, cadastro_consultar, nota_listar, imposto_calcularStatus do serviço, IE, listagem de notas, simulador de impostos
Cadastroscliente_consultar/criar/editar, produto_consultar/criar/editar, tributacao_consultar/criar/editarCRUD completo de clientes, produtos e regras tributárias (com fallback Receita Federal)
Arquivosarquivo_baixar, arquivo_baixar_evento, arquivo_baixar_periodoBaixa XML/PDF individual ou ZIP do período
Auxiliaresfci_gerar, healthGera FCI (conteúdo importado), health-check
5 resources (URI scheme brasilnfe://)
  • brasilnfe://empresa/atual - snapshot da empresa logada
  • brasilnfe://nfe/{chave}/xml - XML autorizado
  • brasilnfe://nfe/{chave}/danfe - DANFE em PDF
  • brasilnfe://evento/{chave}/{seq} - evento por sequencial
  • brasilnfe://recebidas/{periodo} - notas recebidas no período
5 prompts prontos
  • emitir_nfe_simples - fluxo guiado de emissão NF-e
  • cancelar_nota - cancelamento com validação de prazo
  • diagnostico_emissao - checagem completa antes de emitir
  • relatorio_periodo - relatório fiscal do período
  • carta_correcao - fluxo de CC-e com validação de campos permitidos

Quick start

1. Pegue seu token

Crie uma conta gratuita em brasilnfe.com.br e copie o token no painel. Modo homologação é grátis - você emite documentos de teste à vontade sem nada ir pra SEFAZ de produção.

2. Configure seu cliente MCP

Pega o arquivo correto em examples/ e cola na config do seu cliente:

Substitua SEU_TOKEN_AQUI pelo token real e reinicie o cliente.

3. Fala com a IA
"Liste o status da SEFAZ pra SP."
"Consulte o CNPJ 39.658.743/0001-99."
"Emite uma NFC-e de R$ 89,90 pro consumidor com CPF 123.456.789-00."
"Cancela a chave 35..., justificativa: erro de digitação no valor."

Pronto. A IA descobre as tools sozinha, pede o que falta, valida, monta o payload, envia pra SEFAZ, e te entrega chave + protocolo + XML + PDF.

Demo sem cadastro

Abra brasilnfe.com.br/ai e converse com o assistente fiscal direto no navegador. Não envia pra SEFAZ de produção, mas mostra o fluxo completo com DANFE renderizado em tempo real ao lado do chat.

Boas práticas

  • Sempre rode em homologação (tipoAmbiente: 2) antes de produção. Documento de teste tem CNPJ permitido e numeração separada - zero risco fiscal.
  • Consulte cliente/produto/tributação antes de criar. As tools *_consultar evitam duplicatas e dão à IA o contexto pra reusar cadastros existentes.
  • Confirme operações destrutivas. Cancelamento e inutilização são irreversíveis - a IA já é instruída a confirmar, mas verifique no seu fluxo.
  • Feche sessões idle. DELETE /services/Mcp libera quota mais cedo.
  • Auditoria sai automática. Todas as chamadas MCP ficam logadas no painel da sua empresa por 5 anos (LGPD-compliant).

Suporte

Sobre

Mantido pela Brasil NFe LTDA (CNPJ 39.658.743/0001-99), fundada em 2019 em Ipatinga/MG por Maxsuel Lima. Especialista em automação fiscal brasileira: 6 documentos fiscais cobertos, 5.500+ regras municipais NFS-e, 543 códigos SEFAZ embutidos, PCI DSS, e suporte humano 24/7.

Licença

MIT - você pode usar, modificar e distribuir livremente este repositório (configs, exemplos e docs). O servidor MCP em si é serviço operado pela Brasil NFe LTDA - veja Termos de Uso e Política de Privacidade.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.