Spaces:
Runtime error
Runtime error
| # 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. このリポジトリをそのままアップロードします (既存の `Dockerfile` で `uvicorn 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` ツールを呼び出すと、入力テキストがそのままレスポンスとして返ります。 | |