# br.com.brasilnfe/fiscal (remote · api.brasilnfe.com.br)

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

- Trust score: 66/100 (medium)
- Change this week: +5
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `api.brasilnfe.com.br`: 66/100 (this document), [markdown](https://verifymcp.io/servers/br-com-brasilnfe-fiscal/services-mcp.md), [page](https://verifymcp.io/servers/br-com-brasilnfe-fiscal/services-mcp)

## Channel facts

- Endpoint: `https://api.brasilnfe.com.br/services/Mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: this server exposes a tool marked destructive (evento_cancelar) and its handshake is open, but we could not confirm whether a tool call is gated, so we do not assert it is callable unauthenticated.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 66/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 9571 tokens (~273/item across 35 items; 34 tools + 1 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 85/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 47% of tool parameters carry a description.
  - Structured output schemas are declared (85% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http br-com-brasilnfe-fiscal https://api.brasilnfe.com.br/services/Mcp
```

### Codex

```toml
[mcp_servers.br-com-brasilnfe-fiscal]
url = "https://api.brasilnfe.com.br/services/Mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "br-com-brasilnfe-fiscal": {
      "type": "remote",
      "url": "https://api.brasilnfe.com.br/services/Mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add br-com-brasilnfe-fiscal --url https://api.brasilnfe.com.br/services/Mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  br-com-brasilnfe-fiscal:
    url: "https://api.brasilnfe.com.br/services/Mcp"
```

### Other

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

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 66, +1)

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

### 2026-08-01 (score 65, +1)

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

### 2026-07-31 (score 64, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 63, +1)

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

### 2026-07-28 (score 62, +1)

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

### 2026-07-27 (score 61, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 61)

First indexed and scored.

## MCP tools (34)

### `nfe_emitir` (~1203 tokens)

Emitir NF-e ou NFC-e

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.

Input parameters:

- `CalcularIBPT` (boolean): Indica operação com Consumidor final (NFCe de ser 1 Validar!)
- `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,…
- `Cobranca` (object|null)
- `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.
- `ConsumidorFinal` (boolean): Indica operação com Consumidor final (NFCe de ser 1 Validar!)
- `DataEmissao` (string|null): Data e Hora da saída ou de entrada da produto/serviço (Envia a data atual caso não informada)
- `DataEntradaSaida` (string|null): Data e Hora da saída ou de entrada da produto/serviço
- `Entrega` (object|null)
- `EnviarEmail` (boolean)
- `Exporta` (object|null)
- `Finalidade` (integer, required): Finalidade da emissão da NF. Valores: 1 - Normal (caso mais comum); 2 - Complementar (referenciando NF anterior em NFReferencia); 3 - Ajuste; 4 - Devolução; 5 - Nota de crédito; 6 - Nota de débito
- `IdentificadorInterno` (string|null)
- `IndicadorPresenca` (integer, required): 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). Valore…
- `Intermediador` (object|null): Dados do intermediador/marketplace (site ou plataforma de terceiros).
- `Justificativa` (string|null): Utilizar quando o tipo de emissão for diferente normal
- `Lote` (integer|null): Lote da Nota Fiscal
- `ModeloDocumento` (integer, required): Código do modelo do Documento Fiscal. Valores: 55 - NF-e (B2B / com destinatário CPF/CNPJ identificado); 65 - NFC-e (consumidor final / varejo)
- `NFReferencia` (array|null): Notas fiscal de Referência
- `NaturezaOperacao` (string, required): Descrição da natureza da operação (máx 60 caracteres). Exemplos: "Venda de mercadoria", "Remessa para industrialização", "Devolução de venda".
- `Numero` (integer|null): Número da nota fiscal
- `Observacao` (string|null)
- `ObservacaoFisco` (string|null)
- `Pagamentos` (array|null): Formas de pagamento. OBRIGATÓRIO quando Finalidade = 1 (Normal). Para finalidades 2/3/4/5/6 pode ficar vazio. Para NFC-e (mod 65) deve haver pelo menos um pagamento com FormaPagamento diferente de "9…
- `Produtos` (array, required): 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.
- `Serie` (integer|null): Série da nota Fiscal
- `TipoAmbiente` (integer, required): Identificação do ambiente da SEFAZ. Valores: 1 - Produção (emissão REAL, com valor fiscal, irreversível); 2 - Homologação (teste, sem valor fiscal - use durante desenvolvimento e testes)
- `TpNFCredito` (integer|null): Tipo de Nota de Crédito. Obrigatório quando Finalidade = 5. Código SEFAZ: Valores: 1 - Multa e juros; 2 - Apropriação de crédito presumido de IBS sobre saldo devedor na ZFM; 3 - Retorno
- `TpNFDebito` (integer|null): Tipo de Nota de Débito. Obrigatório quando Finalidade = 6. Código SEFAZ: Valores: 1 - Transferência de créditos para Cooperativas; 2 - Anulação de Crédito por Saídas Imunes/Isentas; 3 - Débitos de no…
- `Transporte` (object|null)

Output parameters:

- `Avisos` (array|null): Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
- `Base64File` (string|null)
- `Base64Xml` (string|null)
- `Error` (string|null): Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
- `ReturnNF` (object|null)

### `nfe_emitir_complementar` (~290 tokens)

Emitir NF-e 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.

Input parameters:

