mcpField
M
MCP-Gateway

MCP-Gateway

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

MCP-Gateway について

MCP-Gatewayは、APIなどのデータソースに接続するチーム向けに、HTTPインターフェース定義とMCPサーバーを管理します。curlコマンドやOpenAPI仕様の変換、バージョン管理に対応し、サーバーをWebAssemblyにコンパイルして有効化できます。

主な機能

  1. 01HTTPインターフェースとバージョンの管理
  2. 02curlコマンドからHTTP定義への変換
  3. 03OpenAPI仕様のインポートとエクスポート
  4. 04MCPサーバーとバージョンの管理
  5. 05サーバーのWebAssemblyへのコンパイル
  6. 06サーバーのルーティング設定

活用シーン

  1. 01既存のcurlコマンドをAPI定義に変換
  2. 02OpenAPIのパスをHTTPインターフェースとして登録
  3. 03管理対象のHTTPインターフェースからツールを公開

MCP 対応

HTTPインターフェース定義からMCPサーバーを作成・管理し、WebAssemblyにコンパイルして有効化します。MCPクライアントからのツール呼び出しもルーティングします。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

MCP-Gateway

MCP-Gateway は、MCP サーバーを一元管理する機能を提供するサービスです。AI エージェントがさまざまなデータソースにすばやく接続できるよう支援します。MCP サーバーを通じて、AI エージェントは具体的な接続方法を気にすることなく、データベース、REST API、その他の外部サービスに簡単にアクセスできます。

特長

  • HTTP インターフェース管理:OpenAPI 構造のエクスポート、HTTP から MCP サーバーの YAML 形式への変換、インターフェースのバージョン管理に対応しています。
    • curl コマンドを HTTP インターフェースに変換:curl コマンドを適切な形式の HTTP インターフェースに簡単に変換できます。
    • OpenAPI のインポート/エクスポート:HTTP インターフェースと OpenAPI 仕様の相互変換により、既存の API フレームワークと簡単に連携できます。
  • MCP サーバー管理:MCP サーバーのメタデータ管理、複数の HTTP 構造を選択したメタデータの更新、MCP サーバーの公開(動的読み込み用に WebAssembly にコンパイル)、バージョン管理に対応しています。
  • ルーティング管理:xxx/mcp-server/{name} を名前が {name} の MCP サーバーにマッチさせるなど、ルート設定に対応しています。

アーキテクチャ

MCP-Gateway は、次の 3 つのコアモジュールで構成されています。

  1. HTTP インターフェース管理:API 設定を定義および管理します。
  2. MCP サーバー管理:MCP サーバーインスタンスを管理し、WebAssembly にコンパイルして、実行時の処理を行います。
  3. ルーティング管理:MCP サーバーのルーティングルールを管理します。

はじめに

前提条件
  • Go 1.19 以降
  • Git
インストール
  1. リポジトリをクローンします:

    git clone https://github.com/wangfeng/mcp-gateway2.git
    cd mcp-gateway2
    
  2. 依存関係をインストールします:

    go mod tidy
    
  3. サーバーを起動します:

    go run cmd/server/main.go
    
  4. サーバーはデフォルトでポート 8080 で起動します。PORT 環境変数を設定すると、ポートを変更できます。

テスト

API をテストするには、テストクライアントを実行します:

go run test/client.go

次の処理が行われます:

  1. 利用可能な HTTP インターフェースを一覧表示します
  2. いずれかのインターフェースを使用して MCP サーバーを作成します
  3. MCP サーバーを WebAssembly にコンパイルします
  4. MCP サーバーを有効化します
  5. MCP サーバーのツールを呼び出します

curl 変換機能をテストするには、curl テストクライアントを実行します:

go run test/curl/curl_client.go

次の処理が行われます:

  1. 複数の curl コマンドを HTTP インターフェースに変換します
  2. 変換したインターフェースを使用して MCP サーバーを作成します
  3. MCP サーバーをコンパイルして有効化します
  4. MCP サーバーのツールを呼び出します

