Kernl

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.