/ ディレクトリ / プレイグラウンド / jupyter-mcp-server
● コミュニティ datalayer ⚡ 即起動

jupyter-mcp-server

作者 datalayer · datalayer/jupyter-mcp-server

Claudeがあなたのアップロード済みJupyterノートブックをリアルタイムで実行・読取ができます。セルを実行して、プロットを表示して、エラーから復旧できるすべてがチャット内で完結します。

jupyter-mcp-server (Datalayer) は、MCP クライアントを実行中の JupyterLab/Jupyter Server インスタンスに接続します。複数のノートブック、画像/プロット出力、カーネル管理、エラー復旧ループに対応しています。データ探索、再現可能な分析、またはエージェントがノートブックをチームメイトのように操作する場面に役立ちます。

なぜ使うのか

主な機能

ライブデモ

実際の動作

jupyter.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "jupyter": {
      "command": "uvx",
      "args": [
        "jupyter-mcp-server"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "jupyter": {
      "command": "uvx",
      "args": [
        "jupyter-mcp-server"
      ],
      "_inferred": true
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "jupyter": {
      "command": "uvx",
      "args": [
        "jupyter-mcp-server"
      ],
      "_inferred": true
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "jupyter": {
      "command": "uvx",
      "args": [
        "jupyter-mcp-server"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "jupyter",
      "command": "uvx",
      "args": [
        "jupyter-mcp-server"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "jupyter": {
      "command": {
        "path": "uvx",
        "args": [
          "jupyter-mcp-server"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add jupyter -- uvx jupyter-mcp-server

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: jupyter-mcp-server

Claude + Jupyterでの探索的データ分析の実行方法

👤 データサイエンティスト、アナリスト ⏱ ~30 min intermediate

使うタイミング: 新しいデータセットがあり、ボイラープレートセルを自分で書かずに操作したいときに使用します。

前提条件
  • トークン認証でJupyterLabを実行 — jupyter lab --no-browser を実行して、URLからトークンをコピー
  • JUPYTER_URL + JUPYTER_TOKEN 環境変数 — ラボのURLとトークンに設定
フロー
  1. ノートブックとデータを読み込む
    use_notebook を使用して analysis.ipynb を開きます。./data/events.parquet を DataFrame df に読み込むセルを挿入してください。✓ コピーしました
    → セルが実行され、df.head() プレビューが返される
  2. 分析を反復
    event_type の分布はどのような様子ですか?プロットして、画像を表示してください。✓ コピーしました
    → ヒストグラム画像がチャットに表示される
  3. クリーンなノートブックを保存
    ノートブックをクリーンアップしてください:エラーセルを削除し、マークダウンヘッダーを追加し、restart-run-all で上から下まで実行されることを確認してください。✓ コピーしました
    → 最初から最後まで再現できるノートブック

結果: ナラティブ、チャート、検証済みの再現性を備えた公開可能なノートブック。

注意点
  • カーネル状態がノートブックのセル順序からずれる — 編集後に notebook_run-all-cells を使用して、隠された状態のバグをキャッチする
  • データファイルがカーネルに見えない — カーネルのCWDはJupyterを開始した場所ではなく、ノートブックのディレクトリです。絶対パスを使用してください。
組み合わせ: filesystem

Claude と jupyter-mcp を使用した自己修復ノートブック

👤 パイプラインを反復中の研究者 ⏱ ~45 min advanced

使うタイミング: 長いノートブックが途中で失敗し、エージェントにセルを修正して再開してほしいときに使用します。

フロー
  1. エラーキャッチを伴う実行
    pipeline.ipynb のすべてのセルを実行します。セルがエラーになった場合、トレースバックを読み、コードを修正し、続行する前に再度実行してください。✓ コピーしました
    → 最初のエラーを越えてノートブックが継続し、修正が適用される
  2. レビューのための修正をログ記録
    実施したすべての修正を、変更されたコードの上のマークダウンセルとしてまとめてください。✓ コピーしました
    → エージェント編集の監査証跡

結果: パイプラインが可視的な修復履歴を伴って完了します。

自然言語のレッスンアウトラインから教育用ノートブックを生成

👤 教育者、テクニカルライター ⏱ ~30 min beginner

使うタイミング: 学生のためのワークド例ノートブックやブログ記事を作成したいときに使用します。

フロー
  1. アウトライン→スキャフォルド
    このレッスンアウトライン[貼り付け]から、lesson.ipynb をマークダウンセルとしてセクションを備え、コードセルをスキャフォルド化して作成してください。✓ コピーしました
    → 構造を備えたノートブック
  2. コードセルを埋め、検証
    各コードセルを実行可能な例で充実させます。上から下まで実行し、エラーがないことを確認してください。✓ コピーしました
    → 学生が実行できるクリーンなノートブック

結果: 数時間ではなく数分で作成された、教育の準備ができたノートブック。

組み合わせ

他のMCPと組み合わせて10倍の力を

jupyter + filesystem

ノートブックの作業ディレクトリへ/からアーティファクトを移動

ノートブックで保存されたプロットを、ファイルシステムMCP経由で./reports/<date>/にコピーしてください。✓ コピーしました
jupyter + postgres

ノートブック内からPostgresからデータを取得

新しいセルで、pandas.read_sql とDB接続を使用して、先月のイベントを読み込んでから、EDAを実行してください。✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
use_notebook path: str ノートブックを開く/アタッチ 0
list_notebooks 利用可能なノートブックを検索 0
execute_cell notebook_id, cell_index 特定のセルを実行 カーネル時間
insert_execute_code_cell notebook_id, code, position? 新しいコードを追加して実行 カーネル時間
read_cell notebook_id, cell_index 既存のセルを検査 0
list_kernels 実行中のものを確認し、ゾンビカーネルを検出 0
restart_notebook notebook_id カーネル状態をクリーンにリセット 0

コストと制限

運用コスト

APIクォータ
MCPからなし;Jupyterはあなたのものです
呼び出しあたりのトークン
出力は大きくなります — 特に画像やDataFrameのヘッド
金額
無料(自己ホスト)
ヒント
df.head()df.info() を使用し、print(df) は使用しないでください — 完全なDataFrameはトークン使用を肥大化させます

セキュリティ

権限、シークレット、影響範囲

認証情報の保管: 環境変数のJUPYTER_TOKEN — パスワードのように扱う;誰でもカーネルでコードを実行できます
データ送信先: MCPはあなたのJupyterサーバーURLにのみ通信します

トラブルシューティング

よくあるエラーと対処法

Jupyterに接続するときの401 Unauthorized

JUPYTER_TOKEN が古い — jupyter server list から新しくコピー

確認: curl -H 'Authorization: token <TOKEN>' $JUPYTER_URL/api
カーネルビジー/返されない

前のセルはまだ実行中です。restart_notebook を使用して復旧し、無限ループを監視してください

確認: list_kernels shows state=busy
プロットがClaudeに表示されない

%matplotlib inline が設定されていることを確認し、最後で plt.show() を呼び出すだけでなく、図を返していることを確認してください

代替案

jupyter-mcp-server 他との比較

代替案代わりに使う場面トレードオフ
nteract/papermillインタラクティブチャットなしでスクリプト化/パラメータ化されたノートブック実行を必要としますエージェントループなし;バッチスタイル
marimo隠された状態が少ない反応性ノートブックを必要とします完全に異なるツール;まだMCPはありません

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る