- `CFOP` (integer): CFOP
- `Cliente` (object|null)
- `Cobranca` (object|null)
- `Codigo` (string|null): Código numérico que compõe a Chave de Acesso. Número aleatório gerado pelo emitente para cada NF-e.
- `ImpostoComplementar` (object|null)
- `Lote` (integer|null): Lote da Nota Fiscal
- `NFReferencia` (string|null): Notas fiscal de Referência
- `NaturezaOperacao` (string|null): Descrição da Natureza da Operação
- `Numero` (integer|null): Número da nota fiscal
- `Observacao` (string|null)
- `ObservacaoFisco` (string|null)
- `Produtos` (array|null)
- `Serie` (integer|null): Série da nota Fiscal
- `TipoAmbiente` (integer): Identificação do Ambiente Valores: 1 - Produção; 2 - Homologação
- `TipoComplemento` (integer): Tipo de complemento Valores: 0 - Complementar quantidade ou valor; 1 - Complementar impostos
- `Transporte` (object|null)

Output parameters:

- `Avisos` (array|null): Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
- `Base64File` (string|null)
- `Base64Xml` (string|null)
- `Error` (string|null): Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
- `ReturnNF` (object|null)

### `nfe_previsualizar` (~202 tokens)

Pré-visualizar DANFE

Gera o DANFE em PDF como pré-visualização, sem enviar para a SEFAZ. Útil para conferência visual antes de emitir.

Input parameters:

- `Base64Xml` (string|null)
- `TipoArquivo` (integer): Tipo do arquivo que deseja pré-visualizar (Padrão - 0) Valores: 0 - XML; 1 - PDF
- `TipoEnvio` (integer): Tipo do envio no qual será convertido para o tipo do arquivo informado (Padrão - 0) Valores: 0 - Base64 contendo as informações do XML; 1 - Objeto contendo as informações das notas fiscais
- `mostrarTarjaPreVisualizacao` (boolean): Mostrar tarja "SEM VALOR FISCAL - PRÉ-VISUALIZAÇÃO" (Padrão - Verdadeiro) Somente para o tipo de arquivo 1 - PDF
- `notaFiscal` (object|null)

Output parameters:

- `Avisos` (array|null): Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
- `Base64File` (string|null)
- `Error` (string|null): Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
- `Status` (boolean)

### `nfenercom_gerar_arquivo` (~219 tokens)

Gerar arquivo NF-EnerCom

Gera o arquivo da Nota Fiscal de Energia (NF-EnerCom). Pré-requisito para nfenercom_emitir.

Input parameters:

- `ano` (integer|null): Ano de emissão das notas (4 dígitos). Obrigatório quando tipoGeracao = 1.
- `mes` (integer|null): Mês de emissão das notas (1-12). Obrigatório quando tipoGeracao = 1.
- `notas` (array|null): Notas Fiscais de Energia/Comunicação/Telecomunicação a incluir no arquivo. Obrigatório quando tipoGeracao = 2.
- `tipoAmbiente` (integer, required): Tipo de ambiente. Valores: 1 - Produção; 2 - Homologação
- `tipoGeracao` (integer, required): Tipo de geração do arquivo. Valores: 1 - Gera o arquivo a partir das notas já emitidas no período (mes + ano informados); 2 - Gera o arquivo a partir da lista de notas informada em "notas"

### `nfenercom_emitir` (~364 tokens)

Emitir NF-EnerCom

Envia a NF-EnerCom (Nota Fiscal de Energia Comercializada) para autorização na SEFAZ.

Input parameters:

- `comunicao` (object|null): Informações referente a nota de comunicação e Telecomunicação
- `dataEmissao` (string, required): Data de emissão do documento. Obrigatória.
- `destinatario` (object, required): Informações do destinatário (cliente). OBRIGATÓRIO.
- `energia` (object|null): Informações referente a nota de Energia
- `identificadorInterno` (string|null): Código de controle interno unico da venda. Evita duplicidades, caso configurado.
- `modeloDocumento` (integer, required): Modelo do documento. Valores: 6 - Energia elétrica; 21 - Comunicação; 22 - Telecomunicação
- `numero` (integer|null): Número da nota fiscal. Quando não informado é controlado pelo Painel
- `produtos` (array, required): Itens da nota (mínimo 1). Cada item exige codigo, descricao, unidadeMedida, quantidade, valor, CFOP.
- `serie` (string|null): Série da nota fiscal. Quando não informado é controlado pelo Painel
- `situacao` (integer): Situação do documento (Padrão 4) Valores: 1 - documento fiscal cancelado dentro do mesmo período de apuração;; 2 - documento fiscal emitido em substituição a um documento fiscal cancelado dentro do m…
- `tipoAmbiente` (integer, required): Tipo de ambiente. Valores: 1 - Produção; 2 - Homologação
- `valorTotalFatura` (number, required): Valor total da fatura comercial. Deve ser > 0.

Output parameters:

- `avisos` (array|null): Avisos não bloqueantes. Pode vir preenchida mesmo em sucesso.
- `erros` (array|null): Lista de erros quando a operação falha. Vazia em caso de sucesso. Cada item traz codigo, descricao e correcao.
- `status` (integer): Status do resultado da operação: 1 = sucesso; 2 = erro (a lista erros é preenchida).

### `nfse_emitir` (~133 tokens)

Emitir NFS-e (serviços)

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.

Input parameters:

- `Lote` (integer|null)
- `TipoAmbiente` (integer, required): Identificação do ambiente da prefeitura/portal nacional. Valores: 1 - Produção (emissão REAL, com valor fiscal); 2 - Homologação (teste)
- `nFSInfo` (array, required): Lista de NFS-e a emitir no lote. Mínimo 1 item.

Output parameters:

