MCP Server from OpenAPI について
OpenAPI 仕様から MCP サーバーを構築する Python 実装です。SSE とストリーミングに対応し、MCP クライアントと ADK エージェントの例を備えています。
主な機能
- 01OpenAPI 仕様からエンドポイントを生成
- 02SSE とストリーミングに対応
- 03MCP と ADK のクライアント例
- 04環境変数による設定
活用シーン
- 01OpenAPI 定義の API を MCP クライアントに公開
- 02SSE またはストリーミングで API 呼び出しをテスト
- 03ADK エージェントを生成したエンドポイントに接続
MCP 対応
OpenAPI 仕様から MCP サーバーを生成し、API 操作を MCP クライアントに公開します。SSE とストリーミングのサーバーおよびクライアント実装が含まれます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
OpenAPI からの MCP サーバー
OpenAPI 仕様から MCP サーバーを実装し、SSE(Server-Sent Events)とストリーミングレスポンスの両方をサポートします。
前提条件
- Python 3.x
- pip(Python パッケージマネージャー)
- Anthropic API キー(MCP クライアント用)
- Google API キー(ADK エージェント用)
インストール
- 仮想環境を作成して有効化します:
python3 -m venv venv
source venv/bin/activate
- 依存関係をインストールします:
pip install -r requirements.txt
サーバーのセットアップ
サーバーは次の 2 つのモードで実行できます。
SSE モード
python server/mcp_server_sse.py --spec server/httpbin_openapi.yaml --name httpbin --base-url https://httpbin.org
ストリーミングモード
python server/mcp_server_stream.py --spec server/httpbin_openapi.yaml --name httpbin --base-url https://httpbin.org
クライアントのセットアップ
MCP クライアント
- プロジェクトのルートに
.envファイルを作成し、Anthropic API キーを追加します:
ANTHROPIC_API_KEY=your_api_key_here
- 使用するクライアントを実行します:
- SSE クライアントの場合:
python client/sse_client.py- ストリーミングクライアントの場合:
python client/stream_client.py
MCP クライアントまたはストリーミングクライアントでの使用例:
MCP Client Started!
Type your queries or 'quit' to exit.
Query: Get Headers
I'll help you get the headers using the api_call function.
[Calling tool api_call with args {'kwargs': '{"action": "get_headers"}'}]
Here are the headers from the response:
```json
{
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Content-Type": "application/json",
"Host": "httpbin.org",
"User-Agent": "python-httpx/0.28.1",
"X-Amzn-Trace-Id": "Root=1-683fecc4-674af7e9323b027c4b9bc740"
}
ADK エージェント
前提条件
- ADK をインストールします:
pip install google-adk
セットアップ手順
-
重要:ストリーミングモードの回避策
- 最新の
mcp_session_manager.pyを Google ADK リポジトリからダウンロードします - ADK のインストール先にある既存のファイルを置き換えます:
# 典型的なパス(必要に応じて Python のバージョンを調整してください) cp mcp_session_manager.py venv/lib/python3.13/site-packages/google/adk/tools/mcp_tool/
- 最新の
-
Clients ディレクトリに移動します:
cd client
-
環境を設定します:
httpb_sse_agentディレクトリとhttpbin_stream_agentディレクトリの両方にある.envファイルに、次の内容を追加します:
GOOGLE_GENAI_USE_VERTEXAI="False" GOOGLE_API_KEY="your_google_api_key_here" -
ADK のウェブインターフェースを起動します:
adk web
機能
- OpenAPI 仕様に基づくエンドポイントの生成
- SSE とストリーミングレスポンスの両方をサポート
- 複数のクライアント実装(MCP および ADK)
- 環境変数による簡単な設定
トラブルシューティング
ADK のストリーミングモードの問題
ストリーミングモードで ADK エージェントに問題が発生した場合:
mcp_session_manager.pyファイルを置き換えたことを確認します.envファイルに Google API キーが正しく設定されていることを確認します- 最新バージョンの ADK を使用していることを確認します
ライセンス
このプロジェクトは Apache 2.0 ライセンスの下でライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。