静态配置
默认情况下,该插件将 MCP 流量代理到位于 127.0.0.1:3000 的 OpenAPI-to-MCP 服务。
需要更新的文件取决于网关的部署方式:
- Host or Docker
- Kubernetes (Helm)
对于主机或 Docker 部署,请配置以下设置:
plugin_attr:
openapi-to-mcp:
port: 4000
然后重新加载网关,使静态配置更改生效。
对于 Helm 部署,请在 API7 Gateway Helm Chart 中设置以下值。请确保插件属性中的端口与 Chart 管理的边车端口一致。
openapiToMcp:
enabled: true
port: 4000
pluginAttrs:
openapi-to-mcp:
port: 4000
然后将 values 文件应用到现有网关发布版本:
helm upgrade <gateway-release-name> api7/gateway -n <namespace> -f values.yaml
在 Helm 之外更改此值时,还必须更新 OpenAPI-to-MCP 服务,使其监听同一端口,否则插件将返回 503 错误。
参数
有关所有插件均可使用的配置项,请参阅插件通用配置。
transport
有效值:
sse或streamable_http客户端与服务器之间的传输方式。生产部署建议使用
streamable_http,因为它支持适用于多个网关实例的无状态通信。sse是有状态传输,在部署多个网关时可能出现非预期行为。streamable_http传输方式自 API7 企业版 3.8.15 起可用。openapi_url
定义要通过 MCP 暴露的 API 结构的 OpenAPI 规范文档的 URL。
请注意,该插件仅支持 OpenAPI Specification (OAS) 3 版本。不支持 OpenAPI v2 (Swagger)。
此外,该插件在处理从
openapi_url获取的 OpenAPI v3 文档中的oneOf架构时存在已知的解析问题。在这种情况下,MCP 客户端将在加载工具时卡住。base_url
请求转发到的 API 服务的基础 URL。支持在值中使用内置变量(从 API7 企业版 3.8.19 版本开始可用),例如
https://${http_baseurl}.swagger.io。allowed_hosts
有效值:
精确主机名或通配符主机名,例如
api.example.com和*.example.com可选的主机 allow-list,用于限制解析后的
base_url可访问的目标主机。设置后,解析后的主机不在列表中的请求会被拒绝并返回 HTTP 400。自 API7 Enterprise 版本 3.9.13 起可用,APISIX 中暂不可用。headers
包含在发往上游服务的请求中的请求头。支持在值中使用内置变量,例如
$arg_username-$http_apikey。flatten_parameters
是否在工具 Schema 中扁平化参数。查询参数和路径参数扁平化自 API7 企业版 3.8.21 起可用;对 OpenAPI 规范中定义的请求头参数(
in: header)的支持自 3.9.8 起可用。APISIX 暂不支持。设置为
false时,查询参数嵌套在queryParameters下,路径参数嵌套在pathParameters下;自 API7 企业版 3.9.8 起,请求头参数嵌套在headerParameters下。设置为true时,查询参数和路径 参数直接放在properties下;自 3.9.8 起,请求头参数也直接放在properties下。将此参数设置为
true可降低 Schema 复杂度,简化 AI 模型交互。当查询参数、路径参数和请求头参数存在同名项时,请保持为false以避免冲突。