Pular para conteúdo

Servidor MCP

Servidor MCP Fiscal Brasil.

Registra todas as ferramentas fiscais e expõe via protocolo MCP (Model Context Protocol).

tool_consultar_cnpj async

tool_consultar_cnpj(cnpj)

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

tool_listar_cnpjs_por_nome(nome, uf=None)

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

tool_validar_cpf(cpf)

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

tool_consultar_nfe(chave_acesso)

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

tool_validar_chave_nfe(chave_acesso)

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

tool_consultar_status_sefaz(uf)

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

tool_consultar_nfse(numero, municipio, uf, cnpj_prestador=None)

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

tool_consultar_simples_nacional(cnpj)

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

tool_analisar_sped(conteudo, nome_arquivo=None)

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

tool_listar_registros_sped(conteudo, tipo_registro)

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

tool_listar_eventos_esocial(grupo=None)

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

tool_validar_evento_esocial(xml_conteudo)

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

tool_consultar_certidao_federal(cnpj_cpf)

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

tool_consultar_certidao_fgts(cnpj)

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

tool_analyze_cnpj_compliance(cnpj)

Analise consolidada de compliance fiscal.

tool_compare_tax_regimes async

tool_compare_tax_regimes(faturamento_anual, setor, folha_pagamento_anual=None)

Compara regimes tributarios para um cenário.

tool_risk_score_supplier async

tool_risk_score_supplier(cnpj, criterios_estritos=False)

Score de risco para due diligence de fornecedor.

tool_consultar_empresas_lote async

tool_consultar_empresas_lote(cnpjs, criterios_estritos=False)

Consulta em lote consolidada de compliance e risco de fornecedores.

tool_validate_nfe_full async

tool_validate_nfe_full(xml_path)

Validacao consolidada de NFe.

tool_summarize_sped async

tool_summarize_sped(file_path)

Sumarizacao executiva de arquivo SPED.

main

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