mcp-dir DF-e MCP
An MCP server that retrieves Brazilian electronic fiscal documents (NF-e, CT-e) issued against a company from SEFAZ. It uses the user's A1 digital certificate for secure access, supports incremental NSU synchronization to prevent tax ID blocking, and can render DANFE PDFs from XML data.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://api.mcp.ai/p_dfeWhat its tools do
12 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (9)
Can change data (3)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Sync new fiscal documents issued against the company
- Check remaining SEFAZ query budget for the hour
- Fetch specific invoices by access key
- Render DANFE PDF from XML data
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- mcp-ai 0.9.409
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 12 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
12 advertised
dfe_list_accounts
Lista os CNPJs conectados neste install (razão social, CNPJ e UF).
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
}
}
}{
"title": "dfe_list_accounts",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dfe_sincronizar
Puxa os documentos fiscais NOVOS emitidos contra este CNPJ (nota de fornecedor, evento, CT-e) — NFeDistribuicaoDFe. COMO USAR: chame com `ult_nsu: "0"` na primeira vez. A resposta traz `proximo_nsu` — passe ELE na chamada seguinte, sem alterar. Repita até `fim_da_fila: true`. PARE quando `fim_da_fila` for true. Continuar consultando depois disso é o que a SEFAZ pune com bloqueio de 1 hora no CNPJ. Cada documento vem com `completo`: true = XML íntegro da nota (dá para auditar em auditor_fiscal_auditar_nota); false = apenas RESUMO (chave, emitente, valor), que é o que a SEFAZ entrega enquanto o destinatário não fizer a manifestação. ATENÇÃO: este serviço NÃO devolve as notas que VOCÊ emitiu — só as recebidas. Para auditar a própria emissão, pegue o XML no seu ERP (ex.: omie_get_invoice_xml).
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
},
"ult_nsu": {
"type": "string"
},
"forcar_nsu": {
"type": "boolean"
}
}
}{
"title": "dfe_sincronizar",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dfe_consultar_nsu
Busca UM documento específico pelo NSU. Serve para recuperar um item que falhou na descompactação durante a sincronização — não para varrer a fila (isso é dfe_sincronizar).
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"nsu"
],
"properties": {
"nsu": {
"type": "string"
},
"account": {
"type": "string"
}
}
}{
"title": "dfe_consultar_nsu",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dfe_consultar_chave
Busca um documento pela chave de acesso de 44 dígitos. LIMITES: só documentos que chegaram ao Ambiente Nacional nos ÚLTIMOS 90 DIAS, e nunca a nota em que este CNPJ é o EMITENTE (a SEFAZ não devolve a própria emissão).
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"chave"
],
"properties": {
"chave": {
"type": "string"
},
"account": {
"type": "string"
}
}
}{
"title": "dfe_consultar_chave",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dfe_gerar_danfe
Gera o DANFE (o PDF da nota) a partir do XML. A SEFAZ distribui XML, não PDF, então esta é a representação gráfica para imprimir, anexar ou mandar pro cliente. COMO USAR: passe em `xml` o conteúdo do documento que veio em dfe_sincronizar (campo `documentos[].xml`). Assim NÃO gasta consulta na SEFAZ. Se não tiver o XML em mãos, use `chave` ou `nsu` — mas aí gasta uma das consultas da hora. SÓ FUNCIONA com documento `completo: true`. Documento `resumo` não tem os itens, e sem itens não existe DANFE: o XML completo só sai depois da manifestação do destinatário. A resposta traz um link de download em `files[]`, entregue ele ao usuário. Não tente ler o conteúdo do arquivo, é binário.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"nsu": {
"type": "string"
},
"xml": {
"type": "string"
},
"chave": {
"type": "string"
},
"account": {
"type": "string"
}
}
}{
"title": "dfe_gerar_danfe",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dfe_orcamento
Quantas consultas ainda cabem nesta hora para este CNPJ, e se ele está bloqueado. Não consome consulta. Chame isto antes de uma carga grande — o limite da SEFAZ é por CNPJ e conta também o que outros sistemas do cliente consultarem.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "string"
}
}
}{
"title": "dfe_orcamento",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}show_version
Show the current MCP platform and adapter versions.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"title": "Show Version",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}report_bug
Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"message"
],
"properties": {
"context": {
"type": "string",
"default": ""
},
"message": {
"type": "string"
},
"conversation": {
"type": "string",
"default": "[]"
}
}
}{
"title": "Report Bug",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}connect
Returns connection status and URLs. When all providers are connected, returns authenticated:true and empty pending[]. When credentials are missing, returns connect_url for the toolkit and per-install URLs.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"title": "Connection Status",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}toolkit_info
Returns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"title": "Toolkit Info",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}marketplace
The official mcp.ai marketplace — the in-platform catalog of every MCP/tool, AND the way to run them. Covers capability requests like "find an MCP that does X", "consulta um CPF", "is there a tool for Y". Core flow: action=search discovers MCPs by intent → describe returns one MCP's full profile (every tool with its id + params, pricing, auth) so you pick the right tool_id → invoke RUNS that tool. KEY: invoke works even when the MCP is NOT installed — it runs the tool pontualmente (one-off), without adding the MCP to the toolkit and without bloating the tool list. If the MCP needs a credential/login, invoke returns a connect link; if it is paid and the wallet is empty, invoke returns a checkout/top-up link (the user opens it, then you retry). Use install only to make an MCP PERMANENT in the active toolkit (its tools then show up natively in future sessions); prefer invoke for a single/occasional use. list_tools lists what is callable right now. subscribe/cancel handle per-MCP billing; report_bug sends feedback; request_mcp asks us to build a NEW MCP when nothing fits. Search/describe flag installed_in_toolkit vs installed_in_workspace. Writes (install/uninstall/subscribe/cancel and the one-off install behind invoke) require workspace owner/admin. It also carries the mcp.ai PROMPT LIBRARY, which is about ready-made prompt TEXT rather than MCPs: search_prompts finds one, get_prompt returns its full text with {{variables}} filled, and publish_prompt saves a prompt and returns a shareable mcp.ai/p/<slug> link that opens without login.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "number",
"default": 10
},
"query": {
"type": "string",
"default": ""
},
"action": {
"enum": [
"search",
"describe",
"install",
"uninstall",
"subscribe",
"cancel",
"resume",
"report_bug",
"request_mcp",
"list_tools",
"invoke",
"search_prompts",
"get_prompt",
"publish_prompt"
],
"type": "string",
"default": "search"
},
"mcp_id": {
"type": "string",
"default": ""
},
"message": {
"type": "string",
"default": ""
},
"tool_id": {
"type": "string",
"default": ""
},
"arguments": {
"type": "string",
"default": "{}"
},
"immediate": {
"type": "boolean",
"default": false
},
"tier_slug": {
"type": "string",
"default": ""
},
"prompt_body": {
"type": "string",
"default": ""
},
"prompt_slug": {
"type": "string",
"default": ""
},
"prompt_tool": {
"type": "string",
"default": ""
},
"prompt_vars": {
"type": "string",
"default": "{}"
},
"conversation": {
"type": "string",
"default": "[]"
},
"prompt_title": {
"type": "string",
"default": ""
},
"request_name": {
"type": "string",
"default": ""
},
"cancel_reason": {
"enum": [
"too_expensive",
"missing_features",
"switched_service",
"unused",
"customer_service",
"too_complex",
"low_quality",
"other"
],
"type": "string"
},
"cancel_comment": {
"type": "string",
"default": ""
},
"prompt_targets": {
"type": "array",
"items": {
"enum": [
"claude",
"chatgpt",
"cursor",
"lovable"
],
"type": "string"
},
"default": []
},
"report_context": {
"type": "string",
"default": ""
},
"prompt_category": {
"type": "string",
"default": ""
},
"request_details": {
"type": "string",
"default": ""
},
"prompt_description": {
"type": "string",
"default": ""
}
}
}{
"title": "Marketplace",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}authenticate
MCP.AI for IDE agents (Cursor, etc.): log in in the browser, copy the access token. Best: add it to this server's config as a header `Authorization: Bearer <token>` for a permanent, non-expiring connection. Or paste it here for a session-only login: call with { token: "<jwt>" } after the user pastes, or with no args to get the link.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"token": {
"type": "string"
}
}
}{
"title": "Authenticate",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 3612 ms
- 95th percentile latency
- 3612 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 3612 ms · metadata changed · 12 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http df-e-mcp https://api.mcp.ai/p_dfeCodex
codex mcp add df-e-mcp --url https://api.mcp.ai/p_dfeCursor
{
"mcpServers": {
"df-e-mcp": {
"url": "https://api.mcp.ai/p_dfe"
}
}
}Cline
{
"mcpServers": {
"df-e-mcp": {
"type": "streamableHttp",
"url": "https://api.mcp.ai/p_dfe",
"disabled": false
}
}
}VS Code
{
"servers": {
"df-e-mcp": {
"type": "http",
"url": "https://api.mcp.ai/p_dfe"
}
}
}Gemini CLI
gemini mcp add --transport http df-e-mcp https://api.mcp.ai/p_dfeClaude Desktop
https://api.mcp.ai/p_dfeWindsurf
{
"mcpServers": {
"df-e-mcp": {
"serverUrl": "https://api.mcp.ai/p_dfe"
}
}
}Let your agent find its tools
Find servers like mcp-dir DF-e MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.