OpenAPI MCP サーバー
OpenAPIエンドポイントをMCPリソースとして公開するモデルコンテキストプロトコル(MCP)サーバー。このサーバーにより、大規模言語モデルはMCPプロトコルを介してOpenAPI仕様で定義されたREST APIを検出し、操作できるようになります。
概要
この MCP サーバーは、次の 2 つのトランスポート方法をサポートしています。
Stdio トランスポート(デフォルト): 標準入出力を介して MCP 接続を管理する Claude Desktop などの AI システムと直接統合します。
ストリーミング可能な HTTP トランスポート: HTTP 経由でサーバーに接続し、Web クライアントやその他の HTTP 対応システムが MCP プロトコルを使用できるようにします。
Related MCP server: File Context MCP
ユーザー向けクイックスタート
オプション 1: Claude Desktop (Stdio トランスポート) を使用する
このリポジトリをクローンする必要はありません。Claude Desktop をこの MCP サーバーを使用するように設定するだけで済みます。
Claude Desktop 構成ファイルを見つけるか作成します。
macOSの場合:
~/Library/Application Support/Claude/claude_desktop_config.json
次の構成を追加します。
環境変数を実際の API 構成に置き換えます。
API_BASE_URL: APIのベースURLOPENAPI_SPEC_PATH: OpenAPI 仕様への URL またはパスAPI_HEADERS: API認証ヘッダーのコンマ区切りのキーと値のペア
オプション 2: HTTP クライアント (HTTP トランスポート) で使用する
HTTP クライアントでサーバーを使用するには:
インストールは不要です!npx を使用してパッケージを直接実行します。
HTTP リクエストを使用してサーバーと対話します。
輸送タイプ
標準入出力トランスポート(デフォルト)
stdioトランスポートは、標準入出力を介してMCP接続を管理するClaude DesktopなどのAIシステムと直接統合するために設計されています。これは最もシンプルなセットアップであり、ネットワーク設定は必要ありません。
使用する場合: Claude Desktop または stdio ベースの MCP 通信をサポートする他のシステムと統合する場合。
ストリーミング可能なHTTPトランスポート
HTTPトランスポートにより、MCPサーバーにHTTP経由でアクセスすることが可能になり、Webアプリケーションやその他のHTTP対応クライアントがMCPプロトコルとやり取りできるようになります。セッション管理、ストリーミングレスポンス、標準HTTPメソッドをサポートしています。
主な機能:
Mcp-Session-Idヘッダーによるセッション管理
initializeおよびtools/list要求に対する HTTP 応答は、POST で同期的に送信されます。その他のサーバーからクライアントへのメッセージ (例:
tools/execute結果、通知) は、Server-Sent Events (SSE) を使用して GET 接続を介してストリーミングされます。POST/GET/DELETEメソッドのサポート
使用する場合: MCP サーバーを、stdio ではなく HTTP 経由で通信する Web クライアントまたはシステムに公開する必要がある場合。
設定オプション
サーバーは、環境変数またはコマンドライン引数を使用して構成できます。
環境変数
API_BASE_URL- APIエンドポイントのベースURLOPENAPI_SPEC_PATH- OpenAPI 仕様へのパスまたは URLAPI_HEADERS- APIヘッダーのコンマ区切りのキーと値のペアSERVER_NAME- MCP サーバーの名前 (デフォルト: "mcp-openapi-server")SERVER_VERSION- サーバーのバージョン(デフォルト: "1.0.0")TRANSPORT_TYPE- 使用するトランスポートタイプ: "stdio" または "http" (デフォルト: "stdio")HTTP_PORT- HTTPトランスポートのポート(デフォルト: 3000)HTTP_HOST- HTTPトランスポートのホスト(デフォルト: "127.0.0.1")ENDPOINT_PATH- HTTPトランスポートのエンドポイントパス(デフォルト: "/mcp")
コマンドライン引数
セキュリティに関する考慮事項
HTTPトランスポートは、DNSリバインディング攻撃を防ぐためにOriginヘッダーを検証します。
デフォルトでは、HTTPトランスポートはローカルホスト(127.0.0.1)にのみバインドされます。
他のホストに公開する場合は、追加の認証を実装することを検討してください
デバッグ
デバッグ ログを表示するには:
Claude Desktop で stdio トランスポートを使用する場合:
ログはClaude Desktopのログに表示されます
HTTP トランスポートを使用する場合:
npx @ivotoby/openapi-mcp-server --transport http 2>debug.log
開発者向け
開発ツール
npm run build- TypeScriptソースをビルドするnpm run clean- ビルド成果物を削除しますnpm run typecheck- TypeScript の型チェックを実行しますnpm run lint- ESLint を実行するnpm run dev- ソースファイルを監視し、変更があったら再構築するnpm run inspect-watch- 変更時に自動リロードするインスペクターを実行します
開発ワークフロー
リポジトリをクローンする
依存関係をインストール:
npm install開発環境を起動します:
npm run inspect-watchsrc/内の TypeScript ファイルに変更を加えるサーバーは自動的に再構築され、再起動します
貢献
リポジトリをフォークする
機能ブランチを作成する
変更を加える
テストとリンティングを実行します:
npm run typecheck && npm run lintプルリクエストを送信する
ライセンス
マサチューセッツ工科大学