Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.cmendezs/mcp-nfe-br

PYPI · MCP-NFE-BR · SCANNED SEP 20

MCP server for Brazilian e-invoicing: NF-e and NFC-e (modelo 55/65), schema 4.00, SEFAZ.

Available components

−16 this week 67 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security50
  • Malware scan not yet available for this package.Unverified
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
  • 2 of 29 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (Apache-2.0).Pass
  • Actively maintained (last published 7 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability65
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 5318 tokens (~241/item across 22 items; 22 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management90
  • Stability observed for 27 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 22 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 23 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Install

How do I install the io.github.cmendezs/mcp-nfe-br server?

io.github.cmendezs/mcp-nfe-br runs locally as a PyPI package, launched with uvx mcp-nfe-br. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · mcp-nfe-br

# add to Claude Code
claude mcp add cmendezs-mcp-nfe-br -- uvx mcp-nfe-br
// .cursor/mcp.json
{
  "mcpServers": {
    "cmendezs-mcp-nfe-br": {
      "command": "uvx",
      "args": [
        "mcp-nfe-br"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "cmendezs-mcp-nfe-br": {
      "command": "uvx",
      "args": [
        "mcp-nfe-br"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add cmendezs-mcp-nfe-br -- uvx mcp-nfe-br
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "cmendezs-mcp-nfe-br": {
      "type": "local",
      "command": [
        "uvx",
        "mcp-nfe-br"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add cmendezs-mcp-nfe-br --command uvx --arg mcp-nfe-br
# ~/.hermes/config.yaml
mcp_servers:
  cmendezs-mcp-nfe-br:
    command: "uvx"
    args: ["mcp-nfe-br"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "cmendezs-mcp-nfe-br": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "mcp-nfe-br"
      ]
    }
  }
}
# add to Vellum
assistant mcp add cmendezs-mcp-nfe-br -t stdio -c uvx -a mcp-nfe-br
// mcp.json
{
  "mcpServers": {
    "cmendezs-mcp-nfe-br": {
      "command": "uvx",
      "args": [
        "mcp-nfe-br"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

  • 17 Sept 26 −2
    • Stability: pass → 0.80 functional
  • 16 Sept 26 0
    • Stability: 0.97 → pass security
  • 15 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 14 Sept 26 −16
    • Malware scan: pass → unverified security
    • Stability: pass → 0.93 functional
  • 13 Sept 26 +43
    • Injection markers: unverified → pass security
    • Stability: unverified → pass security
    • Tool coverage: unverified → 100 functional
    • MCP protocol: unverified → pass functional
  • 12 Sept 26 −42
    • Stability: 0.93 → unverified security
    • Tool safety: pass → unverified security
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • Package version: 0.9.0 → 0.9.1 functional
  • 11 Sept 26 −1
    • Stability: pass → 0.93 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed pypi/mcp-nfe-br@0.9.1

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build

Background: Why install scripts are a supply-chain risk →

Dependencies 29 packages
Packages resolved 29
Stale 1
No linked repository 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 22 exposed · ~5,265 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
br__build_access_key ~258

Assemble and check-digit a 44-character NF-e/NFC-e access key (chNFe). Returns a dict with ``chave_acesso`` (44 characters) and ``cnf`` (the 8-digit random code used, whether provided or generated).

NameTypeReqDescription
c_nfCódigo numérico aleatório de 8 dígitos (cNF). Gerado se omitido.
c_ufstringyesCódigo IBGE da UF do emitente (2 dígitos)
cnpjstringyesCNPJ do emitente: 14 dígitos numéricos (PL_010c) ou 12 alfanuméricos + 2 dígitos (PL_010d)
dh_emistringyesData e hora de emissão (ISO 8601, com fuso horário)
modelostringyesModelo do documento fiscal: '55' (NF-e) ou '65' (NFC-e)
nnfstringyesNúmero do documento fiscal (nNF)
seriestringyesSérie do documento fiscal
tp_emisstringForma de emissão (tpEmis): '1' = normal

Structured output declared, but exposes no named fields.

No examples provided.

br__cancel_cte ~440

Solicita o cancelamento de um CT-e autorizado (evento `110111`, `CTeRecepcaoEventoV4`). Constrói, assina (`build_cte_event_signer`, alvo `infEvento`) e submete o evento de cancelamento. `cStat=135` indica cancelamento homologado `[Verified locally]` — MOC CT-e Visão Geral v4.00 §6.2.2. Cancelamento é uma operação irreversível em produção e exige confirmação em duas etapas (`ConfirmationGate`). Define `BR_CTE_READ_ONLY=1` para desabilitar. `endpoint_override` é obrigatório — nenhuma URL de endpoint CT-e está embutida/verificada nesta versão. Retorna `cStat`/`xMotivo` ou `error`.

NameTypeReqDescription
c_orgaostringyesCódigo IBGE da UF do autorizador (cOrgao), 2 dígitos (ou '90' para SUFRAMA)
cert_passwordSenha do certificado A1, se houver
cert_pathstringyesCaminho local para o certificado ICP-Brasil A1 (.p12/.pfx)
ch_ctestringyesChave de acesso do CT-e a cancelar (chCTe), 44 caracteres
cnpjstringyesCNPJ do emitente do CT-e (autor do evento)
confirmation_tokenToken de confirmação obtido de uma chamada anterior pendente.
dh_eventostringyesData e hora do evento (ISO 8601, UTC)
endpoint_overridestringyesURL completa do webservice CTeRecepcaoEventoV4 — obrigatório, ver docstring do módulo.
n_protstringyesNúmero do protocolo de autorização do CT-e original (nProt)
tp_ambstringIdentificação do Ambiente (tpAmb): '1' = produção, '2' = homologação
x_juststringyesJustificativa do cancelamento

Structured output declared, but exposes no named fields.

No examples provided.

br__cancel_nfse ~206

Solicitar cancelamento de uma NFS-e no ADN. Cancelamento é uma operação irreversível e exige confirmação em duas etapas (``ConfirmationGate``). Defina ``BR_READ_ONLY=1`` para desabilitar. `[Unverified — endpoint e formato de requisição são inferidos.]`

NameTypeReqDescription
ch_nfsestringyesChave de acesso da NFS-e a cancelar (53 caracteres)
client_idstringyesClient ID OAuth2 gov.br
client_secretstringyesClient Secret OAuth2 gov.br
confirmation_tokenToken de confirmação obtido de uma chamada anterior pendente.
endpoint_overrideURL base do ADN override
motivostringyesMotivo do cancelamento (texto livre)
scopeOAuth2 scope override
tp_ambstringIdentificação do Ambiente (tpAmb): '1' = produção, '2' = homologação

Structured output declared, but exposes no named fields.

No examples provided.

br__consult_cte ~276

Consulta a situação de um CT-e por chave de acesso (`CTeConsultaV4`). Read-only — não requer confirmação (consulta um CT-e específico e já conhecido pela chave de acesso, não um lote de dados fiscais de terceiros — diferente de `br__distribute_dfe` no NF-e). Nenhuma URL de endpoint CT-e está embutida/verificada nesta versão — `endpoint_override` é obrigatório. Retorna `cStat`/`xMotivo`/`protCTe` (quando aplicável) ou `error`.

NameTypeReqDescription
c_ufstringyesCódigo IBGE da UF do autorizador (cUF), 2 dígitos
cert_passwordSenha do certificado A1, se houver
cert_pathstringyesCaminho local para o certificado ICP-Brasil A1 (.p12/.pfx)
ch_ctestringyesChave de acesso do CT-e (chCTe), 44 caracteres
endpoint_overridestringyesURL completa do webservice CTeConsultaV4 — obrigatório, ver docstring do módulo.
tp_ambstringIdentificação do Ambiente (tpAmb): '1' = produção, '2' = homologação

Structured output declared, but exposes no named fields.

No examples provided.

br__consult_cte_sefaz_status ~243

Consulta a disponibilidade do webservice SEFAZ CT-e (`CTeStatusServicoV4`). Read-only — não requer confirmação. Nenhuma URL de endpoint CT-e está embutida/verificada nesta versão — `endpoint_override` é obrigatório (ver `mcp_nfe_br.standards.sefaz_cte_client` docstring). Retorna `cStat`/`xMotivo` (`cStat=107` indica serviço em operação `[Unverified]`, mesmo código do padrão NF-e).

NameTypeReqDescription
c_ufstringyesCódigo IBGE da UF do autorizador (cUF), 2 dígitos
cert_passwordSenha do certificado A1, se houver
cert_pathstringyesCaminho local para o certificado ICP-Brasil A1 (.p12/.pfx)
endpoint_overridestringyesURL completa do webservice CTeStatusServicoV4 — obrigatório, ver docstring do módulo.
tp_ambstringIdentificação do Ambiente (tpAmb): '1' = produção, '2' = homologação

Structured output declared, but exposes no named fields.

No examples provided.

br__consult_nfse_status ~159

Consultar o status de uma NFS-e pelo chave de acesso (chNFSe). Read-only, não requer confirmação. `[Unverified — endpoint e formato de resposta são inferidos.]`

NameTypeReqDescription
ch_nfsestringyesChave de acesso da NFS-e (53 caracteres, formato NFS[0-9]{50})
client_idstringyesClient ID OAuth2 gov.br
client_secretstringyesClient Secret OAuth2 gov.br
endpoint_overrideURL base do ADN override
scopeOAuth2 scope override
tp_ambstringIdentificação do Ambiente (tpAmb): '1' = produção, '2' = homologação

Structured output declared, but exposes no named fields.

No examples provided.

br__consult_sefaz_status ~188

Consulta a disponibilidade do webservice SEFAZ (`NFeStatusServico4`). Read-only — não requer confirmação. Retorna `cStat`/`xMotivo` (`cStat=107` indica serviço em operação `[Unverified]`).

NameTypeReqDescription
c_ufstringyesCódigo IBGE da UF do autorizador (cUF), 2 dígitos
cert_passwordSenha do certificado A1, se houver
cert_pathstringyesCaminho local para o certificado ICP-Brasil A1 (.p12/.pfx)
endpoint_overrideURL completa do webservice NFeStatusServico4 (sobrepõe a tabela de roteamento por UF)
tp_ambstringIdentificação do Ambiente (tpAmb): '1' = produção, '2' = homologação

Structured output declared, but exposes no named fields.

No examples provided.

br__correct_cte ~471

Emite uma Carta de Correção Eletrônica para um CT-e (evento `110110`, `CTeRecepcaoEventoV4`). Constrói, assina (`build_cte_event_signer`, alvo `infEvento`) e submete o evento de CC-e. `cStat=135` indica CC-e homologada `[Verified locally]` — MOC CT-e Visão Geral v4.00 §6.4. Por força do Art. 58-B do CONVÊNIO/SINIEF 06/89, a CC-e não pode alterar valores de impostos, dados cadastrais das partes, ou a data de emissão/saída. Exige confirmação em duas etapas (`ConfirmationGate`). Define `BR_CTE_READ_ONLY=1` para desabilitar. `endpoint_override` é obrigatório. Retorna `cStat`/`xMotivo` ou `error`.

NameTypeReqDescription
c_orgaostringyesCódigo IBGE da UF do autorizador (cOrgao), 2 dígitos (ou '90' para SUFRAMA)
cert_passwordSenha do certificado A1, se houver
cert_pathstringyesCaminho local para o certificado ICP-Brasil A1 (.p12/.pfx)
ch_ctestringyesChave de acesso do CT-e a corrigir (chCTe), 44 caracteres
cnpjstringyesCNPJ do emitente do CT-e (autor do evento)
confirmation_tokenToken de confirmação obtido de uma chamada anterior pendente.
correcoesarrayyesLista de correções. Cada item: 'grupo_alterado', 'campo_alterado', 'valor_alterado', e opcionalmente 'nro_item_alterado'.
dh_eventostringyesData e hora do evento (ISO 8601, UTC)
endpoint_overridestringyesURL completa do webservice CTeRecepcaoEventoV4 — obrigatório, ver docstring do módulo.
tp_ambstringIdentificação do Ambiente (tpAmb): '1' = produção, '2' = homologação

Structured output declared, but exposes no named fields.

No examples provided.

br__distribute_dfe ~368

Consulta/distribui DF-e via `NFeDistribuicaoDFe` (`NT2014.002_v1.30`, `[Verified locally]`). Exatamente um de `ult_nsu`, `nsu`, ou `ch_nfe` deve ser informado, selecionando `distNSU`, `consNSU`, ou `consChNFe` respectivamente. Esta ferramenta consulta dados fiscais de terceiros vinculados ao certificado e requer confirmação em duas etapas. Define `BR_READ_ONLY=1` para desabilitar.

NameTypeReqDescription
c_uf_autorstringyesCódigo IBGE da UF autorizadora (cUFAutor), 2 dígitos
cert_passwordSenha do certificado A1, se houver
cert_pathstringyesCaminho local para o certificado ICP-Brasil A1 (.p12/.pfx)
ch_nfeconsChNFe/chNFe — chave de acesso (44 caracteres) a consultar
confirmation_tokenToken de confirmação obtido de uma chamada anterior pendente.
document_idstringyesCNPJ ou CPF do interessado
document_id_typestringTipo de document_id: 'CNPJ' ou 'CPF'
endpoint_overrideURL completa do webservice NFeDistribuicaoDFe (sobrepõe o endpoint do Ambiente Nacional)
nsuconsNSU/NSU — NSU específico a consultar
tp_ambstringIdentificação do Ambiente (tpAmb): '1' = produção, '2' = homologação
ult_nsudistNSU/ultNSU — último NSU recebido (modo distribuição em lote)

Structured output declared, but exposes no named fields.

No examples provided.

br__generate_cte ~193

Generate an unsigned CT-e XML (modelo 57, schema 4.00). v1 supports modal rodoviário only and ICMS CST 00 (tributação normal) only — other modais/CSTs raise an error. The returned `<CTe><infCte>…</infCte></CTe>` document does not include `<Signature>` — sign it with `br__sign_cte` (roadmap BR-CTE-6 factory, tool not yet registered) before SEFAZ submission. Returns a dict with: - ``xml``: the generated CT-e XML string - ``chave_acesso``: the computed 44-character access key (chCTe) - ``warnings``: list of non-fatal notices

NameTypeReqDescription
cteobjectyesCT-e data matching the BRCTeDocument schema (modelo 57)

Structured output declared, but exposes no named fields.

No examples provided.

br__generate_nfe ~172

Generate an unsigned NF-e/NFC-e XML (modelo 55/65, schema 4.00). The returned `<NFe><infNFe>…</infNFe></NFe>` document does not include `<Signature>` — sign it with `br__sign_nfe` before SEFAZ submission. SEFAZ webservice submission itself is not implemented in this phase. Returns a dict with: - ``xml``: the generated NF-e/NFC-e XML string - ``chave_acesso``: the computed 44-character access key (chNFe) - ``warnings``: list of non-fatal notices

NameTypeReqDescription
invoiceobjectyesInvoice data matching the BRInvoice schema (modelo 55 = NF-e, modelo 65 = NFC-e)

Structured output declared, but exposes no named fields.

No examples provided.

br__generate_nfse ~164

Gerar um DPS não assinado para NFS-e Nacional (ADN), schema v1.01. O DPS (Declaração de Prestação de Serviços) gerado não contém ``<ds:Signature>`` — assine-o com ``br__sign_nfse`` antes de submeter ao ADN via ``br__submit_nfse``. Returns a dict with: - ``xml``: the generated unsigned DPS XML string - ``dps_id``: the 45-character DPS Id (``infDPS Id`` attribute) - ``warnings``: list of non-fatal notices

NameTypeReqDescription
dpsobjectyesDPS data matching the NFSeDocument schema (NFS-e Nacional, ADN, schema v1.01)

Structured output declared, but exposes no named fields.

No examples provided.

br__sign_nfe ~242

Apply an ICP-Brasil enveloped XML-DSig signature to an NF-e/NFC-e XML. Signs `<infNFe>` per MOC 7.0 Table 4-2 (RSA-SHA1 / SHA-1, enveloped transform, `ds:Signature` appended as the last child of `<NFe>`) using `mcp_nfe_br.standards.nfe_signer.build_nfe_signer`. Only ICP-Brasil A1 (PKCS#12 file-based) certificates are supported. A3 (hardware token/HSM) certificates `[NEED: not modeled]`. Returns a dict with ``xml`` (the signed document) or ``error``.

NameTypeReqDescription
cert_passwordSenha do certificado A1, se houver
cert_pathstringyesCaminho local para o certificado ICP-Brasil A1 (.p12/.pfx)
xml_base64XML NF-e/NFC-e não assinado, codificado em base64.
xml_contentXML NF-e/NFC-e não assinado. Informe xml_content ou xml_base64.

Structured output declared, but exposes no named fields.

No examples provided.

br__sign_nfse ~257

Aplicar assinatura XML-DSig ICP-Brasil ao DPS da NFS-e Nacional. Assina o elemento ``<infDPS>`` com enveloped ``ds:Signature`` adicionada como último filho de ``<DPS>``, usando ``mcp_nfe_br.standards.nfse_signer.build_nfse_signer``. Algoritmo: RSA-SHA1 (padrão XMLDSigSigner). `[Unverified para NFS-e Nacional — confirme no manual ADN antes de usar em produção.]` Somente certificados A1 (PKCS#12 em arquivo) são suportados. A3 (hardware token/HSM) `[NEED: não modelado]`. Returns a dict with ``xml`` (the signed DPS) or ``error``.

NameTypeReqDescription
cert_passwordSenha do certificado A1, se houver
cert_pathstringyesCaminho local para o certificado ICP-Brasil A1 (.p12/.pfx)
xml_base64DPS não assinado codificado em base64.
xml_contentDPS não assinado (saída de br__generate_nfse). Informe xml_content ou xml_base64.

Structured output declared, but exposes no named fields.

No examples provided.

br__submit_cte ~369

Submete um CT-e assinado à autorização SEFAZ (`CTeRecepcaoSincV4`, síncrono). O payload é automaticamente compactado em GZip e codificado em Base64 antes do envio, conforme exigido pelo MOC CT-e §3.4.1 `[Verified locally]`. Submissão para SEFAZ é uma operação irreversível em produção e exige confirmação em duas etapas (`ConfirmationGate`). Define `BR_CTE_READ_ONLY=1` para desabilitar esta ferramenta. Nenhuma URL de endpoint CT-e está embutida/verificada nesta versão — `endpoint_override` é obrigatório. Retorna `protCTe` (incluindo `nProt`, o `protocolo de autorização`) em caso de sucesso, ou `error`.

NameTypeReqDescription
c_ufstringyesCódigo IBGE da UF do autorizador (cUF), 2 dígitos
cert_passwordSenha do certificado A1, se houver
cert_pathstringyesCaminho local para o certificado ICP-Brasil A1 (.p12/.pfx)
confirmation_tokenToken de confirmação obtido de uma chamada anterior pendente.
endpoint_overridestringyesURL completa do webservice CTeRecepcaoSincV4 — obrigatório, ver docstring do módulo.
tp_ambstringIdentificação do Ambiente (tpAmb): '1' = produção, '2' = homologação
xml_base64XML CT-e assinado, codificado em base64.
xml_contentXML CT-e assinado (saída de br__sign_cte). Informe xml_content ou xml_base64.

Structured output declared, but exposes no named fields.

No examples provided.

br__submit_nfe ~331

Submete um NF-e/NFC-e assinado à autorização SEFAZ (`NFeAutorizacao4`, síncrono). Submissão para SEFAZ é uma operação irreversível em produção e exige confirmação em duas etapas (`ConfirmationGate`). Define `BR_READ_ONLY=1` para desabilitar esta ferramenta. Retorna `protNFe` (incluindo `nProt`, o `protocolo de autorização`) em caso de sucesso, ou `error`.

NameTypeReqDescription
c_ufstringyesCódigo IBGE da UF do autorizador (cUF), 2 dígitos
cert_passwordSenha do certificado A1, se houver
cert_pathstringyesCaminho local para o certificado ICP-Brasil A1 (.p12/.pfx)
confirmation_tokenToken de confirmação obtido de uma chamada anterior pendente.
endpoint_overrideURL completa do webservice NFeAutorizacao4 (sobrepõe a tabela de roteamento por UF)
id_lotestringyesIdentificador do lote (idLote), até 15 dígitos
tp_ambstringIdentificação do Ambiente (tpAmb): '1' = produção, '2' = homologação
xml_base64XML NF-e/NFC-e assinado, codificado em base64.
xml_contentXML NF-e/NFC-e assinado (saída de br__sign_nfe). Informe xml_content ou xml_base64.

Structured output declared, but exposes no named fields.

No examples provided.

br__submit_nfse ~308

Submeter um DPS assinado ao ADN para geração da NFS-e Nacional. Submissão ao ADN é uma operação irreversível em produção e exige confirmação em duas etapas (``ConfirmationGate``). Defina ``BR_READ_ONLY=1`` para desabilitar esta ferramenta. `[Unverified — endpoint ADN, formato de requisição e resposta são inferidos de fontes secundárias. Verifique no manual ADN antes do uso em produção.]` Retorna campos de status do ADN (``cStat``, ``xMotivo``) e opcionalmente o XML da NFS-e gerada (``nfse_xml``).

NameTypeReqDescription
client_idstringyesClient ID OAuth2 gov.br (registrado no portal de desenvolvedores)
client_secretstringyesClient Secret OAuth2 gov.br
confirmation_tokenToken de confirmação obtido de uma chamada anterior pendente.
endpoint_overrideURL base do ADN (sobrepõe a URL padrão por ambiente)
scopeOAuth2 scope override (padrão: 'openid govbr_empresa')
tp_ambstringIdentificação do Ambiente (tpAmb): '1' = produção, '2' = homologação
xml_base64DPS assinado codificado em base64.
xml_contentDPS assinado (saída de br__sign_nfse). Informe xml_content ou xml_base64.

Structured output declared, but exposes no named fields.

No examples provided.

br__validate_cnpj ~103

Validate a Brazilian CNPJ (company tax ID). Accepts both the legacy all-numeric form (14 digits) and the alphanumeric form introduced by NT 2026.004 / PL_010d (12 alphanumeric characters + 2 numeric check digits, production from 2026-07-01).

NameTypeReqDescription
cnpjstringyesCNPJ string, with or without ``.``/``/``/``-`` separators.
NameTypeReqDescription
country_code
error
validbooleanyes
value

No examples provided.

br__validate_cpf ~41

Validate a Brazilian CPF (individual taxpayer ID).

NameTypeReqDescription
cpfstringyesCPF string, with or without ``.``/``-`` separators.
NameTypeReqDescription
country_code
error
validbooleanyes
value

No examples provided.

br__validate_cte_xml ~146

Validate a CT-e XML (modelo 57, schema 4.00) against the bundled PL_CTe_400 XSD. `CTeXSDValidator` selects the schema automatically: documents without a `<ds:Signature>` are validated against the unsigned derivative; signed documents are validated against the unmodified official schema, which requires `<ds:Signature>`. Returns a dict with ``valid``, ``errors``, ``warnings``, and ``schema_version``.

NameTypeReqDescription
xml_base64Base64-encoded CT-e XML bytes.
xml_contentRaw CT-e XML string. Provide either xml_content or xml_base64.

Structured output declared, but exposes no named fields.

No examples provided.

br__validate_nfe_xml ~167

Validate an NF-e/NFC-e XML (modelo 55/65, schema 4.00) against the bundled PL_010d XSD. `NFeXSDValidator` selects the schema automatically: documents without a `<ds:Signature>` are validated against the unsigned derivative; signed documents (produced by `br__sign_nfe`) are validated against the unmodified official schema, which requires `<ds:Signature>`. Returns a dict with ``valid``, ``errors``, ``warnings``, and ``schema_version``.

NameTypeReqDescription
xml_base64Base64-encoded NF-e/NFC-e XML bytes.
xml_contentRaw NF-e/NFC-e XML string. Provide either xml_content or xml_base64.

Structured output declared, but exposes no named fields.

No examples provided.

br__validate_nfse_xml ~163

Validar um DPS ou NFSe contra o XSD v1.01 do ADN. Seleciona automaticamente o schema com base no elemento raiz: - ``<DPS>`` → valida contra ``DPS_v1.01.xsd`` (``<ds:Signature>`` opcional) - ``<NFSe>`` → valida contra ``NFSe_v1.01.xsd`` (``<ds:Signature>`` obrigatória) Returns a dict with ``valid``, ``errors``, ``warnings``, and ``schema_version``.

NameTypeReqDescription
xml_base64XML DPS ou NFSe codificado em base64.
xml_contentXML DPS ou NFSe como string. Informe xml_content ou xml_base64.

Structured output declared, but exposes no named fields.

No examples provided.

Common questions

What is the io.github.cmendezs/mcp-nfe-br server?

io.github.cmendezs/mcp-nfe-br is listed in the public MCP registry as io.github.cmendezs/mcp-nfe-br. MCP server for Brazilian e-invoicing: NF-e and NFC-e (modelo 55/65), schema 4.00, SEFAZ. This page covers its PyPI package (mcp-nfe-br).

Is the io.github.cmendezs/mcp-nfe-br server safe to use?

io.github.cmendezs/mcp-nfe-br scores 67 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.cmendezs/mcp-nfe-br server expose?

io.github.cmendezs/mcp-nfe-br exposes 22 tools: br__validate_cnpj, br__validate_cpf, br__generate_nfe, br__sign_nfe, br__validate_nfe_xml, and 17 more. Their descriptions and schemas cost roughly 5,265 tokens of context every time the server is loaded.

Is the io.github.cmendezs/mcp-nfe-br server still maintained?

io.github.cmendezs/mcp-nfe-br is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.cmendezs/mcp-nfe-br server under?

io.github.cmendezs/mcp-nfe-br declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.