vscode-notebook-mcp
vscode-notebook-mcp
Una extensión de VS Code que expone los notebooks de Jupyter en tu editor de VSCode a agentes de IA compatibles con MCP (por ejemplo, Claude Code). El agente lee, edita y ejecuta celdas utilizando el mismo kernel que usa VS Code.
Estado: pre-alfa, proyecto de un solo desarrollador. Creado desde cero; no es un fork.
Herramientas (12)
Descubrimiento
Herramienta | Descripción |
| Lista todos los notebooks abiertos con URI, nombre de archivo, recuento de celdas y cuál está activo |
| Lista las celdas con índice, tipo, lenguaje, vista previa y estado de ejecución |
| Fuente completa de una celda |
| Salidas de una celda (texto, errores, imágenes en base64) |
Manipulación de celdas
Herramienta | Descripción |
| Inserta una celda de código o markdown en cualquier posición; opcionalmente ejecuta |
| Reemplaza el contenido de una celda existente |
| Elimina una celda por índice |
Ejecución
Herramienta | Descripción |
| Ejecuta una celda de código existente y devuelve las salidas |
| Borra las salidas de una celda |
| Borra las salidas de todas las celdas |
Kernel
Herramienta | Descripción |
| Lenguaje, estado, URI del notebook |
| Programático mediante |
Todas las herramientas aceptan un notebook_uri opcional (si se omite, utiliza el editor de notebook activo) y response_format ("markdown" o "json").
Related MCP server: lsp-mcp
Configuración
Instala la extensión de Jupyter en VS Code si aún no la tienes.
Compila y ejecuta esta extensión:
npm install npm run buildLuego abre esta carpeta en VS Code y presiona F5 para iniciar un Host de Desarrollo de Extensiones con la extensión cargada.
Añade a la configuración de tu cliente MCP:
{ "mcpServers": { "notebook": { "url": "http://127.0.0.1:49777/mcp" } } }Abre un archivo
.ipynben el Host de Desarrollo de Extensiones. Busca el indicador🪐 :49777en la barra de estado.
Configuración
Ajuste | Predeterminado | Descripción |
|
| Puerto preferido. Se incrementa automáticamente si está ocupado (hasta +99). |
Comandos
Notebook MCP: Restart ServerNotebook MCP: Show Server Info
Arquitectura
┌─────────────────────────────────────────────────────────┐
│ VS Code window │
│ │
│ ┌───────────────────────────────────────────────────┐ │
│ │ Jupyter extension (ms-toolsai.jupyter) │ │
│ │ │ │
│ │ Notebook document ◄──► Kernel ──► Outputs │ │
│ └───────────────────────────────────────────────────┘ │
│ ▲ │
│ │ vscode.NotebookEdit, │
│ │ notebook.cell.execute, │
│ │ jupyter.kernels.getKernel │
│ │ │
│ ┌───────────────────────┴───────────────────────────┐ │
│ │ This extension │ │
│ │ │ │
│ │ HTTP server :49777 ──► MCP tools (12) │ │
│ │ (StreamableHTTPServerTransport) │ │
│ └───────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
│ HTTP (MCP protocol)
▼
┌───────────────────────────────┐
│ AI agent │
│ (Claude Code, Cursor, etc.) │
└───────────────────────────────┘Notas de implementación
Las escrituras pasan por
vscode.NotebookEdit+vscode.WorkspaceEdit, preservando deshacer/rehacer.La ejecución envía
notebook.cell.executey espera mediante el sondeo decell.executionSummary.successpara obtener un valorboolean(VS Code crea el resumen tan pronto como comienza la ejecución, perosuccesssolo se convierte en booleano cuando el kernel termina).Las celdas insertadas están etiquetadas con un id de metadatos para que el ejecutor pueda encontrarlas de nuevo después de que el índice cambie debido a otras ediciones concurrentes.
Multi-notebook: cada herramienta acepta
notebook_uri. Resolución: URI explícito → buscar envscode.workspace.notebookDocuments(o abrirlo); de lo contrario, recurrir avscode.window.activeNotebookEditor.
Desarrollo
npm install
npm run build # esbuild bundle
npm run watch # rebuild on change
npm run typecheck # tsc --noEmit
npm test # vitest (no tests yet)Presiona F5 en VS Code para iniciar el Host de Desarrollo de Extensiones.
Referencias
Otros proyectos en líneas similares a este proyecto:
datalayer/jupyter-mcp-server — Servidor MCP que se comunica con un servidor Jupyter en ejecución a través de HTTP/WebSocket.
olavocarvalho/vscode-runtime-notebook-mcp — arquitectura similar a este proyecto (API de Notebook de VS Code + servidor MCP HTTP integrado).
He construido esto desde cero para aprender y así tener espacio para ajustar el diseño y desarrollar nuevas funciones.
Licencia
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Read and write your Fresh Jots notes from Claude, Cursor, and any MCP client.
System-of-record notebook for AI coding agents: pages, datastores, tasks, skills over MCP.
The OpenRouter MCP server plugs OpenRouter into the AI tools you already use. Once connected, your assistant can pull live OpenRouter data (models, prices, your credits, rankings, and docs) and send quick test messages, all without leaving your editor.
Your org's AI agents, tasks, runs, search, and brain files as MCP tools and resources.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to read, edit, execute cells, and capture outputs from Jupyter notebooks directly within VS Code or Cursor via the Model Context Protocol.6 npm16MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with VS Code's language server protocol features (definitions, references, diagnostics) and debugger (breakpoints, stepping, variable inspection) via an MCP server.9 npm1MIT
- AlicenseNot gradedqualityAmaintenanceVS Code extension that bridges local Jupyter Notebooks with AI Agents via MCP, enabling direct control of the active notebook tab.2MIT
- AlicenseNot gradedqualityBmaintenanceEnables external agents to run, edit, create, and manage the Jupyter notebook the user is actively editing in VS Code, headlessly and without approval dialogs. Works with any MCP client and is Jupyter-optional for document operations.1MIT