Mcp Nfse Nacional

io.github.SamuelMoraesF由 GitHub 账号 SamuelMoraesF 发布v1.0.3更新于 Oct 27, 2026

MCP Server para consulta de NFSe no portal nacional (nfse.gov.br)

已验证STDIO仅桌面金融商业与电商

概览

AI 生成的概览

通过数字证书登录巴西全国 NFSe 门户,让助手查询、查看详情并下载服务电子发票的 MCP 服务器。

可以做什么
  • 按日期区间搜索已开具的 NFSe,返回每张发票的日期、收票方、金额、状态和密钥
  • 按密钥获取单张 NFSe 的完整详情,包括抬头、开票方、金额和 DPS,并在本地保存 XML
  • 按密钥下载 DANFSe 的 PDF,并返回本地文件路径
  • 使用数字证书自动完成认证,会话过期时自动重新登录
适用场景
适用于处理巴西服务电子发票(NFSe)的场景:希望助手按时间段查询已开具发票、查看某张发票详情,或获取其 XML 与 PDF,而无需手动操作全国门户网站。
运行要求
通过 npx(Node.js)或 Docker 在本机运行。需要 e-CNPJ/e-CPF 数字证书文件(.pfx/.p12),路径由 CERT_FILE 指定,密码由 CERT_PASSWORD 提供。可选 MCP_TRANSPORT、MCP_HOST、MCP_PORT 和 STORAGE_PATH 控制传输方式及 XML/PDF 保存目录。需要访问 nfse.gov.br 的网络连接。
安装前请注意
数字证书具有法律效力,代表企业或个人的身份,切勿提交到代码仓库,并应限制文件权限。HTTP 模式本身没有身份验证,不要将其公开暴露。CERT_PASSWORD 建议通过环境变量或密钥管理服务提供,避免写在命令行参数中。下载的 XML 和 PDF 含税务数据,保存在 STORAGE_PATH 中,需妥善保护。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Mcp Nfse Nacional,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

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

bash
CERT_FILE=./certificado.pfx CERT_PASSWORD=sua_senha npx -y mcp-nfse-nacional

Exemplo de configuração em um cliente MCP (mcp.json):

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:

bash
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):

json
{  "servers": {    "nfse-nacional": {      "type": "streamable-http",      "url": "http://127.0.0.1:3000/mcp"    }  }}

Executando via Docker (Streamable HTTP)

Build da imagem

bash
docker build -t mcp-nfse-nacional .

Execução

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

来源:README.md,提交 16fe555

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v1.0.3最新Sep 16, 2026

评分

已满足适用检查项的 40%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。