ezmcp について
ezmcp は、SSE トランスポートに対応した軽量な Python フレームワークで、FastAPI に似たデコレーター構文でMCP サーバーを構築できます。ツールを手早く公開したい開発者や、既存の Starlette アプリケーションに統合したい場合に適しています。
主な機能
- 01FastAPI 風のデコレーターによるツール定義
- 02関数シグネチャからのスキーマ自動生成
- 03SSE トランスポートの標準対応
- 04FastAPI 風のミドルウェア対応
- 05ツールを試せる対話型ドキュメントページ
活用シーン
- 01Python で SSE ベースの MCP サーバーを素早く構築
- 02既存の Starlette アプリケーションへのツール追加
MCP 対応
ezmcp は MCP サーバーを作成するためのフレームワークであり、定義したツールは SSE エンドポイント経由で MCP クライアントに提供されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ezmcp
SSE に特化した、使いやすい MCP サーバーフレームワークです。
概要
ezmcp は、FastAPI のような構文を使用して、MCP 互換サーバーを簡単に作成できる軽量フレームワークです。MCP クライアントから呼び出せるツールを定義するための、シンプルなデコレーターベースの API を提供します。
特長
- MCP ツールを定義するための FastAPI スタイルのデコレーター API
- パラメーターの自動検証と型変換
- 関数のシグネチャからツールスキーマを自動生成
- SSE トランスポートの組み込みサポート
- FastAPI スタイルのミドルウェアをサポート
- 既存の Starlette アプリケーションと簡単に統合
- ツールを確認・テストできるインタラクティブなドキュメントページ

インストール
pip install ezmcp
クイックスタート
from ezmcp import ezmcp, TextContent
# Create an ezmcp application
app = ezmcp("my-app")
# Define a tool
@app.tool(description="Echo a message back to the user")
async def echo(message: str):
"""Echo a message back to the user."""
return [TextContent(type="text", text=f"Echo: {message}")]
# Run the application
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8000)
サーバーが起動したら、次の操作ができます。
http://localhost:8000/docsでインタラクティブなドキュメントにアクセスするhttp://localhost:8000/sseの SSE エンドポイントに接続する
ミドルウェア
ezmcp は FastAPI に似たミドルウェアをサポートしており、アプリケーション全体に適用される動作を追加できます。
from starlette.requests import Request
from ezmcp import TextContent, ezmcp
app = ezmcp("my-app")
@app.middleware
async def process_time_middleware(request: Request, call_next):
"""Add a header with the processing time."""
import time
start_time = time.perf_counter()
response = await call_next(request)
process_time = time.perf_counter() - start_time
response.headers["X-Process-Time"] = str(process_time)
return response
@app.tool(description="Echo a message back to the user")
async def echo(message: str):
"""Echo a message back to the user."""
return [TextContent(type="text", text=f"Echo: {message}")]
ミドルウェアの詳細については、ミドルウェアのドキュメントを参照してください。
ドキュメント
詳細については、ezmcp/README.md ファイルを参照してください。
ライセンス
MIT
コマンド
- テスト用にインストール
pdm install -G test - 開発用にインストール
pdm install -G dev
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。