详细的 MCP Gateway 代理服务配置指南
port
pid
reload_interval
reload_switch
name
: 代理服务名称,全局唯一,用于标识不同的代理服务tenant
: 租户标识,用于多租户场景的数据隔离和权限管理prefix
的基础之上衍生出3个接入点:
${prefix}/sse
,如:/gateway/user/sse
${prefix}/message
,如:/gateway/user/message
${prefix}/mcp
,如:/gateway/user/mcp
{{.Config}}
引用。此处可以通过写死在配置文件里的方式,也可以通过从环境变量中获取的方式。通过环境变量注入的话,需要通过{{ env "ENV_VAR_NAME" }}
的方式引用
.Config
: 从服务级别的配置中提取值.Args
: 直接从请求参数中提取值.Request
: 从请求中提取的值,包括请求头.Request.Headers
、请求体.Request.Body
等header
: 参数将被放置在请求头中query
: 参数将被放置在URL查询字符串中path
: 参数将被放置在URL路径中body
: 参数将被放置在JSON格式的请求体中form-data
: 参数将被放置在multipart/form-data格式的请求体中,用于文件上传等场景string
: 字符串类型number
: 数字类型boolean
: 布尔类型array
: 数组类型,需要配合 items
定义数组元素类型object
: 对象类型,可以使用 properties
定义对象结构array
类型参数,可以定义详细的元素结构:
form-data
作为参数位置时,不需要指定 requestBody
,系统会自动将参数组装成 multipart/form-data 格式。
对于JSON格式的请求体,需要在 requestBody
中组装,比如:
endpoint
即目标地址也可以使用以上的来源去提取值,比如 http://localhost:5236/users/{{.Args.email}}/preferences
就是从请求参数中提取的值
.Response.Data
: 从响应中提取的值,响应必须是JSON的格式才可以提取.Response.Body
: 直接透传整个响应体,会忽略响应内容格式,直接传递给客户端.Response
来提取值,比如:
mock-server.yaml
stdio 类型
command
、args
和 env
SSE 类型
url
参数指向上游 SSE 服务地址streamable-http 类型
url
参数指向上游 MCP 服务地址env
字段可以设置环境变量,支持从请求中提取值,例如 {{.Request.Headers.Apikey}}
表示从请求头中提取 Apikey 的值
Mcp-Session-Id
是必须要支持的,否则客户端无法正常使用。Signal 通知
API 通知
Redis 通知
toJSON
直接使用
toJSON
函数可以确保复杂的对象和数组被正确序列化为 JSON 格式,特别适用于嵌套结构和包含特殊字符的数据。安全性
性能
维护性
测试
语法检查
环境变量验证
存储连接测试
引用验证
模板验证
端点测试
权限验证