REFERENCIA

Servidor MCP

Stackin expone la API como herramientas MCP: un agente conectado emite, consulta, cancela y explica rechazos conversando, sin escribir peticiones. Doce herramientas, ocho prompts, y el alcance verificado en cada llamada.

  • Conversación, no petición

    El agente llama a la herramienta, arma el payload y lee el resultado. Quien lo usa describe lo que quiere emitir.

  • Alcance verificado en cada llamada

    Cada herramienta declara el alcance que exige, y el token se comprueba en el momento — no al registrar el plugin.

  • Doce herramientas, ocho prompts

    Emitir, consultar, cancelar, corregir, manifestar y explicar un rechazo — la misma superficie de la API.

Empezar por ChatGPT

Registrar el plugin lleva una dirección y un login. El resto es conversación.

Endpoint
https://mcp.stackin.io/mcpCopiar

La misma dirección para ambos modos de autenticación.

ChatGPT

En ChatGPT, Stackin entra como un plugin MCP: registras la dirección https://mcp.stackin.io/mcp, te autenticas por OAuth y pasas a emitir, consultar, explicar un rechazo y cancelar conversando. La grabación de abajo recorre el camino entero, del registro al cancelamiento, en homologación.

Grabación de pantalla, sin audio, en el entorno de homologación — las notas emitidas allí no tienen valor fiscal.

Claude Code

El plugin trae las siete skills y apunta al endpoint. La autenticación es OAuth 2.1 con PKCE, sin ninguna clave: el cliente se registra solo y entras por el navegador.

Grabación de pantalla, sin audio, en el entorno de homologación — las notas emitidas allí no tienen valor fiscal.

  1. 01Instalar el pluginEl repositorio es su propio marketplace: claude plugin marketplace add stackin-io/stackin-mcp-plugin y luego claude plugin install stackin@stackin.
  2. 02EntrarEjecuta /mcp en la sesión. La primera llamada responde 401, el cliente se registra solo y abre la pantalla de consentimiento en el navegador. Autoriza y el token queda guardado.
  3. 03UsarloPide en lenguaje natural — “emite una NFS-e de consultoría”, “¿por qué se rechazó mi última nota?” — o llama a una skill por su nombre.

Las skills que vienen incluidas

Una skill existe donde el orden de las operaciones, o una regla fiscal, aporta algo que la descripción de una herramienta no aporta sola.

/stackin:issue-invoiceQué documento pide la situación, y validar antes de emitir.
/stackin:consult-invoiceEncontrar un documento, y qué identificador acepta cada operación.
/stackin:cancel-invoiceConfirmar antes de un acto irreversible, y cuándo la carta de corrección es lo correcto.
/stackin:diagnose-invoiceLeer el código de rechazo del fisco, y elegir entre reemitir y corregir.
/stackin:correct-invoiceRegistrar una CC-e contra una NF-e autorizada, y qué no puede cambiar.
/stackin:invalidate-numberingDeclarar un rango de numeración reservado y nunca usado.
/stackin:received-invoicesLeer lo que otros emitieron contra la empresa, y responder.

Conectar

El servidor habla streamable-http en una dirección fija. Un cliente MCP entra por OAuth 2.1 con PKCE — sin ninguna clave, así se conecta el plugin en ChatGPT y Claude Code — o lleva una API key de la empresa, útil cuando no hay navegador.

Entrar por el navegador

En Claude Code, instala el plugin y ejecuta /mcp en la sesión: la primera llamada responde 401 con WWW-Authenticate, el cliente sigue la pista hasta el documento de recurso protegido, se registra solo y abre la pantalla de consentimiento. No hay client ID que pegar, y el callback es el puerto de localhost que el cliente elige en ese momento.

Con una API key

La clave viaja en el header Authorization, como en la API. Sobre HTTP la credencial siempre viene de la petición — el servidor atiende a muchas empresas y nunca recurre a una clave del entorno.

