jupyter-vscode-mcp
Jupyter VS Code MCP
Расширение VS Code, которое предоставляет операции с блокнотами Jupyter как инструменты MCP через обычный HTTP — один переносимый URL для любого ИИ-агента программирования. Никаких абсолютных путей, никакой команды node, никакой обвязки stdio.
Подключите любой MCP-клиент к этому URL — и агент сможет просматривать, редактировать, запускать и отлаживать блокноты в вашей текущей сессии редактора: он видит те же ячейки, что и вы, общается с тем же ядром, которое использует ваш блокнот (локальным или удалённым — включая Colab), и каждое действие попадает в настоящий интерфейс VS Code.
Возможности
Редактирование блокнота со стабильными идентификаторами ячеек
Каждая ячейка идентифицируется единой схемой:
#NB-xxxxxxxx, сохраняемой в стандартном поле cell id формата nbformat 4.5. Она переживает правки, вставку/удаление других ячеек, сдвиги индексов, сохранение/повторное открытие, перезагрузку расширения — даже копирование файла на другую машину.Идентификаторы никогда не переиспользуются после удаления: новые ячейки всегда получают свежие случайные ID.
jupyter_get_summaryназначает ID любой ячейке, у которой его нет (например, созданной вручную в интерфейсе), поэтому каждый полученный идентификатор можно сразу использовать.Индексы всюду отсчитываются от нуля (сводка, исходники, диапазоны запуска, выводы) — никакой путаницы в соглашениях.
Неблокирующее управление выполнением
jupyter_run_cellsзапускает выполнение и сразу возвращает управление; опрашивайте состояние черезjupyter_wait_until_idleили снимайте снимок черезjupyter_get_status. Никаких слепых пауз и таймаутов MCP на длинных ячейках.Защита от неготового ядра: запуск на неработающем или отсутствующем ядре возвращает полезные подсказки, а не зависает.
jupyter_interrupt_kernelпрерывает текущий запуск, сохраняя все переменные.
Интеллект ядра (уровня Copilot)
jupyter_get_variables— отчёты о переменных с учётом типов: DataFrame/Series как{shape, columns[:8], head(2)}, ndarray как{shape, dtype}, контейнеры сlength, скаляры — короткими repr-представлениями. Использует официальный API представления переменных Jupyter, если он доступен, в противном случае — незаметный опрос ядра, который никогда не затрагивает счётчик выполнений. Опциональная фильтрация по символам документа скрывает внутренний шум только тогда, когда символы действительно доступны.jupyter_get_pip_packages— инвентаризация окружения (имя + версия) из активного окружения ядра.jupyter_install_packages— pip выполняется внутри собственного интерпретатора ядра, поэтому пакеты попадают в среду выполнения, которую реально использует блокнот, — включая удалённые ВМ вроде Colab, но никогда на локальный хост. Поддерживает спецификации версий и--upgrade, проверяет затем, что каждая спецификация разрешается, и честно сообщает об ошибках (с реальным хвостом вывода pip), а не делает вид, что всё успешно.jupyter_get_statusопрашивает живое ядро на предмет реальной версии Python и платформы, а не доверяет устаревшим метаданным.jupyter_select_kernelоткрывает встроенный выбор ядра VS Code, когда ядро не активно.
Транспорт MCP только по сети
Streamable HTTP (спецификация MCP 2025-11-25) с ответами в виде простого JSON — минимальному клиенту достаточно одного
curl.Эндпоинты:
/mcp(плюс устаревший/sse),GET /healthдля проверки живости и определения версии.Поддерживаются несколько одновременных сессий агентов; сессии переживают смену порта на лету.
Честная отчётность
Ошибки содержат контекст и подсказки для следующего шага: отсутствующее ядро → инструкция по запуску, устаревший ID → обновление через сводку, неудачная установка pip → реальный хвост ошибки pip, занятое ядро → явное уведомление об отсрочке вместо молча пустых результатов.
Related MCP server: Jupyter MCP Server
Инструменты
Инструмент | Описание |
| Открытые блокноты с URI, путями, количеством ячеек и флагами изменений |
| Компактная карта: стабильные ID, типы, статус выполнения, MIME-типы вывода, превью |
| Исходник одной ячейки по ID или индексу от нуля; постраничный вывод строк |
| Заменяет исходник; ID остаётся валидным |
| Структурные правки на позициях от нуля; свежие непереиспользуемые ID |
| Сохраняет |
| Создаёт пустой |
| Неблокирующий запуск: диапазон индексов |
| Опрос до бездействия или таймаута; возвращает выполненные ячейки и флаги успеха |
| Мгновенный снимок: kernelStatus, живая информация о рантайме, выполняемые ячейки, состояние изменений |
| Прервать текущее выполнение, сохранить переменные |
| Полный перезапуск (очищает переменные) |
| Выводы встроенно (короткий текст) или файлы-артефакты в |
| Отчёт о переменных ядра с учётом типов |
| Перечень установленных пакетов окружения ядра |
| Установка pip на стороне ядра со спецификациями версий и проверкой после установки |
| Открыть встроенный выбор ядра и сообщить итоговое состояние |
Стабильные идентификаторы ячеек
Каждая ячейка получает случайный постоянный ID (#NB-xxxxxxxx), записываемый в стандартное поле cell id формата nbformat 4.5 — тот же слот, который платформа сама читает и который без потерь проходит через сохранение/загрузку. ID не зависит от изменения позиции, правок содержимого, вставки/удаления соседних ячеек и циклов повторного открытия. Предпочитайте ID индексам; вызывайте jupyter_get_summary, чтобы их узнать (он также добавляет недостающие ID ячейкам, созданным вне инструментов).
Ввод без префикса из 8 шестнадцатеричных символов (abcd1234) принимается как сокращение для #NB-abcd1234.
Совместимые агенты
Работает любой MCP-клиент, говорящий по HTTP. Часто используемые конфигурации:
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
}
}
}Выполните "Jupyter VS Code MCP: Show MCP Configuration" из палитры команд → выберите своего агента → фрагмент скопирован в буфер обмена.
Установка и запуск
Скачайте последний .vsix из Releases, затем:
code --install-extension jupyter-vscode-mcp-<version>.vsixОткройте любой
.ipynb— сервер автоматически запускается на127.0.0.1:9123(строка состояния показывает состояние; нажмите, чтобы переключить).Добавьте указанную выше URL-конфигурацию своему агенту.
Проверяйте живость в любой момент:
curl http://localhost:9123/health.
Настройки: jupyter-vscode-mcp.mcpPort (по умолчанию 9123, применяется на лету), jupyter-vscode-mcp.autoStart (по умолчанию true).
Рекомендуемый рабочий процесс
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 runsАрхитектура
AI agent ──HTTP/JSON-RPC──▶ VS Code extension (in-process http server :9123)
│ vscode.* APIs + ms-toolsai.jupyter public API
▼
notebook cells, outputs, kernel statusВзаимодействие с ядром использует документированный публичный API ms-toolsai.jupyter (kernel.executeCode, команды прерывания/перезапуска, команды перечисления переменных и пакетов pip) с запасными вариантами в виде команд; отслеживание выполнения опирается на workspace.onDidChangeNotebookDocument.
Разработка
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 packageСсылки
Model Context Protocol — транспорт Streamable HTTP, спецификация 2025-11-25
microsoft/vscode-copilot-chat (MIT) — паттерны суммаризации переменных, бюджеты усечения и фильтрации по символам
SMARK OpenCode IDE Bridge — предварительные проверки ядра через публичный API Jupyter, запасные команды прерывания/перезапуска, отслеживание завершения на основе событий
kriss-spy/opencode-jupyter — исходная концепция HTTP-моста
Лицензия
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