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

Higress 将现有 REST API 转换为 MCP Server 工具

综述由AI生成Higress 是一款云原生 API 网关,其 MCP Server 插件基于 Model Context Protocol,可将现有 REST API 转换为 AI 助手可调用的工具,无需编写代码。插件支持统一认证、鉴权、限流和可观测性。配置包含 Server 设置及 REST-to-MCP 工具定义,支持多种参数类型与请求传递方式(JSON、URL 参数、表单等)。模板语法采用 GJSON Template,结合 Go 模板与 GJSON 路径。内置 quark-search 及高德地图 API 转换示例展示了具体配置方法,帮助开发者快速为 AI Agent 添加数据源支持。

imJackJia发布于 2026/2/5更新于 2026/5/241.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. 功能说明
  2. 运行属性
  3. 配置字段
  4. Server 配置
  5. REST-to-MCP 工具配置
  6. 参数类型支持
  7. 请求参数传递方式
  8. 模板语法
  9. 配置示例
  10. 使用内置 MCP Server 示例:配置 quark-search
  11. 基础配置示例:转换高德地图 API
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 异构预训练 Transformer(HPT)模型详解:解决机器人异构性难题
  • Ubuntu 22.04 下 libwebkit2gtk-4.1-0 依赖问题排查与解决
  • 基于 Java 与 Vue 的大学生理财记账贷款系统
  • HarmonyOS Next 开发:异步 await 缺失导致的逻辑错误及修复
  • OpenClaw Skills 系统深度实践:给 AI 装上工具箱
  • STL 底层揭秘:map/set 如何封装红黑树及迭代器实现
  • Web 全栈开发实战:从架构设计到部署运维
  • VS2019 C++ 调用 YOLOv3 动态库实现目标检测
  • 单链表核心操作实现与详解
  • 滑动窗口算法入门:LeetCode 经典例题解析
  • Zabbix 3.0 声音告警配置指南
  • 6 款主流 AI 模型评测:国产 Agent 第一梯队是谁?
  • C++ GESP 七级核心考点与算法实战指南
  • AI 时代重读《人人都是产品经理》:核心内核与产品实践
  • Flutter 在 OpenHarmony 上适配 eip55 库进行以太坊地址校验
  • 医疗 AI 败血症预测算法全流程实战与 Python 实现
  • 免费 Trae 编辑器实测:i18n 任务排队超千位,AI 编程的边界在哪?
  • Go 语言通过 Gokb 驱动连接 Kingbase 数据库实战
  • 人形机器人:百万亿美元赛道的终极逻辑与通用平台化
  • 文心一言 4.5 开源模型深度解析:轻量化部署与中文场景优化

相关免费在线工具

  • 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