Higress 是一款云原生 API 网关,集成了流量、微服务及安全网关功能。它基于 Istio 和 Envoy 开发,支持 Go/Rust/JS 等语言编写 Wasm 插件。其 AI 网关能力支持多种 AI 服务提供商,并具备令牌限流、鉴权及防护等功能。
MCP Server 插件概览
MCP Server 插件基于 Model Context Protocol (MCP),专为 AI 助手设计,定义了 AI 模型与外部工具和资源交互的标准方式。通过该插件,你可以实现以下目标:
- 无需编写代码:直接将现有 REST API 转换为 AI 助手可调用的工具。
- 统一治理:利用 Higress 网关提供认证、鉴权、限流和可观测性能力,确保安全性和性能。
- 快速部署:借助插件机制,快速添加新的 MCP Server。
插件默认在标准阶段执行,优先级为 30。
配置详解
Server 配置
| 字段名 | 数据类型 | 填写要求 | 默认值 | 描述 |
|---|---|---|---|---|
server.name | string | 必填 | - | MCP Server 名称。内置服务器(如 quark-search)只需此字段;REST-to-MCP 场景可自定义。 |
server.config | object | 选填 | {} | 服务器配置,如 API 密钥等。 |
server.allowTools | array of string | 选填 | - | 允许调用的工具列表。不指定则允许所有工具。 |
REST-to-MCP 工具配置
核心在于 tools 数组,每个工具需定义名称、描述、参数及请求响应模板。
| 字段名 | 数据类型 | 填写要求 | 默认值 | 描述 |
|---|---|---|---|---|
tools[].name | string | 必填 | - | 工具名称。 |
tools[].description | string | 必填 | - | 工具功能描述。 |
tools[].args | array of object | 必填 | [] | 工具参数定义。 |
tools[].requestTemplate | object | 必填 | - | HTTP 请求模板。 |
tools[].responseTemplate | object | 必填 | - | HTTP 响应转换模板。 |
参数类型支持 string、number、integer、boolean、array、object。对于数组或对象,可通过 items 或 properties 进一步定义模式。
请求参数传递方式
支持四种互斥的传递方式,可根据 API 需求灵活选择:
- argsToFormBody:参数以
application/x-www-form-urlencoded格式编码,自动添加 Content-Type 头。 - argsToUrlParam:参数作为查询参数添加到 URL 中。
- argsToJsonBody:参数直接作为 JSON 对象发送到请求体,自动添加
Content-Type: application/json; charset=utf-8。 - body:手动构建请求体,灵活性最高。
示例:
requestTemplate:
argsToFormBody: true
模板语法
配置中使用 GJSON Template 语法,结合 Go 模板和 GJSON 路径。
- 访问配置值:
{{.config.字段名}} - 访问工具参数:
{{.args.参数名}} - GJSON 路径:支持点表示法 (
address.city)、数组索引 (users.0.name)、迭代 (users.#.name) 及过滤 (users.#(age>=30)#.name)。
配置示例
内置 MCP Server 示例
server:
name: "quark-search"
config:
apiKey: "xxxx"
基础配置示例:转换高德地图 API
server:
name: rest-amap-server
config:
apiKey: your-api-key-here
tools:
- name: maps-geo
description: "将详细的结构化地址转换为经纬度坐标。支持对地标性名胜景区、建筑物名称解析为经纬度坐标"
args:
- name: address
description: "待解析的结构化地址信息"
type: string
required: true
- name: city
description: "指定查询的城市"
type: string
required: false
- name: output
description: "输出格式"
type: string
enum:
- json
- xml
default: "json"
requestTemplate:
url: "https://restapi.amap.com/v3/geocode/geo"
method: GET
通过 MCP Server,你可以快速为 AI Agent 添加各种数据源支持,提高开发效率。任何 REST API 都可以通过简单的配置转换为 MCP Server,无需编写额外的代码。

