跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Go / GolangAI

基于 Higress 将 REST API 转换为 MCP Server 工具配置指南

Higress 网关通过 MCP Server 插件将 REST API 转换为 AI 助手可调用的工具,支持无需编写代码即可实现统一认证、鉴权、限流和可观测性。配置涵盖 Server 名称、API 密钥、工具列表及参数定义,支持多种参数类型和请求传递方式(JSON Body、URL Param、Form Body)。利用 GJSON Template 语法处理请求与响应模板,提供内置 Server 及高德地图 API 转换示例,帮助开发者快速构建 AI Agent 数据源支持。

苹果系统发布于 2026/2/8更新于 2026/10/253.7K 浏览
基于 Higress 将 REST API 转换为 MCP Server 工具配置指南

Higress 是一款云原生 API 网关,集成了流量网关、微服务网关、安全网关和 AI 网关的功能。它基于 Istio 和 Envoy 开发,支持使用 Go/Rust/JS 等语言编写 Wasm 插件,提供了数十个通用插件和开箱即用的控制台。Higress AI 网关支持多种 AI 服务提供商,如 OpenAI、DeepSeek、通义千问等,并具备令牌限流、消费者鉴权、WAF 防护、语义缓存等功能。

MCP Server 插件配置

Higress

功能说明

  • mcp-server 插件基于 Model Context Protocol (MCP),专为 AI 助手设计,定义了 AI 模型与外部工具和资源交互的标准方式。
  • 功能特点:
    1. 无需编写代码:将现有 REST API 转换为 AI 助手可调用的工具。
    2. 统一认证、鉴权、限流和可观测性:利用 Higress 网关提供的能力,确保安全性和性能。
    3. 快速构建和部署:通过 Higress 插件机制,快速添加新的 MCP Server。

运行属性

  • 插件执行阶段:默认阶段
  • 插件执行优先级:30

配置字段

Server 配置

字段名数据类型填写要求默认值描述
server.namestring必填-MCP Server 的名称。如果是内置 MCP Server(如 quark-search),只需配置此字段;如果是 REST-to-MCP 场景,此字段可以自定义。
server.configobject选填{}MCP Server 配置,如 API 密钥等。
server.allowToolsarray of string选填-允许调用的工具列表。如果不指定,则允许所有工具。

REST-to-MCP 工具配置

字段名数据类型填写要求默认值描述
toolsarray of object选填[]REST-to-MCP 工具配置列表。
tools[].namestring必填-工具名称。
tools[].descriptionstring必填-工具功能描述。
tools[].argsarray of object必填[]工具参数定义。
tools[].args[].namestring必填-参数名称。
tools[].args[].descriptionstring必填-参数描述。
tools[].args[].typestring选填string参数类型(string、number、integer、boolean、array、object)。
tools[].args[].requiredboolean选填false参数是否必需。
tools[].args[].defaultany选填-参数默认值。
tools[].args[].enumarray选填-参数允许的值列表。
tools[].args[].itemsobject选填-数组项的模式(当 type 为 array 时)。
tools[].args[].propertiesobject选填-对象属性的模式(当 type 为 object 时)。
tools[].requestTemplateobject必填-HTTP 请求模板。
tools[].requestTemplate.urlstring必填-请求 URL 模板。
tools[].requestTemplate.methodstring必填-HTTP 方法(如 GET、POST 等)。
tools[].requestTemplate.headersarray of object选填[]请求头模板。
tools[].requestTemplate.headers[].keystring必填-请求头名称。
tools[].requestTemplate.headers[].valuestring必填-请求头值模板。
tools[].requestTemplate.bodystring选填-请求体模板(与 argsToJsonBody、argsToUrlParam、argsToFormBody 互斥)。
tools[].requestTemplate.argsToJsonBodyboolean选填false参数直接作为 JSON 请求体(与 body、argsToUrlParam、argsToFormBody 互斥)。
tools[].requestTemplate.argsToUrlParamboolean选填false参数作为查询参数添加到 URL 中(与 body、argsToJsonBody、argsToFormBody 互斥)。
tools[].requestTemplate.argsToFormBodyboolean选填false参数以 application/x-www-form-urlencoded 格式编码在请求体中(与 body、argsToJsonBody、argsToUrlParam 互斥)。
tools[].responseTemplateobject必填-HTTP 响应转换模板。
tools[].responseTemplate.bodystring必填-响应体转换模板。

