OpenAPI to MCP server Generator について
OpenAPI to MCP server Generatorは、OpenAPI仕様からMCPサーバープロジェクトを生成するコマンドラインツールです。APIエンドポイントごとのツールと、サーバーの実行に必要なファイルを作成します。
主な機能
- 01APIエンドポイントごとのツール生成
- 02ネストした$ref参照への対応
- 03サーバー設定とプロジェクトファイルの生成
- 04環境変数による生成サーバーの設定
- 05クライアントへのログ通知
活用シーン
- 01ローカルのOpenAPI仕様からMCPサーバーを作成
- 02リモートのOpenAPI URLからサーバープロジェクトを生成
MCP 対応
OpenAPIエンドポイントをツールとして公開するMCPサーバーのコードを生成します。生成されたサーバーはstdioトランスポートに対応し、MCPクライアント向けに設定できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
OpenAPI から MCP サーバーを生成するツール
OpenAPI 仕様から Model Context Protocol(MCP)サーバーのコードを生成するコマンドラインツールです。このツールを使うと、LLM(大規模言語モデル)と API の橋渡しをする MCP サーバーをすばやく作成できます。
英語 | 简体中文
はじめに
このリポジトリはもともと openapi-mcp-generator をフォークしたもので、以下の機能を追加しています。
- OpenAPI 仕様のネストされた
$refをサポート - ソースコードに加えて、MCP サーバーの設定も生成
- クライアントがログレベルを設定し、通知としてログメッセージをクライアントに送信可能
- エラー発生時に、メッセージを stderr に送信
- Docker イメージのビルドをサポートし、クライアントが Docker コンテナ内で実行できるよう案内(2025/5/8 更新)
機能
- ツールの自動生成:OpenAPI 仕様の各 API エンドポイントを MCP ツールに変換します
- トランスポートの選択肢:stdio のみをサポートしています。sse には mcp-proxy を利用できます
- 完全なプロジェクト設定:MCP サーバーの実行に必要なすべてのファイルを生成します
- 簡単な設定:生成されたサーバーは、環境変数を使って簡単に設定できます
インストール
# Install globally from npm
npm install -g openapi-mcpserver-generator
# Or with yarn
yarn global add openapi-mcpserver-generator
# Or with pnpm
pnpm add -g openapi-mcpserver-generator
使い方
OpenAPI 仕様から MCP サーバーを生成します。
openapi-mcpserver-generator --openapi path/to/openapi.json --output /Path/to/output
コマンドラインオプション
| オプション | エイリアス | 説明 | デフォルト |
|---|---|---|---|
--openapi | -o | OpenAPI 仕様のパスまたは URL | (必須) |
--output | -d | 生成ファイルの出力ディレクトリ | ./mcp-server |
--name | -n | MCP サーバーの名前 | openapi-mcp-server |
--version | -v | MCP サーバーのバージョン | 1.0.0 |
--transport | -t | トランスポート方式(stdio、websocket、http) | stdio |
--help | -h | ヘルプ情報を表示 |
使用例
ローカルの OpenAPI ファイルから生成します。
openapi-mcpserver-generator --openapi ./specs/petstore.json --output ./petstore-mcp
リモートの OpenAPI URL から生成します。
openapi-mcpserver-generator --openapi https://petstore3.swagger.io/api/v3/openapi.json --output ./petstore-mcp
生成されるファイル
このツールは、出力ディレクトリに以下のファイルを生成します。
server.js- MCP サーバーのメイン実装package.json- 依存関係とスクリプトREADME.md- 生成されたサーバーのドキュメント.env.example- 環境変数のテンプレートtypes.d.ts- API の TypeScript 型定義tsconfig.json- TypeScript の設定Dockerfile- Dockerfile.dockerignore- Docker の除外ファイル
生成されたサーバーの使用
MCP サーバーを生成した後、以下の手順を実行します。
-
生成されたディレクトリに移動します。
cd my-mcp-server -
依存関係をインストールします。
npm install -
環境ファイルを作成します。
cp .env.example .env -
.envを編集して、API のベース URL と必要なヘッダーを設定します。API_BASE_URL=https://api.example.com API_HEADERS=Authorization:Bearer your-token-here -
サーバーを起動します。
npm start
必要条件
- Node.js 16.x 以降
- npm 7.x 以降
E2E の例
MCP ホストとして mcpclihost を使って試してみることをおすすめします。
このツール(mcpclihost)は Azure Openai と deepseek の両方に対応しています。
生成された MCP サーバーの設定を、次のように追加できます。
{
"mcpServers": {
"petstore-mcp": {
"command": "/usr/local/bin/node",
"args": [
"/Users/lipeng/workspaces/github.com/vincent-pli/openapi-mcpserver-generator/petstore-mcp/server.js",
"run"
]
}
}
}
これを ~/.mcp.json(mcpclihost のデフォルトの MCP サーバー設定パス)に追加して、試してみてください。
OpenAPI におけるセキュリティスキーム
OpenAPI 3.0 は4 種類のセキュリティタイプをサポートしています。
- apiKey: 例:
"securitySchemes": {
"my_api_key": {
"type": "apiKey",
"name": "api_key",
"in": "header"
}
}
大文字にした MY_API_KEY_{securitySchemes.my_api_key.name} という環境変数が必要です。この場合、.env に MY_API_KEY_API_KEY を定義します。
- http:
"securitySchemes": {
basicAuth: {
type: "http",
scheme: "basic"
}
}
.env から BASICAUTH_USERNAME と BASICAUTH_PASSWORD を検索します。
"securitySchemes": {
basicAuth: {
type: "http",
scheme: "bearer"
}
}
.env から BASICAUTH_BEARERTOKEN を検索します。
- oauth2:
oauth2 は複雑なため、自動処理できません。
access tokenを手動で取得し、次のように.envに設定することをおすすめします。
API_HEADERS=Authorization:Bearer your-access-token-here
- openIdConnect まだサポートされていません。
ライセンス
Apache 2.0
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。