Skip to main content

Jupyter Notebook MCP Server

Project description

Jupyter Notebook MCP Server

Jupyter NotebookをModel Context Protocol (MCP)を通じて操作するためのサーバー

PyPI MIT License Python Version Documentation

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プラグインが必要です

貢献

プルリクエストやイシューは歓迎します。大きな変更を加える前には、まずイシューで議論することをお勧めします。

  1. リポジトリをフォークする
  2. フィーチャーブランチを作成する (git checkout -b feature/amazing-feature)
  3. 変更をコミットする (git commit -m 'Add amazing feature')
  4. ブランチをプッシュする (git push origin feature/amazing-feature)
  5. プルリクエストを作成する

ライセンス

このプロジェクトはMITライセンスの下で公開されています - 詳細はLICENSEファイルをご覧ください。

謝辞

このプロジェクトはModel Context ProtocolのPython SDKを使用しています。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jupyter_notebook_mcp-0.1.0.tar.gz (179.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jupyter_notebook_mcp-0.1.0-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

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

Hashes for jupyter_notebook_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3daef15a556c74c7210f0aabcdd98dfb4423ef9a5a1bc937bfca726a5bd58c83
MD5 bbe74912b8ba5267b1b1de7a39f56b35
BLAKE2b-256 f7e952b66b61675ff32315a69bb951ec15f34516f6857c44036ab76cc11c39ef

See more details on using hashes here.

File details

Details for the file jupyter_notebook_mcp-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for jupyter_notebook_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b35c9289e3c1ea16987d8cde92d6f1da26fe1ff7e7a87edaf41e7cf1c25615e4
MD5 66750f21fe4656c4df04e7dd0aedbb60
BLAKE2b-256 3ee48b121c7251296992db6e91e411c64881146f4f315502e98d0145a6b78daf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page