mcp-pyodide について
mcp-pyodide は、Pyodide を用いて LLM が MCP インターフェース経由で Python コードを実行できるようにする MCP サーバーです。TypeScript で実装され、stdio と SSE の両方のトランスポートに対応しています。現在も開発段階にあります。
主な機能
- 01Pyodide による Python コードの実行
- 02stdio と SSE のトランスポートモード対応
- 03TypeScript による実装
- 04コマンドラインツールとしての利用
活用シーン
- 01LLM による Python コードの実行と結果の取得
- 02SSE モードを使った Web ベースのクライアントからの接続
MCP 対応
本プロジェクトは、stdio または SSE 経由で LLM クライアントに Python コード実行機能を公開する MCP サーバーです。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-pyodide
Model Context Protocol(MCP)用の Pyodide サーバー実装です。このサーバーを使用すると、LLM は MCP インターフェースを介して Python コードを実行できます。
機能
- Pyodide を使用した、LLM 向けの Python コード実行機能
- MCP 準拠のサーバー実装
- stdio と SSE の両方のトランスポートモードに対応
- TypeScript で記述された堅牢な実装
- コマンドラインツールとして利用可能
インストール
npm install mcp-pyodide
使用方法
サーバーとして
import { runServer } from "mcp-pyodide";
// Start the server
runServer().catch((error: unknown) => {
console.error("Error starting server:", error);
process.exit(1);
});
コマンドラインツールとして
stdio モード(デフォルト)で起動します。
mcp-pyodide
SSE モードで起動します。
mcp-pyodide --sse
SSE モード
SSE モードで実行すると、サーバーは次のエンドポイントを提供します。
- SSE 接続:
http://localhost:3020/sse - メッセージハンドラー:
http://localhost:3020/messages
クライアント接続の例:
const eventSource = new EventSource("http://localhost:3020/sse");
eventSource.onmessage = (event) => {
console.log("Received:", JSON.parse(event.data));
};
プロジェクト構成
mcp-pyodide/
├── src/
│ ├── formatters/ # Data formatting handlers
│ ├── handlers/ # Request handlers
│ ├── lib/ # Library code
│ ├── tools/ # Utility tools
│ ├── utils/ # Utility functions
│ └── index.ts # Main entry point
├── build/ # Build artifacts
├── pyodide-packages/ # Pyodide-related packages
└── package.json
依存関係
@modelcontextprotocol/sdk:MCP SDK (^1.4.0)pyodide:Python ランタイム環境 (^0.27.1)arktype:型検証ライブラリ (^2.0.1)express:SSE 対応の Web フレームワークcors:SSE 対応の CORS ミドルウェア
開発
要件
- Node.js 18 以降
- npm 9 以降
セットアップ
# Clone the repository
git clone <repository-url>
# Install dependencies
npm install
# Build
npm run build
スクリプト
npm run build:TypeScript をコンパイルし、実行権限を設定しますnpm start:stdio モードでサーバーを実行しますnpm run start:sse:SSE モードでサーバーを実行します
環境変数
PYODIDE_CACHE_DIR:Pyodide キャッシュのディレクトリ(デフォルト:"./cache")PYODIDE_DATA_DIR:マウントされたデータのディレクトリ(デフォルト:"./data")PORT:SSE サーバーのポート(デフォルト:3020)
ライセンス
MIT
コントリビューション
- リポジトリをフォークします
- 機能ブランチを作成します(
git checkout -b feature/amazing-feature) - 変更をコミットします(
git commit -am 'Add some amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - プルリクエストを作成します
重要な注意事項
- このプロジェクトは開発中のため、API が変更される可能性があります
- 本番環境で使用する前に、十分にテストしてください
- セキュリティ上の理由から、信頼できないコードを実行する際は注意してください
- SSE モードを使用する場合、必要に応じて適切な CORS 設定を行ってください
サポート
問題や質問については、Issue トラッカーをご利用ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
