io.github.SamuelMoraesF/mcp-nfse-nacional MCP Server
io.github.SamuelMoraesF/mcp-nfse-nacional
Query Brazilian NFSe (electronic service invoices) from the national portal with digital certificate authentication.
What is the io.github.SamuelMoraesF/mcp-nfse-nacional MCP server?
The mcp-nfse-nacional MCP server enables AI agents to authenticate with Brazilian digital certificates (e-CNPJ/e-CPF) and query, retrieve details, and download PDFs of NFSe (Notas Fiscais de Serviço Eletrônicas) from the national portal nfse.gov.br. It provides three tools for searching invoices by date range, fetching complete invoice details, and downloading invoice PDFs.
This server integrates with Brazil's national NFSe portal to allow AI agents to access electronic service invoice data. It handles certificate-based authentication automatically and lets you search invoices, retrieve full details including XML, and download official PDF documents (DANFSe). Useful for invoice reconciliation, compliance workflows, and financial reporting automation.
How to install io.github.SamuelMoraesF/mcp-nfse-nacional
Copy-paste configuration for popular MCP clients.
CERT_PASSWORDrequiredsecretSenha do certificado digital (e-CNPJ/e-CPF) em formato PFX
CERT_FILErequiredCaminho para o arquivo do certificado digital (.pfx)
NODE_OPTIONSOpções do Node.js (use --openssl-legacy-provider para compatibilidade com certificados)
MCP_PORTPorta do servidor HTTP
STORAGE_PATHDiretório onde os XMLs e PDFs baixados serão armazenados
Tools & capabilities
Tools this server exposes to the agent.
nfse_buscar— Search for NFSe invoices issued within a date range. Returns list with date, recipient, amount, status, and key for each invoice.nfse_detalhes— Retrieve complete details of an NFSe by its key. Returns header, issuer, amounts, DPS information, and saves XML locally.nfse_pdf— Download the PDF (DANFSe) of an NFSe by its key. Returns the path to the saved PDF file.
Use cases
- Search and retrieve NFSe invoices issued within a specific period for reconciliation
- Fetch complete invoice details including XML data for compliance and audit purposes
- Download official PDF documents (DANFSe) of service invoices for record-keeping
- Automate invoice data extraction and storage for financial reporting workflows
- Monitor and track issued service invoices programmatically
io.github.SamuelMoraesF/mcp-nfse-nacional MCP server FAQ
It is an MCP server that connects to Brazil's national NFSe portal (nfse.gov.br) using digital certificate authentication, allowing AI agents to search, retrieve details, and download electronic service invoices.
The server itself is free and open-source. However, you need a valid Brazilian digital certificate (e-CNPJ or e-CPF) to authenticate with the NFSe portal, which is issued by authorized certification authorities.
Install via npm (`mcp-nfse-nacional`) or Docker. Configure it in your MCP client's config file (e.g., `mcp.json`) with the certificate file path and password as environment variables, then restart your client.
You must provide a valid Brazilian digital certificate file (.pfx or .p12) and its password via the `CERT_FILE` and `CERT_PASSWORD` environment variables. The server handles login automatically.
XMLs and PDFs are saved to a local `storage/` directory (configurable via `STORAGE_PATH`). Ensure proper file permissions and treat invoice data according to your organization's privacy policies.
Yes, but follow security best practices: never commit certificates to Git, do not expose the HTTP server publicly, use environment variables for secrets, mount certificates as read-only in Docker, and monitor certificate expiration.
README (reference)
Source of truth, from the repository.
mcp-nfse-nacional
MCP Server para consulta de Notas Fiscais de Serviço Eletrônicas (NFSe) no portal nacional (nfse.gov.br). Permite que agentes de IA autentiquem-se com certificado digital e-CNPJ/e-CPF e consultem, detalhem e baixem PDFs de NFSe emitidas.
Ferramentas disponíveis
O servidor expõe três ferramentas via protocolo MCP:
| Ferramenta | Descrição | Parâmetros |
|---|---|---|
nfse_buscar | Busca NFSe emitidas em um período. Retorna lista com data, destinatário, valor, status e chave de cada nota. | data_inicio (YYYY-MM-DD), data_fim (YYYY-MM-DD) |
nfse_detalhes | Obtém os detalhes completos de uma NFSe a partir da sua chave. Retorna cabeçalho, emitente, valores, DPS e salva o XML localmente. | chave (string) |
nfse_pdf | Baixa o PDF (DANFSe) de uma NFSe a partir da sua chave. Retorna o caminho do arquivo PDF salvo localmente. | chave (string) |
A autenticação é gerenciada automaticamente. O login é realizado na primeira chamada e, caso a sessão expire (erro de autenticação), uma nova tentativa de login é feita de forma transparente.
Variáveis de ambiente
| Variável | Obrigatória | Padrão | Descrição |
|---|---|---|---|
CERT_FILE | Sim | — | Caminho para o arquivo do certificado digital (.pfx / .p12), relativo ao diretório do projeto ou absoluto. |
CERT_PASSWORD | Sim | — | Senha do certificado digital. |
MCP_TRANSPORT | Não | stdio | Modo de transporte do servidor MCP. Valores aceitos: stdio ou streamable-http. |
MCP_HOST | Não | 127.0.0.1 | Endereço de bind do servidor HTTP (somente no modo streamable-http). |
MCP_PORT | Não | 3000 | Porta do servidor HTTP (somente no modo streamable-http). |
STORAGE_PATH | Não | ./storage | Diretório onde os XMLs e PDFs baixados serão armazenados. |
Você pode definir as variáveis em um arquivo .env na raiz do projeto.
Executando via npx
Modo stdio (padrão)
Ideal para integração direta com clientes MCP (Claude Desktop, VS Code, etc.):
CERT_FILE=./certificado.pfx CERT_PASSWORD=sua_senha npx -y mcp-nfse-nacional
Exemplo de configuração em um cliente MCP (mcp.json):
{
"servers": {
"nfse-nacional": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-nfse-nacional"],
"env": {
"CERT_FILE": "/caminho/absoluto/para/certificado.pfx",
"CERT_PASSWORD": "sua_senha"
}
}
}
}
Modo Streamable HTTP
Ideal para ambientes onde o servidor precisa ficar escutando conexões HTTP:
CERT_FILE=./certificado.pfx CERT_PASSWORD=sua_senha MCP_TRANSPORT=streamable-http MCP_HOST=127.0.0.1 MCP_PORT=3000 npx -y mcp-nfse-nacional
O endpoint MCP ficará disponível em http://127.0.0.1:3000/mcp.
Exemplo de configuração em um cliente MCP (mcp.json):
{
"servers": {
"nfse-nacional": {
"type": "streamable-http",
"url": "http://127.0.0.1:3000/mcp"
}
}
}
Executando via Docker (Streamable HTTP)
Build da imagem
docker build -t mcp-nfse-nacional .
Execução
docker run -d \
--name mcp-nfse-nacional \
-p 3000:3000 \
-v /caminho/para/certificado.pfx:/app/certificado.pfx:ro \
-v /caminho/para/storage:/app/storage \
-e CERT_FILE=certificado.pfx \
-e CERT_PASSWORD=sua_senha \
mcp-nfse-nacional
O endpoint MCP ficará disponível em http://localhost:3000/mcp.
O Dockerfile já define
MCP_TRANSPORT=streamable-http,MCP_HOST=0.0.0.0eMCP_PORT=3000por padrão.
Segurança
⚠️ O certificado digital é um ativo crítico. Ele possui validade jurídica e representa a identidade da sua empresa ou pessoa física perante a Receita Federal e demais órgãos. Trate-o com o mesmo cuidado que trataria uma senha-mestre.
Orientações essenciais
- Nunca versione o certificado (
.pfx/.p12) ou sua senha em repositórios Git. Adicione*.pfx,*.p12e.envao seu.gitignore. - Não exponha o servidor HTTP publicamente. No modo
streamable-http, o servidor não possui autenticação própria. Mantenha-o acessível apenas em127.0.0.1ou proteja-o com um reverse proxy autenticado (com mTLS, API key, etc.). - Use variáveis de ambiente ou secrets managers para fornecer a senha do certificado. Evite passá-la como argumento de linha de comando, pois ela pode ficar visível no histórico do shell e na listagem de processos (
ps). - Monte o certificado como somente leitura no Docker (flag
:ro), minimizando riscos de alteração acidental. - Restrinja permissões do arquivo do certificado no sistema de arquivos (
chmod 400 certificado.pfx). - Monitore a expiração do certificado. Certificados digitais possuem validade (geralmente 1 a 3 anos). Tenha um processo para renovação.
- Armazenamento local de XMLs e PDFs: os arquivos baixados são salvos no diretório
storage/. Garanta que esse diretório tenha permissões adequadas e que os dados fiscais sejam tratados conforme as políticas de privacidade da sua organização.
Related MCP servers

io.github.SamuelMoraesF/mcp-organizze
MCP para integração com o gestor financeiro Organizze. Crie transações, consulte saldos e metas.

io.github.SamuelMoraesF/mcp-banco-inter
Servidor MCP para integração com o Banco Inter (PJ). Consulte saldos e gerencie cobranças.
MCP server for self-hosted Laserfiche repositories — search and read documents from Claude.
Web scraping, browser RAG, vision, transcription, and 20 AI tools. Universal data intelligence.
View repository →Arachne MCP — scraping, browser, vision, OCR, RAG, Social Research, GitHub + VRT (56 tools).
Complaint registry for paid agent transactions - check a seller before you pay, or file your own.
View repository →

