MCP Gateway

Integrations

  • Provides a configuration format for defining MCP tool mappings to HTTP APIs, allowing users to specify server settings and tool definitions through structured YAML files.

Puerta de enlace MCP

La puerta de enlace MCP (Protocolo de Contexto de Modelo) puede traducir las llamadas a herramientas MCP a solicitudes API HTTP tradicionales. Ofrece una forma configurable de integrar la API HTTP existente en el entorno MCP.

Empezando

Crear archivo de configuración desde config.example.yaml :

$ cp config.example.yaml config.yaml

Edite el archivo config.yaml y asigne todas las API a las herramientas MCP.

Luego comience a ejecutarlo con el transporte 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)

El valor predeterminado es 3001.

Control del servidor

Cambiar puerto

Proporcionar el parámetro --port=<port_no> en la línea de comando cambiará el puerto al transporte SSE.

Iniciar puerta de enlace con el puerto 3002:

$ 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)

Transporte de stdio

Proporcionar el parámetro --transport=stdio en la línea de comando cambiará el transporte a stdio.

P.EJ:

$ uv run mcp-gateway --transport=stdio

No tiene sentido iniciar la puerta de enlace manualmente en el transporte de stdio. Puedes configurarla en Cursor o Cline como:

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

O Inspector MCP con valores de formulario:

ArtículoValor
Tipo de transporteSTDIO
Dominioultravioleta
Argumentosejecutar mcp-gateway --transport=stdio

Archivo de configuración

Hay dos partes en la configuración YAML: server y tools . server define la información básica para el uso del servidor de enlace. tools definen la asignación de una sola herramienta MCP a una solicitud de API HTTP.

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 }}

Servidor

ArtículoDescripción
nombreNombre del servidor
configuraciónPares clave/valor a los que se puede hacer referencia mediante la variable {{.config.xxx}} en las plantillas

Herramientas

tools es una lista de asignaciones de herramientas MCP. Las propiedades de una sola herramienta se definen de la siguiente manera:

ArtículoDescripción
nombreNombre de la herramienta (nombre de la función), que se proporciona a LLM.
descripciónDescripción de la herramienta a través de la cual LLM puede comprender lo que la herramienta podría hacer.
argumentosArgumentos de la herramienta (argumentos de la función).
Solicitud de plantillaSolicitar mapeo a la API HTTP de destino.
Plantilla de respuestaMapeo de respuesta para la respuesta de la API HTTP de destino.

Las propiedades de argumento único se definen de la siguiente manera:

ArtículoTipoDescripción
nombreNombre del argumento, que se proporciona a LLM.
descripciónDescripción del argumento a través del cual LLM puede comprender y decidir qué valor debe ser llenado.
requeridoBooleanoArgumento requerido o no.

Las propiedades de la plantilla de solicitud se definen de la siguiente manera:

ArtículoDescripción
métodoMétodo HTTP
URLPlantilla de URL de API HTTP de destino
encabezadosencabezados HTTP

Los encabezados HTTP se definen de la siguiente manera:

ArtículoDescripción
llaveClave de encabezado
valorPlantilla de valor de encabezado

Las propiedades de la plantilla de respuesta se definen de la siguiente manera:

ArtículoDescripción
cuerpoPlantilla de cuerpo de respuesta

Contribución

Todo tipo de contribuciones son bienvenidas.

-
security - not tested
A
license - permissive license
-
quality - not tested

Un servidor que traduce las llamadas a herramientas del Protocolo de contexto de modelo (MCP) a solicitudes de API HTTP tradicionales, lo que permite que las API HTTP existentes se integren en el territorio MCP a través de asignaciones configurables.

  1. Getting Started
    1. Server Control
      1. Change Port
      2. stdio Transport
    2. Configuration File
      1. Server
      2. Tools
    3. Contribution

      Appeared in Searches

      ID: fizi08hz6v