PluginBench
MCP Server
Maintained

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.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • CERT_PASSWORD
    required
    secret

    Senha do certificado digital (e-CNPJ/e-CPF) em formato PFX

  • CERT_FILE
    required

    Caminho para o arquivo do certificado digital (.pfx)

  • NODE_OPTIONS

    Opções do Node.js (use --openssl-legacy-provider para compatibilidade com certificados)

  • MCP_PORT

    Porta do servidor HTTP

  • STORAGE_PATH

    Diretório onde os XMLs e PDFs baixados serão armazenados

~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "mcp-nfse-nacional": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-nfse-nacional"
      ],
      "env": {
        "CERT_PASSWORD": "<YOUR_CERT_PASSWORD>",
        "CERT_FILE": "<YOUR_CERT_FILE>",
        "NODE_OPTIONS": "<YOUR_NODE_OPTIONS>",
        "MCP_PORT": "<YOUR_MCP_PORT>",
        "STORAGE_PATH": "<YOUR_STORAGE_PATH>"
      }
    }
  }
}

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

What is the mcp-nfse-nacional server?

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.

Is this server free to use?

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.

How do I install this in Claude or Cursor?

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.

What authentication is required?

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.

How are downloaded files stored?

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.

Is it safe to run this server?

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:

FerramentaDescriçãoParâmetros
nfse_buscarBusca 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_detalhesObté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_pdfBaixa 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ávelObrigatóriaPadrãoDescrição
CERT_FILESim—Caminho para o arquivo do certificado digital (.pfx / .p12), relativo ao diretório do projeto ou absoluto.
CERT_PASSWORDSim—Senha do certificado digital.
MCP_TRANSPORTNãostdioModo de transporte do servidor MCP. Valores aceitos: stdio ou streamable-http.
MCP_HOSTNão127.0.0.1Endereço de bind do servidor HTTP (somente no modo streamable-http).
MCP_PORTNão3000Porta do servidor HTTP (somente no modo streamable-http).
STORAGE_PATHNão./storageDiretó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.0 e MCP_PORT=3000 por 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, *.p12 e .env ao 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 em 127.0.0.1 ou 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

MCP para integração com o gestor financeiro Organizze. Crie transações, consulte saldos e metas.

7
Python
MIT
View repository →

Servidor MCP para integração com o Banco Inter (PJ). Consulte saldos e gerencie cobranças.

3
TypeScript
View repository →

MCP server for self-hosted Laserfiche repositories — search and read documents from Claude.

2
Python
MIT
View repository →

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

1
Python
MIT
View repository →

Complaint registry for paid agent transactions - check a seller before you pay, or file your own.

View repository →