将现有 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

计算机毕业设计java基于Java的物业管理系统 基于SpringBoot的智慧社区物业综合管理平台 设计住宅小区物业服务与业主报修系统的研发

计算机毕业设计java基于Java的物业管理系统 基于SpringBoot的智慧社区物业综合管理平台 设计住宅小区物业服务与业主报修系统的研发

计算机毕业设计java基于Java的物业管理系统97wd59 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。 随着城市化进程的加快和住宅小区的规模化发展,物业管理在社区治理和居民生活中扮演着越来越重要的角色。传统物业管理方式依赖人工登记、电话沟通和纸质单据,存在信息更新滞后、报修处理缓慢、费用收缴混乱、投诉反馈不畅等问题,给物业管理人员和业主带来了诸多不便。尤其是在停车管理、费用催缴、维修报备等环节,缺乏系统化支持直接影响服务质量和居民满意度。为解决这一痛点,本系统基于Java技术与SpringBoot框架,结合MySQL数据库,设计并开发了一套功能完善的物业管理系统,旨在为物业公司提供高效的运营管理工具,同时为业主打造便捷的线上服务平台。 本系统围绕物业管理与业主服务的核心业务,构建了以下功能模块: * 业主管理:记录业主详细信息,包括业主账号、姓名、性别、楼房号、车牌号、联系方式、头像等 * 车位信息管理:管理小区车位资源,包括车位编号、车位名称、图片、位置、车位状态、发布时间、详情等 * 停车信

By Ne0inhk
运用Java及SunriseSunsetCalculator,探寻长沙市的理论日照时长

运用Java及SunriseSunsetCalculator,探寻长沙市的理论日照时长

目录 前言 一、理论日照时长简介 1、理论日照时长计算 2、理论日照时长数学计算 二、SunriseSunsetCalculator求解 1、SunriseSunsetCalculator引入 2、时区计算设置 3、理论时长计算 4、完整的代码及日常统计 三、总结 前言         在地理学与气象学的研究领域,日照时长一直是备受关注的重要指标。它不仅与地球的自转、公转以及大气环流等诸多自然因素紧密相连,更对人类的生产生活有着深远的影响。从农作物的生长周期到太阳能资源的开发利用,从城市的规划布局到居民的健康生活,日照时长都扮演着不可或缺的角色。而长沙市,作为湖南省的省会城市,以其独特而复杂的地理环境和气候特征,其日照时长的研究具有重要的现实意义和学术价值。         长沙市地处中国南方,属于亚热带季风气候区。这里四季分明,降水充沛,但同时也存在着云层覆盖多、日照时间相对较短等特点。随着城市化进程的加速和经济的快速发展,对于日照时长的精准把握需求日益迫切。一方面,城市规划者需要了解日照时长的分布规律,以合理规划城市建筑布局,确保居民住宅和公共设施能

By Ne0inhk

Java 反射

Java 反射 Java 反射(Reflection)是 Java 语言的一个强大特性,它允许在运行时动态地获取类的信息并操作对象,即使在编译时并不知道这些类的具体结构。 ✅ 一句话理解反射: “程序可以在运行时查看、调用自身或外部类的属性、方法、构造器等,而无需在编译时硬编码。” 一、反射能做什么? 通过反射,你可以: 1. 获取类的 Class 对象 2. 查看类的字段(Field)、方法(Method)、构造器(Constructor) 3. 创建对象实例(即使构造器是 private) 4. 调用任意方法(包括 private 方法) 5. 读写任意字段(包括 private 字段) ⚠️ 注意:反射会绕过访问控制检查(如 private),但需先调用

By Ne0inhk
基于Java的财务报销管理系统的设计与实现

基于Java的财务报销管理系统的设计与实现

一、研究目的 在教育信息化深度推进的背景下,传统校园财务报销模式存在流程繁琐、人工审核效率低、单据管理混乱、数据统计滞后等痛点,难以满足师生便捷报销、财务部门精准管控的需求[1]。同时,高校经费来源多元化、报销业务量激增、审计合规性要求提升,倒逼财务工作数字化转型。在此趋势下,构建校园财务报销管理系统,成为优化报销流程、降低管理成本、提升服务质量与监管效能的必然选择。 本选题旨在针对传统校园财务报销流程繁琐、人工审核效率低下、单据管理混乱、数据统计不及时等痛点,设计并实现一套数字化、智能化的财务报销管理系统[2]。通过线上提交、自动审核、数据联动等功能,简化报销流程,降低财务人员工作强度,提升报销效率与数据准确性;同时强化经费使用监管,规范报销审批流程,满足高校经费多元化管理需求,为师生提供便捷、高效的财务服务,推动校园财务管理数字化转型[3]。 本选题具有重要的实践价值与应用意义,可从师生用户、财务部门、校园管理三个角度分析:对师生而言,系统实现报销流程线上化,简化提交、审批步骤,减少往返奔波,提升报销体验;

By Ne0inhk