MCP OpenAPI について
MCP OpenAPIはOpenAPI仕様を解析し、MCP対応のサーバーコードとツールを動的に生成します。既存サービスにMCP対応を加えるチーム向けで、サイドカーとしても配置できます。
主な機能
- 01OpenAPI仕様の解析
- 02MCPサーバーコードの生成
- 03MCP対応ツールの作成
活用シーン
- 01API仕様からMCP対応を生成
- 02既存サービスの横にサイドカー配置
MCP 対応
OpenAPI仕様からMCPサーバーの構成要素とツールを生成し、MCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP OpenAPI
このプロジェクトは、自動化ツールによってサーバー生成を簡素化し、MCP プロトコルの普及を加速することを目的としています。 OpenAPI 仕様を解析し、対応する MCP サーバーコンポーネントを動的に生成します。
主な機能
- OpenAPI 仕様を解析します
- MCP 互換のサーバーコードとツールを動的に生成します
- 統合とデプロイを効率化できるよう設計されています
ユースケース
一般的なユースケースの 1 つは、このアプリケーションを既存のサービスと並行してサイドカーとしてデプロイすることです。 これにより、手動でサーバーを実装することなく、シームレスに MCP をサポートできます。
OpenAPI から MCP への変換を自動化することで、このツールは手動でのサーバー開発に伴う負担を軽減し、 最新のサービスアーキテクチャにおける MCP プロトコルの迅速な普及を促進します。
ワークフロー
sequenceDiagram
actor user as User
actor agent as Agent
participant ingress as Ingress
participant mcp_proxy as MCP Proxy
participant openapi_server as OpenAPI Server
participant db as Database
user->>ingress: Request for OpenAPI resource
ingress->>openapi_server: Forward request
openapi_server->>db: Query database
db-->>openapi_server: Database response
openapi_server-->> user: OpenAPI Server response
Note over user,db: LLM interaction
user->>agent: Send a prompt
agent->>ingress: Request for MCP tool
ingress->>mcp_proxy: Forward request
mcp_proxy->>openapi_server: Forward request
openapi_server->>db: Query database
db-->>openapi_server: Database response
openapi_server-->>mcp_proxy: OpenAPI Server response
mcp_proxy-->>agent: MCP server response
agent-->>user: Prompt response
環境変数
| Name | Default | Description |
|---|---|---|
| OPENAPI_SPEC_URL | Open API 仕様の URL です。 | |
| TRANSPORT | streamable-http | MCP サーバーとの通信に使用するトランスポートの種類です。 |
| HOST | 127.0.0.1 | サーバーをバインドするホスト名または IP アドレスです。 |
| PORT | 8000 | リッスンするポート番号です。 |
開発環境のセットアップ方法
このプロジェクトは Dev Container に対応しており、設定済みの開発環境を簡単に使い始められます。これにより、開発環境間の一貫性が確保され、貢献者は環境を手動で設定することなく作業を開始できます。
オプション 1:GitHub Codespaces
クラウドベースの開発環境をすぐに起動できます。
オプション 2:ローカルの Dev Container(Visual Studio Code)
- Visual Studio Code をインストールします。
- Dev Containers 拡張機能をインストールします。
- コンテナランタイムがインストールされ、実行中であることを確認します。
- Docker Desktop(Windows/macOS)
- Docker Engine または Podman(Linux)
- このリポジトリを Visual Studio Code で開きます。
- プロンプトが表示されたら、プロジェクトを Dev Container で再度開きます。
検証
MCP サーバーを検証するためのヘルパースクリプトが用意されています。 MCP Python SDK を使用して接続し、ツールを一覧表示して実行します。
利用可能なツールの一覧表示
./tests/client.py -m http://localhost:8000/mcp
出力例:
{
"properties": {
"url": {
"title": "Url",
"type": "string"
}
},
"required": ["url"],
"title": "fetch_websiteArguments",
"type": "object"
}
ツールの呼び出し
./tests/client.py -m http://localhost:8000/mcp -a call-tool -t fetch -i url=https://electrocucaracha.com/acerca/
出力例(一部省略):
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8" />
...
</head>
</html>
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。