- `Avisos` (array|null): Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
- `Base64XmlLote` (string|null): Dados xml do lote, bytes em base64
- `CodLote` (string|null): Código atrelado ao lote; - Usado para busca de lotes
- `CodTipoAmbiente` (integer): Código do ambiente de envio
- `DataRecebimento` (string|null): Data de recebimento do lote;
- `DsTipoAmbiente` (string|null): Descrição do ambiente de envio
- `Error` (string|null): Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
- `Lote` (integer): Número do lote enviado;
- `MunicipioEnvio` (string|null): Municipio onde foi enviado
- `Notas` (array|null)
- `Protocolo` (string|null): Número de protocolo do lote
- `StatusLote` (integer): 1 - Lote processado; 2 - Aguardando processamento; 3 - Ocorreu um erro ao processar o lote; 4 - Ocorreu um erro ao analisar as informações do lote
- `TempoRequisicaoPrefeitura` (integer): Tempo total da transmissão para prefeitura em milisegundos

### `nfse_consultar` (~60 tokens)

Consultar NFS-e

Consulta status e dados de uma NFS-e já enviada por número, série e ambiente.

Input parameters:

- `Rps` (array|null): Rps para retornar (Se não enviar retorna todos)
- `codLote` (string|null): Código do lote

Output parameters:

- `Avisos` (array|null): Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
- `Base64XmlLote` (string|null): Dados xml do lote, bytes em base64
- `CodLote` (string|null): Código atrelado ao lote; - Usado para busca de lotes
- `CodTipoAmbiente` (integer): Código do ambiente de envio
- `DataRecebimento` (string|null): Data de recebimento do lote;
- `DsTipoAmbiente` (string|null): Descrição do ambiente de envio
- `Error` (string|null): Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
- `Lote` (integer): Número do lote enviado;
- `MunicipioEnvio` (string|null): Municipio onde foi enviado
- `Notas` (array|null)
- `Protocolo` (string|null): Número de protocolo do lote
- `StatusLote` (integer): 1 - Lote processado; 2 - Aguardando processamento; 3 - Ocorreu um erro ao processar o lote; 4 - Ocorreu um erro ao analisar as informações do lote
- `TempoRequisicaoPrefeitura` (integer): Tempo total da transmissão para prefeitura em milisegundos

### `cte_emitir` (~653 tokens)

Emitir CT-e

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.

Input parameters:

- `Carga` (object, required): Dados da carga transportada (produto predominante, lista de detalhes, documentos fiscais que acompanham). OBRIGATÓRIO. Para Tipo de serviço 0/1/2/6/7/8 também exige Carga.Documentos com ao menos 1 NF…
- `Cfop` (integer, required): CFOP de 4 dígitos. Primeiro dígito: 1/2/3 = entrada, 5/6/7 = saída.
- `Codigo` (integer|null)
- `Destinatario` (object|null)
- `DtEmissao` (string|null): Data/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00)
- `Expedidor` (object|null)
- `IdentificadorInterno` (string|null)
- `Imposto` (object|null)
- `Lote` (integer|null)
- `Modal` (object, required): Modal de transporte (rodoviário, aéreo, aquaviário, ferroviário, dutoviário, multimodal). OBRIGATÓRIO. Tipo: 1=Rodoviário, 2=Aéreo, 3=Aquaviário, 4=Ferroviário, 5=Dutoviário, 6=Multimodal.
- `ModeloDocumento` (integer, required): Modelo do Conhecimento de Transporte Eletrônico. Valores: 57 - CT-e (Conhecimento de Transporte Eletrônico); 67 - CT-e OS (Outros Serviços de transporte)
- `NaturezaOperacao` (string, required): Descrição da natureza da operação (ex: "Prestação de serviço de transporte").
- `Numero` (integer|null)
- `Observacao` (string|null)
- `Remetente` (object|null)
- `Retira` (boolean)
- `Serie` (integer|null)
- `Servico` (object, required): Dados do serviço prestado (Tipo, CodMunicipioInicio, CodMunicipioFim com 7 dígitos cada, MunicipioInicio/MunicipioFim, ValorPrestacao > 0, ValorReceber > 0). OBRIGATÓRIO. Tipo: 0=Normal, 1=Subcontrat…
- `TipoAmbiente` (integer, required): Identificação do ambiente da SEFAZ. Valores: 1 - Produção (emissão real, irreversível); 2 - Homologação (teste, sem valor fiscal)
- `TipoCte` (integer, required): Tipo do CT-e. Valores: 0 - CT-e Normal (caso mais comum); 1 - CT-e de Complemento de Valores; 2 - CT-e de Anulação; 3 - CT-e Substituto
- `Tomador` (object|null)

Output parameters:

- `avisos` (array|null): Avisos não bloqueantes. Pode vir preenchida mesmo em sucesso.
- `base64DACTe` (string|null)
- `base64Xml` (string|null)
- `chave` (string|null)
- `erros` (array|null): Lista de erros quando a operação falha. Vazia em caso de sucesso. Cada item traz codigo, descricao e correcao.
- `numero` (integer)
- `serie` (integer)
- `status` (integer): Status do resultado da operação: 1 = sucesso; 2 = erro (a lista erros é preenchida).
- `tipoAmbiente` (string|null)

### `cte_desacordo` (~102 tokens)

Registrar desacordo de CT-e

Registra desacordo do tomador com um CT-e recebido (evento tipo 4 do CT-e). Prazo: 45 dias da emissão.

Input parameters:

- `Chave` (string|null)
- `NumeroSequencial` (integer|null): Número sequencial do evento
- `Observacao` (string|null)
- `TipoAmbiente` (integer): Tipo do Documento Fiscal: Valores: 1 - Produção; 2 - Homologação

Output parameters:

- `Avisos` (array|null): Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
- `CodStatusRespostaSefaz` (integer)
- `DsAmbiente` (string|null)
- `DsEvento` (string|null)
- `DsMotivo` (string|null)
- `Error` (string|null): Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
- `NuProtocolo` (string|null)
- `NumeroSequencial` (integer)
- `Status` (integer): 1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento

### `mdfe_emitir` (~552 tokens)

