vscode-notebook-mcp
vscode-notebook-mcp
Расширение для VS Code, которое предоставляет доступ к Jupyter-ноутбукам в вашем редакторе VSCode для MCP-совместимых ИИ-агентов (например, Claude Code). Агент читает, редактирует и запускает ячейки, используя то же ядро, что и VS Code.
Статус: pre-alpha, проект одного разработчика. Написан с нуля; не является форком.
Инструменты (12)
Обнаружение
Инструмент | Описание |
| Список всех открытых ноутбуков с URI, именем файла, количеством ячеек и информацией о том, какой из них активен |
| Список ячеек с индексом, типом, языком, превью и состоянием выполнения |
| Полный исходный код ячейки |
| Вывод ячейки (текст, ошибки, изображения в формате base64) |
Манипуляции с ячейками
Инструмент | Описание |
| Вставка кодовой или markdown-ячейки в любую позицию; опционально с выполнением |
| Замена содержимого существующей ячейки |
| Удаление ячейки по индексу |
Выполнение
Инструмент | Описание |
| Выполнение существующей кодовой ячейки и возврат вывода |
| Очистка вывода одной ячейки |
| Очистка вывода всех ячеек |
Ядро
Инструмент | Описание |
| Язык, статус, URI ноутбука |
| Программный выбор по |
Все инструменты принимают опциональный параметр notebook_uri (если опущен → используется активный редактор ноутбука) и response_format ("markdown" или "json").
Related MCP server: lsp-mcp
Настройка
Установите расширение Jupyter в VS Code, если оно еще не установлено.
Соберите и запустите это расширение:
npm install npm run buildЗатем откройте эту папку в VS Code и нажмите F5, чтобы запустить хост разработки расширений с загруженным расширением.
Добавьте в конфигурацию вашего MCP-клиента:
{ "mcpServers": { "notebook": { "url": "http://127.0.0.1:49777/mcp" } } }Откройте файл
.ipynbв хосте разработки расширений. Ищите индикатор🪐 :49777в строке состояния.
Конфигурация
Настройка | По умолчанию | Описание |
|
| Предпочитаемый порт. Автоматически увеличивается, если занят (до +99). |
Команды
Notebook MCP: Restart ServerNotebook MCP: Show Server Info
Архитектура
┌─────────────────────────────────────────────────────────┐
│ 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.) │
└───────────────────────────────┘Примечания по реализации
Запись выполняется через
vscode.NotebookEdit+vscode.WorkspaceEdit, сохраняя историю отмены/повтора (undo/redo).Выполнение отправляет команду
notebook.cell.executeи ожидает, опрашиваяcell.executionSummary.successна наличие значенияboolean(VS Code создает сводку сразу после начала выполнения, ноsuccessстановится логическим значением только после завершения работы ядра).Вставленные ячейки помечаются идентификатором метаданных, чтобы исполнитель мог найти их снова после того, как индексы сместятся из-за других одновременных правок.
Мульти-ноутбук: каждый инструмент принимает
notebook_uri. Разрешение: явный URI → поиск вvscode.workspace.notebookDocuments(или открытие); в противном случае — возврат кvscode.window.activeNotebookEditor.
Разработка
npm install
npm run build # esbuild bundle
npm run watch # rebuild on change
npm run typecheck # tsc --noEmit
npm test # vitest (no tests yet)Нажмите F5 в VS Code, чтобы запустить хост разработки расширений.
Ссылки
Другие проекты, похожие на этот:
datalayer/jupyter-mcp-server — MCP-сервер, который взаимодействует с запущенным сервером Jupyter через HTTP/WebSocket.
olavocarvalho/vscode-runtime-notebook-mcp — архитектура, аналогичная этому проекту (API ноутбуков VS Code + встроенный HTTP MCP-сервер).
Я создал этот проект с нуля, чтобы изучить возможности, иметь пространство для настройки дизайна и разработки новых функций.
Лицензия
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