Skip to main content
Glama

Datalayer

Become a Sponsor

🪐🔧 Jupyter MCP Server

AIがJupyterノートブックに接続し、リアルタイムで管理するためのMCPサーバー

開発元: Datalayer

PyPI - Version Total PyPI downloads Docker Pulls License

Jupyter MCP Server Demo

IMPORTANT

v1.0.0での破壊的変更: MCPクライアントの設定で MCP_TOKEN を設定する必要があります。

設定の詳細については、以下を参照してください: https://jupyter-mcp-server.datalayer.tech/providers/jupyter-streamable-http-standalone/#3-configure-your-mcp-client

NOTE

フィードバックをお待ちしています!

現在、JupyterHubおよびGoogle Colabデプロイメントのサポートを積極的に開発中です。これらのプラットフォームでJupyter MCP Serverを使用している、または使用を検討されている場合は、ぜひお知らせください!

  • 🏢 JupyterHubユーザーの方: デプロイメント構成や要件を共有してください

  • 🌐 Google Colabユーザーの方: ユースケースやワークフローについてお聞かせください

コミュニティページで会話に参加してください。皆様からのフィードバックは、機能の優先順位付けや、これらの統合をニーズに合わせてシームレスに機能させるために役立てられます。

📖 目次

Related MCP server: Code Summarizer MCP

🚀 主な機能

  • リアルタイム制御: ノートブックの変更を発生した瞬間に確認できます。

  • 🔁 スマート実行: セル出力のフィードバックにより、セル実行失敗時に自動的に調整します。

  • 🧠 コンテキスト認識: ノートブック全体のコンテキストを理解し、より関連性の高い対話を実現します。

  • 📊 マルチモーダルサポート: 画像、プロット、テキストなど、さまざまな出力タイプをサポートします。

  • 📚 マルチノートブックサポート: 複数のノートブックをシームレスに切り替えられます。

  • 🎨 JupyterLab統合: ノートブックの自動オープンなど、UI統合が強化されています。

  • 🤝 MCP互換: Claude Desktop、Cursor、Windsurfなど、あらゆるMCPクライアントで動作します。

  • 🔍 可観測性: OpenTelemetry統合を備えた組み込みフックシステムにより、ツール呼び出しやカーネル実行のトレースが可能です。

あらゆるJupyterデプロイメント(ローカル、JupyterHubなど)およびDatalayerホスト型ノートブックと互換性があります。

🔧 MCPの概要

🔧 ツールの概要

サーバーは、Jupyterノートブックと対話するための豊富なツールセットを提供しており、以下のように分類されています。 各ツールの詳細、パラメータ、戻り値については、公式ツールドキュメントを参照してください。

サーバー管理ツール

名前

説明

list_files

Jupyterサーバーのファイルシステム内のファイルとディレクトリを一覧表示します。

list_kernels

Jupyterサーバー上で利用可能かつ実行中のすべてのカーネルセッションを一覧表示します。

connect_to_jupyter

MCPサーバーを再起動することなく、動的にJupyterサーバーに接続します。 Jupyter拡張機能として実行している場合は利用できません。サーバーを動的に切り替えたり、ハードコードされた設定を回避したりするのに便利です。 詳細を読む

マルチノートブック管理ツール

名前

説明

use_notebook

ノートブックファイルへの接続、新規作成、またはノートブック間の切り替えを行います。

list_notebooks

Jupyterサーバー上で利用可能なすべてのノートブックとそのステータスを一覧表示します

restart_notebook

特定の管理対象ノートブックのカーネルを再起動します。

unuse_notebook

特定のノートブックから切断し、リソースを解放します。

read_notebook

ノートブックセルのソースコンテンツを、簡潔または詳細なフォーマットオプションで読み取ります。

セル操作および実行ツール

名前

説明

read_cell

単一セルの全コンテンツ(メタデータ、ソース、出力)を読み取ります。

insert_cell

指定した位置に新しいコードセルまたはMarkdownセルを挿入します。

delete_cell

指定したインデックスのセルを削除します。

overwrite_cell_source

既存セルのソースコードを上書きします。

execute_cell

タイムアウト付きでセルを実行します。画像を含むマルチモーダル出力をサポートします。

insert_execute_code_cell