参数类型支持

支持多种参数类型,用于更精确地定义工具参数:

  • string:字符串类型(默认)。
  • number:数字类型(浮点数)。
  • integer:整数类型。
  • boolean:布尔类型(true/false)。
  • array:数组类型,使用 items 字段定义数组元素的模式。
  • object:对象类型,使用 properties 字段定义对象属性的模式。

请求参数传递方式

支持四种请求参数传递方式,这些选项是互斥的:

argsToFormBody:参数以 application/x-www-form-urlencoded 格式编码在请求体中,并自动添加相应的 Content-Type 头。

requestTemplate:argsToFormBody:true

argsToUrlParam:参数作为查询参数添加到 URL 中。

requestTemplate:argsToUrlParam:true

argsToJsonBody:参数直接作为 JSON 对象发送到请求体中,并自动添加 Content-Type: application/json; charset=utf-8 头。

requestTemplate:argsToJsonBody:true

body:手动构建请求体,最灵活的方式。

requestTemplate:body:| { "query": "{{.args.query}}", "filters": {{toJson .args.filters}}, "options": { "limit": {{.args.limit}} } }

模板语法

使用 GJSON Template 语法,结合了 Go 模板和 GJSON 路径语法。

  • 请求模板:
    • 访问配置值:{{.config.字段名}}
    • 访问工具参数:{{.args.参数名}}
  • 响应模板:
    • 使用 GJSON 路径语法访问 JSON 响应字段。
    • 使用模板函数(如 add、upper、lower 等)。
    • 使用控制结构(如 if、range 等)。
  • GJSON 路径语法:
    • 点表示法:address.city
    • 数组索引:users.0.name
    • 数组迭代:users.#.name
    • 数组过滤:users.#(age>=30)#.name
    • 修饰符:users.@reverse.#.name
    • 多路径:{name:users.0.name,count:users.#}
    • 转义字符:path.with\.dot

配置示例

使用内置 MCP Server 示例:配置 quark-search

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,无需编写额外的代码。

目录

  1. MCP Server 插件配置
  2. 功能说明
  3. 运行属性
  4. 配置字段
  5. Server 配置
  6. REST-to-MCP 工具配置
  7. 参数类型支持
  8. 请求参数传递方式
  9. 模板语法
  10. 配置示例
  11. 使用内置 MCP Server 示例:配置 quark-search
  12. 基础配置示例:转换高德地图 API

更多推荐文章

查看全部
  • 技术分析:番茄小说推荐期刷评论的危害与风控机制
  • Python 3.8+ 海象运算符详解
  • mdev 与 udev:嵌入式及桌面 Linux 设备管理对比
  • Pico 4XVR 1.10.13 安装与使用指南
  • ComfyUI:AI 绘画与图像生成的高效工作流
  • STM32 上运行 AI 大模型的四种方案及案例
  • 阿里 Qwen-Image-2512 开源评测:真实质感与多场景应用实践
  • 机器人 URDF 建模与 Isaac Sim 仿真配置
  • HDFS 核心组件深度解析:分布式文件系统架构基石
  • 嵌入式 UART 协议面试题及参考答案
  • Windows 11 安装 nvm 管理 Node.js 和 npm 多版本及切换
  • 开源异构数据库同步工具 DBSyncer:安装与实战指南
  • Windows 环境 Git 安装与配置教程
  • 网络安全基础知识与防护指南
  • Python for 循环语法与实战应用
  • AI 调参实战:网格搜索优化详解
  • OpenClaw 龙虾 AI 部署与使用记录
  • PyCharm 创建第一个 Python 项目
  • Z-Image-Turbo 与 Stable Diffusion 实测:速度提升 4 倍,质量如何?
  • Java 全栈面试题及答案汇总

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online