OpenAPI 変換機能をテストするには、OpenAPI テストクライアントを実行します:

go run test/openapi/openapi_client.go

次の処理が行われます:

  1. 既存の HTTP インターフェースを OpenAPI 形式でエクスポートします
  2. サンプルの OpenAPI 仕様をインポートして、新しい HTTP インターフェースを作成します
  3. 往復変換(OpenAPI へエクスポートし、再度インポート)を実行します

API ドキュメント

HTTP インターフェース
  • GET /api/http-interfaces:すべての HTTP インターフェースを一覧表示
  • GET /api/http-interfaces/:id:特定の HTTP インターフェースを取得
  • POST /api/http-interfaces:新しい HTTP インターフェースを作成
  • PUT /api/http-interfaces/:id:HTTP インターフェースを更新
  • DELETE /api/http-interfaces/:id:HTTP インターフェースを削除
  • GET /api/http-interfaces/:id/versions:HTTP インターフェースのすべてのバージョンを取得
  • GET /api/http-interfaces/:id/versions/:version:HTTP インターフェースの特定のバージョンを取得
  • GET /api/http-interfaces/:id/openapi:HTTP インターフェースを OpenAPI 形式でエクスポート
  • POST /api/http-interfaces/from-curl:curl コマンドから新しい HTTP インターフェースを作成
  • POST /api/http-interfaces/from-openapi:OpenAPI 仕様から新しい HTTP インターフェースを作成
MCP サーバー
  • GET /api/mcp-servers:すべての MCP サーバーを一覧表示
  • GET /api/mcp-servers/:id:特定の MCP サーバーを取得
  • POST /api/mcp-servers:HTTP インターフェースから新しい MCP サーバーを作成
  • PUT /api/mcp-servers/:id:MCP サーバーを更新
  • DELETE /api/mcp-servers/:id:MCP サーバーを削除
  • GET /api/mcp-servers/:id/versions:MCP サーバーのすべてのバージョンを取得
  • GET /api/mcp-servers/:id/versions/:version:MCP サーバーの特定のバージョンを取得
  • POST /api/mcp-servers/:id/compile:MCP サーバーを WebAssembly にコンパイル
  • POST /api/mcp-servers/:id/activate:MCP サーバーを有効化
  • POST /api/mcp-servers/:id/tools/:tool:MCP サーバーのツールを呼び出し

Curl から HTTP インターフェースへの変換

システムは、curl コマンドを HTTP インターフェースに変換できます。以下の JSON ボディを指定して、/api/http-interfaces/from-curl に POST リクエストを送信するだけです。

{
  "command": "curl -H \"Content-Type: application/json\" https://api.example.com/resource",
  "name": "example-api",
  "description": "Example API endpoint"
}

システムは curl コマンドを解析し、MCP サーバーの作成に使用できる適切な形式の HTTP インターフェースを作成します。

OpenAPI 変換

OpenAPI へのエクスポート

/api/http-interfaces/:id/openapi に GET リクエストを送信すると、任意の HTTP インターフェースを OpenAPI 形式でエクスポートできます。レスポンスは、他の OpenAPI ツールで使用できる適切な形式の OpenAPI 3.0.0 仕様になります。

OpenAPI からのインポート

以下の JSON ボディを指定して、/api/http-interfaces/from-openapi に POST リクエストを送信すると、OpenAPI 仕様から新しい HTTP インターフェースを作成できます。

 go run test/openapi/openapi_client.go
{
  "name": "my-api",
  "description": "My API description",
  "spec": {
    "openapi": "3.0.0",
    "info": {
      "title": "Sample API",
      "description": "A sample API",
      "version": "1.0.0"
    },
    "paths": {
      "/users": {
        "get": {
          "summary": "Get all users",
          "responses": {
            "200": {
              "description": "A list of users"
            }
          }
        }
      }
    }
  }
}

システムは OpenAPI 仕様を解析し、パスと操作の組み合わせごとに HTTP インターフェースを作成します。

ライセンス

MIT

参考資料

コメント

MCP は初めてですか?

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

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