Otros clientes
Cualquier cliente que hable MCP por HTTP puede usar Kernl. Esta página muestra los pedidos crudos, que además son una buena forma de probar tu token.
Mandar initialize
curl -i -X POST http://localhost:3086/mcp \
-H "Authorization: Bearer $(kernl token)" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"curl","version":"1"}}}'
$(kernl token) es la forma de Linux. Para macOS, Windows y Docker mirá Dónde está cada cosa.
El encabezado Accept tiene que listar los dos tipos. Con solo application/json recibís 406 Not Acceptable.
La respuesta es 200 OK y trae un encabezado mcp-session-id. El cuerpo viene en formato Server-Sent Events:
event: message
data: {"result":{"protocolVersion":"2025-03-26", ... },"jsonrpc":"2.0","id":1}
Copiá el id de sesión del encabezado.
Reusar la sesión
Avisale a Kernl que estás listo y después pedí la lista de herramientas. Las dos llamadas llevan el id de sesión.
curl -i -X POST http://localhost:3086/mcp \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "mcp-session-id: <session-id>" \
-d '{"jsonrpc":"2.0","method":"notifications/initialized"}'
Esto devuelve 202 Accepted. Ahora listá las herramientas:
curl -X POST http://localhost:3086/mcp \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "mcp-session-id: <session-id>" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
La lista es larga, porque Kernl tiene muchas herramientas.
Respuestas de error
401conUnauthorized: mirá 401 Unauthorized.404conSession not found: mirá Session not found.400conMissing mcp-session-id header: mirá Missing mcp-session-id.