Emitir MDF-e

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.

Input parameters:

- `Aereo` (object|null)
- `Aquaviario` (object|null)
- `DataEmissao` (string|null): Data/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00)
- `Ferroviario` (object|null)
- `Rodoviario` (object|null): Dados do transporte rodoviário (placa 7 caracteres, condutores com CPF/nome, UF do veículo). OBRIGATÓRIO quando modalidade = 1.
- `carregamentos` (array|null)
- `codigo` (integer|null)
- `descarregamentos` (array|null)
- `identificadorInterno` (string|null)
- `lote` (integer|null)
- `modalidade` (integer, required): Modalidade de transporte. Valores: 1 - Rodoviário (exige objeto Rodoviario com placa, condutores e percurso); 2 - Aéreo (exige objeto Aereo); 3 - Aquaviário (exige objeto Aquaviario); 4 - Ferroviário…
- `numero` (integer|null)
- `observacao` (string|null)
- `observacaoFisco` (string|null)
- `percursoUfs` (array|null)
- `peso` (number, required): Peso bruto total das mercadorias em KG. DEVE ser > 0.
- `produtoPredominante` (object|null): Produto predominante transportado. Opcional.
- `seguros` (array|null)
- `serie` (integer|null)
- `tipoAmbiente` (integer, required): Tipo de ambiente. IMPORTANTE: passe explicitamente. Para testes use 2. Valores: 1 - Produção; 2 - Homologação
- `tipoEmitente` (integer, required): Tipo de emitente. Valores: 1 - Prestador de Serviço de Transporte (transportadora); 2 - Transportador de carga própria (mais comum - empresa transportando seus próprios produtos)
- `ufCarregamento` (string, required): UF de carregamento (origem). Sigla de 2 letras (SP, RJ, MG...).
- `ufDescarregamento` (string, required): UF de descarregamento (destino). Sigla de 2 letras (SP, RJ, MG...).
- `valor` (number, required): Valor total das mercadorias transportadas. DEVE ser > 0.

Output parameters:

- `Avisos` (array|null): Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
- `Error` (string|null): Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
- `base64DAMDFe` (string|null)
- `base64Xml` (string|null)
- `chave` (string|null)
- `codRespostaSefaz` (integer)
- `numero` (integer)
- `status` (integer): 1 - Lote processado; 2 - Aguardando processamento; 3 - Ocorreu um erro ao processar o lote
- `tipoAmbiente` (string|null)

### `mdfe_encerrar` (~193 tokens)

Encerrar MDF-e

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.

Input parameters:

- `chave` (string, required): Chave de acesso de 44 dígitos do MDF-e a encerrar.
- `numeroSequencial` (integer|null): Número sequencial do evento. Se omitido, o sistema usa o próximo disponível.
- `protocolo` (string|null): Protocolo de autorização do MDF-e original. Opcional - se omitido, o sistema localiza pela chave.
- `tipoAmbiente` (integer, required): Ambiente do MDF-e original (DEVE bater com o ambiente onde o manifesto foi emitido). IMPORTANTE: passe explicitamente. ATENÇÃO: encerramento é DEFINITIVO - revise os dados antes. Valores: 1 - Produçã…

Output parameters:

- `Avisos` (array|null): Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
- `CodStatusRespostaSefaz` (integer)
- `DsAmbiente` (string|null)
- `DsEvento` (string|null)
- `DsMotivo` (string|null)
- `Error` (string|null): Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
- `NuProtocolo` (string|null)
- `NumeroSequencial` (integer)
- `Status` (integer): 1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento

### `dce_emitir` (~695 tokens)

Emitir DC-e

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.

Input parameters:

- `CnpjTransportadora` (string|null): CNPJ da transportadora que leva a carga. Opcional. Quando informado, é usado no XML; quando vazio, mantém o CNPJ da empresa emissora.
- `Codigo` (integer|null)
- `DeclaracaoContribuinteICMS` (string, required): Texto da declaração de contribuinte ICMS (xObs1). OBRIGATÓRIO, até 2000 caracteres. Texto padrão sugerido: "Declaro, sob as penas da lei, que não sou contribuinte do ICMS."
- `DeclaracaoCrimeTributario` (string, required): Texto da declaração de crime tributário (xObs2). OBRIGATÓRIO, até 5000 caracteres. Texto padrão sugerido: "Declaro, sob as penas da lei, que o conteúdo desta declaração é verdadeiro e que não estou c…
- `Destinatario` (object, required): Destinatário do pacote. OBRIGATÓRIO. Exige Endereco completo.
- `IdentificadorInterno` (string|null)
- `InformacoesAdicionaisFisco` (string|null): Informações adicionais de interesse do fisco (opcional, até 2000 caracteres).
- `InformacoesComplementares` (string|null): Informações complementares (opcional, até 5000 caracteres).
- `Itens` (array, required): Itens/produtos declarados no conteúdo (mínimo 1, máximo 999). Cada item exige Descricao (até 120 chars) e ValorTotal > 0. NCM opcional (2 ou 8 dígitos quando informado).
- `Lote` (integer|null)
- `ModalidadeTransporte` (integer): Modalidade de transporte: Valores: 0 - Correios; 1 - Conta própria; 2 - Transportadora
- `Numero` (integer|null)
- `Remetente` (object, required): Pessoa física/jurídica que está enviando o pacote. OBRIGATÓRIO. Exige Endereco completo (validado por ValidaPessoaDCe).
- `Serie` (integer|null)
- `SiteMarketplace` (string|null): URL do site do marketplace (obrigatório quando TipoEmitente=1)
- `TipoAmbiente` (integer, required): Tipo de ambiente. Valores: 1 - Produção (emissão real); 2 - Homologação (teste)
- `TipoEmitente` (integer): Tipo do emitente: Valores: 0 - App Fisco; 1 - Marketplace; 2 - Emissor próprio; 3 - Transportadora; 4 - ECT (Correios)
- `UfFisco` (string|null): Sigla da UF do órgão fiscalizador (obrigatório quando TipoEmitente=0). Se não preenchido, usa a UF da empresa emissora.
- `ValorTotal` (number|null): Valor total declarado da DC-e. Se omitido, soma dos ValorTotal dos itens. Deve ser > 0.
- `XOrgaoFisco` (string|null): Nome do órgão fiscalizador (obrigatório quando TipoEmitente=0)

