Jupyter Notebook MCP Server
Project description
Jupyter Notebook MCP Server
Jupyter NotebookをModel Context Protocol (MCP)を通じて操作するためのサーバー
Jupyter NotebookをModel Context Protocol (MCP)を通じて操作するためのサーバーです。このサーバーを使用することで、Jupyter Notebookのセルの追加、編集、削除、実行、結果取得などの操作をMCPクライアント(例:Claude)から行うことができます。
目次
概要
Jupyter Notebook MCP ServerはJupyter NotebookをModel Context Protocol (MCP)を通じて操作するためのサーバーです。MCPクライアント(Claude AIなど)からJupyter Notebookを制御し、データ分析や機械学習のワークフローを自動化できます。
インストール
依存関係のインストール
# PyPIからインストール
pip install jupyter-notebook-mcp
# または開発版をインストール
uv pip install -e "git+https://github.com/yourusername/jupyter-notebook-mcp.git#egg=jupyter-notebook-mcp"
# 開発モードでインストール(開発ツールを含む)
uv pip install -e ".[dev]"
# uvコマンドを使用する場合
uv add jupyter-notebook-mcp
# 開発用
uv add -e .
Claudeデスクトップでの利用
サーバーが起動したら、MCPコマンドラインツールを使って、Claudeデスクトップアプリにインストールできます:
# サーバーの起動
python -m jupyter_notebook_mcp
# Claudeにインストール
mcp install -m jupyter_notebook_mcp
# または特定のスクリプトを指定してインストール
mcp install src/jupyter_notebook_mcp_server.py
# カスタム名を付ける場合
mcp install src/jupyter_notebook_mcp_server.py --name "Jupyter Notebook操作"
# 環境変数を設定する場合
mcp install src/jupyter_notebook_mcp_server.py -v JUPYTER_PATH=/path/to/notebooks
クイックスタート
# Jupyter Notebook MCPサーバーを使った基本的な操作例
# サーバーを起動
python -m jupyter_notebook_mcp
# Claudeで以下のような指示を与える
# 「新しいノートブックを作成して、pandas DataFrameを使ったデータ分析コードを追加してください」
機能
ノートブック操作
- ノートブックを開く/保存する
- ノートブックの内容を取得する
- 新規ノートブックの作成
セル操作
- コードセル/マークダウンセルの追加
- セルの編集/削除
- セルの実行
- セルのソースコード/出力結果の取得
カーネル情報
- 利用可能なカーネルの一覧取得
- カーネル接続情報の管理
使用例
Claude AIに以下のような指示を出すことができます:
- 「新しいノートブックを作成して、pandas DataFrameを使ったサンプルコードを追加してください」
- 「3番目のセルを実行して結果を表示してください」
- 「すべてのセルを実行してください」
- 「2番目のセルのコードを修正して、matplotlibでグラフを描画するようにしてください」
高度な使い方
カスタムサーバーの作成
from jupyter_notebook_mcp import JupyterMCP
# カスタムサーバーの作成
jupyter_mcp = JupyterMCP("カスタムJupyterMCP")
# カスタムツールの追加
@jupyter_mcp.mcp.tool()
def custom_tool(parameter: str) -> str:
return f"カスタム機能: {parameter}"
# サーバーの実行
if __name__ == "__main__":
jupyter_mcp.run(host="0.0.0.0", port=8080)
APIサーバーとの統合
Jupyter Notebook MCPサーバーは既存のASGIアプリケーションにマウントすることもできます:
from starlette.applications import Starlette
from starlette.routing import Mount
from jupyter_notebook_mcp import JupyterMCP
jupyter_mcp = JupyterMCP()
# 既存のASGIサーバーにマウント
app = Starlette(
routes=[
Mount('/jupyter-notebook-mcp', app=jupyter_mcp.mcp.sse_app()),
]
)
開発
テスト
テストの実行方法:
# すべてのテストを実行
python -m pytest
# 特定のテストモジュールを実行
python -m pytest tests/test_notebook_operations.py
# 詳細な実行ログを表示
python -m pytest -v
# テストカバレッジレポートを生成
python -m pytest --cov=src
テストの構成
テストは以下のように構成されています:
conftest.py- 共通のフィクスチャとユーティリティ関数test_mcp_server.py- MCPサーバー自体のテストtest_notebook_operations.py- ノートブック操作に関するテストtest_cell_operations.py- セル操作に関するテストtest_execution.py- ノートブックとセルの実行に関するテストfixtures/- テスト用のフィクスチャファイル
テストでは以下のフィクスチャが利用可能です:
jupyter_mcp- JupyterMCPインスタンスsample_notebook_path- サンプルノートブックへのパスtemp_notebook- テスト用の一時的なノートブック
注意事項
- セルの実行テストは環境によって失敗する場合があります
- テストではMCP APIの特性上、asyncio関数を使用しています
- テスト実行にはpytest-asyncioプラグインが必要です
貢献
プルリクエストやイシューは歓迎します。大きな変更を加える前には、まずイシューで議論することをお勧めします。
- リポジトリをフォークする
- フィーチャーブランチを作成する (
git checkout -b feature/amazing-feature) - 変更をコミットする (
git commit -m 'Add amazing feature') - ブランチをプッシュする (
git push origin feature/amazing-feature) - プルリクエストを作成する
ライセンス
このプロジェクトはMITライセンスの下で公開されています - 詳細はLICENSEファイルをご覧ください。
謝辞
このプロジェクトはModel Context ProtocolのPython SDKを使用しています。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jupyter_notebook_mcp-0.1.0.tar.gz.
File metadata
- Download URL: jupyter_notebook_mcp-0.1.0.tar.gz
- Upload date:
- Size: 179.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3daef15a556c74c7210f0aabcdd98dfb4423ef9a5a1bc937bfca726a5bd58c83
|
|
| MD5 |
bbe74912b8ba5267b1b1de7a39f56b35
|
|
| BLAKE2b-256 |
f7e952b66b61675ff32315a69bb951ec15f34516f6857c44036ab76cc11c39ef
|
File details
Details for the file jupyter_notebook_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: jupyter_notebook_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 13.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b35c9289e3c1ea16987d8cde92d6f1da26fe1ff7e7a87edaf41e7cf1c25615e4
|
|
| MD5 |
66750f21fe4656c4df04e7dd0aedbb60
|
|
| BLAKE2b-256 |
3ee48b121c7251296992db6e91e411c64881146f4f315502e98d0145a6b78daf
|