mcpField
O
OpenAPI to MCP

OpenAPI to MCP

ローカル
github.com/spaceguy101開発ツール079 週間前に更新

OpenAPI to MCP について

OpenAPI 仕様を MCP ツールに変換し、AI エージェントなどの MCP クライアントから記載された API を呼び出せるサーバーです。OpenAPI 2.0 と 3.x に対応し、Streamable HTTP と旧式の SSE を利用できます。

主な機能

  1. 01OpenAPI 操作をツールに変換
  2. 02OpenAPI 2.0 と 3.x に対応
  3. 03Streamable HTTP と SSE に対応
  4. 04API ベース URL の自動検出
  5. 05バイナリレスポンスの処理
  6. 06詳細なデバッグログ

活用シーン

  1. 01既存の Web API を MCP クライアントに公開
  2. 02OpenAPI 仕様からクライアントを API に接続

MCP 対応

OpenAPI 仕様の操作を MCP ツールとして公開します。MCP クライアントは Streamable HTTP または旧式の SSE で接続できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

OpenAPI から MCP へ

OpenAPI 仕様で記述された既存の Web API と連携するために、OpenAPI 仕様ファイルを MCP サーバーに変換します。

これにより、MCP を理解する AI エージェントやその他のクライアントが、OpenAPI 仕様で記述された既存の Web API と連携できます。

機能

  • OpenAPI の操作を MCP ツールに自動変換
  • 最新の Streamable HTTP と従来の SSE トランスポートの両方に対応
  • OpenAPI 仕様から API ベース URL を自動検出
  • OpenAPI/Swagger 2.0 および OpenAPI 3.x に対応
  • バイナリレスポンスの処理
  • スムーズなシャットダウン処理
  • デバッグ用の詳細なログ記録

前提条件

  • Node.js(v16 以降を推奨)

インストール

  1. リポジトリをクローンします(または openapi-to-mcp ディレクトリがあることを確認します)。
  2. openapi-to-mcp ディレクトリに移動します:
    cd openapi-to-mcp
    
  3. 依存関係をインストールします:
    npm install
    

ビルド

TypeScript コードを JavaScript にコンパイルします:

npm run build

これにより、コンパイル済みの JavaScript ファイルを含む dist ディレクトリが作成されます。

使用方法

start スクリプトを使用してサーバーを起動します。-f または --file オプションで OpenAPI 仕様ファイルのパスを指定します:

# Example using a local petstore.yaml file
npm start -- serve -f ./path/to/your/openapi.json

# Example with different port and host
npm start -- serve --file ./specs/petstore.json --port 9090 --host 0.0.0.0
  • ./path/to/your/openapi.json を実際の OpenAPI ファイルのパスに置き換えます。
  • サーバーはファイルを解析し、API 操作を MCP 関数に適合させて、待ち受けを開始します。
  • 最新および従来の MCP 接続用に利用可能なエンドポイントが表示されます。

MCP クライアントとして接続する

最新の接続方法(推奨)

サーバーは、MCP SDK によって管理される最新の Streamable HTTP トランスポートを提供します。サーバーへの接続には、この方法を推奨します。

従来の SSE 接続

後方互換性のため、サーバーは SSE 接続にも対応しています:

  1. SSE エンドポイント(例:http://localhost:8080/sse)に接続します。

  2. 接続時に mcp-hello イベントを受信します。

  3. 関数を呼び出すには、SSE 接続 ID と一致する sessionId クエリパラメーターを付けて、/messages エンドポイントに POST リクエストを送信し、MCP の function_call メッセージを渡します。

    /messages?sessionId=<your_session_id> への POST の例:

    ヘッダー:

    Content-Type: application/json
    

    本文:

    {
      "type": "function_call",
      "id": "call-123",
      "function_name": "get_pets_by_status",
      "parameters": {
        "status": "available"
      }
    }
    
  4. サーバーは対応する API 呼び出しを実行し、確立済みの SSE 接続を通じて function_return または error イベントを返します。

開発

自動再コンパイルを有効にして開発モードで実行します:

# Make sure to provide the OpenAPI file path
npm run dev -- -f ./path/to/your/openapi.yaml

現在の制限事項

  • 認証:未実装です
  • スキーマ検証:基本的なスキーマ検証は実装されていますが、一部の複雑な OpenAPI スキーマ機能(ディスクリミネーター、複雑な合成)は完全にはサポートされない場合があります。
  • テスト:現在、自動テストは含まれていません。
  • ドキュメント:個々のツールのドキュメントは、例やパラメーターの説明をさらに充実させることができます。

貢献

貢献を歓迎します!お気軽にプルリクエストを送信してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。