使用说明
MCP网关
MCP(模型上下文协议)网关可以将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启动网关:
$ 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传输中启动网关。您可以在Cursor或Cline中进行配置,如下所示:
{
"mcpServers": {
"mcp-gateway": {
"command": "uv",
"args": ["run", "mcp-gateway", "--transport=stdio"]
}
}
}
或具有表单值的MCP检查器:
| 项目 | 价值 |
|---|---|
| 传输类型 | STDIO |
| 命令 | uv |
| 参数 | 运行mcp网关--transport=stdio |
配置文件
配置YAML中有两个部分, server 和 tools. server 定义网关服务器使用的基本信息。 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 }}
服务器
| 项目 | 描述 |
|---|---|
| name | 服务器名称 |
| config | 可以被var引用的键/值对 {{.config.xxx}} 在模板中 |
工具
tools 是MCP工具映射列表。单工具道具。定义如下:
| 项目 | 描述 |
|---|---|
| name | 工具名(函数名),提供给LLM。 |
| description | 工具描述,LLM可以通过该工具了解工具的功能 |
| args | 工具的参数(函数参数)。 |
| requestTemplate | 请求映射到目标HTTP API。 |
| responseTemplate | 目标HTTP API响应的响应映射。 |
单一论点支持。定义如下:
| 项目 | 类型 | 描述 |
|---|---|---|
| name | 参数名称,提供给LLM。 | |
| description | 参数描述,LLM可以通过它理解和决定应该填写什么值。 | |
| required | Boolean | 是否为必需参数。 |
请求模板道具。定义如下:
| 项目 | 描述 |
|---|---|
| 方法 | HTTP方法 |
| url | 目标HTTP API url模板 |
| headers | HTTP标头 |
HTTP标头定义如下:
| 项目 | 描述 |
|---|---|
| key | 标题键 |
| value | 标题值模板 |
响应模板道具定义如下:
| 项目 | 描述 |
|---|---|
| body | 响应正文模板 |
贡献
欢迎各种贡献。
