jupyter-vscode-mcp
Jupyter VS Code MCP
Extensión de VS Code que expone operaciones de Jupyter Notebook como herramientas MCP sobre HTTP puro — una URL portátil para cada agente de codificación de IA. Sin rutas absolutas, sin comando node, sin cableado de stdio.
Apunta cualquier cliente MCP a la URL, y el agente podrá explorar, editar, ejecutar y depurar notebooks en tu sesión activa del editor: ve las mismas celdas que ves, se comunica con el mismo kernel que usa tu notebook (local o remoto — Colab incluido), y cada acción se refleja en la interfaz real de VS Code.
Características
Edición de notebooks con identificadores de celda estables
Cada celda se identifica mediante un único esquema uniforme:
#NB-xxxxxxxx, persistido en el campo estándar cell id de nbformat 4.5. Sobrevive a ediciones, inserción/eliminación de otras celdas, cambios de índice, guardado/reapertura, recargas de la extensión — incluso al copiar el archivo a otra máquina.Los IDs nunca se reutilizan después de un borrado: las celdas nuevas siempre reciben IDs aleatorios nuevos.
jupyter_get_summaryasigna IDs a cualquier celda que carezca de uno (p. ej., creada a mano en la interfaz), de modo que cada identificador notificado se puede reutilizar de inmediato.Los índices son siempre de base 0 (resumen, fuentes, rangos de ejecución, salidas) — sin convenciones mixtas.
Control de ejecución no bloqueante
jupyter_run_cellsinicia la ejecución y regresa de inmediato; sondea conjupyter_wait_until_idleo toma una instantánea conjupyter_get_status. Sin esperas ciegas, sin timeouts de MCP en celdas largas.Protección de disponibilidad del kernel: ejecutar contra un kernel muerto o ausente devuelve pistas accionables en lugar de bloquearse.
jupyter_interrupt_kernelaborta la ejecución actual conservando todas las variables.
Inteligencia de kernel (nivel Copilot)
jupyter_get_variables— informes de variables con información de tipos: DataFrame/Series como{shape, columns[:8], head(2)}, ndarray como{shape, dtype}, contenedores conlength, escalares como reprs cortos. Usa la API oficial de vista de variables de Jupyter cuando está disponible; de lo contrario, una sonda silenciosa del kernel que nunca toca el contador de ejecución. El filtrado opcional por símbolos de documento oculta el ruido interno solo cuando los símbolos están realmente disponibles.jupyter_get_pip_packages— inventario del entorno (nombre + versión) desde el entorno activo del kernel.jupyter_install_packages— pip se ejecuta dentro del intérprete del propio kernel, por lo que los paquetes se instalan en el runtime que el notebook usa realmente — incluidas máquinas virtuales remotas como Colab, nunca en el host local. Soporta especificaciones de versión y--upgrade, verifica que cada especificación se resuelva después e informa de fallos reales (con la cola real de la salida de pip) en lugar de fingir éxito.jupyter_get_statussondea el kernel en vivo para obtener la versión/plataforma real de Python en lugar de confiar en metadatos obsoletos.jupyter_select_kernelabre el selector de kernel nativo de VS Code cuando no hay ningún kernel activo.
Transporte MCP solo por red
Streamable HTTP (especificación MCP 2025-11-25) con respuestas en JSON puro — un cliente mínimo funciona solo con
curl.Endpoints:
/mcp(además del heredado/sse),GET /healthpara comprobar disponibilidad y sondear la versión.Se admiten múltiples sesiones de agente concurrentes; las sesiones sobreviven a cambios en caliente del puerto.
Informes honestos
Los errores incluyen contexto y pistas para el siguiente paso: kernel ausente → guía de arranque, ID obsoleto → actualizar mediante el resumen, fallo en pip install → cola real del error de pip, kernel ocupado → nota explícita de aplazamiento en lugar de resultados vacíos en silencio.
Related MCP server: Jupyter MCP Server
Herramientas
Herramienta | Descripción |
| Notebooks abiertos con URIs, rutas, recuentos de celdas y marcas de sin guardar |
| Mapa compacto: IDs estables, tipos, estado de ejecución, tipos MIME de salida, vistas previas |
| Fuente de una celda por ID o índice basado en 0; paginación de líneas |
| Reemplazar la fuente; el ID sigue siendo válido después |
| Ediciones estructurales en posiciones basadas en 0; IDs nuevos no reutilizables |
| Persistir |
| Crear un |
| Inicio no bloqueante: rango de índices |
| Sondea hasta quedar inactivo o agotar el tiempo de espera; devuelve celdas completadas + indicadores de éxito |
| Instantánea inmediata: kernelStatus, información del runtime en vivo, celdas en ejecución, estado sin guardar |
| Abortar la ejecución actual, conservar las variables |
| Reinicio completo (borra las variables) |
| Salidas en línea (texto corto) o archivos de artefacto en |
| Informe de variables del kernel con información de tipos |
| Inventario de paquetes instalados del entorno del kernel |
| Instalación de pip en el lado del kernel con especificaciones de versión + verificación posterior a la instalación |
| Abrir el selector de kernel nativo, informar del estado resultante |
IDs de celda estables
Cada celda recibe un ID persistente aleatorio (#NB-xxxxxxxx) escrito en el campo estándar cell id de nbformat 4.5 — el mismo hueco que la propia plataforma lee y conserva en guardado/carga. El ID es inmune a cambios de posición, ediciones de contenido, inserciones/eliminaciones de celdas adyacentes y ciclos de reapertura. Prefiere los IDs a los índices; llama a jupyter_get_summary para descubrirlos (también rellena los IDs que faltan en celdas creadas fuera de las herramientas).
La entrada de 8 dígitos hexadecimales sin prefijo (abcd1234) se acepta como abreviatura de #NB-abcd1234.
Agentes compatibles
Cualquier cliente MCP que hable HTTP funciona. Configuraciones comunes:
Claude Code, Cursor, Windsurf, Cline, Copilot:
{
"mcpServers": {
"jupyter-vscode-mcp": {
"url": "http://localhost:9123/mcp"
}
}
}OpenCode, Kilo Code:
{
"mcp": {
"jupyter-vscode-mcp": {
"type": "remote",
"url": "http://localhost:9123/mcp",
"enabled": true
}
}
}Ejecuta "Jupyter VS Code MCP: Show MCP Configuration" desde la paleta de comandos → elige tu agente → el fragmento se copia al portapapeles.
Instalación y ejecución
Descarga el .vsix más reciente desde Versiones, luego:
code --install-extension jupyter-vscode-mcp-<version>.vsixAbre cualquier
.ipynb— el servidor se inicia automáticamente en127.0.0.1:9123(la barra de estado muestra el estado; haz clic para alternar).Añade la configuración de URL anterior a tu agente.
Comprueba la disponibilidad en cualquier momento:
curl http://localhost:9123/health.
Configuración: jupyter-vscode-mcp.mcpPort (por defecto 9123, aplicado en caliente), jupyter-vscode-mcp.autoStart (por defecto true).
Flujo de trabajo recomendado
jupyter_list_open_notebooks → pick notebook
jupyter_get_summary → stable #NB-* IDs, exec state (0-based)
jupyter_get_cell_source → read only what you need
jupyter_edit_cell → IDs stay valid after edits
jupyter_run_cells → starts async, returns immediately
jupyter_wait_until_idle → blocks until done (or poll get_status)
jupyter_get_outputs → inline short text, artifact files for big/binary
jupyter_get_variables → inspect kernel state after runsArquitectura
AI agent ──HTTP/JSON-RPC──▶ VS Code extension (in-process http server :9123)
│ vscode.* APIs + ms-toolsai.jupyter public API
▼
notebook cells, outputs, kernel statusLas interacciones con el kernel usan la API pública documentada ms-toolsai.jupyter (kernel.executeCode, comandos de interrupción/reinicio, comandos de listado de variables/pip) con respaldo de comandos; el seguimiento de la ejecución depende de workspace.onDidChangeNotebookDocument.
Desarrollo
npm install
npm run compile # typecheck
npm run lint
npm run build # esbuild bundle
npm run smoke # local protocol smoke test (vscode stubbed)
npx @vscode/vsce packageReferencias
Model Context Protocol — transporte Streamable HTTP, especificación 2025-11-25
microsoft/vscode-copilot-chat (MIT) — resumen de variables, presupuestos de truncamiento y patrones de filtrado por símbolos
SMARK OpenCode IDE Bridge — comprobaciones previas del kernel mediante la API pública de Jupyter, respaldo de comandos de interrupción/reinicio, seguimiento de finalización basado en eventos
kriss-spy/opencode-jupyter — concepto original de puente HTTP
Licencia
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceExposes VSCode Jupyter notebooks to MCP-compatible AI agents, enabling them to read, edit, and run cells against the same kernel.MIT
- AlicenseAqualityDmaintenanceEnables AI agents to interact with Jupyter notebooks via MCP tools for querying, modifying, executing, and setting up notebooks, with state preservation and real-time collaboration.444Apache 2.0
- AlicenseAqualityCmaintenanceEnables AI agents to create, read, edit, and execute Jupyter notebook cells, manage kernels, and connect to remote Jupyter servers.21MIT
- AlicenseBqualityBmaintenanceAn MCP server that connects directly to a Jupyter kernel via ZMQ, enabling AI assistants to read, create, edit, execute, and manage Jupyter Notebooks as MCP tools.9MIT
Related MCP Connectors
MCP server exposing the Backtest360 engine API as tools for AI agents.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Live browser debugging for AI assistants — DOM, console, network via MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/hadiproz/jupyter-vscode-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server