Output parameters:

- `avisos` (array|null): Avisos não bloqueantes. Pode vir preenchida mesmo em sucesso.
- `base64DACE` (string|null)
- `base64Xml` (string|null)
- `chave` (string|null)
- `erros` (array|null): Lista de erros quando a operação falha. Vazia em caso de sucesso. Cada item traz codigo, descricao e correcao.
- `numero` (integer)
- `protocolo` (string|null)
- `serie` (integer)
- `status` (integer): Status do resultado da operação: 1 = sucesso; 2 = erro (a lista erros é preenchida).
- `tipoAmbiente` (string|null)

### `evento_cancelar` (~608 tokens)

Cancelar documento fiscal

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).

Input parameters:

- `ChaveNF` (string, required): Chave de acesso de 44 dígitos da NF-e/NFC-e/CT-e/MDF-e/DC-e a cancelar. Obrigatório quando TipoDocumento = 0 (documentos NFe-family). Para NFS-e (TipoDocumento = 1) use NumeroNFSe.
- `CodCancelamentoNFSe` (integer): Código do motivo de cancelamento da NFS-e (Padrão 1) Valores: 1 - Erro na emissão; 2 - Serviço não prestado; 3 - Duplicidade da nota; 9 - Outros
- `CpfCnpjRemetenteDCe` (string|null): CPF ou CNPJ do Usuário Emitente (Remetente) da DC-e original. Obrigatório no cancelamento de DC-e quando a nota não está cadastrada no sistema (caso esteja, o valor é lido da própria NotaFiscal).
- `DataEvento` (string|null): Data do evento de cancelamento do documento (Caso não for enviado é considerada a data e hora atual)
- `Justificativa` (string, required): Motivo do cancelamento. MÍNIMO 15 caracteres, MÁXIMO 1000. NÃO use texto genérico como "cancelamento" ou "erro" - descreva o motivo real (ex: "Erro no valor unitário do produto X"). Obrigatório para…
- `NumeroNFSe` (string|null): Número da NFS-e a ser cancelada
- `NumeroProtocolo` (string|null): Número do protocolo de autorização original do documento (obrigatório quando a nota foi emitida por OUTRO sistema externo). Se o documento foi emitido pelo próprio BrasilNFe, o protocolo é localizado…
- `NumeroSequencial` (integer|null): Número sequencial do evento
- `TipoAmbiente` (integer, required): Ambiente do documento original (DEVE bater com o ambiente onde a nota foi emitida). IMPORTANTE: passe explicitamente. Se a nota foi emitida em homologação (testes), use 2. Valores: 1 - Produção; 2 -…
- `TipoDocumento` (integer, required): Tipo do documento fiscal a cancelar. Valores: 0 - NF-e, NFC-e, CT-e, MDF-e, DC-e (usa ChaveNF de 44 dígitos); 1 - NFS-e (usa NumeroNFSe + CodCancelamentoNFSe + TipoAmbiente)

Output parameters:

- `Avisos` (array|null): Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
- `CodStatusRespostaSefaz` (integer)
- `DsAmbiente` (string|null)
- `DsEvento` (string|null)
- `DsMotivo` (string|null)
- `Error` (string|null): Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
- `NuProtocolo` (string|null)
- `NumeroSequencial` (integer)
- `Status` (integer): 1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento

### `evento_carta_correcao` (~340 tokens)

Enviar Carta de Correção (CC-e)

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.

Input parameters:

- `ChaveNF` (string, required): Chave de acesso de 44 dígitos da NF-e ou CT-e a corrigir.
- `Correcao` (string|null): Texto da correção (mínimo 15, máximo 1000 caracteres). Obrigatório para NF-e (modelo 55). Não pode corrigir variáveis que afetam tributos (valores, quantidades, base de cálculo, alíquotas) nem dados…
- `Correcoes` (array|null): Lista de correções estruturadas (campo, grupo, valor). Usado SOMENTE para CT-e (modelo 57). Para NF-e/NFC-e use o campo Correcao acima.
- `NumeroSequencial` (integer|null): Número sequencial do evento (1 a 20). Se omitido, o sistema usa o próximo disponível.
- `TipoAmbiente` (integer, required): Ambiente do documento original (DEVE bater com o ambiente onde a nota foi emitida). IMPORTANTE: passe explicitamente. Se a nota foi emitida em homologação, use 2. Valores: 1 - Produção; 2 - Homologaç…

Output parameters:

- `Avisos` (array|null): Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
- `CodStatusRespostaSefaz` (integer)
- `DsAmbiente` (string|null)
- `DsEvento` (string|null)
- `DsMotivo` (string|null)
- `Error` (string|null): Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
- `NuProtocolo` (string|null)
- `NumeroSequencial` (integer)
- `Status` (integer): 1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento

### `evento_manifestar` (~276 tokens)

Manifestar destinatário

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.

Input parameters:

