MCP remoto
Conecte Claude, Cursor, ChatGPT, Gemini e outros clients compatíveis à Emitfy via Model Context Protocol (Streamable HTTP + OAuth 2.1). A IA configura a empresa, consulta tabelas fiscais e emite notas — sem colar API key no cliente.
Endpoint
- MCP:
https://mcp.emitfy.com/mcp - Protected Resource Metadata:
https://mcp.emitfy.com/.well-known/oauth-protected-resource - Authorization Server:
https://mcp.emitfy.com/.well-known/oauth-authorization-server
Pré-requisitos
- Assinatura com acesso à API (Emerald ou superior)
- Login no painel para autorizar o consent OAuth
- Cada autorização MCP gera credenciais exclusivas da conexão (server-side). O
X-Api-Secretda conta (API REST / SDKs) não é alterado — regenerar só em Painel → API & Webhooks
Conectar por cliente
Claude
Em Claude.ai / Claude Desktop, adicione um conector MCP remoto (custom connector) com a URL https://mcp.emitfy.com/mcp. Conclua o OAuth no browser (login Emitfy → autorizar escopos).
Cursor
Em Settings → MCP, adicione um server remoto com a URL https://mcp.emitfy.com/mcp e autenticação OAuth. Autorize no browser quando solicitado.
ChatGPT
Se o seu workspace expuser Apps / conectores MCP remotos, use a mesma URL https://mcp.emitfy.com/mcp e o fluxo OAuth 2.1 com PKCE.
Gemini
Em clients Google/Gemini que suportem MCP remoto na data do uso, configure a URL https://mcp.emitfy.com/mcp e complete o OAuth no navegador.
Outros (genérico)
Qualquer client Streamable HTTP + OAuth 2.1:
- Resource:
https://mcp.emitfy.com - Descubra AS via Protected Resource Metadata
- Authorize com PKCE S256 → token →
Authorization: BeareremPOST /mcp
Scopes
| Scope | O que permite |
|---|---|
mcp:read | Consultas, utils fiscais, PDF/XML |
mcp:setup | Empresa, fiscal, catálogo, clientes |
mcp:certificate | Upload/remoção de certificado A1 (opt-in) |
mcp:emit | Emissão tipada (create_nfe, emit_nfse, …), cancelamento, encerramento MDF-e, CC-e, inutilização, transmit NFC-e |
mcp:cancel | Cancelamento de notas (opt-in) |
mcp:webhooks | CRUD de webhooks da assinatura |
Default no consent: read + setup + emit + webhooks. Certificate e cancel ficam opt-in.
Mapa de tools
- Referência — NCM, NBS, CFOP, CNAE, CEST, LC 116, CEP, CNPJ, RTC…
- Empresa — CRUD, status, IE, logos, certificado
- Catálogo — clientes; produtos / serviços / split
- NF-e / NFS-e / NFC-e — tools tipadas:
create_*,list_*,get_*,emit_*,update_*_draft,consult_*, cancelar, XML/PDF, eventos - CT-e / MDF-e —
create_cte,create_cte_os,create_mdfe, consultar, cancelar, encerrar MDF-e, CC-e, inutilização - Webhooks — CRUD na assinatura (
/v1/webhooks)
Toda tool de empresa/catálogo/nota exige companyId no input (igual ao path REST /v1/companies/:companyId/...). Use list_companies primeiro.
Fluxo canônico
list_companies→ obtercompanyIdget_company_status- Completar certificado e dados fiscais
- Cadastrar cliente e produto/serviço (buscando códigos nas tools de referência)
- Emitir com a tool tipada do documento — ex.
create_nfse,create_nfe,create_nfce,create_cte,create_cte_os,create_mdfe— comexternalIdobrigatório - Se a nota ficar
pending/rejected: corrija comupdate_nfse_draft(version) e chameemit_nfse— não usecreate_correction_letterpara retry - Poll com
get_nfse/consult_nfseou configure webhooks
Revogar
Painel → API & Webhooks → Conexões MCP → Revogar.
Limitações desta versão
- Sem notas recebidas, marketplaces, equipe ou billing via MCP
- Sem pacote STDIO local (
npx @emitfy/mcp) - O MCP é cliente da REST pública — não substitui SDKs para integração de sistemas
Ver também
- Landing MCP — visão de produto e instalação
- Para IAs — llms.txt / OpenAPI
- Webhooks
- SDKs