新しいコードセルを挿入し、それを一度に実行します。

execute_code

カーネル内で直接コードを実行します。マジックコマンドやシェルコマンドをサポートします。

JupyterLab統合

JupyterLabモードが有効な場合のみ利用可能です。デフォルトで有効になっています。

JupyterLabモードで実行する場合、Jupyter MCP Serverはjupyter-mcp-toolsと統合され、追加のJupyterLabコマンドをMCPツールとして公開します。デフォルトでは、以下のツールが有効になっています。

名前

説明

notebook_run-all-cells

現在のノートブック内のすべてのセルを順番に実行します

notebook_get-selected-cell

現在選択されているセルに関する情報を取得します

allowed_jupyter_mcp_tools設定パラメータを使用して、jupyter-mcp-toolsからどのツールを利用可能にするかをカスタマイズできるようになりました。これにより、追加のノートブック操作、コンソールコマンド、ファイル管理ツールなどを有効にできます。

# Example: Enable additional tools via command-line
jupyter lab --port 4040 --IdentityProvider.token MY_TOKEN --JupyterMCPServerExtensionApp.allowed_jupyter_mcp_tools="notebook_run-all-cells,notebook_get-selected-cell,notebook_append-execute,console_create"

利用可能なツールの完全なリストと詳細な設定手順については、追加ツールドキュメントを参照してください。

📝 プロンプトの概要

サーバーはMCPのプロンプト機能もサポートしており、ユーザーがJupyterノートブックと簡単にやり取りできるようにしています。

名前

説明

jupyter-cite

指定したノートブックから特定のセルを引用します(コーディングIDEやCLIの @ のようなもの)

各プロンプトの詳細、入力パラメータ、戻り値の内容については、公式プロンプトドキュメントを参照してください。

🏁 はじめに

Streamable HTTPトランスポート、Jupyterサーバー拡張機能としての実行、高度な設定を含む包括的なセットアップ手順については、当社のドキュメントをご覧ください。または、JupyterLabSTDIOトランスポートを使用して、以下からすぐに開始できます。

1. 環境のセットアップ

pip install jupyterlab==4.4.1 jupyter-collaboration==4.0.2 jupyter-mcp-tools>=0.1.4 ipykernel
pip uninstall -y pycrdt datalayer_pycrdt
pip install datalayer_pycrdt==0.12.17
TIP

環境が正しく設定されていることを確認するには:

  1. JupyterLabでノートブックを開きます

  2. セル(コードまたはMarkdown)に何か入力します

  3. タブのインジケーターを確認します。ノートブック名の横に「×」が表示され、未保存の変更があることが示されます

  4. 数秒待ちます。「×」が手動で保存しなくても自動的に「●」に変わるはずです

この自動保存動作は、リアルタイムコラボレーション機能が正しく動作していることを確認するものであり、MCPサーバー統合に不可欠です。

2. JupyterLabの起動

# Start JupyterLab on port 8888, allowing access from any IP and setting a token
jupyter lab --port 8888 --IdentityProvider.token MY_TOKEN --ip 0.0.0.0
NOTE

上記のようにJupyterLabではなくJupyterHubを通じてノートブックを実行している場合は、JupyterHubセットアップガイドを参照してください。

3. 推奨されるMCPクライアントの設定

次に、サーバーに接続するようにMCPクライアントを設定します。主に2つの方法を提供しています。ニーズに最も適したものを選んでください:

  • 📦 uvxを使用(クイックスタートに推奨): uvを使用した軽量で高速な方法。ローカル開発や初めてのユーザーに最適です。

  • 🐳 Dockerを使用(本番環境に推奨): 一貫した分離された環境を保証するコンテナ化されたアプローチで、本番環境や複雑なセットアップに最適です。

まず、uvをインストールします:

pip install uv
uv --version
# should be 0.6.14 or higher

uvのインストールの詳細を参照してください。

次に、クライアントを設定します:

{
  "mcpServers": {
    "jupyter": {
      "command": "uvx",
      "args": ["jupyter-mcp-server@latest"],
      "env": {
        "JUPYTER_URL": "http://localhost:8888",
        "JUPYTER_TOKEN": "MY_TOKEN",
        "ALLOW_IMG_OUTPUT": "true"
      }
    }
  }
}

