Python Sandbox MCP Server について
Python Sandbox MCP Serverは、隔離されたDockerコンテナ内でLLMにPythonを実行させます。コード実行、出力の取得、グラフ生成が必要なMCPクライアント向けです。
主な機能
- 01標準出力を取得するPython実行
- 02MatplotlibによるPNG画像の生成
- 03Snekbox Dockerによる隔離
- 04SSE通信
活用シーン
- 01LLMから依頼されたPythonコードの実行
- 02Pythonでのグラフ画像の生成
- 03取得した出力のクライアントへの返却
MCP 対応
MCPクライアントにPython実行機能を提供し、SSE通信に対応します。Snekbox APIのエンドポイントを設定できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Python Sandbox MCP Server
LLM が分離された Docker コンテナ内で Python コードを安全に実行できる、セキュアな Python コード実行サーバーです。サーバーは以下をサポートしています。
- 標準出力を取得する通常の Python コード実行
- PNG 画像を生成する Matplotlib プロット
- Snekbox Docker コンテナによる安全なサンドボックス化
- Server-Sent Events(SSE)を使用したリアルタイム通信
開発
開発を始めるには、以下の手順に従ってください。
ステップ 1:リポジトリをクローンする
リポジトリをフォークしてクローンします。
git clone https://github.com/username/python_sandbox_mcp_server.git
プロジェクトディレクトリに移動します。
cd python_sandbox_mcp_server
ステップ 2:依存関係をインストールする
必要な依存関係をインストールします。
uv add -r requirements.txt
ステップ 3:Python Sandbox をビルドする
Snekbox コンテナイメージをプルします。
docker pull ghcr.io/python-discord/snekbox:latest
セキュリティパラメーターを指定してコンテナを起動します。
docker run -d --ipc=none --privileged -p 8060:8060 ghcr.io/python-discord/snekbox
追加の依存関係をインストールします(任意)。
- 追加の Python パッケージが必要な場合は、次のようにインストールできます。
docker exec <container_id> /bin/sh -c \
'PYTHONUSERBASE=/snekbox/user_base /snekbox/python/default/bin/python -m pip install --user <package_name>'
<container_id>を実行中の Snekbox コンテナの ID に、<package_name>をインストールするパッケージ名に置き換えてください。
ステップ 4:MCP サーバーの設定を更新する
ローカルビルドを参照するように、MCP サーバーの設定を更新します。
{
"mcpServers": {
"python-sandbox-sse": {
"command": "mcp-proxy",
"args": [
"http://localhost:8060/eval"
],
"ssePath": "/eval"
}
}
}
設定
サーバーは、以下の環境変数を使用するか、Config クラスを変更して設定できます。
MCP_SERVER_NAME:サーバー識別子(デフォルト:「python-sandbox-mcp-sse」)SNEKBOX_URL:Snekbox API エンドポイント(デフォルト:「http://localhost:8060/eval」)TEMP_DIR:一時ファイルを保存するディレクトリ
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
