Higress 是一款云原生 API 网关,集成了流量、微服务、安全及 AI 网关功能。它基于 Istio 和 Envoy 开发,支持使用 Go、Rust、JS 等语言编写 Wasm 插件,提供开箱即用的控制台。特别是其 AI 网关能力,支持 OpenAI、DeepSeek 等多种服务商,并具备令牌限流、消费者鉴权、WAF 防护及语义缓存等功能。
MCP Server 插件核心能力
借助 MCP(Model Context Protocol)插件,我们可以将现有的 REST API 直接转化为 AI 助手可调用的工具,无需额外编写代码。这不仅是简单的接口暴露,而是利用 Higress 网关的统一认证、鉴权、限流和可观测性能力,确保调用的安全性与性能。通过插件机制,添加新的 MCP Server 变得非常快速。
插件默认在标准阶段执行,优先级设为 30。配置主要分为 Server 基础信息和具体的 REST-to-MCP 工具定义两部分。
基础配置项
在 Server 层面,需要指定唯一的名称。如果是内置的 MCP Server(例如 quark-search),只需配置名称;若是自定义的 REST 转换场景,则需自行命名。此外,还可以配置 API 密钥等敏感信息,以及限制允许调用的工具列表。
| 字段名 | 类型 | 必填 | 描述 |
|---|---|---|---|
server.name | string | 是 | MCP Server 的唯一标识 |
server.config | object | 否 | 存放 API 密钥等配置 |
server.allowTools | array | 否 | 白名单,未指定则允许所有 |
工具定义细节
核心在于 tools 数组。每个工具都需要明确名称、功能描述以及参数结构。参数支持多种类型,包括字符串、数字、布尔值、数组甚至对象。对于复杂类型,可以通过 items 或 properties 进一步定义模式。
请求模板决定了如何将 AI 传入的参数映射到 HTTP 请求。支持四种互斥的传递方式:
- 表单提交:自动设置
application/x-www-form-urlencoded。 - URL 参数:追加到查询字符串。
- JSON Body:自动设置
Content-Type: application/json。 - 手动构建:最灵活,适合复杂逻辑。
响应模板则负责将 HTTP 返回的数据转换为 AI 能理解的格式。这里使用了 GJSON Template 语法,结合了 Go 模板和 GJSON 路径。例如,访问配置值用 {{.config.key}},访问参数用 {{.args.param}}。GJSON 路径还支持点表示法、数组索引及过滤操作,如 users.#(age>=30)#.name。
实战配置示例
先来看一个内置服务的简单配置,比如调用 quark-search:
server:
name: "quark-search"
config:
apiKey: "xxxx"
更常见的是将高德地图 API 转换为 MCP 工具。下面是一个完整的配置片段,展示了如何定义地址解析工具:
server:
[, ]


