# br.com.brasilnfe/fiscal

> Brazilian fiscal MCP server - issue NF-e, NFC-e, NFS-e, CT-e, MDF-e and DC-e via SEFAZ.

- name: br.com.brasilnfe/fiscal
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 92/100
- quality: 75/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/br.com.brasilnfe%2Ffiscal
- tools: https://api.protogrid.dev/v1/servers/br.com.brasilnfe%2Ffiscal/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "fiscal": {
      "type": "http",
      "url": "https://api.brasilnfe.com.br/services/Mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 98
- freshness: 65
- provenance: 100
- drivers: +repository +namespace-matches-repo +dns-namespace +website +reachable +uptime-95% ~updated-129d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 75/100 (good)

### protocol: 100 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- pass `protocol.list_ttl`: tool list is cacheable (ttlMs 300000)

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 79 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 34 of 34 tools declare readOnlyHint or destructiveHint
- warn `tools.directory_hints`: 15 of 34 tools declare all four hints; missing: nfenercom_emitir (idempotentHint); mdfe_emitir (idempotentHint); mdfe_encerrar (idempotentHint); …
- fail `tools.token_cost`: about 60,933 tokens to load every tool, a large share of an agent's context
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 25 (weight 15)

- warn `stability.changes`: 47 tool changes in 30 days
- fail `stability.rug_pull`: 1 tools kept their name but changed most of their description in 30 days; review before trusting them

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 34, about 60,933 tokens to load them all
- tool set hash: bc6f318eac09fc60f88a8971faf92313
- tools last changed: 2026-10-09T23:34:40.270Z
- badge: [![protogrid quality](https://protogrid.dev/badge/br.com.brasilnfe/fiscal.svg)](https://protogrid.dev/servers/br.com.brasilnfe/fiscal)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-09 `nfe_previsualizar` changed (inputSchema)
- 2026-10-09 `nfe_emitir_complementar` changed (inputSchema)
- 2026-10-09 `nfe_emitir` changed (inputSchema)
- 2026-10-08 `nfe_previsualizar` changed (inputSchema)
- 2026-10-08 `nfe_emitir_complementar` changed (inputSchema)
- 2026-10-08 `nfe_emitir` changed (inputSchema)
- 2026-10-06 `nfe_previsualizar` changed (inputSchema)
- 2026-10-06 `nfe_emitir_complementar` changed (inputSchema)
- 2026-10-06 `nfe_emitir` changed (inputSchema)
- 2026-10-02 `nfe_previsualizar` changed (inputSchema)

Full history: https://api.protogrid.dev/v1/servers/br.com.brasilnfe%2Ffiscal/changes

## Remotes

- https://api.brasilnfe.com.br/services/Mcp (streamable-http, auth none, reachable true, uptime30d 0.94545454)

## Packages

_none_

## Tools (34)

- `arquivo_baixar`: Baixa o arquivo (XML ou PDF/DANFE) de uma NF-e/NFC-e/NFS-e por chave de acesso. Retorna conteúdo em base64.
- `arquivo_baixar_evento`: Baixa o arquivo de um evento (CC-e, cancelamento, manifestação, encerramento) por chave de acesso + número sequencial. Retorna conteúdo em base64.
- `arquivo_baixar_periodo`: Exporta múltiplos arquivos (XML/PDF) de um período em um único ZIP base64. Útil para backup, contabilidade ou auditoria.
- `cadastro_consultar`: Consulta a Inscrição Estadual (IE) de um contribuinte na SEFAZ estadual (mundo NF-e/ICMS), por CNPJ/CPF/IE + UF. ATENÇÃO: muitas UFs NÃO oferecem este serviço (ex: RJ) e prestadores de serviço normalmente NÃO têm IE - nesses casos a IE não vem, e ISSO NÃO SIGNIFICA QUE O CNPJ ESTEJA INATIVO. Quando a SEFAZ não retorna e o documento é CNPJ, há fallback automático na Receita Federal (campo 'fonte'='receita') trazendo razão social, situação cadastral e endereço - sempre leia o campo 'mensagem'. Para apenas saber se um CNPJ está ativo ou pegar seus dados cadastrais (sem precisar da IE), prefira cliente_consultar.
- `cliente_consultar`: Pesquisa unificada de cliente/fornecedor. Tenta primeiro o cadastro local da empresa logada e, se nao achar e o termo for um CNPJ valido, consulta a BrasilAPI (Receita Federal) - razao social, endereco, situacao cadastral. E a tool CORRETA pra saber se um CNPJ esta ativo e pegar seus dados (razao social, endereco) - nao confunda com cadastro_consultar, que so traz Inscricao Estadual (IE) da SEFAZ. Use ANTES de pedir CNPJ ao usuario; geralmente o usuario informa nome ou apelido (ex: 'TNT', 'Correios'). Obs: consulta na Receita so funciona por CNPJ - CPF nao tem base publica. Para obter a Inscricao Estadual (operacao com ICMS), use cadastro_consultar. PAGINACAO: Limite default 10 (max 50). Use Offset pra ir alem - o retorno traz TotalGeral. Se TotalGeral > matches retornados, peça mais paginas em vez de inventar/agrupar.
- `cliente_criar`: Cadastra um novo Cliente no sistema da empresa logada (CNPJ ou CPF, razao social, endereco, IE). Use depois de cliente_consultar quando o usuario confirmar que quer salvar o cadastro. Se ja existir cliente com mesmo CpfCnpj devolve erro com Id existente - use cliente_editar.
- `cliente_editar`: Atualiza dados de um Cliente existente no cadastro. O campo Id e obrigatorio. ATENCAO: envie o payload COMPLETO - campos omitidos sao zerados, nao preservados. Para edicao parcial, faca cliente_consultar primeiro e mande os dados existentes mais o que muda. Valida ownership por UserCreate (cliente tem que pertencer ao usuario logado) e por empresa (IdEmpresa tem que ser a logada, 0 ou null - se for outra empresa sua, troque antes).
- `cte_desacordo`: Registra desacordo do tomador com um CT-e recebido (evento tipo 4 do CT-e). Prazo: 45 dias da emissão.
- `cte_emitir`: Emite CT-e (Conhecimento de Transporte Eletrônico). Requer serviço CT-e habilitado no cadastro da empresa e certificado digital A1 ou A3 configurado.
- `dce_emitir`: Emite DC-e (Declaração de Conteúdo Eletrônica) para transporte de itens não-fiscais por pessoa física ou MEI. Requer serviço DC-e habilitado no cadastro.
- `evento_cancelar`: Cancela um documento fiscal autorizado (NF-e, NFC-e, NFS-e, CT-e, MDF-e, DC-e). Informe a chave de 44 dígitos e a justificativa (mínimo 15 caracteres). Para NFS-e use TipoDocumento=1 e informe NumeroNFSe ao invés de chave. Prazo SEFAZ NF-e: 24h após autorização (algumas UFs mais).
- `evento_carta_correcao`: Envia Carta de Correção (CC-e) para uma NF-e ou CT-e já autorizada (evento tipo 2). Não pode corrigir: valores, datas de emissão/saída, partes envolvidas (CNPJ/CPF), regimes tributários ou número/série do documento. Limite: 20 CC-e por NF-e.
- `evento_inutilizar`: Inutiliza uma faixa de numeração não utilizada na SEFAZ. Útil quando há quebra de sequência por erro de emissão. Não pode ser desfeito. Operação rara - confirme com o usuário antes.
- `evento_manifestar`: Registra a manifestação do destinatário sobre uma NF-e. TipoEvento: 0=ciência da operação, 1=confirmação da operação, 2=desconhecimento, 3=operação não realizada.
- `fci_gerar`: Gera o arquivo FCI (Ficha de Conteúdo de Importação) requerido para produtos com conteúdo importado em operações interestaduais.
- `health`: Verifica a saúde da API BrasilNFe (status, timestamp, versão). Não recebe parâmetros.
- `imposto_calcular`: Simula o cálculo de impostos (ICMS, PIS, COFINS, IPI, ST) sobre uma lista de produtos sem emitir nota. Útil para precificação.
- `mdfe_emitir`: Emite MDF-e (Manifesto Eletrônico de Documentos Fiscais), agrupando vários CT-e/NF-e em um único transporte. Obrigatório para transportadores com vários DFs no mesmo veículo.
- `mdfe_encerrar`: Encerra um MDF-e já autorizado (evento tipo 3). Obrigatório ao final de cada transporte. Sem encerramento, novos MDF-e podem ser bloqueados pela SEFAZ.
- `nfe_emitir`: Emite uma NF-e (modelo 55) ou NFC-e (modelo 65) na SEFAZ. Use modeloDocumento=55 para NF-e (B2B com destinatário CPF/CNPJ) ou modeloDocumento=65 para NFC-e (consumidor final). Retorna chave de acesso (44 dígitos), número, protocolo, status e XML/DANFE em base64. Operação síncrona (pode levar 5-30s). Use tipoAmbiente=2 (homologação) para testes. TRANSMITE DE VERDADE: só chame depois que o usuário aprovou a pré-visualização final (nfe_previsualizar) e confirmou a emissão; envie confirmacaoUsuario=true (conexões OAuth são recusadas sem ele).
- `nfe_emitir_complementar`: Emite uma NF-e complementar referenciando uma NF-e já autorizada. Usado para complementar valores, impostos ou itens (finalidade=2). Informe a chave da nota original em NFReferencia.
- `nfenercom_emitir`: Envia a NF-EnerCom (Nota Fiscal de Energia Comercializada) para autorização na SEFAZ.
- `nfenercom_gerar_arquivo`: Gera o arquivo da Nota Fiscal de Energia (NF-EnerCom). Pré-requisito para nfenercom_emitir.
- `nfe_previsualizar`: Gera o DANFE em PDF e o XML como pré-visualização, sem enviar para a SEFAZ. Envie a nota completa em 'notaFiscal' (mesmo formato de nfe_emitir) com TipoEnvio=1 e TipoArquivo=2 (PDF + XML juntos). O resultado abre num painel ao lado da conversa: chame de novo a cada alteração pedida pelo usuário (CFOP, itens, destinatário, valores) para o painel refletir a nota atual. Erros de validação voltam em 'Error'/'Avisos'.
- `nfse_consultar`: Consulta status e dados de uma NFS-e já enviada por número, série e ambiente.
- `nfse_emitir`: Emite NFS-e (Nota Fiscal de Serviços Eletrônica). Cada município brasileiro tem regras e webservices próprios - confira o município emissor antes. Pode usar Portal Nacional NFS-e ou prefeitura específica conforme cadastro da empresa.
- `nota_listar`: Lista NF-e/NFC-e/NFS-e emitidas ou recebidas pela empresa em um intervalo de datas. Suporta filtros por chave, número, status e tipo.
- `produto_consultar`: Pesquisa produto no cadastro da empresa logada. Aceita codigo interno, NCM (8 digitos), GTIN/EAN (8/12/13/14 digitos) ou descricao parcial. Use ANTES de criar produtos novos para evitar duplicatas. PAGINACAO: Limite default 20 (max 50). Use Offset pra ir alem - o retorno traz TotalGeral. Se TotalGeral > matches retornados, peça mais paginas em vez de inventar/agrupar.
- `produto_criar`: Cadastra um novo Produto na empresa logada. Validacao de duplicata por Codigo. NCM aceito com 7 ou 8 digitos (zero-pad automatico). EAN/GTIN validado por digito verificador.
- `produto_editar`: Atualiza um Produto existente. Id obrigatorio. ATENCAO: envie o payload COMPLETO - campos omitidos sao zerados. Faca produto_consultar antes pra ter os dados atuais, depois envie tudo + o que muda. Valida ownership por UserCreate (produto tem que pertencer ao usuario logado) e por empresa (IdEmpresa tem que ser a logada ou 0 - se for outra empresa sua, troque antes).
- `sefaz_status`: Consulta o status do serviço de autorização da SEFAZ para uma UF e ambiente. Use antes de uma emissão em lote ou quando suspeitar de instabilidade.
- `tributacao_consultar`: Lista regras de tributacao da empresa (CFOP, CST, aliquotas ICMS/PIS/COFINS/IPI/IBS/CBS). Filtra por Tipo (1=NFe, 2=NFCe, 3=Energia/Comunicacao), CFOP especifico ou termo na descricao. Use antes de criar nota fiscal pra LLM saber quais tributos aplicar. PAGINACAO: Limite default 20 (max 50). Use Offset pra ir alem - o retorno traz TotalGeral. Se TotalGeral > matches retornados, peça mais paginas em vez de inventar/agrupar.
- `tributacao_criar`: Cadastra uma nova regra de tributacao (CFOP + CSTs + aliquotas). Tipo 1=NFe, 2=NFCe, 3=Energia/Comunicacao. CstIbsCbs e obrigatorio (Reforma Tributaria).
- `tributacao_editar`: Atualiza uma regra de tributacao existente. Id obrigatorio. ATENCAO: envie o payload COMPLETO - campos omitidos sao zerados. Faca tributacao_consultar antes pra ter os dados atuais, depois envie tudo + o que muda. Valida ownership por IdEmpresa.
