Servidor MCP¶
Servidor MCP Fiscal Brasil.
Registra todas as ferramentas fiscais e expõe via protocolo MCP (Model Context Protocol).
tool_consultar_cnpj
async
¶
Consulta o cadastro completo de uma empresa brasileira pelo CNPJ.
Recupera os dados publicos da pessoa juridica na Receita Federal (via BrasilAPI/ReceitaWS): razao social, nome fantasia, endereco, situacao cadastral, natureza juridica, porte, capital social, CNAE principal e secundarias e quadro de socios e administradores (QSA). Util para identificar empresas, validar fornecedores/clientes e preencher dados fiscais.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cnpj
|
str
|
Numero do CNPJ com 14 digitos, com ou sem formatacao (ex.: "11.222.333/0001-81" ou "11222333000181"). |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
dict com os dados cadastrais completos da empresa. |
tool_listar_cnpjs_por_nome
async
¶
Busca empresas pelo nome empresarial ou razao social.
A busca textual por nome de empresa nao e coberta por APIs publicas gratuitas, entao esta ferramenta retorna um aviso orientando o uso de consultar_cnpj com o CNPJ exato.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
nome
|
str
|
Nome empresarial ou parte da razao social a procurar. |
required |
uf
|
str | None
|
Sigla do estado para restringir a busca (ex.: "SP", "MG"). Opcional. |
None
|
Returns:
| Type | Description |
|---|---|
list[dict[str, str]]
|
list de dicts; atualmente contem um aviso de funcionalidade limitada. |
tool_validar_cpf
async
¶
Valida o digito verificador de um CPF brasileiro (offline, modulo 11).
Confere apenas a estrutura do numero (11 digitos, nao-repetidos, digitos verificadores). Nao consulta a Receita Federal nem confirma a existencia ou a situacao do titular.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cpf
|
str
|
Numero do CPF com 11 digitos, com ou sem formatacao (ex.: "123.456.789-09" ou "12345678909"). |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
dict indicando se o CPF e matematicamente valido, com versao formatada e motivo da reprovacao. |
tool_consultar_nfe
async
¶
Consulta uma NF-e (Nota Fiscal Eletronica) pela chave de acesso de 44 digitos.
Recupera emitente, destinatario, itens, valores e o protocolo de autorizacao da SEFAZ. Use para conferencia, escrituracao fiscal/contabil ou auditoria de notas ja emitidas.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
chave_acesso
|
str
|
Chave de acesso da NF-e com 44 digitos (aceita com ou sem espacos). |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
dict com emitente, destinatario, itens, totais e protocolo da nota. |
tool_validar_chave_nfe
async
¶
Valida o formato e o digito verificador de uma chave de acesso de NF-e (offline, modulo 11).
Nao consulta a SEFAZ; apenas confere o calculo e decodifica os metadados da chave (UF, ano/mes de emissao, CNPJ emitente, modelo, serie e numero da nota).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
chave_acesso
|
str
|
Chave de acesso com 44 digitos (aceita com ou sem espacos). |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
dict com "valido", "chave_formatada" e, se valida, "uf", "ano_mes_emissao", |
dict[str, Any]
|
"cnpj_emitente", "modelo", "serie" e "numero". |
tool_consultar_status_sefaz
async
¶
Consulta o status do servico de autorizacao de NF-e da SEFAZ de uma UF.
Indica se o webservice da SEFAZ do estado esta operacional, util para diagnosticar falhas na transmissao de notas fiscais.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
uf
|
str
|
Sigla do estado com 2 letras (ex.: "SP", "MG", "RJ"). Validada contra as UFs do Brasil. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
dict com o status atual do servico e a descricao correspondente. |
tool_consultar_nfse
async
¶
Orienta a consulta de uma NFS-e (Nota Fiscal de Servicos eletronica) por municipio.
A NFS-e e municipal e nao tem padrao nacional unico, entao esta ferramenta retorna o portal da prefeitura, o tipo de sistema (ABRASF, ISS.net etc.) e alternativas de integracao, em vez de buscar os dados da nota diretamente.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
numero
|
str
|
Numero da NFS-e. |
required |
municipio
|
str
|
Nome do municipio emissor (ex.: "Sao Paulo", "Belo Horizonte"). |
required |
uf
|
str
|
Sigla do estado com 2 letras (ex.: "SP", "MG"). |
required |
cnpj_prestador
|
str | None
|
CNPJ do prestador de servico. Opcional. |
None
|
Returns:
| Type | Description |
|---|---|
dict[str, str]
|
dict com orientacoes de consulta, portal e sistema do municipio e alternativas de automacao. |
tool_consultar_simples_nacional
async
¶
Consulta a situacao de uma empresa no Simples Nacional e no MEI pelo CNPJ.
Retorna se e optante do Simples Nacional e/ou MEI, com datas de opcao e exclusao. Util para definir o regime tributario antes de calcular impostos ou tributar notas fiscais.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cnpj
|
str
|
Numero do CNPJ com 14 digitos, com ou sem formatacao. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
dict com a situacao no Simples Nacional e no MEI e respectivas datas. |
tool_analisar_sped
async
¶
Analisa um arquivo SPED e extrai periodo, empresa, contagem de registros e erros.
Identifica o tipo de escrituracao pelo registro 0000 (EFD-ICMS/IPI, EFD-Contribuicoes, ECD, ECF) e devolve um resumo estruturado, com avisos e erros de integridade basica.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
conteudo
|
str
|
Texto do arquivo SPED (layout delimitado por pipe "|"), nao um caminho. |
required |
nome_arquivo
|
str | None
|
Nome do arquivo, apenas informativo. Opcional. |
None
|
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
dict com tipo de SPED, dados de abertura, periodo, contagem de registros, avisos e erros. |
tool_listar_registros_sped
async
¶
Lista todas as ocorrencias de um tipo de registro dentro de um arquivo SPED.
Para cada linha cujo codigo inicial coincide com tipo_registro, retorna o codigo, os campos concatenados por pipe e a linha bruta.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
conteudo
|
str
|
Texto do arquivo SPED (layout delimitado por pipe "|"). |
required |
tipo_registro
|
str
|
Codigo do registro a buscar (ex.: "C100", "E110", "0150"). Case-insensitive. |
required |
Returns:
| Type | Description |
|---|---|
list[dict[str, str]]
|
list de dicts com "registro", "campos" e "raw" para cada ocorrencia encontrada. |
tool_listar_eventos_esocial
async
¶
Lista os eventos do eSocial (layouts da serie S-) do catalogo interno.
Retorna codigo, nome, grupo e descricao de cada evento, opcionalmente filtrados por grupo.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
grupo
|
str | None
|
Filtro por grupo, com correspondencia parcial e sem distincao de maiusculas (ex.: "Tabelas", "Nao Periodicos", "Periodicos", "Exclusao", "Totalizadores"). Se None, retorna todos os eventos ordenados por codigo. |
None
|
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
list de dicts com codigo, nome, grupo e descricao de cada evento. |
tool_validar_evento_esocial
async
¶
Valida a estrutura basica de um XML de evento do eSocial.
Verifica o elemento raiz, identifica o codigo do evento (elemento "evt...") e extrai a versao do leiaute. Nao substitui a validacao contra o schema XSD oficial.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
xml_conteudo
|
str
|
Conteudo (texto) do XML do evento eSocial. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
dict com o evento detectado, a versao, o resultado da validacao e listas de erros e avisos. |
tool_consultar_certidao_federal
async
¶
Orienta a obtencao da Certidao Negativa de Debitos federais (CND da RFB/PGFN) por CPF ou CNPJ.
Detecta o tipo de documento, valida o numero e retorna as URLs oficiais de emissao e verificacao, o acesso ao e-CAC e alternativas de automacao. Nao emite a certidao (nao ha API publica).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cnpj_cpf
|
str
|
CPF (11 digitos) ou CNPJ (14 digitos), com ou sem formatacao. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, str]
|
dict com tipo de documento, motivo da consulta manual, URLs de emissao/verificacao e alternativas. |
tool_consultar_certidao_fgts
async
¶
Orienta a obtencao do Certificado de Regularidade do FGTS (CRF) por CNPJ.
Valida o CNPJ e retorna a URL de consulta no portal da Caixa, o Conectividade Social e orientacoes de automacao. Nao emite o certificado (nao ha API publica aberta).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cnpj
|
str
|
CNPJ do empregador com 14 digitos, com ou sem formatacao. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, str]
|
dict com orgao, motivo da consulta manual, URLs de consulta e orientacoes de automacao. |
tool_analyze_cnpj_compliance
async
¶
Analise consolidada de compliance fiscal.
tool_compare_tax_regimes
async
¶
Compara regimes tributarios para um cenário.
tool_risk_score_supplier
async
¶
Score de risco para due diligence de fornecedor.
tool_consultar_empresas_lote
async
¶
Consulta em lote consolidada de compliance e risco de fornecedores.
main ¶
Inicia o servidor MCP.
Modo de transporte configurável via argumento --transport ou variável de ambiente FASTMCP_TRANSPORT. Valores aceitos: stdio (padrão), sse, http, streamable-http.
Para HTTP/SSE, a porta é configurada via variável PORT (padrão: 8000).