サーバーフレームワーク
OpenAPI → MCP ジェネレーター
既存の OpenAPI 仕様から MCP サーバーを自動生成するツール
既存の API を MCP サーバーに変換する
多くのチームは OpenAPI 3.0+ で定義された REST API をすでに運用しています。サーバーフレームワークで一から書き直す代わりに、上流 API へリクエストをプロキシしつつ AI アシスタントとは Model Context Protocol (MCP) で通信できる、薄い MCP ラッパーを自動生成できます。
これらのジェネレーターは 既存サービス を対象としており、フレームワーク比較 は 新規にサーバーを構築 するケースにフォーカスしています。
利用可能なジェネレーター
クイックスタート(stdio の例)
CLI は次の処理を行います:
- OpenAPI ドキュメントを解析
@modelcontextprotocol/sdk
を用いた型安全な TypeScript プロジェクトを生成- 検証用に Zod スキーマを生成
stdio
エントリポイント(オプションでweb
/streamable-http
)を作成- 簡易 HTML クライアントを同梱
自動生成サーバーを選ぶべきケース
- 既存の レガシー REST API をすばやく AI と連携させたい
- バックエンドチーム が MCP の詳細を学習する時間を取りたくない
- プロトタイピング で複数マイクロサービスを短時間で公開したい
- 一貫性 — OpenAPI と MCP の定義を常に同期させたい
生成されたコードはあくまで出発点です。実運用前に認証、ログ、エラーハンドリングなどを強化してください。
主な機能
機能 | openapi-mcp-generator |
---|---|
OpenAPI 3.0+ 対応 | ✓ |
トランスポート (stdio , web + SSE, streamable-http ) | ✓ |
認証方式 (API キー, Bearer, Basic, OAuth2) | ✓ |
ランタイム検証 (Zod) | ✓ |
型安全な TypeScript 出力 | ✓ |
テスト用 HTML クライアント | ✓ |
制限と注意点
LLM の専門家(例: David Cramer)は、OpenAPI-as-MCP 的な安易な変換には次の問題があると指摘しています:
- ツール過多: エンドポイントが数十〜数百あると、類似した名前のツールを LLM が誤選択しがちです。
- パラメータ過多: REST エンドポイントは任意パラメータが多く、UI コンテキスト無しでモデルが入力値を決定しなければなりません。
- コンテキスト容量: 一部モデルはツール説明を ~1kB に制限しており、詳細なドキュメントは切り捨てられます。
- レスポンスの冗長さ: UUID やネストが深い JSON はモデルには解釈しづらい。
- 抽象度のミスマッチ: 優れた MCP ツールは「#sales へメッセージを送る」など 意図に近い 操作単位で設計されるべきです。
生成コードを 雛形 として活用し、不要なエンドポイントを削除したり、複雑な操作を LLM 向けに高レベルなツールへラップし直すことを推奨します。
参考リンク
- GitHub: harsha-iiiv/openapi-mcp-generator
- NPM:
openapi-mcp-generator