Claude Desktop
Claude Desktop solo inicia programas locales, así que no puede hablar directo con la URL de Kernl. En el medio va un pequeño puente llamado mcp-remote. Necesita Node.js.
No uses el viejo snippet con bun
Notas viejas muestran una config que corre bun run bin/mcp-server.ts. No la uses. Necesita un checkout del código fuente de Kernl, y una instalación empaquetada no tiene ese archivo: en el código fuente el script es services/kernel/bin/mcp-server.ts, no bin/mcp-server.ts en la raíz. Además levanta un kernel aparte en vez de conectarse al que instalaste.
Verificá tu versión de Node
Necesitás Node 20 o más nuevo. Node 18 falla con ReferenceError: File is not defined, y Claude Desktop típicamente muestra "Server disconnected".
node --version
Editá el archivo de configuración
Los pasos de macOS y Windows salen de la documentación de mcp-remote; el equipo de Kernl todavía no los probó en esos sistemas.
Abrí claude_desktop_config.json. Está acá:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Agregá Kernl dentro de mcpServers:
{
"mcpServers": {
"kernl": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"http://localhost:3086/mcp",
"--header",
"Authorization:${KERNL_AUTH}"
],
"env": {
"KERNL_AUTH": "Bearer <token>"
}
}
}
}
Reemplazá <token> por la salida de tu comando de token, mirá Primer arranque. Dejá Bearer y el espacio que le sigue.
Escribí Authorization: sin espacio después de los dos puntos. El espacio va dentro del valor de env. Así el token queda fuera de la lista de procesos y se esquiva cómo Claude Desktop pasa los argumentos en Windows.
Reiniciá Claude Desktop después de guardar.
Usar una dirección de la LAN
mcp-remote acepta http:// simple solo para localhost. Si lo apuntás a otra máquina, como http://192.168.1.20:3086/mcp, agregá --allow-http antes de --header:
"args": ["-y", "mcp-remote", "http://192.168.1.20:3086/mcp", "--allow-http", "--header", "Authorization:${KERNL_AUTH}"]
Sin eso aparece Non-HTTPS URLs are only allowed for localhost or when --allow-http flag is provided.
Si falla
Un token incorrecto se ve como Unexpected token '<', porque el puente recibe la página HTML del dashboard en vez de JSON. Mirá Unexpected token '<' y 401 Unauthorized.