macOSおよびWindowsの場合:

{
  "mcpServers": {
    "jupyter": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "JUPYTER_URL",
        "-e", "JUPYTER_TOKEN",
        "-e", "ALLOW_IMG_OUTPUT",
        "datalayer/jupyter-mcp-server:latest"
      ],
      "env": {
        "JUPYTER_URL": "http://host.docker.internal:8888",
        "JUPYTER_TOKEN": "MY_TOKEN",
        "ALLOW_IMG_OUTPUT": "true"
      }
    }
  }
}

Linuxの場合:

{
  "mcpServers": {
    "jupyter": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "JUPYTER_URL",
        "-e", "JUPYTER_TOKEN",
        "-e", "ALLOW_IMG_OUTPUT",
        "--network=host",
        "datalayer/jupyter-mcp-server:latest"
      ],
      "env": {
        "JUPYTER_URL": "http://localhost:8888",
        "JUPYTER_TOKEN": "MY_TOKEN",
        "ALLOW_IMG_OUTPUT": "true"
      }
    }
  }
}
TIP
  1. ポート設定: Jupyter URLのportjupyter labコマンドで使用されるものと一致していることを確認してください。設定を簡略化するには、JUPYTER_URLでこれを設定します。

  2. サーバーの分離: 両方のサービスが同じサーバー上にある場合はJUPYTER_URLを使用するか、高度なデプロイメント用に個別の変数を設定します。URL変数が分かれているのは、一部のデプロイメントではノートブックストレージ(DOCUMENT_URL)とカーネル実行(RUNTIME_URL)が分離されているためです。

  3. 認証: 多くの場合、ドキュメントサービスとランタイムサービスは同じ認証トークンを使用します。設定を簡略化するにはJUPYTER_TOKENを使用するか、異なる資格情報が必要な場合はDOCUMENT_TOKENRUNTIME_TOKENを個別に設定します。

  4. ノートブックパス: DOCUMENT_IDパラメータは、MCPクライアントがデフォルトで接続するノートブックへのパスを指定します。これはJupyterLabが起動されたディレクトリからの相対パスである必要があります。DOCUMENT_IDを省略した場合、MCPクライアントはJupyterサーバー上で利用可能なすべてのノートブックを自動的に一覧表示し、プロンプトを通じて対話的に選択できるようにします。

  5. 画像出力: LLMがマルチモーダル理解をサポートしていない場合は、ALLOW_IMG_OUTPUTfalseに設定してください。

Claude DesktopVS CodeCursorClineWindsurfなど、さまざまなMCPクライアントの設定に関する詳細な手順については、クライアントドキュメントを参照してください。

✅ ベストプラクティス

  • 高度なマルチモーダル理解機能を最大限に活用するために、マルチモーダル入力(Gemini 2.5 Proなど)をサポートするLLMと対話してください。

  • 画像データの返却をサポートし、それを解析できるMCPクライアント(Cursor、Gemini CLIなど)を使用してください。一部のクライアントはこの機能をサポートしていない場合があります。

  • 複雑なタスク(データサイエンスのワークフロー全体など)を複数のサブタスク(データクリーニング、特徴量エンジニアリング、モデルトレーニング、モデル評価など)に分解し、ステップバイステップで実行してください。

  • 明確に構造化されたプロンプトとルールを提供してください(👉 プロンプトテンプレートにアクセスして開始してください)

  • 可能な限り多くのコンテキスト(インストール済みのパッケージ、既存データセットのフィールド説明、現在の作業ディレクトリ、詳細なタスク要件など)を提供してください。

🤝 貢献

あらゆる種類の貢献を歓迎します!以下はその例です:

  • 🐛 バグ修正

  • 📝 既存機能の改善

  • 🔧 新機能の開発

  • 📚 ドキュメントの改善とプロンプトテンプレート

開発を開始し、貢献を提出する方法の詳細な手順については、貢献ガイドを参照してください。

コントリビューター

Contributors

📚 リソース

Jupyter MCP Serverに関するブログ記事、動画、その他の資料をお探しですか?

👉 ドキュメントのリソースセクションにアクセスして詳細をご覧ください!

Star History Chart


Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - A tier

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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/datalayer/jupyter-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server