- `Chave` (string, required): Chave de acesso de 44 dígitos da NF-e a manifestar.
- `Justificativa` (string|null): Justificativa. OBRIGATÓRIA quando TipoManifestacao = 4 (mínimo 15 caracteres). Para outros tipos pode omitir.
- `NumeroSequencial` (integer|null): Número sequencial do evento (1 a 20). Se omitido, o sistema usa o próximo disponível.
- `TipoAmbiente` (integer, required): Ambiente do documento original (DEVE bater com o ambiente onde a nota foi emitida). IMPORTANTE: passe explicitamente. Manifestação de NF de prod precisa ser ambiente 1. Valores: 1 - Produção; 2 - Hom…
- `TipoManifestacao` (integer, required): Tipo da manifestação do destinatário. Valores: 1 - Confirmação da Operação; 2 - Ciência da Operação; 3 - Desconhecimento da Operação; 4 - Operação não Realizada (exige Justificativa com 15+ caractere…

Output parameters:

- `Avisos` (array|null): Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
- `CodStatusRespostaSefaz` (integer)
- `DsAmbiente` (string|null)
- `DsEvento` (string|null)
- `DsMotivo` (string|null)
- `Error` (string|null): Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
- `NuProtocolo` (string|null)
- `NumeroSequencial` (integer)
- `Status` (integer): 1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento

### `evento_inutilizar` (~276 tokens)

Inutilizar numeração

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.

Input parameters:

- `Justificativa` (string, required): Justificativa da inutilização. Mínimo 15, máximo 255 caracteres. Descreva o motivo real (ex: "Erro de digitação - série pulada por engano no sistema interno").
- `ModeloDocumento` (integer, required): Código do modelo do Documento Fiscal a inutilizar. Valores: 55 - NF-e; 65 - NFC-e; 57 - CT-e
- `NumeracaoFinal` (integer, required): Final da faixa numérica a inutilizar. Deve ser >= NumeracaoInicial.
- `NumeracaoInicial` (integer, required): Início da faixa numérica a inutilizar. Deve ser > 0 e <= NumeracaoFinal.
- `Serie` (integer, required): Série referente ao modelo do documento. Deve ser > 0.
- `TipoAmbiente` (integer, required): Identificação do Ambiente. IMPORTANTE: passe explicitamente. Inutilização em produção é IRREVERSÍVEL. Valores: 1 - Produção (faixa fica DEFINITIVAMENTE inutilizada na SEFAZ); 2 - Homologação (teste)

Output parameters:

- `Avisos` (array|null): Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
- `CodStatusRespostaSefaz` (integer)
- `DsAmbiente` (string|null)
- `DsEvento` (string|null)
- `DsMotivo` (string|null)
- `Error` (string|null): Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
- `NuProtocolo` (string|null)
- `NumeroSequencial` (integer)
- `Status` (integer): 1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento

### `sefaz_status` (~58 tokens)

Status do serviço SEFAZ

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.

Input parameters:

- `ModeloDocumento` (integer)
- `TipoAmbiente` (integer)

Output parameters:

- `Avisos` (array|null): Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
- `Error` (string|null): Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
- `StatusSefaz` (object|null)

### `cadastro_consultar` (~198 tokens)

Consultar Inscrição Estadual (IE) na SEFAZ

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.

Input parameters:

- `cpfCnpjIe` (string|null)
- `uf` (string|null): UF do CPF, CNPJ, IE

Output parameters:

- `Contato` (object|null)
- `Endereco` (object|null)
- `cnaePrincipal` (string|null)
- `cpfCnpj` (string|null)
- `dataInicioAtividade` (string|null): Data/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00)
- `dataOcorrenciaBaixa` (string|null): Data/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00)
- `dataUltimaAlteracaoCadastral` (string|null): Data/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00)
- `fonte` (string|null): Fonte dos dados: "sefaz" (Inscrição Estadual da SEFAZ estadual), "receita" (fallback na Receita Federal quando a UF não oferece a consulta ou o contribuinte não tem IE - comum em prestadores de servi…
- `ie` (string|null)
- `ieAtual` (string|null)
- `ieUnica` (string|null)
- `indicadorCredenciamentoCTe` (integer): Indicador de contribuinte credenciado a emitir CT-e. Valores: 0 - Não credenciado para emissão da CT-e;; 1 - Credenciado;; 2 - Credenciado com obrigatoriedade para todas operações;; 3 - Credenciado c…
- `indicadorCredenciamentoNFe` (integer): Indicador de contribuinte credenciado a emitir NF-e. Valores: 0 - Não credenciado para emissão da NF-e;; 1 - Credenciado;; 2 - Credenciado com obrigatoriedade para todas operações;; 3 - Credenciado c…
- `mensagem` (string|null): Mensagem explicativa do resultado: por que a IE não veio, qual fonte foi usada, e o aviso de que vazio NÃO significa CNPJ inativo. Fica vazio quando a SEFAZ retornou a Inscrição Estadual normalmente.
- `nomeFantasia` (string|null)
- `razaoSocial` (string|null)
- `regimeApuracao` (string|null)
- `situacao` (integer): Situação do contribuinte: 0 - não habilitado; 1 - habilitado.
- `status` (integer): Status Consulta Valores: 0 - Não Encontrada;; 1 - Encontrada;
- `ufConsultada` (string|null)

### `cliente_consultar` (~286 tokens)

Consultar cliente/destinatario por CNPJ, CPF, IE ou nome

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.

Input parameters:

- `Fontes` (array|null)
- `IncluirInativas` (boolean)
- `Limite` (integer|null)
- `Offset` (integer|null)
- `Termo` (string|null)
- `TipoBusca` (string|null)
- `Uf` (string|null)

Output parameters:

- `Avisos` (array|null)
- `ConsultouBrasilApi` (boolean)
- `Limite` (integer)
- `Matches` (array|null)
- `Offset` (integer)
- `TermoNormalizado` (string|null)
- `TipoDetectado` (string|null)
- `TotalGeral` (integer)
- `TotalLocal` (integer)

### `cliente_criar` (~160 tokens)

Cadastrar novo cliente (destinatario/fornecedor/transportadora)

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.

Input parameters:

- `ConsumidorFinal` (boolean|null)
- `CpfCnpj` (string, required)
- `Email` (string|null)
- `Endereco` (object|null)
- `Id` (integer|null)
- `Ie` (string|null)
- `Im` (string|null)
- `IndicadorIe` (integer|null)
- `Nome` (string, required)
- `Telefone` (string|null)

Output parameters:

- `Cliente` (object|null)
- `Erro` (string|null)
- `Id` (integer|null)
- `Ok` (boolean)

### `cliente_editar` (~200 tokens)

Editar cliente cadastrado

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).

