关于 fiscal
Brasil NFe MCP 将巴西税务基础设施开放为工具、资源和提示词,面向需要通过对话处理税务单据的企业及财务人员。它覆盖多类电子单据、SEFAZ 查询、税务事件和档案下载,并与 Brasil NFe 的 REST API 共用后端。
主要功能
- 01签发及查询六类巴西税务单据
- 02处理取消、更正和收货方确认等事件
- 03查询 SEFAZ、纳税人登记及税额
- 04管理客户、产品和税务规则
- 05下载 XML、PDF 及期间归档
适用场景
- 01通过对话签发 NF-e 或 NFC-e
- 02核查 SEFAZ 状态及企业登记信息
- 03取消单据或提交更正事件
- 04下载单张税票或指定期间的档案
MCP 相关
MCP 服务通过 Streamable HTTP 向兼容客户端提供 30 多种工具、5 个资源和 5 个提示词,使用 Bearer token 认证。其与 Brasil NFe REST API 共用同一税务后端。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://api.brasilnfe.com.br/services/Mcpclaude mcp add --transport http br-com-brasilnfe-fiscal https://api.brasilnfe.com.br/services/Mcp{"mcpServers":{"br-com-brasilnfe-fiscal":{"type":"http","url":"https://api.brasilnfe.com.br/services/Mcp"}}}在 Cursor 中打开{"servers":{"br-com-brasilnfe-fiscal":{"type":"http","url":"https://api.brasilnfe.com.br/services/Mcp"}}}在 VS Code 中打开{"mcpServers":{"br-com-brasilnfe-fiscal":{"type":"http","url":"https://api.brasilnfe.com.br/services/Mcp"}}}{"mcpServers":{"br-com-brasilnfe-fiscal":{"serverUrl":"https://api.brasilnfe.com.br/services/Mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://api.brasilnfe.com.br/services/Mcp需要授权工具
34| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| Lote | integer|null | 否 | Lote da Nota Fiscal |
| Serie | integer|null | 否 | Série da nota Fiscal |
| Codigo | string|null | 否 | B03 - Código numérico que compõe a Chave de Acesso. Número aleatório gerado pelo emitente para cada NF-e. |
| Numero | integer|null | 否 | Número da nota fiscal |
| Cliente | object|null | 否 | Destinatá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.Ie | string|null | 否 | |
| Cliente.IsUf | string|null | 否 | |
| Cliente.Contato | object|null | 否 | |
| Cliente.Contato.Fax | string|null | 否 | |
| Cliente.Contato.Email | string|null | 否 | |
| Cliente.Contato.Telefone | string|null | 否 | |
| Cliente.CpfCnpj | string | 是 | CPF (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.Endereco | object|null | 否 | |
| Cliente.Endereco.Uf | string|null | 否 | |
| Cliente.Endereco.Cep | string|null | 否 | |
| Cliente.Endereco.Pais | string|null | 否 | |
| Cliente.Endereco.Bairro | string|null | 否 | |
| Cliente.Endereco.Numero | string|null | 否 | |
| Cliente.Endereco.CodPais | integer | 否 | |
| Cliente.Endereco.Municipio | string|null | 否 | |
| Cliente.Endereco.Logradouro | string|null | 否 | |
| Cliente.Endereco.Complemento | string|null | 否 | |
| Cliente.Endereco.CodMunicipio | string|null | 否 | |
| Cliente.NmCliente | string | 是 | Nome/Razão Social do destinatário (máx 60 caracteres). Obrigatório para NF-e (modelo 55). |
| Cliente.IndicadorIe | enum | 否 | Indicador 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 |
| Entrega | object|null | 否 | |
| Entrega.Ie | string|null | 否 | |
| Entrega.Nome | string|null | 否 | |
| Entrega.Contato | object|null | 否 | |
| Entrega.Contato.Fax | string|null | 否 | |
| Entrega.Contato.Email | string|null | 否 | |
| Entrega.Contato.Telefone | string|null | 否 | |
| Entrega.CpfCnpj | string|null | 否 | |
| Entrega.Endereco | object|null | 否 | |
| Entrega.Endereco.Uf | string|null | 否 | |
| Entrega.Endereco.Cep | string|null | 否 | |
| Entrega.Endereco.Pais | string|null | 否 | |
| Entrega.Endereco.Bairro | string|null | 否 | |
| Entrega.Endereco.Numero | string|null | 否 | |
| Entrega.Endereco.CodPais | integer | 否 | |
| Entrega.Endereco.Municipio | string|null | 否 | |
| Entrega.Endereco.Logradouro | string|null | 否 | |
| Entrega.Endereco.Complemento | string|null | 否 | |
| Entrega.Endereco.CodMunicipio | string|null | 否 | |
| Exporta | object|null | 否 | |
| Exporta.UFSaidaPais | string|null | 否 | Sigla da UF de Embarque ou de transposição de fronteira |
| Exporta.LocalDespacho | string|null | 否 | Descrição do local de despacho |
| Exporta.LocalEmbarqueTransp | string|null | 否 | Descrição do Local de Embarque ou de transposição de fronteira |
| Cobranca | object|null | 否 | |
| Cobranca.Fatura | object|null | 否 | |
| Cobranca.Fatura.Valor | number | 否 | |
| Cobranca.Fatura.Numero | string|null | 否 | |
| Cobranca.Fatura.Desconto | number | 否 | |
| Cobranca.Fatura.ValorLiquido | number | 否 | |
| Cobranca.Parcelas | array|null | 否 | |
| Produtos | array | 是 | Itens da nota fiscal. Mínimo 1 item. |
| Retencoes | object|null | 否 | Retenções federais totais da nota (IRRF, PIS/COFINS/CSLL retidos, Previdência). Gera a tag retTrib no XML. |
| Retencoes.ValorIRRF | number|null | 否 | Valor retido do IRRF |
| Retencoes.ValorRetidoPIS | number|null | 否 | Valor retido de PIS |
| Retencoes.BaseCalculoIRRF | number|null | 否 | Base de cálculo do IRRF |
| Retencoes.ValorRetidoCSLL | number|null | 否 | Valor retido de CSLL |
| Retencoes.ValorRetidoCOFINS | number|null | 否 | Valor retido de COFINS |
| Retencoes.ValorRetencaoPrevidencia | number|null | 否 | Valor da retenção da Previdência Social |
| Retencoes.BaseCalculoRetencaoPrevidencia | number|null | 否 | Base de cálculo da retenção da Previdência Social |
| TipoDanfe | enum | 否 | Formato 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 |
| Finalidade | enum | 是 | NF 的开具目的。取值:1 - 正常(最常见情况);2 - 补充(在 NFReferencia 中引用之前的 NF);3 - 调整;4 - 退货;5 - 贷项通知单;6 - 借项通知单1 | 2 | 3 | 4 | 5 | 6 |
| Observacao | string|null | 否 | |
| Pagamentos | array|null | 否 | 付款方式。当 Finalidade = 1(正常)时为必填。对于目的 2/3/4/5/6,可以留空。对于 NFC-e(mod 65),必须至少有一笔付款,其 FormaPagamento 不同于 "90"(无付款)。 |
| TpNFDebito | enum | 否 | 借项通知单类型。Finalidade = 6 时为必填。SEFAZ 代码:取值:1 - 向合作社转移抵免额;2 - 对免税/豁免销售进行抵免额冲销;3 - 申报中未处理的发票借记;4 - 罚款和利息;5 - 继承转移抵免额;6 - 预付款;7 - 库存损失1 | 2 | 3 | 4 | 5 | 6 | 7 | null |
| Transporte | object|null | 否 | |
| Transporte.IE | string|null | 否 | |
| Transporte.UF | string|null | 否 | |
| Transporte.CNPJ | string|null | 否 | |
| Transporte.Balsa | string|null | 否 | |
| Transporte.Vagao | string|null | 否 | |
| Transporte.Reboque | array|null | 否 | |
| Transporte.Veiculo | object|null | 否 | |
| Transporte.Veiculo.UF | string|null | 否 | |
| Transporte.Veiculo.RNTC | string|null | 否 | |
| Transporte.Veiculo.Placa | string|null | 否 | |
| Transporte.Volumes | array|null | 否 | |
| Transporte.DsEndereco | string|null | 否 | |
| Transporte.NmMunicipio | string|null | 否 | |
| Transporte.ModalidadeFrete | enum | 否 | 0 - 由发货方承担运费(CIF);1 - 由收货方承担运费(FOB);2 - 由第三方承担运费;3 - 发货方自有运输;4 - 收货方自有运输;9 - 无运输发生0 | 1 | 2 | 3 | 4 | 9 |
| Transporte.NmTransportador | string|null | 否 | |
| ValorFrete | number|null | 否 | 发票运费总额。填写后,将按各商品的 ValorTotal 比例分摊,并替换各商品中填写的 ValorFrete。未填写(空值)= 使用传入的各商品运费。 |
| ValorTotal | number|null | 否 | 预期发票总额(vNF),仅用于校验。填写后,如果与计算出的总额(商品 - 折扣 + 运费 + 保险 + 其他费用 + 计入总额的税费)不同,将阻止开具发票,并在错误中详细说明计算过程。未填写(空值)= 不校验。 |
| DataEmissao | string|null | 否 | 商品/服务的出库或入库日期和时间(未填写时发送当前日期) |
| EnviarEmail | boolean | 否 | |
| TpNFCredito | enum | 否 | 贷项通知单类型。Finalidade = 5 时为必填。SEFAZ 代码:取值:1 - 罚款和利息;2 - 在 ZFM 对借方余额计提 IBS 预计抵免额;3 - 因交付时全部拒收或无法找到收货方而退回;4 - 金额减少;5 - 继承时转移抵免额;6 - 因交付时部分拒收而退回1 | 2 | 3 | 4 | 5 | 6 | null |
| CalcularIBPT | boolean | 否 | 计算税费估算值(vTotTrib,IBPT 表,Lei 12.741/2012)。默认:true。 |
| NFReferencia | array|null | 否 | 参考发票 |
| TipoAmbiente | enum | 是 | SEFAZ 环境标识。取值:1 - 生产环境(真实开具,具有税务效力且不可撤销);2 - 验收测试环境(测试,不具税务效力——开发和测试期间使用)1 | 2 |
| Intermediador | object|null | 否 | 中介方/marketplace 数据(第三方网站或平台)。 |
| Intermediador.Cnpj | string | 是 | 交易中介方(marketplace/第三方平台)的 CNPJ。必填。 |
| Intermediador.IdCadIntTran | string | 是 | 中介方网站上的卖家标识(注册的用户/登录名)。必填。 |
| Justificativa | string|null | 否 | 当开具类型不是正常时使用 |
| ValorDesconto | number|null | 否 | 发票折扣总额。填写后,将按各商品的 ValorTotal 比例分摊,并替换各商品中填写的 ValorDesconto。未填写(空值)= 使用传入的各商品折扣。 |
| ConsumidorFinal | boolean | 否 | 指示该交易是否面向最终消费者(NFC-e 必须为 1,请校验!) |
| ModeloDocumento | enum | 是 | 财政单据的模型代码。取值:55 - NF-e(B2B/已识别 CPF/CNPJ 的收货方);65 - NFC-e(最终消费者/零售)55 | 65 |
| ObservacaoFisco | string|null | 否 | |
| DataEntradaSaida | string|null | 否 | 商品/服务的出库或入库日期和时间 |
| NaturezaOperacao | string | 是 | 交易性质说明(最多 60 个字符)。示例:"Venda de mercadoria"、"Remessa para industrialização"、"Devolução de venda"。 |
| IndicadorPresenca | enum | 是 | Indicador 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 |
| confirmacaoUsuario | boolean | 否 | Envie 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. |
| IdentificadorInterno | string|null | 否 | |
| NFPagamentoAntecipado | array|null | 否 | Grupo de notas de antecipação de pagamento (gPagAntecipado - Reforma Tributária). |
详细介绍
简介
Brasil NFe MCP 是首个 MCP(Model Context Protocol)服务,它将巴西完整的税务基础设施作为工具、资源和提示词开放给任何兼容 MCP 的客户端使用——包括 Claude Desktop、Cursor、Windsurf、VS Code Copilot、Zed、Continue.dev、JetBrains,或你自己的应用。
将服务接入 MCP 客户端后,AI Agent 就能在对话中通过自然语言开具发票——“为这个 CPF 开具一张金额为 R$ 89,90 的 NFC-e”——然后将单据发送给 SEFAZ。AI 会自行发现工具,根据 schema 构建 payload,并将 SEFAZ 错误转换成清晰易懂的语言。
REST API 还是 MCP?
两者都是 Brasil NFe 一流的产品,开放的是同一套税务基础设施——同一个 SEFAZ 后端、同一份 SLA、同样的人工支持。选择取决于集成方式,而非质量:
| 适合使用 REST API 的场景 | 适合使用 MCP 的场景 |
|---|---|
| 你有 ERP、管理系统或自有应用,且开具流程已确定 | 你希望由 AI 助手、copilot 或 Agent 决定何时以及如何开具 |
| 处理任务是批量、定时执行,或由队列/webhook 事件触发 | 流程以对话方式进行——用户(或 Agent)参与其中并引导每一步 |
| 集成过程是确定性的,且你能精确控制 UI/UX | 客户希望将会计师的 Claude / Cursor / Copilot 直接接入业务 |
| 高并发量、优化的并行处理、稳定的 payload 合约 | 通过自然语言进行交互式、探索式、临时性会话 |
两者连接到同一个后端——你可以通过 REST 集成 ERP,同时将会计师的 AI 接入 MCP。REST API 新增路由后,它会自动成为 MCP 工具。统一的税务路线图,两个使用渠道。
公共端点
https://api.brasilnfe.com.br/services/Mcp
| 资源 | 方法 | 路径 |
|---|---|---|
| JSON-RPC | POST | /services/Mcp |
| SSE 流 | GET | /services/Mcp |
| 结束会话 | DELETE | /services/Mcp |
| 发现 | GET | /.well-known/mcp |
| 健康状态 | GET | /services/Mcp/info |
- 传输: Streamable HTTP
- 规范: MCP
2025-06-18 - 身份验证: Bearer token(
Authorization: Bearer <TOKEN>) - 速率限制: 每个 token 每分钟 60 个请求(默认)
开放内容
30 多个工具,分为 8 个类别
| 类别 | 工具 | 功能 |
|---|---|---|
| NF-e / NFC-e | nfe_emitir, nfe_emitir_complementar, nfe_previsualizar | 开具 B2B 商品发票(型号 55)或零售收据(型号 65),生成预览版 DANFE |
| NFS-e | nfse_emitir, nfse_consultar | 开具和查询服务发票(内置 5,500 多条市政规则) |
| CT-e | cte_emitir, cte_desacordo | 开具运输单据,登记收货方的异议 |
| MDF-e | mdfe_emitir, mdfe_encerrar | 开具货运清单,在运输结束时关闭清单 |
| DC-e | dce_emitir | 开具内容声明(个人 / MEI) |
| NF-EnerCom | nfenercom_gerar_arquivo, nfenercom_emitir | 开具商业能源发票 |
| 税务事件 | evento_cancelar, evento_carta_correcao, evento_manifestar, evento_inutilizar | 取消、纠正(CC-e)、收货方确认、作废编号 |
| SEFAZ 查询 | sefaz_status, cadastro_consultar, nota_listar, imposto_calcular | 服务状态、IE、发票列表、税费模拟器 |
| 登记信息 | cliente_consultar/criar/editar, produto_consultar/criar/editar, tributacao_consultar/criar/editar | 完整的客户、产品和税务规则 CRUD(并提供 Receita Federal 回退机制) |
| 文件 | arquivo_baixar, arquivo_baixar_evento, arquivo_baixar_periodo | 下载单个 XML / PDF 或指定期间的 ZIP 文件 |
| 辅助工具 | fci_gerar, health | 生成 FCI(进口内容),运行健康检查 |
5 个资源(URI scheme brasilnfe://)
brasilnfe://empresa/atual- 已登录企业快照brasilnfe://nfe/{chave}/xml- 已授权 XMLbrasilnfe://nfe/{chave}/danfe- PDF 格式的 DANFEbrasilnfe://evento/{chave}/{seq}- 按序号查询事件brasilnfe://recebidas/{periodo}- 指定期间收到的发票
5 个现成提示词
emitir_nfe_simples- NF-e 开具引导流程cancelar_nota- 带期限验证的发票取消流程diagnostico_emissao- 开具前的全面检查relatorio_periodo- 期间税务报告carta_correcao- 带允许字段验证的 CC-e 流程
快速开始
1. 获取令牌
在 brasilnfe.com.br 创建免费账户,并从控制面板复制令牌。沙盒模式免费——你可以随意开具测试文件,不会有任何内容发送到生产环境的 SEFAZ。
2. 配置 MCP 客户端
从 examples/ 中选择正确的文件,并粘贴到客户端配置中:
将 SEU_TOKEN_AQUI 替换为实际令牌,然后重启客户端。
3. 与 AI 对话
"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."
完成。AI 会自动发现工具,询问缺少的信息、进行验证、构建 payload、发送到 SEFAZ,并向你提供密钥、协议、XML 和 PDF。
无需注册即可体验
打开 brasilnfe.com.br/ai,直接在浏览器中与税务助手对话。不会发送到生产环境的 SEFAZ,但你可以看到完整流程,并在聊天窗口旁实时渲染 DANFE。
最佳实践
- 务必先在沙盒环境(
tipoAmbiente: 2)中运行,再用于生产环境。 测试文件使用允许的 CNPJ,并采用独立编号——没有税务风险。 - 创建前先查询客户 / 产品 / 税务信息。
*_consultar工具可避免重复,并为 AI 提供上下文,以便复用现有登记信息。 - 确认破坏性操作。 取消和作废操作不可逆——AI 已被指示要求确认,但仍请在自己的工作流中进行核查。
- 关闭空闲会话。
DELETE /services/Mcp可更早释放配额。 - 自动生成审计记录。 所有 MCP 调用都会在企业控制面板中记录并保存 5 年(符合 LGPD 要求)。
支持
- 文档: brasilnfe.com.br/mcp
- 在线演示: brasilnfe.com.br/ai
- WhatsApp: +55 (31) 9 7168-5947(工作时间)
- 电子邮件: [email protected](24/7)
- LGPD/DPO: [email protected]
关于
由 Brasil NFe LTDA(CNPJ 39.658.743/0001-99)维护。该公司于 2019 年由 Maxsuel Lima 在 Ipatinga/MG 创立,是巴西税务自动化领域的专家:覆盖 6 种税务单据,包含 5,500+ 条 NFS-e 市政规则、543 个 SEFAZ 内置代码,符合 PCI DSS 标准,并提供 24/7 人工支持。
许可证
MIT - 您可以自由使用、修改和分发此仓库(配置、示例和文档)。MCP 服务本身由 Brasil NFe LTDA 运营——请参阅使用条款和隐私政策。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。