Crear un MCP compatible con Whaapy
Esta guía es para desarrolladores que quieren exponer un MCP para que Whaapy pueda conectarlo a un agente, tool o subagent. Whaapy usa MCP como una capa estructurada para consultar datos o ejecutar acciones externas. Para que funcione bien, el servidor debe declarar schemas claros, recibir argumentos tipados y devolver resultados verificables.Si solo quieres conectar un MCP desde el dashboard, revisa Configurar MCPs. Esta página explica cómo construir el servidor MCP que Whaapy va a consumir.
Resumen rápido
Whaapy espera un servidor MCP por HTTP con estas capacidades:
Flujo completo:
Transporte
Expón un endpoint HTTP para MCP:
Timeouts actuales del cliente Whaapy:
Handshake
Whaapy inicia la sesión coninitialize.
Request:
notifications/initialized:
202 Accepted.
Discovery con tools/list
Whaapy descubre las herramientas contools/list.
Request:
name, description e inputSchema. Después usa ese schema para validar los argumentos antes de llamar la tool.
Reglas de inputSchema
La raíz delinputSchema debe ser un objeto:
Para arrays, define
items:
properties:
Objetos y arrays reales
Este es el error más común al integrar MCPs con Whaapy: pasar estructuras como strings JSON. Bueno:rawExtractedcomo objeto realtrackingKeyCandidatescomo array real
Ejecución con tools/call
Cuando el agente decide usar una capacidad, Whaapy llamatools/call.
Request:
- campos requeridos
- tipos primitivos
enum- arrays
- objetos anidados
- propiedades extra si
additionalProperties: false
Respuesta de tools
MCP exige que la respuesta tengacontent. Whaapy funciona mejor si devuelves un solo bloque text con JSON válido.
Respuesta recomendada:
text debería seguir este envelope:
Estados recomendados:
Errores
Para errores técnicos del protocolo, usa error JSON-RPC:isError: true y un payload estructurado:
Contrato semántico de una tool
Además del schema, la descripción debe explicar cuándo usar la tool y qué significa un resultado correcto. Incluye estas secciones endescription:
Acciones con side effects
Si la tool modifica algo externo, no basta con devolver texto. Devuelve evidencia verificable:
Ejemplo:
Checklist antes de entregar un MCP
El servidor responde
initialize correctamente.tools/list devuelve todas las tools con name, description e inputSchema.Cada
inputSchema tiene raíz type: "object".Los campos
object y array se reciben como estructuras reales, no strings JSON.Las tools devuelven
content con JSON parseable.Los errores tienen
code, mensaje claro y, si aplica, field.Las acciones con side effects devuelven IDs verificables.
Las tools con datos faltantes devuelven
needs_more_info y nextQuestion.Las credenciales usan permisos mínimos.
Los casos de timeout o sistema externo caído tienen fallback claro.
Ejemplo TypeScript
Ejemplo mínimo usando el SDK oficial:Siguiente paso
Configurar MCPs
Conecta el MCP al agente desde Whaapy.
Configurar Tools
Define cuándo el agente debe ejecutar cada capacidad.