Skip to main content
Glama
caryan

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: lsp-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

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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 npm
    1
    MIT
  • 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