Skip to main content
Glama
caryan

vscode-notebook-mcp

by caryan

vscode-notebook-mcp

VS Codeエディタ内のJupyterノートブックをMCP互換のAIエージェント(Claude Codeなど)に公開するVS Code拡張機能です。エージェントは、VS Codeが使用しているのと同じカーネルに対して、セルの読み取り、編集、実行を行います。

ステータス: プレアルファ版、個人開発プロジェクト。ゼロから構築されており、フォークではありません。

ツール (12)

探索

ツール

説明

notebook_list_open

URI、ファイル名、セル数、アクティブなノートブックを含む、開いているすべてのノートブックを一覧表示

notebook_list_cells

インデックス、種類、言語、プレビュー、実行状態を含むセルを一覧表示

notebook_get_cell_content

セルの完全なソース

notebook_get_cell_output

セルの出力(テキスト、エラー、base64形式の画像)

セル操作

ツール

説明

notebook_insert_cell

任意の場所にコードセルまたはマークダウンセルを挿入。オプションで実行可能

notebook_edit_cell

既存のセルの内容を置換

notebook_delete_cell

インデックスを指定してセルを削除

実行

ツール

説明

notebook_run_cell

既存のコードセルを実行し、出力を返す

notebook_clear_cell_output

1つのセルの出力をクリア

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. まだインストールしていない場合は、VS Codeに Jupyter拡張機能 をインストールしてください。

  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 を経由し、元に戻す/やり直しを保持します。

  • 実行notebook.cell.execute をディスパッチし、cell.executionSummary.successboolean 値になるまでポーリングして待機します(VS Codeは実行開始直後にサマリーを作成しますが、success はカーネルが終了したときにのみ boolean になります)。

  • 挿入されたセルにはメタデータIDがタグ付けされるため、他の同時編集によってインデックスがずれた後でも、エグゼキューターがそれらを再検索できます。

  • マルチノートブック: すべてのツールが 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)

VS Codeで F5 を押して、拡張機能開発ホストを起動します。

参考文献

このプロジェクトと同様の他のプロジェクト:

私は学習のためにこれをゼロから構築しました。そのため、設計を微調整し、新しい機能を開発する余地があります。

ライセンス

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