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-Secret da 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:

  1. Resource: https://mcp.emitfy.com
  2. Descubra AS via Protected Resource Metadata
  3. Authorize com PKCE S256 → token → Authorization: Bearer em POST /mcp

Scopes

ScopeO que permite
mcp:readConsultas, utils fiscais, PDF/XML
mcp:setupEmpresa, fiscal, catálogo, clientes
mcp:certificateUpload/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:cancelCancelamento de notas (opt-in)
mcp:webhooksCRUD 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-ecreate_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

  1. list_companies → obter companyId
  2. get_company_status
  3. Completar certificado e dados fiscais
  4. Cadastrar cliente e produto/serviço (buscando códigos nas tools de referência)
  5. Emitir com a tool tipada do documento — ex. create_nfse, create_nfe, create_nfce, create_cte, create_cte_os, create_mdfe — com externalId obrigatório
  6. Se a nota ficar pending/rejected: corrija com update_nfse_draft (version) e chame emit_nfse — não use create_correction_letter para retry
  7. Poll com get_nfse / consult_nfse ou configure webhooks

Revogar

Painel → API & WebhooksConexõ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