mcpField
P
Python Workers: FastMCP Example

Python Workers: FastMCP Example

ローカル
github.com/davila7開発ツール273 週間前に更新

Python Workers: FastMCP Example について

Python Workers: FastMCP Example は、FastMCP を使う Python Worker のサンプルです。依存パッケージの同梱から、開発、デプロイ、テスト、コードチェックまでの手順を示します。

主な機能

  1. 01FastMCP ベースの Python Worker サンプル
  2. 02依存パッケージをソースに同梱
  3. 03Wrangler による開発
  4. 04Wrangler によるデプロイ
  5. 05pytest でテストし Ruff で整形

活用シーン

  1. 01Python Workers の依存関係の同梱方法を学ぶ
  2. 02Wrangler で Worker を開発・デプロイ
  3. 03サンプルのテストとコードチェック

MCP 対応

FastMCP を使用しますが、Worker が公開する MCP ツールやリソースについて README に記載はありません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Python Workers:FastMCP の例

これは、FastMCP パッケージを使用する Python Worker の例です。

Workers にデプロイ

メモ

Worker のサイズの都合上、この例は Workers の有料プランを使用している場合のみデプロイできます。無料プランのユーザーは、この Worker が 3MB のサイズ制限を超えるため、デプロイ時にエラーが発生します。

パッケージの追加

ベンダー化されたパッケージはソースファイルに追加され、特別な方法でインストールする必要があります。Python Workers チームは将来的にこのプロセスを自動化する予定ですが、現時点では手動での作業が必要です。

パッケージのベンダー化

まず、Python 3.12 用の Python3.12 と pip をインストールします。

現在、ほかのバージョンの Python は動作しません。3.12 を使用してください!

次に、仮想環境を作成し、シェルから有効化します。

python3.12 -m venv .venv
source .venv/bin/activate

仮想環境内で、pyodide CLI をインストールします。

.venv/bin/pip install pyodide-build
.venv/bin/pyodide venv .venv-pyodide

最後に、ベンダー化されたパッケージをダウンロードします。追加のパッケージを使用する場合は、このコマンドを再実行してください。

.venv-pyodide/bin/pip install -t src/vendor -r vendor.txt
開発とデプロイ

Worker を開発するには、npx wrangler@latest dev を実行します。

Worker をデプロイするには、npx wrangler@latest deploy を実行します。

テスト

テストするには、次を実行します。

source .venv/bin/activate
pip install -r requirements-test.txt
pytest tests
Lint とフォーマット

このプロジェクトでは、Lint とフォーマットに Ruff を使用します。

pip install ruff
ruff check .  # Run linting
ruff format .  # Format code

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。