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

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

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 字段定义对象属性的模式。

请求参数传递方式

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

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 响应字段。
    • 使用模板函数(如 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

配置示例

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

Read more

深挖 DeepSeek 隐藏玩法·智能炼金术2.0版本

深挖 DeepSeek 隐藏玩法·智能炼金术2.0版本

前引:屏幕前的你还在AI智能搜索框这样搜索吗?“这道题怎么写”“苹果为什么红”“怎么不被发现翘课” ,。看到此篇文章的小伙伴们!请准备好你的思维魔杖,开启【霍格沃茨模式】,看我如何更新秘密的【知识炼金术】,我们一起来解锁更加刺激的剧情!友情提醒:《《《前方高能》》》 目录 在哪使用DeepSeek 如何对提需求  隐藏玩法总结 几个高阶提示词 职场打工人 自媒体创作 电商实战 程序员开挂 非适用场地 “服务器繁忙”如何解决 (1)硅基流动平台 (2)Chatbox + API集成方案 (3)各大云平台 搭建个人知识库 前置准备 下载安装AnythingLLM 选择DeepSeek作为AI提供商 创作工作区 导入文档 编辑  编辑 小编寄语 ——————————————————————————————————————————— 在哪使用DeepSeek 我们解锁剧情前,肯定要知道在哪用DeepSeek!咯,为了照顾一些萌新朋友,它的下载方式我放在下面了,拿走不谢!  (1)

By Ne0inhk
【AI大模型】DeepSeek + 通义万相高效制作AI视频实战详解

【AI大模型】DeepSeek + 通义万相高效制作AI视频实战详解

目录 一、前言 二、AI视频概述 2.1 什么是AI视频 2.2 AI视频核心特点 2.3 AI视频应用场景 三、通义万相介绍 3.1 通义万相概述 3.1.1 什么是通义万相 3.2 通义万相核心特点 3.3 通义万相技术特点 3.4 通义万相应用场景 四、DeepSeek + 通义万相制作AI视频流程 4.1 DeepSeek + 通义万相制作视频优势 4.1.1 DeepSeek 优势 4.1.2 通义万相视频生成优势 4.2

By Ne0inhk
【DeepSeek微调实践】DeepSeek-R1大模型基于MS-Swift框架部署/推理/微调实践大全

【DeepSeek微调实践】DeepSeek-R1大模型基于MS-Swift框架部署/推理/微调实践大全

系列篇章💥 No.文章01【DeepSeek应用实践】DeepSeek接入Word、WPS方法详解:无需代码,轻松实现智能办公助手功能02【DeepSeek应用实践】通义灵码 + DeepSeek:AI 编程助手的实战指南03【DeepSeek应用实践】Cline集成DeepSeek:开源AI编程助手,终端与Web开发的超强助力04【DeepSeek开发入门】DeepSeek API 开发初体验05【DeepSeek开发入门】DeepSeek API高级开发指南(推理与多轮对话机器人实践)06【DeepSeek开发入门】Function Calling 函数功能应用实战指南07【DeepSeek部署实战】DeepSeek-R1-Distill-Qwen-7B:本地部署与API服务快速上手08【DeepSeek部署实战】DeepSeek-R1-Distill-Qwen-7B:Web聊天机器人部署指南09【DeepSeek部署实战】DeepSeek-R1-Distill-Qwen-7B:基于vLLM 搭建高性能推理服务器10【DeepSeek部署实战】基于Ollama快速部署Dee

By Ne0inhk

用DeepSeek和Cursor从零打造智能代码审查工具:我的AI编程实践

💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【星海网址导航】摸鱼、技术交流群👉 点此查看详情 引言:AI编程革命下的机遇与挑战 GitHub统计显示,使用AI编程工具的开发者平均效率提升55%,但仅有23%的开发者能充分发挥这些工具的潜力。作为一名全栈工程师,我曾对AI编程持怀疑态度,直到一次紧急项目让我彻底改变了看法。客户要求在72小时内交付一个能自动检测代码漏洞、优化性能的智能审查系统,传统开发方式根本不可能完成。正是这次挑战,让我探索出DeepSeek和Cursor这对"黄金组合"的惊人潜力。 一、工具选型:深入比较主流AI编程工具 1.1 为什么最终选择DeepSeek+Cursor? 经过两周的对比测试,我们发现不同工具在代码审查场景的表现差异显著: 工具代码理解深度响应速度定制灵活性多语言支持GitHub Copilot★★★☆★★★★★★☆★★★★Amazon CodeWhisperer★★☆★★★☆★★★★★★☆DeepSeek★★★★☆★★★★★★★☆★★★★☆Cursor★★★☆★★★★☆★★★★★★★★ 关键发现: * Dee

By Ne0inhk