OpenAPIからMCPサーバーへ
OpenAPI/Swagger仕様からMCP(Model Context Protocol)サーバーを作成し、AIアシスタントがAPIを操作できるようにするツールです。特定のAPIやサービス向けに**、独自のブランドでカスタマイズされたMCPを作成できます**。
概要
このプロジェクトは、OpenAPI仕様をMCPツールに変換する動的MCPサーバーを構築します。モデルコンテキストプロトコル(MCP)を介してREST APIとAIアシスタントをシームレスに統合し、あらゆるAPIをAIがアクセス可能なツールに変換します。
特徴
- ファイルまたは HTTP/HTTPS URL からの OpenAPI 仕様の動的読み込み
- ファイルまたは HTTP/HTTPS URL から読み込まれたOpenAPI オーバーレイのサポート
- OpenAPI 操作と MCP ツールのマッピングをカスタマイズ可能
- オペレーションIDとURLパスの両方にglobパターンを使用した高度な操作フィルタリング
- フォーマットの保存と位置メタデータによる包括的なパラメータ処理
- API認証処理
- MCP サーバーを構成するために使用される OpenAPI メタデータ (タイトル、バージョン、説明)
- 階層的な記述フォールバック(操作記述 → 操作概要 → パス概要)
- 環境変数と CLI によるカスタム HTTP ヘッダーのサポート
- APIリクエストの追跡と識別のためのX-MCPヘッダー
- ツール名と説明を上書きするためのパス レベルでのカスタム
x-mcp
拡張機能のサポート
AIアシスタントと併用する
このツールは、AIアシスタントがOpenAPI仕様で定義されたAPIと連携できるようにするMCPサーバーを作成します。主な使用方法は、AIアシスタントをMCPツールとして直接実行するように設定することです。
Claude Desktopでの設定
- コンピュータにNode.jsがインストールされていることを確認してください
- Claude Desktopを開き、「設定」>「開発者」に移動します。
- 設定ファイルを編集します (存在しない場合は作成されます)。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
- 次の構成を追加します (必要に応じてカスタマイズします)。
- Claudeデスクトップを再起動します
- チャット入力ボックスにハンマーアイコンが表示されます。クリックしてAPIツールにアクセスしてください。
設定のカスタマイズ
args
配列を調整して、さまざまなオプションを使用して MCP サーバーをカスタマイズできます。
カーソルでの設定
- 次のいずれかの場所に構成ファイルを作成します。
- プロジェクト固有: プロジェクトディレクトリ内の
.cursor/mcp.json
- グローバル: ホームディレクトリの
~/.cursor/mcp.json
- プロジェクト固有: プロジェクトディレクトリ内の
- 次の構成を追加します (API に合わせて必要に応じて調整してください)。
- カーソルを再起動するか、ウィンドウを再読み込みします
Vercel AI SDKを使用する
Vercel AI SDK の MCP クライアントを使用して、この MCP サーバーを JavaScript/TypeScript アプリケーションで直接使用することもできます。
構成
構成は、環境変数、コマンドライン オプション、または JSON 構成ファイルを介して管理されます。
コマンドラインオプション
環境変数
これらは.env
ファイルで設定することも、環境内で直接設定することもできます。
OPENAPI_SPEC_PATH
: OpenAPI 仕様ファイルへのパスOPENAPI_OVERLAY_PATHS
: JSON ファイルをオーバーレイするためのコンマ区切りのパスTARGET_API_BASE_URL
: API呼び出しのベースURL(OpenAPIサーバーをオーバーライド)MCP_WHITELIST_OPERATIONS
: 含める操作IDまたはURLパスのカンマ区切りリスト(getPet*
やGET:/pets/*
などのglobパターンをサポート)MCP_BLACKLIST_OPERATIONS
: 除外する操作IDまたはURLパスのカンマ区切りリスト(globパターンをサポート、ホワイトリストが使用されている場合は無視されます)API_KEY
: 対象APIのAPIキー(必要な場合)SECURITY_SCHEME_NAME
: APIキーを必要とするセキュリティスキームの名前SECURITY_CREDENTIALS
: 複数のスキームのセキュリティ資格情報を含むJSON文字列CUSTOM_HEADERS
: すべてのAPIリクエストに含めるカスタムヘッダーを含むJSON文字列HEADER_*
:HEADER_
で始まる環境変数はカスタム ヘッダーとして追加されます (例:HEADER_X_API_Version=1.0.0
ヘッダーX-API-Version: 1.0.0
を追加します)DISABLE_X_MCP
:true
に設定すると、すべてのAPIリクエストにX-MCP: 1
ヘッダーを追加できなくなります。CONFIG_FILE
: JSON設定ファイルへのパス
JSON構成
環境変数やコマンドラインオプションの代わりに、JSON設定ファイルを使用することもできます。MCPサーバーは以下の順序で設定ファイルを検索します。
--config
コマンドラインオプションで指定されたパスCONFIG_FILE
環境変数で指定されたパス- 現在のディレクトリの
config.json
- 現在のディレクトリにある
openapi-mcp.json
- 現在のディレクトリの
.openapi-mcp.json
JSON 構成ファイルの例:
説明コメント付きの完全なサンプル構成ファイルは、ルート ディレクトリのconfig.example.json
にあります。
構成の優先順位
構成設定は、次の優先順位(最高から最低)で適用されます。
- コマンドラインオプション
- 環境変数
- JSON設定ファイル
発達
インストール
ローカルテスト
独自のバージョンをカスタマイズして公開する
このリポジトリをベースに、OpenAPI to MCPサーバーを独自にカスタマイズして作成できます。このセクションでは、リポジトリをフォークし、特定のAPIに合わせてカスタマイズし、パッケージとして公開する方法について説明します。
フォークとカスタマイズ
- リポジトリをフォークする: GitHub でこのリポジトリをフォークして、カスタマイズできる独自のコピーを作成します。
- OpenAPI 仕様を追加します:
- デフォルト設定を構成する: パッケージにバンドルされるカスタム構成ファイルを作成します。
- package.json を更新します:
- 仕様がバンドルされていることを確認する: package.json の
files
フィールド (上記に表示) により、公開されたパッケージに仕様と構成ファイルが含まれるようになります。
GitHubワークフローのカスタマイズ
このリポジトリには、npmへの自動公開のためのGitHub Actionsワークフローが含まれています。フォークしたリポジトリに合わせてカスタマイズするには、以下の手順を実行してください。
- ワークフロー名を更新します。必要に応じて
.github/workflows/publish-npm.yaml
を編集して名前を更新します。 - パッケージスコープを設定する (必要な場合) : npm 組織スコープで公開する場合は、ワークフロー ファイルのスコープ行のコメントを解除して変更します。
- npm トークンの設定: フォークされたリポジトリの設定で、
NPM_TOKEN
という名前の GitHub シークレットとして npm トークンを追加します。
カスタマイズしたパッケージの公開
リポジトリをカスタマイズしたら、次の操作を行います。
- タグを作成してプッシュする:
- GitHub Actions は次のことを行います:
- パッケージを自動的にビルドする
- タグと一致するようにpackage.jsonのバージョンを更新します
- バンドルされた仕様と設定をnpmに公開する
出版後の使用
カスタマイズされたパッケージのユーザーは、npm を使用してインストールして使用できます。
構成セクションで説明されているように、環境変数またはコマンドライン オプションを使用してデフォルト設定を上書きできます。
ライセンス
マサチューセッツ工科大学
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
OpenAPI/Swagger 仕様から MCP (Model Context Protocol) サーバーを作成し、AI アシスタントが API と対話できるようにするツール。
Related MCP Servers
- -securityAlicense-qualityA server that enables interaction with any API that has a Swagger/OpenAPI specification through Model Context Protocol (MCP), automatically generating tools from API endpoints and supporting multiple authentication methods.Last updated -1494TypeScriptApache 2.0
- AsecurityAlicenseAqualityAn MCP server that connects to a Swagger specification and helps an AI to build all the required models to generate a MCP server for that service.Last updated -51455TypeScriptMIT License
- -securityAlicense-qualityA command-line tool that transforms any OpenAPI service into a Model Context Protocol (MCP) server, enabling seamless integration with AI agents and tools that support the MCP specification.Last updated -15TypeScriptMIT License
MockLoop MCP Serverofficial
-securityAlicense-qualityA Model Context Protocol server that generates and runs mock API servers from API documentation like OpenAPI/Swagger specs, enabling developers and AI assistants to quickly spin up mock backends for development and testing.Last updated -9PythonMIT License