将现有 REST API 转换为 MCP Server工具 -higress_higress mcp

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参数类型(stringnumberintegerbooleanarrayobject)。
tools[].args[].requiredboolean选填false参数是否必需。
tools[].args[].defaultany选填-参数默认值。
tools[].args[].enumarray选填-参数允许的值列表。
tools[].args[].itemsobject选填-数组项的模式(当 typearray 时)。
tools[].args[].propertiesobject选填-对象属性的模式(当 typeobject 时)。
tools[].requestTemplateobject必填-HTTP 请求模板。
tools[].requestTemplate.urlstring必填-请求 URL 模板。
tools[].requestTemplate.methodstring必填-HTTP 方法(如 GETPOST 等)。
tools[].requestTemplate.headersarray of object选填[]请求头模板。
tools[].requestTemplate.headers[].keystring必填-请求头名称。
tools[].requestTemplate.headers[].valuestring必填-请求头值模板。
tools[].requestTemplate.bodystring选填-请求体模板(与 argsToJsonBodyargsToUrlParamargsToFormBody 互斥)。
tools[].requestTemplate.argsToJsonBodyboolean选填false参数直接作为 JSON 请求体(与 bodyargsToUrlParamargsToFormBody 互斥)。
tools[].requestTemplate.argsToUrlParamboolean选填false参数作为查询参数添加到 URL 中(与 bodyargsToJsonBodyargsToFormBody 互斥)。
tools[].requestTemplate.argsToFormBodyboolean选填false参数以 application/x-www-form-urlencoded 格式编码在请求体中(与 bodyargsToJsonBodyargsToUrlParam 互斥)。
tools[].responseTemplateobject必填-HTTP 响应转换模板。
tools[].responseTemplate.bodystring必填-响应体转换模板。

参数类型支持

  • 支持多种参数类型,用于更精确地定义工具参数:
    • string:字符串类型(默认)。
    • number:数字类型(浮点数)。
    • integer:整数类型。
    • boolean:布尔类型(true/false)。
    • array:数组类型,使用 items 字段定义数组元素的模式。
    • object:对象类型,使用 properties 字段定义对象属性的模式。

请求参数传递方式

  • 支持四种请求参数传递方式,这些选项是互斥的
    1. body:手动构建请求体,最灵活的方式。```
      requestTemplate:
      body: |
      {
      “query”: “{{.args.query}}”,
      “filters”: {{toJson .args.filters}},
      “options”: {
      “limit”: {{.args.limit}}
      }
      }

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

      
      
    3. argsToUrlParam:参数作为查询参数添加到 URL 中。```
      requestTemplate:
      argsToUrlParam: true

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

      
      
      

模板语法

  • 使用 GJSON Template 语法,结合了 Go 模板和 GJSON 路径语法。
  • 请求模板
    • 访问配置值:{{.config.字段名}}
    • 访问工具参数:{{.args.参数名}}
  • 响应模板
    • 使用 GJSON 路径语法访问 JSON 响应字段。
    • 使用模板函数(如 addupperlower 等)。
    • 使用控制结构(如 ifrange 等)。
  • 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,无需编写额外的代码。

如何系统学习掌握AI大模型?

AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。

学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。

这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!

有需要的小伙伴,可以点击下方链接免费领取【保证100%免费

点击领取 《AI大模型&人工智能&入门进阶学习资源包》*

1.学习路线图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果大家想领取完整的学习路线及大模型学习资料包,可以扫下方二维码获取
在这里插入图片描述

👉2.大模型配套视频👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。(篇幅有限,仅展示部分)

img

👉3.大模型经典学习电子书👈

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(篇幅有限,仅展示部分,公众号内领取)

img

👉4.大模型面试题&答案👈

截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(篇幅有限,仅展示部分,公众号内领取)

img

大模型面试

**因篇幅有限,仅展示部分资料,**有需要的小伙伴,可以点击下方链接免费领取【保证100%免费

点击领取 《AI大模型&人工智能&入门进阶学习资源包》

**或扫描下方二维码领取 **

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员一粟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值