MCP_sample / README1.md
ryoshimu
commit
cb04ff5

FastMCP サンプル MCP サーバー (Hugging Face Spaces デプロイ用)

FastMCP 2.12.4 を使った MCP サーバーのサンプルです。app.py では Sample MCP Server (version 0.1.0) を定義し、/mcp エンドポイントを Streamable HTTP で公開しています。@mcp.tool で登録した echo ツールを呼び出すと、受け取ったテキストをそのまま返します。Hugging Face Spaces に配置することで、ChatGPT などの MCP 対応クライアントから簡単に利用できます。

セットアップ

  • Python 3.10 以降を想定しています。
  • 仮想環境を作成したら、pip install -r requirements.txt を実行して FastMCP と Uvicorn をインストールしてください。

ローカル動作確認

  1. python app.py を実行すると、http://localhost:7860 にサーバーが立ち上がります。/ でヘルスチェック ({"status": "ok", ...}) を確認できます。
  2. クライアント検証には python client.py --url http://localhost:7860/mcp を使用します。ping → list_tools → call_tool("echo") の順に呼び出し、最初の TextContent を標準出力に表示します。

Hugging Face Spaces へのデプロイ

  1. Space を作成し、SDK を「Docker」、ランタイムを「Streamable HTTP」に設定します。
  2. このリポジトリをそのままアップロードします (既存の Dockerfileuvicorn app:app --host 0.0.0.0 --port 7860 が実行される前提です)。
  3. ビルド後、Space の URL https://<your-space>.hf.space が発行されます。Streamable HTTP の /mcp エンドポイントが外部に公開され、MCP クライアントからアクセス可能になります。 必要に応じて README に上記 Streamable HTTP 前提であること、Dockerfile のコマンド (uvicorn app:app) が FastMCP サーバーに対応していることを追記してください。
  4. /gradio パスにアクセスすると、Gradio ベースの「MCP Server Configurator」が起動します。Space の公開 URL やサーバー名を入力すると、servers.json のエントリー例や ChatGPT 側の設定手順、ローカル検証用コマンドが自動生成されます。

サーバー仕様メモ

  • /mcp は HTTP ベースの MCP エンドポイントです (WebSocket ではありません)。
  • @mcp.tool を追加することで、任意のツールを拡張できます。例: echo ツールは {"text": "..."} を受け取り同じ内容を返します。
  • / は Starlette ベースのヘルスチェックを返し、Spaces の稼働監視に利用できます。

ChatGPT からの接続手順

  1. ChatGPT アプリの MCP サーバー設定に、新規エンドポイントとして https://<your-space>.hf.space/mcp を登録します。
  2. FastMCP のクライアント (例: client.py) で事前に疎通確認すると安心です。
  3. ChatGPT 側で接続後、echo ツールを呼び出すと、入力テキストがそのままレスポンスとして返ります。