Input parameters:

- `ConsumidorFinal` (boolean|null)
- `CpfCnpj` (string, required)
- `Email` (string|null)
- `Endereco` (object|null)
- `Id` (integer|null)
- `Ie` (string|null)
- `Im` (string|null)
- `IndicadorIe` (integer|null)
- `Nome` (string, required)
- `Telefone` (string|null)

Output parameters:

- `Cliente` (object|null)
- `Erro` (string|null)
- `Id` (integer|null)
- `Ok` (boolean)

### `produto_consultar` (~145 tokens)

Consultar produto por codigo, NCM, GTIN ou descricao

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.

Input parameters:

- `Limite` (integer|null)
- `Offset` (integer|null)
- `Termo` (string|null)
- `TipoBusca` (string|null)

Output parameters:

- `Avisos` (array|null)
- `Limite` (integer)
- `Matches` (array|null)
- `Offset` (integer)
- `TermoNormalizado` (string|null)
- `TipoDetectado` (string|null)
- `TotalGeral` (integer)
- `TotalLocal` (integer)

### `produto_criar` (~166 tokens)

Cadastrar novo produto

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.

Input parameters:

- `Cest` (string|null)
- `Codigo` (string, required)
- `Descricao` (string, required)
- `Ean` (string|null)
- `FatorConversao` (number|null)
- `Id` (integer|null)
- `Ncm` (string|null)
- `QuantidadeEstoque` (number|null)
- `UnidadeMedidaCompraSigla` (string|null)
- `UnidadeMedidaVendaSigla` (string, required)
- `ValorUnitarioVenda` (number, required)

Output parameters:

- `Erro` (string|null)
- `Id` (integer|null)
- `Ok` (boolean)
- `Produto` (object|null)

### `produto_editar` (~207 tokens)

Editar produto cadastrado

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).

Input parameters:

- `Cest` (string|null)
- `Codigo` (string, required)
- `Descricao` (string, required)
- `Ean` (string|null)
- `FatorConversao` (number|null)
- `Id` (integer|null)
- `Ncm` (string|null)
- `QuantidadeEstoque` (number|null)
- `UnidadeMedidaCompraSigla` (string|null)
- `UnidadeMedidaVendaSigla` (string, required)
- `ValorUnitarioVenda` (number, required)

Output parameters:

- `Erro` (string|null)
- `Id` (integer|null)
- `Ok` (boolean)
- `Produto` (object|null)

### `tributacao_consultar` (~182 tokens)

Consultar regras de tributacao

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.

Input parameters:

- `Cfop` (integer|null)
- `Limite` (integer|null)
- `Offset` (integer|null)
- `Termo` (string|null)
- `Tipo` (integer|null)

Output parameters:

- `Avisos` (array|null)
- `Limite` (integer)
- `Matches` (array|null)
- `Offset` (integer)
- `Total` (integer)
- `TotalGeral` (integer)

### `tributacao_criar` (~303 tokens)

Cadastrar nova regra de tributacao

Cadastra uma nova regra de tributacao (CFOP + CSTs + aliquotas). Tipo 1=NFe, 2=NFCe, 3=Energia/Comunicacao. CstIbsCbs e obrigatorio (Reforma Tributaria).

Input parameters:

- `AliqCbs` (number|null)
- `AliqCofins` (number)
- `AliqDiferimento` (number|null)
- `AliqIbsMun` (number|null)
- `AliqIbsUf` (number|null)
- `AliqIcms` (number)
- `AliqIpi` (number|null)
- `AliqPis` (number)
- `AliqReducao` (number|null)
- `ApiCode` (string|null)
- `AutoAliq` (boolean)
- `Cfop` (integer, required)
- `CodBeneficioFiscal` (string|null)
- `CstCofins` (string|null)
- `CstIbsCbs` (string|null)
- `CstIcms` (string|null)
- `CstIpi` (string|null)
- `CstPis` (string|null)
- `Descricao` (string, required)
- `EnquadramentoIpi` (string|null)
- `Id` (integer|null)
- `Observacao` (string|null)
- `Tipo` (integer)

Output parameters:

- `Erro` (string|null)
- `Id` (integer|null)
- `Ok` (boolean)
- `Tributacao` (object|null)

### `tributacao_editar` (~306 tokens)

Editar regra de tributacao

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.

Input parameters:

- `AliqCbs` (number|null)
- `AliqCofins` (number)
- `AliqDiferimento` (number|null)
- `AliqIbsMun` (number|null)
- `AliqIbsUf` (number|null)
- `AliqIcms` (number)
- `AliqIpi` (number|null)
- `AliqPis` (number)
- `AliqReducao` (number|null)
- `ApiCode` (string|null)
- `AutoAliq` (boolean)
- `Cfop` (integer, required)
- `CodBeneficioFiscal` (string|null)
- `CstCofins` (string|null)
- `CstIbsCbs` (string|null)
- `CstIcms` (string|null)
- `CstIpi` (string|null)
- `CstPis` (string|null)
- `Descricao` (string, required)
- `EnquadramentoIpi` (string|null)
- `Id` (integer|null)
- `Observacao` (string|null)
- `Tipo` (integer)

