mcpField
M
Mcp Gateway

Mcp Gateway

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

Mcp Gateway について

Mcp Gateway は、設定した MCP ツール呼び出しを既存の HTTP API リクエストに変換します。既存 API を MCP クライアントから利用可能にしたいチーム向けで、YAML によるマッピングと SSE または stdio のトランスポートに対応します。

主な機能

  1. 01MCPツールをHTTP APIにマッピング
  2. 02YAMLでマッピングを設定
  3. 03リクエストとレスポンスのテンプレート設定
  4. 04SSEとstdioのトランスポート

活用シーン

  1. 01既存のHTTP APIをMCPツールとして公開
  2. 02APIのリクエストとレスポンス変換を設定

MCP 対応

MCPサーバーとして、設定済みのツール呼び出しをHTTP APIリクエストに変換し、APIレスポンスを対応付けます。SSEとstdioのトランスポートに対応します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

MCP Gateway

MCP(Model Context Protocol)Gateway は、MCP ツールの呼び出しを従来の HTTP API リクエストに変換できます。既存の HTTP API を MCP の領域で利用するための、設定可能な方法を提供します。

はじめに

config.example.yaml から設定ファイルを作成します。

$ cp config.example.yaml config.yaml

config.yaml ファイルを編集し、すべての API を MCP ツールにマッピングします。

次に、SSE トランスポートで起動します。

$ uv run mcp-gateway
INFO:     Started server process [15400]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:3001 (Press CTRL+C to quit)

デフォルトは 3001 です。

サーバーの制御

ポートの変更

コマンドラインでパラメーター --port=<port_no> を指定すると、SSE トランスポートのポートを変更できます。

ポート 3002 で Gateway を起動します。

$ uv run mcp-gateway --port=3002
INFO:     Started server process [15400]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:3002 (Press CTRL+C to quit)
stdio トランスポート

コマンドラインでパラメーター --transport=stdio を指定すると、トランスポートを stdio に変更できます。

例:

$ uv run mcp-gateway --transport=stdio

stdio トランスポートで Gateway を手動で起動しても意味はありません。次のように Cursor または Cline で設定できます。

{
    "mcpServers": {
        "mcp-gateway": {
          "command": "uv",
          "args": ["run", "mcp-gateway", "--transport=stdio"]
        }
      }
}

または、MCP Inspector で次の値をフォームに入力します。

項目値
トランスポートの種類STDIO
コマンドuv
引数run mcp-gateway --transport=stdio

設定ファイル

設定 YAML は server と tools の 2 つの部分で構成されます。server は Gateway サーバーで使用する基本情報を定義します。tools は、単一の MCP ツールから HTTP API リクエストへのマッピングを定義します。

server:
  name: rest-amap-server
  config:
    apiKey: foo
tools:
- name: maps-geo
  description: "将详细的结构化地址转换为经纬度坐标。支持对地标性名胜景区、建筑物名称解析为经纬度坐标"
  args:
  - name: address
    description: "待解析的结构化地址信息"
    required: true
  - name: city
    description: "指定查询的城市"
    required: false
  requestTemplate:
    url: "https://restapi.amap.com/v3/geocode/geo?key={{.config.apiKey}}&address={{.args.address}}&city={{.args.city}}&source=ts_mcp"
    method: GET
    headers:
    - key: x-api-key
      value: "{{.config.apiKey}}"
    - key: Content-Type
      value: application/json
  responseTemplate:
    body: |
      # 地理编码信息
      {{- range $index, $geo := .Geocodes }}
      ## 地点 {{add $index 1}}

      - **国家**: {{ $geo.Country }}
      - **省份**: {{ $geo.Province }}
      - **城市**: {{ $geo.City }}
      - **城市代码**: {{ $geo.Citycode }}
      - **区/县**: {{ $geo.District }}
      - **街道**: {{ $geo.Street }}
      - **门牌号**: {{ $geo.Number }}
      - **行政编码**: {{ $geo.Adcode }}
      - **坐标**: {{ $geo.Location }}
      - **级别**: {{ $geo.Level }}
      {{- end }}
Server
項目説明
nameサーバー名
configテンプレート内で変数 {{.config.xxx}} として参照できるキーと値のペア
Tools

tools は MCP ツールのマッピングのリストです。単一のツールのプロパティは次のとおりです。

項目説明
nameLLM に提供されるツール名(関数名)。
descriptionLLM がツールで何ができるかを理解するためのツールの説明。
argsツールの引数(関数の引数)。
requestTemplate対象の HTTP API へのリクエストマッピング。
responseTemplate対象の HTTP API のレスポンスに対するレスポンスマッピング。

単一の引数のプロパティは次のとおりです。

項目型説明
nameLLM に提供される引数名。
descriptionLLM が適切な値を理解して判断するための引数の説明。
requiredBoolean必須の引数かどうか。

リクエストテンプレートのプロパティは次のとおりです。

項目説明
methodHTTP メソッド
url対象の HTTP API の URL テンプレート
headersHTTP ヘッダー

HTTP ヘッダーは次のように定義します。

項目説明
keyヘッダーキー
valueヘッダー値のテンプレート

レスポンステンプレートのプロパティは次のとおりです。

項目説明
bodyレスポンス本文のテンプレート

コントリビューション

あらゆる種類のコントリビューションを歓迎します。

コメント

MCP は初めてですか?

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

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