Skip to main content
Glama
hadiproz

jupyter-vscode-mcp

by hadiproz

Jupyter VS Code MCP

License: MIT MCP

VS Code 拡張機能。Jupyter ノートブックの操作を プレーンな HTTP 経由の MCP ツール として公開します。あらゆる AI コーディングエージェントに対応するポータブルな URL を 1 つ提供します。絶対パスも node コマンドも stdio 配線も不要です。

任意の MCP クライアントをその URL に向けるだけで、エージェントはライブなエディタセッション内のノートブックを参照・編集・実行・デバッグできます。あなたが見ているのと同じセルを見て、ノートブックが使用しているのと同じカーネル(ローカル またはリモート — Colab も含む)と通信し、すべての操作が実際の VS Code UI に反映されます。

機能

安定したセルハンドルによるノートブック編集

  • すべてのセルは、#NB-xxxxxxxx という単一の統一スキームで識別され、標準の nbformat 4.5 の cell id フィールドに永続化されます。編集、他のセルの挿入/削除、インデックスのずれ、保存/再オープン、拡張機能のリロードを経ても維持され、ファイルを別のマシンにコピーしても維持されます。

  • 削除後の ID の再利用は行われません。新しいセルには常に新しいランダムな ID が付与されます。jupyter_get_summary は ID を持たないセル(UI で手動作成されたセルなど)に ID を割り当てるため、報告されたすべてのハンドルをすぐに再利用できます。

  • インデックスは(サマリー、ソース、実行範囲、出力の)すべての場所で 0 始まり です。混在する規約はありません。

ノンブロッキング実行制御

  • 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 で表します。利用可能な場合は公式の Jupyter 変数ビュー API を使用し、それ以外の場合は実行カウントに一切触れないサイレントなカーネルプローブを使用します。オプションのドキュメントシンボルフィルタリングは、シンボルが実際に利用可能な場合にのみ内部ノイズを隠します。

  • jupyter_get_pip_packages — アクティブなカーネル環境からの環境インベントリ(名前 + バージョン)

  • jupyter_install_packages — pip はカーネル自身のインタープリタ内で実行されるため、パッケージはノートブックが実際に使用するランタイムにインストールされます。Colab のようなリモート VM も含まれ、ローカルホストにはインストールされません。バージョン指定と --upgrade をサポートし、その後各指定が解決されることを検証します。また、成功したふりをせず、正直な失敗(pip の実際の出力の末尾付き)を報告します。

  • jupyter_get_status は、古いメタデータを信頼せず、ライブなカーネルに実際の Python バージョン/プラットフォームを問い合わせます。

  • jupyter_select_kernel は、カーネルがアクティブでない場合に VS Code のネイティブなカーネルピッカーを開きます。

ネットワーク専用 MCP トランスポート

  • プレーンな JSON レスポンスを持つ Streamable HTTP (MCP 仕様 2025-11-25)。最小限のクライアントは curl だけで動作します。

  • エンドポイント: /mcp(レガシー /sse も)、GET /health は死活監視 + バージョンプローブ用。

  • 複数の同時エージェントセッションをサポート。セッションは実行中のポート変更後も維持されます。

正直なレポート

エラーにはコンテキストと次のステップのヒントが含まれます。カーネルが見つからない → 起動ガイダンス、古い ID → サマリーで更新、pip インストール失敗 → 実際の pip エラー末尾、ビジーなカーネル → 黙って空の結果を返す代わりに明示的な延期メモ。

Related MCP server: Jupyter MCP Server

ツール

ツール

説明

jupyter_list_open_notebooks

開いているノートブックを URI、パス、セル数、ダーティフラグ付きで返す

jupyter_get_summary

コンパクトなマップ: 安定した ID、種類、実行ステータス、出力 MIME、プレビュー

jupyter_get_cell_source

ID または 0 始まりインデックスによる 1 つのセルのソース。行ページネーション付き

jupyter_edit_cell

ソースを置換。その後も ID は有効

jupyter_insert_cell / jupyter_delete_cell

0 始まりの位置での構造編集。新しく再利用されない ID

jupyter_save_notebook

.ipynb をディスクに保存

jupyter_create_notebook

空の .ipynb をディスク上に作成し、エディタで開く

jupyter_run_cells

ノンブロッキング開始: インデックス範囲 [start,end) または順序付き ID リスト

jupyter_wait_until_idle

アイドルまたはタイムアウトまでポーリング。完了したセルと成功フラグを返す

jupyter_get_status

即時スナップショット: kernelStatus、ライブなランタイム情報、実行中のセル、ダーティ状態

jupyter_interrupt_kernel

現在の実行を中断し、変数を保持

jupyter_restart_kernel

完全再起動(変数をクリア)

jupyter_get_outputs

インライン(短いテキスト)または .jupyter-mcp/artifacts/ 配下の成果物ファイルとして出力

jupyter_get_variables

型を認識したカーネル変数レポート

jupyter_get_pip_packages

カーネル環境のインストール済みパッケージのインベントリ

jupyter_install_packages

バージョン指定 + インストール後検証付きのカーネル側 pip インストール

jupyter_select_kernel

ネイティブなカーネルピッカーを開き、結果の状態を報告

安定したセル ID

すべてのセルには、標準の nbformat 4.5 の cell id フィールドに書き込まれるランダムな永続 ID (#NB-xxxxxxxx) が付与されます。これは、プラットフォーム自体が読み取り、保存/読み込みで往復させるのと同じスロットです。この ID は、位置の変更、コンテンツの編集、隣接セルの挿入/削除、再オープンのサイクルによる影響を受けません。インデックスよりも ID を優先してください。ID を確認するには jupyter_get_summary を呼び出します(ツール外で作成されたセルに欠けている ID もバックフィルされます)。

8 桁の 16 進数のみの入力 (abcd1234) は #NB-abcd1234 の短縮形として受け入れられます。

互換性のあるエージェント

HTTP を話す任意の MCP クライアントで動作します。一般的な設定:

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リリース からダウンロードし、次に:

code --install-extension jupyter-vscode-mcp-<version>.vsix
  1. 任意の .ipynb を開きます — サーバーは 127.0.0.1:9123 で自動起動します(ステータスバーに状態が表示され、クリックで切り替え)。

  2. 上記の URL 設定をエージェントに追加します。

  3. いつでも死活を確認できます: 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

カーネルとのやり取りは、文書化された ms-toolsai.jupyter 公開 API (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

参考文献

ライセンス

MIT

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    A
    quality
    D
    maintenance
    Enables 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.
    4
    44
    Apache 2.0
  • A
    license
    B
    quality
    B
    maintenance
    An 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.
    9
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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