Claude Code
Copy
claude plugin marketplace add stackin-io/stackin-mcp-plugin
claude plugin install stackin@stackin
.mcp.json
Copy
{
  "mcpServers": {
    "stackin": {
      "type": "http",
      "url": "https://mcp.stackin.io/mcp"
    }
  }
}
.mcp.json — API key
Copy
{
  "mcpServers": {
    "stackin": {
      "type": "http",
      "url": "https://mcp.stackin.io/mcp",
      "headers": {
        "Authorization": "Bearer ${STACKIN_API_KEY}"
      }
    }
  }
}

Alcances

Un token OAuth lleva los alcances que su titular aprobó, y la API compara el alcance con la operación en cada llamada. El rechazo ocurre en la API, no en el agente.

invoice:read
Consultar, listar, descargar el PDF y leer el historial de envío.
invoice:issue
Emitir y reemitir un documento.
invoice:cancel
Cancelar un documento e inutilizar un rango de numeración.
invoice:write
Cartas de corrección y manifestación sobre una nota recibida.
oauth-protected-resource
Copy
curl https://mcp.stackin.io/.well-known/oauth-protected-resource

{
  "resource": "https://mcp.stackin.io",
  "authorization_servers": ["https://api.stackin.io"],
  "scopes_supported": [
    "invoice:read",
    "invoice:issue",
    "invoice:write",
    "invoice:cancel"
  ]
}

Herramientas

Doce herramientas. Siete alteran un documento y declaran destructiveHint; las otras cinco son de lectura. validate_invoice_payload no llama a la API, así que no exige alcance.

HerramientaAlcanceObligatoriosEfecto
issue_invoiceinvoice:issuedocument_typeclient_nametax_iditemsAltera documento
reissue_invoiceinvoice:issueinvoice_idAltera documento
cancel_invoiceinvoice:cancelaccess_keydocument_typereasonAltera documento
correct_invoiceinvoice:writeaccess_keycorrectionAltera documento
invalidate_numberinginvoice:cancelseriesnumber_startnumber_endreasonAltera documento
manifest_received_invoiceinvoice:writeaccess_keymanifestationAltera documento
consult_invoiceinvoice:readaccess_keydocument_typeSolo lectura
list_invoicesinvoice:read—Solo lectura
get_invoice_pdfinvoice:readaccess_keydocument_typeSolo lectura
get_invoice_submissionsinvoice:readinvoice_idSolo lectura
list_received_invoicesinvoice:read—Solo lectura
validate_invoice_payloadnoauthdocument_typeitemsSolo lectura

Prompts

Ocho prompts guían al modelo en las tareas comunes — qué preguntar antes de emitir, qué nunca inventar, y cuándo cancelar no es la respuesta.

issue_nfseEmitir una nota de servicio.
issue_nfeEmitir una nota de mercancía.
recent_invoicesMostrar los últimos documentos de la empresa.
diagnose_rejectionExplicar por qué se rechazó un documento y qué corregir.
inspect_invoiceMostrar el estado actual de un documento.
correct_nfeCarta de corrección para texto, no para importes.
manifest_receivedDeclarar la posición de la empresa sobre la NF-e de un proveedor.
cancel_invoice_promptCancelar un documento autorizado, con confirmación.

Permisos del conector

Las herramientas que alteran un documento declaran readOnlyHint: false y openWorldHint: true, porque transmiten al fisco. Esa combinación es la que bloquea el modo por defecto.

Además, toda operación irreversible pide confirmación: las skills exigen leer los datos de vuelta antes de emitir, cancelar, inutilizar numeración o manifestarse — y emitir y cancelar aceptan idempotency_key, así que repetir la llamada no crea un segundo documento.

En ChatGPT, elige Preguntar siempre en los Permisos del conector antes de emitir. En el modo por defecto, Permitir acciones de bajo riesgo, toda escritura se deniega en silencio — la llamada no sale de la plataforma y nada llega aquí.
Confiable

Más del 99,9% de uptime

Seguro

Datos cifrados y listo para LGPD

Rápido

Infraestructura escalable y de baja latencia

IA en primer lugar

Servidor MCP oficial — emita desde un agente

© 2026 stackin. Todos los derechos reservados.Hecho con código, propósito y café.Política de PrivacidadTérminos de UsoContacto