API y MCP

Servidor MCP

El servidor MCP de Diaform conecta tu agente de IA con tu feedback. Después de conectarlo, puedes hacerle preguntas como «¿De qué se quejaron los clientes este mes?», y el agente recupera las conversaciones, los resúmenes y los informes.

MCP (Model Context Protocol) es la forma estándar en que los agentes de IA se conectan con herramientas externas. El servidor ofrece los mismos datos que la API REST, es de solo lectura y usa la misma clave de API.

Antes de empezar#

Necesitas un plan Pro, Business o Enterprise y una clave de API. Los propietarios y los administradores crean claves en Configuración → General → Claves de API. Consulta Descripción general de la API.

AjusteValor
URL del servidorhttps://diaform.io/api/mcp
TransporteStreamable HTTP
AutenticaciónCabecera Authorization: Bearer dia_org_live_...

Una clave da al agente acceso de lectura a todos los proyectos de tu organización. Crea una clave distinta para cada agente, así puedes revocar una sin afectar a las demás.

Conectar tu agente#

Elige tu agente:

Ejecuta esto en tu terminal:

Shell
claude mcp add --transport http diaform https://diaform.io/api/mcp \
  --header "Authorization: Bearer $DIAFORM_API_KEY"

Después, ejecuta /mcp dentro de Claude Code para comprobar que diaform está conectado.

Herramientas#

El agente ve seis herramientas de solo lectura:

HerramientaQué haceArgumentos
list_projectsLista todos los proyectos con su ID, nombre y estadoNinguno
get_projectDevuelve un proyecto con sus preguntas y su número de conversacionesproject_id
list_conversationsLista las conversaciones de un proyecto con el participante, el sentimiento y el resumen de IAproject_id y, opcionalmente, status, sentiment, created_after, created_before, search, limit, cursor
get_conversationDevuelve una conversación con su resumen y la transcripción completaconversation_id
list_reportsLista los informes de IA de un proyectoproject_id y, opcionalmente, status, limit, cursor
get_reportDevuelve un informe de IA con sus temas, problemas, casos aislados y citasreport_id

Cada herramienta devuelve el mismo JSON que su endpoint REST. Los campos se describen en Proyectos, Conversaciones e Informes. status y sentiment son arrays, como ["completed"].

Las listas devuelven hasta 100 elementos cada vez. Cuando un resultado tiene has_more: true, el agente pasa next_cursor como cursor para obtener la página siguiente.

Qué puedes preguntar#

  • «Lista mis proyectos de Diaform y dime cuál recibió más respuestas».
  • «Lee las conversaciones completadas de los últimos 30 días del proyecto de onboarding y agrupa las quejas por tema».
  • «Busca las conversaciones que mencionan los precios y cita lo que dijo la gente».
  • «Resume el último informe de IA y redacta un mensaje de Slack con las novedades para el equipo de producto».
  • «Trae la transcripción completa de la conversación más negativa de esta semana».

Errores y límites#

Si falta la clave, se revocó o el plan no incluye acceso a la API, la conexión falla con HTTP 401 o 403. Tu cliente suele mostrarlo como un servidor con error o no autorizado.

Cuando falla una llamada a una herramienta, por ejemplo por un ID incorrecto, el agente recibe los mismos error y code que en la API REST y puede corregirse solo. Consulta Errores.

Las solicitudes MCP cuentan para el mismo límite que la API REST: 120 solicitudes por minuto por cada clave.

Detalles técnicos#

Para crear tu propio cliente:

  • Envía mensajes JSON-RPC 2.0 con POST https://diaform.io/api/mcp. El servidor contesta cada solicitud con una única respuesta JSON, no con un flujo de eventos.
  • El servidor no guarda estado. No emite ningún ID de sesión, y GET y DELETE devuelven 405.
  • Las versiones del protocolo compatibles son 2025-06-18, 2025-03-26 y 2024-11-05.
  • Implementa initialize, ping, tools/list y tools/call. No tiene recursos ni prompts.
Shell
curl -X POST "https://diaform.io/api/mcp" \
  -H "Authorization: Bearer $DIAFORM_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "list_conversations",
      "arguments": {
        "project_id": "b8acb3ab-1f3d-4a7e-a846-b7f493f86b6d",
        "status": ["completed"],
        "limit": 10
      }
    }
  }'