Skip to main content
Glama
vscode-notebook-mcp

vscode-notebook-mcp

by caryan

vscode-notebook-mcp

Расширение для VS Code, которое предоставляет доступ к Jupyter-ноутбукам в вашем редакторе VSCode для MCP-совместимых ИИ-агентов (например, Claude Code). Агент читает, редактирует и запускает ячейки, используя то же ядро, что и VS Code.

Статус: pre-alpha, проект одного разработчика. Написан с нуля; не является форком.

Инструменты (12)

Обнаружение

Инструмент

Описание

notebook_list_open

Список всех открытых ноутбуков с URI, именем файла, количеством ячеек и информацией о том, какой из них активен

notebook_list_cells

Список ячеек с индексом, типом, языком, превью и состоянием выполнения

notebook_get_cell_content

Полный исходный код ячейки

notebook_get_cell_output

Вывод ячейки (текст, ошибки, изображения в формате base64)

Манипуляции с ячейками

Инструмент

Описание

notebook_insert_cell

Вставка кодовой или markdown-ячейки в любую позицию; опционально с выполнением

notebook_edit_cell

Замена содержимого существующей ячейки

notebook_delete_cell

Удаление ячейки по индексу

Выполнение

Инструмент

Описание

notebook_run_cell

Выполнение существующей кодовой ячейки и возврат вывода

notebook_clear_cell_output

Очистка вывода одной ячейки

notebook_clear_all_outputs

Очистка вывода всех ячеек

Ядро

Инструмент

Описание

notebook_get_kernel_info

Язык, статус, URI ноутбука

notebook_select_kernel

Программный выбор по kernel_id или открытие выбора ядра, если параметр опущен

Все инструменты принимают опциональный параметр notebook_uri (если опущен → используется активный редактор ноутбука) и response_format ("markdown" или "json").

Related MCP server: Agentic Jupyter MCP

Настройка

  1. Установите расширение Jupyter в VS Code, если оно еще не установлено.

  2. Соберите и запустите это расширение:

    npm install
    npm run build

    Затем откройте эту папку в VS Code и нажмите F5, чтобы запустить хост разработки расширений с загруженным расширением.

  3. Добавьте в конфигурацию вашего MCP-клиента:

    {
      "mcpServers": {
        "notebook": {
          "url": "http://127.0.0.1:49777/mcp"
        }
      }
    }
  4. Откройте файл .ipynb в хосте разработки расширений. Ищите индикатор 🪐 :49777 в строке состояния.

Конфигурация

Настройка

По умолчанию

Описание

notebook-mcp.port

49777

Предпочитаемый порт. Автоматически увеличивается, если занят (до +99).

Команды

  • Notebook MCP: Restart Server

  • Notebook 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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables 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.
      1
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Exposes Jupyter notebook operations as MCP tools over plain HTTP, allowing AI agents to explore, edit, run, and debug notebooks in a live VS Code session using local or remote kernels.
      3
      MIT