Output parameters:

- `Erro` (string|null)
- `Id` (integer|null)
- `Ok` (boolean)
- `Tributacao` (object|null)

### `nota_listar` (~127 tokens)

Listar notas fiscais

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.

Input parameters:

- `DtFim` (string): Data final da busca
- `DtInicio` (string): Data inicial da busca
- `IndentificadorInterno` (string|null): Busca notas que possui o código interno informado (somente saídas)
- `TipoDocumentoFiscal` (integer): Tipo do documento fiscal (Padrão 0 - Entrada) Valores: 0 - Entradas; 1 - Saídas

Output parameters:

- `Avisos` (array|null): Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
- `Error` (string|null): Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
- `Notas` (array|null)

### `imposto_calcular` (~60 tokens)

Simular cálculo de impostos

Simula o cálculo de impostos (ICMS, PIS, COFINS, IPI, ST) sobre uma lista de produtos sem emitir nota. Útil para precificação.

Input parameters:

- `Capacity` (integer)
- `Count` (integer)

Output parameters:

- `Avisos` (array|null): Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
- `Error` (string|null): Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
- `Impostos` (object|null)
- `Total` (object|null)

### `arquivo_baixar` (~141 tokens)

Baixar XML ou PDF do documento

Baixa o arquivo (XML ou PDF/DANFE) de uma NF-e/NFC-e/NFS-e por chave de acesso. Retorna conteúdo em base64.

Input parameters:

- `Base64Logo` (string|null)
- `ChaveNF` (string|null)
- `Chaves` (array|null)
- `FileType` (integer): Tipo do documento fiscal (Padrão 1 - XML) Valores: 1 - XML; 2 - DANFE
- `TipoDocumentoFiscal` (integer): Tipo do documento fiscal (Padrão 1 - Saída) Valores: 0 - Entrada; 1 - Saída

### `arquivo_baixar_evento` (~160 tokens)

Baixar XML ou PDF de 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.

Input parameters:

- `ChaveNF` (string|null): Chave de acesso da Nota Fiscal (44 dígitos) à qual o evento está vinculado.
- `NuProtocolo` (string|null): Número do protocolo do evento (somente dígitos). Identifica o evento específico (ex.: Carta de Correção, Cancelamento) registrado para a nota fiscal.
- `TipoArquivo` (integer): Tipo do arquivo do evento a ser retornado. Valores: 1 - XML do evento; 2 - PDF da Carta de Correção (CC-e)

### `arquivo_baixar_periodo` (~357 tokens)

Exportar arquivos do período

Exporta múltiplos arquivos (XML/PDF) de um período em um único ZIP base64. Útil para backup, contabilidade ou auditoria.

Input parameters:

- `Chaves` (array|null): Chaves pagar pegar notas fiscal especificas
- `DtFim` (string): Data/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00)
- `DtInicio` (string): Data/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00)
- `JuntarArquivosPDF` (boolean): Anexar todas as notas fiscais retornadas em um unico arquivo PDF
- `Situacoes` (array|null): Filtra por situação. Vazio = todas (comportamento padrão). Combinável.
- `TipoAmbiente` (integer): Tipo de ambiente (Padrão 1 - Produção) Valores: 1 - Produção; 2 - Homologação
- `TipoNota` (integer): Tipo de ambiente (Padrão 1 - Saída) Valores: 1 - Saídas; 2 - Entradas; 3 - Saídas e Entradas
- `Type` (integer): Tipo do documento fiscal (Padrão 1 - XML) Valores: 0 - PDF; 1 - XML; 2 - EXCEL
- `aplicarPlanoAjustes` (boolean): Aplicar plano de ajustes de impostos
- `cpfCnpjs` (array|null): CPFs ou CNPJs dos clientes das notas
- `incluirCCe` (boolean): Incluir carta de correção emitidas no periodo

Output parameters:

- `Avisos` (array|null): Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
- `Base64FilesCompacted` (string|null)
- `Error` (string|null): Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
- `Quantidade` (integer)

### `fci_gerar` (~114 tokens)

Gerar FCI

Gera o arquivo FCI (Ficha de Conteúdo de Importação) requerido para produtos com conteúdo importado em operações interestaduais.

Input parameters:

- `Produtos` (array|null): Produtos para gerar os registros do arquivo FCI
- `Transmitir` (boolean): Quando verdadeiro, além de gerar o arquivo, assina e transmite a mídia via programa TED. Requer certificado e-CNPJ configurado na empresa.
- `ValidarCodigos` (boolean): Quando verdadeiro retorna erro caso envie produtos com código repetido

### `health` (~27 tokens)

Health-check

Verifica a saúde da API BrasilNFe (status, timestamp, versão). Não recebe parâmetros.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/br-com-brasilnfe-fiscal/services-mcp#diagnostics

## Score history

- 2026-08-03: 66
- 2026-08-02: 65
- 2026-08-01: 65
- 2026-07-31: 64
- 2026-07-30: 63
- 2026-07-29: 63
- 2026-07-28: 62
- 2026-07-27: 61
- 2026-07-26: 61

## Links

- Remote endpoint: https://api.brasilnfe.com.br/services/Mcp
- Repository: https://github.com/BrasilNFe/brasilnfe-mcp
- Website: https://www.brasilnfe.com.br/mcp
- Changelog RSS feed: https://verifymcp.io/servers/br-com-brasilnfe-fiscal/services-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/br-com-brasilnfe-fiscal/services-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/br-com-brasilnfe-fiscal/services-mcp
