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
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
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
claude mcp add cmendezs-mcp-nfe-br -- uvx mcp-nfe-br
{
"mcpServers": {
"cmendezs-mcp-nfe-br": {
"command": "uvx",
"args": [
"mcp-nfe-br"
]
}
}
} {
"servers": {
"cmendezs-mcp-nfe-br": {
"command": "uvx",
"args": [
"mcp-nfe-br"
]
}
}
} codex mcp add cmendezs-mcp-nfe-br -- uvx mcp-nfe-br
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"cmendezs-mcp-nfe-br": {
"type": "local",
"command": [
"uvx",
"mcp-nfe-br"
],
"enabled": true
}
}
} openclaw mcp add cmendezs-mcp-nfe-br --command uvx --arg mcp-nfe-br
mcp_servers:
cmendezs-mcp-nfe-br:
command: "uvx"
args: ["mcp-nfe-br"] {
"McpServers": {
"cmendezs-mcp-nfe-br": {
"Transport": "stdio",
"Command": "uvx",
"Arguments": [
"mcp-nfe-br"
]
}
}
} assistant mcp add cmendezs-mcp-nfe-br -t stdio -c uvx -a mcp-nfe-br
{
"mcpServers": {
"cmendezs-mcp-nfe-br": {
"command": "uvx",
"args": [
"mcp-nfe-br"
]
}
}
} 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
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 →
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 →
br__build_access_key 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).
| Name | Type | Req | Description |
|---|---|---|---|
| c_nf | – | – | Código numérico aleatório de 8 dígitos (cNF). Gerado se omitido. |
| c_uf | string | yes | Código IBGE da UF do emitente (2 dígitos) |
| cnpj | string | yes | CNPJ do emitente: 14 dígitos numéricos (PL_010c) ou 12 alfanuméricos + 2 dígitos (PL_010d) |
| dh_emi | string | yes | Data e hora de emissão (ISO 8601, com fuso horário) |
| modelo | string | yes | Modelo do documento fiscal: '55' (NF-e) ou '65' (NFC-e) |
| nnf | string | yes | Número do documento fiscal (nNF) |
| serie | string | yes | Série do documento fiscal |
| tp_emis | string | – | Forma de emissão (tpEmis): '1' = normal |
Structured output declared, but exposes no named fields.
No examples provided.
br__cancel_cte 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`.
| Name | Type | Req | Description |
|---|---|---|---|
| c_orgao | string | yes | Código IBGE da UF do autorizador (cOrgao), 2 dígitos (ou '90' para SUFRAMA) |
| cert_password | – | – | Senha do certificado A1, se houver |
| cert_path | string | yes | Caminho local para o certificado ICP-Brasil A1 (.p12/.pfx) |
| ch_cte | string | yes | Chave de acesso do CT-e a cancelar (chCTe), 44 caracteres |
| cnpj | string | yes | CNPJ do emitente do CT-e (autor do evento) |
| confirmation_token | – | – | Token de confirmação obtido de uma chamada anterior pendente. |
| dh_evento | string | yes | Data e hora do evento (ISO 8601, UTC) |
| endpoint_override | string | yes | URL completa do webservice CTeRecepcaoEventoV4 — obrigatório, ver docstring do módulo. |
| n_prot | string | yes | Número do protocolo de autorização do CT-e original (nProt) |
| tp_amb | string | – | Identificação do Ambiente (tpAmb): '1' = produção, '2' = homologação |
| x_just | string | yes | Justificativa do cancelamento |
Structured output declared, but exposes no named fields.
No examples provided.
br__cancel_nfse 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.]`
| Name | Type | Req | Description |
|---|---|---|---|
| ch_nfse | string | yes | Chave de acesso da NFS-e a cancelar (53 caracteres) |
| client_id | string | yes | Client ID OAuth2 gov.br |
| client_secret | string | yes | Client Secret OAuth2 gov.br |
| confirmation_token | – | – | Token de confirmação obtido de uma chamada anterior pendente. |
| endpoint_override | – | – | URL base do ADN override |
| motivo | string | yes | Motivo do cancelamento (texto livre) |
| scope | – | – | OAuth2 scope override |
| tp_amb | string | – | Identificação do Ambiente (tpAmb): '1' = produção, '2' = homologação |
Structured output declared, but exposes no named fields.
No examples provided.
br__consult_cte 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`.
| Name | Type | Req | Description |
|---|---|---|---|
| c_uf | string | yes | Código IBGE da UF do autorizador (cUF), 2 dígitos |
| cert_password | – | – | Senha do certificado A1, se houver |
| cert_path | string | yes | Caminho local para o certificado ICP-Brasil A1 (.p12/.pfx) |
| ch_cte | string | yes | Chave de acesso do CT-e (chCTe), 44 caracteres |
| endpoint_override | string | yes | URL completa do webservice CTeConsultaV4 — obrigatório, ver docstring do módulo. |
| tp_amb | string | – | Identificaçã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 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).
| Name | Type | Req | Description |
|---|---|---|---|
| c_uf | string | yes | Código IBGE da UF do autorizador (cUF), 2 dígitos |
| cert_password | – | – | Senha do certificado A1, se houver |
| cert_path | string | yes | Caminho local para o certificado ICP-Brasil A1 (.p12/.pfx) |
| endpoint_override | string | yes | URL completa do webservice CTeStatusServicoV4 — obrigatório, ver docstring do módulo. |
| tp_amb | string | – | Identificaçã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 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.]`
| Name | Type | Req | Description |
|---|---|---|---|
| ch_nfse | string | yes | Chave de acesso da NFS-e (53 caracteres, formato NFS[0-9]{50}) |
| client_id | string | yes | Client ID OAuth2 gov.br |
| client_secret | string | yes | Client Secret OAuth2 gov.br |
| endpoint_override | – | – | URL base do ADN override |
| scope | – | – | OAuth2 scope override |
| tp_amb | string | – | Identificaçã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 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]`).
| Name | Type | Req | Description |
|---|---|---|---|
| c_uf | string | yes | Código IBGE da UF do autorizador (cUF), 2 dígitos |
| cert_password | – | – | Senha do certificado A1, se houver |
| cert_path | string | yes | Caminho local para o certificado ICP-Brasil A1 (.p12/.pfx) |
| endpoint_override | – | – | URL completa do webservice NFeStatusServico4 (sobrepõe a tabela de roteamento por UF) |
| tp_amb | string | – | Identificação do Ambiente (tpAmb): '1' = produção, '2' = homologação |
Structured output declared, but exposes no named fields.
No examples provided.
br__correct_cte 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`.
| Name | Type | Req | Description |
|---|---|---|---|
| c_orgao | string | yes | Código IBGE da UF do autorizador (cOrgao), 2 dígitos (ou '90' para SUFRAMA) |
| cert_password | – | – | Senha do certificado A1, se houver |
| cert_path | string | yes | Caminho local para o certificado ICP-Brasil A1 (.p12/.pfx) |
| ch_cte | string | yes | Chave de acesso do CT-e a corrigir (chCTe), 44 caracteres |
| cnpj | string | yes | CNPJ do emitente do CT-e (autor do evento) |
| confirmation_token | – | – | Token de confirmação obtido de uma chamada anterior pendente. |
| correcoes | array | yes | Lista de correções. Cada item: 'grupo_alterado', 'campo_alterado', 'valor_alterado', e opcionalmente 'nro_item_alterado'. |
| dh_evento | string | yes | Data e hora do evento (ISO 8601, UTC) |
| endpoint_override | string | yes | URL completa do webservice CTeRecepcaoEventoV4 — obrigatório, ver docstring do módulo. |
| tp_amb | string | – | Identificação do Ambiente (tpAmb): '1' = produção, '2' = homologação |
Structured output declared, but exposes no named fields.
No examples provided.
br__distribute_dfe 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.
| Name | Type | Req | Description |
|---|---|---|---|
| c_uf_autor | string | yes | Código IBGE da UF autorizadora (cUFAutor), 2 dígitos |
| cert_password | – | – | Senha do certificado A1, se houver |
| cert_path | string | yes | Caminho local para o certificado ICP-Brasil A1 (.p12/.pfx) |
| ch_nfe | – | – | consChNFe/chNFe — chave de acesso (44 caracteres) a consultar |
| confirmation_token | – | – | Token de confirmação obtido de uma chamada anterior pendente. |
| document_id | string | yes | CNPJ ou CPF do interessado |
| document_id_type | string | – | Tipo de document_id: 'CNPJ' ou 'CPF' |
| endpoint_override | – | – | URL completa do webservice NFeDistribuicaoDFe (sobrepõe o endpoint do Ambiente Nacional) |
| nsu | – | – | consNSU/NSU — NSU específico a consultar |
| tp_amb | string | – | Identificação do Ambiente (tpAmb): '1' = produção, '2' = homologação |
| ult_nsu | – | – | distNSU/ultNSU — último NSU recebido (modo distribuição em lote) |
Structured output declared, but exposes no named fields.
No examples provided.
br__generate_cte 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
| Name | Type | Req | Description |
|---|---|---|---|
| cte | object | yes | CT-e data matching the BRCTeDocument schema (modelo 57) |
Structured output declared, but exposes no named fields.
No examples provided.
br__generate_nfe 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
| Name | Type | Req | Description |
|---|---|---|---|
| invoice | object | yes | Invoice 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 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
| Name | Type | Req | Description |
|---|---|---|---|
| dps | object | yes | DPS 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 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``.
| Name | Type | Req | Description |
|---|---|---|---|
| cert_password | – | – | Senha do certificado A1, se houver |
| cert_path | string | yes | Caminho local para o certificado ICP-Brasil A1 (.p12/.pfx) |
| xml_base64 | – | – | XML NF-e/NFC-e não assinado, codificado em base64. |
| xml_content | – | – | XML 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 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``.
| Name | Type | Req | Description |
|---|---|---|---|
| cert_password | – | – | Senha do certificado A1, se houver |
| cert_path | string | yes | Caminho local para o certificado ICP-Brasil A1 (.p12/.pfx) |
| xml_base64 | – | – | DPS não assinado codificado em base64. |
| xml_content | – | – | DPS 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 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`.
| Name | Type | Req | Description |
|---|---|---|---|
| c_uf | string | yes | Código IBGE da UF do autorizador (cUF), 2 dígitos |
| cert_password | – | – | Senha do certificado A1, se houver |
| cert_path | string | yes | Caminho local para o certificado ICP-Brasil A1 (.p12/.pfx) |
| confirmation_token | – | – | Token de confirmação obtido de uma chamada anterior pendente. |
| endpoint_override | string | yes | URL completa do webservice CTeRecepcaoSincV4 — obrigatório, ver docstring do módulo. |
| tp_amb | string | – | Identificação do Ambiente (tpAmb): '1' = produção, '2' = homologação |
| xml_base64 | – | – | XML CT-e assinado, codificado em base64. |
| xml_content | – | – | XML 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 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`.
| Name | Type | Req | Description |
|---|---|---|---|
| c_uf | string | yes | Código IBGE da UF do autorizador (cUF), 2 dígitos |
| cert_password | – | – | Senha do certificado A1, se houver |
| cert_path | string | yes | Caminho local para o certificado ICP-Brasil A1 (.p12/.pfx) |
| confirmation_token | – | – | Token de confirmação obtido de uma chamada anterior pendente. |
| endpoint_override | – | – | URL completa do webservice NFeAutorizacao4 (sobrepõe a tabela de roteamento por UF) |
| id_lote | string | yes | Identificador do lote (idLote), até 15 dígitos |
| tp_amb | string | – | Identificação do Ambiente (tpAmb): '1' = produção, '2' = homologação |
| xml_base64 | – | – | XML NF-e/NFC-e assinado, codificado em base64. |
| xml_content | – | – | XML 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 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``).
| Name | Type | Req | Description |
|---|---|---|---|
| client_id | string | yes | Client ID OAuth2 gov.br (registrado no portal de desenvolvedores) |
| client_secret | string | yes | Client Secret OAuth2 gov.br |
| confirmation_token | – | – | Token de confirmação obtido de uma chamada anterior pendente. |
| endpoint_override | – | – | URL base do ADN (sobrepõe a URL padrão por ambiente) |
| scope | – | – | OAuth2 scope override (padrão: 'openid govbr_empresa') |
| tp_amb | string | – | Identificação do Ambiente (tpAmb): '1' = produção, '2' = homologação |
| xml_base64 | – | – | DPS assinado codificado em base64. |
| xml_content | – | – | DPS 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 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).
| Name | Type | Req | Description |
|---|---|---|---|
| cnpj | string | yes | CNPJ string, with or without ``.``/``/``/``-`` separators. |
| Name | Type | Req | Description |
|---|---|---|---|
| country_code | – | – | – |
| error | – | – | – |
| valid | boolean | yes | – |
| value | – | – | – |
No examples provided.
br__validate_cpf Br Validate Cpf ~41
Validate a Brazilian CPF (individual taxpayer ID).
| Name | Type | Req | Description |
|---|---|---|---|
| cpf | string | yes | CPF string, with or without ``.``/``-`` separators. |
| Name | Type | Req | Description |
|---|---|---|---|
| country_code | – | – | – |
| error | – | – | – |
| valid | boolean | yes | – |
| value | – | – | – |
No examples provided.
br__validate_cte_xml 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``.
| Name | Type | Req | Description |
|---|---|---|---|
| xml_base64 | – | – | Base64-encoded CT-e XML bytes. |
| xml_content | – | – | Raw 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 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``.
| Name | Type | Req | Description |
|---|---|---|---|
| xml_base64 | – | – | Base64-encoded NF-e/NFC-e XML bytes. |
| xml_content | – | – | Raw 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 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``.
| Name | Type | Req | Description |
|---|---|---|---|
| xml_base64 | – | – | XML DPS ou NFSe codificado em base64. |
| xml_content | – | – | XML DPS ou NFSe como string. Informe xml_content ou xml_base64. |
Structured output declared, but exposes no named fields.
No examples provided.
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.