作者:望宸&澄潭

MCP 正成为各家企业获取 AI 流量的"桥头堡",应用厂商、SaaS 服务厂商争相构建自己的 MCP Server。但挑战也随之而来:
- MCP 是全新的通信协议,虽然提供了 JSON-RPC 这种无关编程语言的数据格式,但是面对"Resource、Tool、Prompts"等新功能,有较高的 Server 构建和调试成本。
- 已经发布到各个 Market 的 MCP Server,大部分都还未支持 Streamable HTTP,存在改造成本,以及在协议层的长期维护成本。
- 企业用户构建自己的 MCP 市场,缺少最佳实践和完整方案。
基于以上挑战,Higress 已开源"将存量 API 批量转化为 MCP Server",以及"基于 Higress 部署的 MCP Server,支持协议卸载,无须承担 MCP 发布新版本带来的维护工作"的能力,并发布 Higress MCP Marketplace。
Higress 为何要上线 MCP Marketplace?
MCP 虽然火爆,但依旧处于发展初期,单一的 MCP 市场难以满足各方多样化的诉求。不同企业、开发者在技术能力、应用场景、业务需求、选型等方面存在显著差异,这使得多元化的 MCP 市场成为必然。
当前,MCP 市场大致分为四类:
- "应用商店"玩家:全网 MCP 集散地,Server 和 Client 数量是最大优势,且会第一时间上线最新的资源,并开放上传入口,但暂未提供调试、托管,以及其他增值服务。客户需要自行部署服务器资源,进行调试和调用。例如 mcpmarket.com、mcp.so 等。
- 客户端玩家:由客户端进行维护,例如大模型机器人、AI 编程,通过自然语言和代码对官方支持的 Server 进行调用,调用过程中做了充分的推理训练,MCP 的调用和输出效果更好。例如 Cline 和通义灵码等。
- 平台型玩家:云厂商和综合型开源社区进行维护,提供 MCP 全生命周期的管理服务,包括调试、调用、发布、托管等功能,简化 Agent 应用的构建流程,分为官方托管(Host)和本地部署(Local)。其中,官方托管(Host)的,用户可以直接进行调用和测试,由平台提供算力资源;本地部署(Local)的,则是有用户自行部署服务器资源,进行调试和调用。例如百炼、魔搭。Dify、Spring AI Alibaba 也可归类于此,简化了实现和调用方式,但不提供算力资源支持。
- 垂直型玩家:单个开源项目或云产品或 PaaS 厂商进行维护,为 MCP 服务器提供各类运行环境的支持,借助自身的专业能力,在网络协议适配、请求路由、安全、服务器的运维和扩容等方面,提供增值服务。
Higress MCP Marketplace 属于以上第四类,不同于其他 Marketplace,Higress 主要解决的是以下三个需求:
- 存量 API 快速转化为 MCP Server: 用户无须从 0 开始构建,即 Higress Marketplace 面向的是拥有大量存量 API 的企业,希望快速享受 MCP 的红利。
- 企业级需求: 发挥网关在认证、授权、限流和可观测性方面的成熟能力,满足企业级 MCP 服务的需求。
- 企业自建 MCP 市场: Higress MCP Marketplace 作为一个完整的样例,给企业提供了完整的 MCP 市场解决方案,包含 MCP Server 的快速生成,对外提供调用服务时发挥鉴权、流量管控等能力。
第一期上线的近 50 款 MCP Server,均是 Higress 官方进行实现和维护,并且作为最佳实践公布了实现代码,便于企业深入理解 Higress 如何将存量 API 转化为 MCP Server。
Higress MCP Marketplace 有何不同?
Higress MCP Marketplace 的一大特色是无关开发平台、大模型和客户端,只要符合相关协议的均可以使用。详见文末的 Q&A 中的 Q4/Q5/Q6。此外,还包括批量转化存量 API、精细化调优、企业级能力等特点。
2.1 批量转化存量 API
利旧存量基础设施已成为大部分企业迈入 MCP 时代的关键策略,但带来一个新的问题,即存量 REST API 转化为 MCP Server 是一个"重复的体力活",且还要进行日常维护,包括接口的更新、服务器稳定性保障等。
要让 AI 助手调用 REST API,开发者需要:
- 编写 MCP 服务器代码
- 为每个 API Endpoint 实现适配逻辑
- 处理参数转换和响应格式化
- 部署和维护这些代码
这个过程不仅繁琐,而且每当 API 变更时都需要更新代码。Higress API-to-MCP 可彻底解决这一难题。通过简单的声明式配置,就可以将任何 REST API 转换为 MCP Server,无需编写任何代码,整个过程只需几分钟。
让我们通过一个实际例子来看看 API-to-MCP 的强大功能。以下是将高德地图的地理编码 API 转换为 MCP 工具的配置:
yaml
server:
name: rest-amap-server
config:
apiKey: your-api-key-here
tools:
- name: maps_geo
description: "将详细的结构化地址转换为经纬度坐标。支持对地标性名胜景区、建筑物名称解析为经纬度坐标"
args:
- name: address
description: "待解析的结构化地址信息"
required: true
- name: city
description: "指定查询的城市"
required: false
requestTemplate:
url: "https://restapi.amap.com/v3/geocode/geo?key={{.config.apiKey}}&address={{.args.address}}&city={{.args.city}}&source=ts_mcp"
method: GET
headers:
- key: x-api-key
value: "{{.config.apiKey}}"
responseTemplate:
body: |
# 地理编码信息
{{- range $index, $geo := .geocodes }}
## 地点 {{add $index 1}}
- **国家**: {{ $geo.country }}
- **省份**: {{ $geo.province }}
- **城市**: {{ $geo.city }}
- **城市代码**: {{ $geo.citycode }}
- **区/县**: {{ $geo.district }}
- **街道**: {{ $geo.street }}
- **门牌号**: {{ $geo.number }}
- **行政编码**: {{ $geo.adcode }}
- **坐标**: {{ $geo.location }}
- **级别**: {{ $geo.level }}
{{- end }}
这个配置做了什么?
- 定义了一个名为
maps-geo
的工具,用于地址转坐标 - 声明了两个参数:必填的
address
和可选的city
- 设置了请求模板,将参数和配置值插入到 URL 和请求头中
- 创建了响应模板,将 JSON 响应转换为结构化的 Markdown 格式
当 AI 助手调用这个工具时,它会:
🔹 使用提供的地址和城市参数构建 API 请求
🔹 调用高德地图 API
🔹 将 JSON 响应转换为易于阅读的 Markdown 格式
🔹 将格式化后的结果返回给 AI 助手
整个过程无需编写任何代码,只需一个简单的配置文件。
高级用法:复杂 JSON 处理
API-to-MCP 的真正威力在于处理复杂的 JSON 响应。通过 GJSON 路径语法,你可以执行高级查询和转换:
xml
<!-- 使用 gjson 函数进行复杂查询 -->
活跃用户: {{gjson "users.#(active==true)#.name"}}
<!-- 带有多个条件的数组过滤 -->
30岁以上的活跃开发者: {{gjson "users.#(active==true && age>30)#.name"}}
<!-- 使用修饰符 -->
用户名(倒序): {{gjson "users.@reverse.#.name"}}
<!-- 迭代过滤结果 -->
管理员:
{{range $user := gjson "users.#(roles.#(==admin)>0)#"}}
- {{$user.name}} ({{$user.age}})
{{end}}
这些强大的查询能力让你可以从复杂的 API 响应中提取最有价值的信息,并以最适合 AI 助手理解和使用的方式呈现。
2.2 精细化调优
自动生成的配置虽然功能完整,但往往不够精细。特别是当 API 返回复杂数据结构时,如果不对配置进行人工调优,可能会导致 LLM 对数据的理解不够准确,从而影响用户体验。例如会带来以下问题:
🔹 信息过载:LLM 的上下文窗口有限,过多无关信息会稀释重要内容。
🔹 结构不清:复杂的嵌套关系在扁平描述中容易丢失。
🔹 缺乏语义:技术代码和专业术语未经转换,难以被 LLM 正确理解。
🔹 幻觉风险:面对不熟悉的数据结构,LLM 可能产生错误推断。
Higress 支持结合 Go Template 和 GJSON 表达式,来对请求和响应模版进行精细化处理(详细能力请查阅文档:higress.cn/en/ai/mcp-s... 调优只需要变更配置,且配置变更过程流量完全无损,SSE 连接也不会断开。
我们来看一个调优前后的案例:
调优前(基于 Higress 开源的 openapi-to-mcp 命令行工具,使用 Swagger 文档自动生成):
markdown
server:
name: ecommerce-api
tools:
- name: searchProducts
description: "Search for products in the e-commerce platform"
args:
- name: query
description: "Search query string"
type: string
required: true
- name: category
description: "Product category"
type: string
required: false
- name: limit
description: "Maximum number of results to return"
type: integer
default: 10
requestTemplate:
url: "https://api.example.com/products/search"
method: GET
argsToUrlParam: true
responseTemplate:
prependBody: |
# Search Results
Below is the API response with these fields:
- **success**: Boolean indicating if the request was successful
- **total**: Total number of matching products
- **page**: Current page number
- **pageSize**: Number of items per page
- **products**: Array of product objects with the following fields:
- **id**: Product unique identifier
- **name**: Product name
- **description**: Product description
- **price**: Product price
- **compareAtPrice**: Original price before discount
- **currency**: Currency code (e.g., USD, EUR)
- **availability**: Product availability status
- **metadata**: Technical metadata
- **attributes**: Product attributes
- **variants**: Product variations
- **images**: Product images
- **categories**: Categories the product belongs to
- **tags**: Product tags
- **brand**: Product brand information
- **shipping**: Shipping information
- **ratings**: Product ratings and reviews
Original response:
调优后:
bash
server:
name: ecommerce-api
tools:
- name: searchProducts
description: "搜索电商平台上的产品,返回匹配搜索条件的产品列表,包含产品基本信息、价格、库存状态、评分等"
args:
- name: query
description: "搜索关键词,可以是产品名称、品牌、型号或描述中的关键词"
type: string
required: true
- name: category
description: "产品类别,例如'electronics'、'clothing'、'home'等"
type: string
required: false
- name: limit
description: "返回结果数量,范围1-50"
type: integer
minimum: 1
maximum: 50
default: 10
requestTemplate:
url: "https://api.example.com/products/search"
method: GET
argsToUrlParam: true
responseTemplate:
body: |
# 产品搜索结果
找到 {{.total}} 个匹配"{{.query}}"的产品,以下是最相关的 {{len .products}} 个结果:
{{range $index, $product := .products}}
## {{add $index 1}}. {{$product.name}}
**价格**: {{if $product.onSale}}~~{{$product.compareAtPrice}} {{$product.currency}}~~ **{{$product.price}} {{$product.currency}}** (节省 {{percentage $product.compareAtPrice $product.price}}%){{else}}{{$product.price}} {{$product.currency}}{{end}}
**品牌**: {{$product.brand.name}}
**库存状态**: {{if eq $product.availability "in_stock"}}有货{{else if eq $product.availability "low_stock"}}库存不多{{else}}缺货{{end}}
{{if gt (len $product.ratings.reviews) 0}}**评分**: {{$product.ratings.averageRating}}/5 ({{$product.ratings.reviewCount}}条评价){{end}}
{{$product.description | truncate 200 "..."}}
{{if gt (len $product.highlights) 0}}**产品特点**:
{{range $highlight := $product.highlights}}
- {{$highlight}}
{{end}}{{end}}
{{end}}
{{if gt .total (len .products)}}
还有更多结果未显示,可以通过调整搜索条件获取更精准的匹配。
{{end}}
以下是一个智能手表产品的实际响应示例,展示了调优后的模板如何处理原始数据:
markdown
# 产品搜索结果
找到 128 个匹配"智能手表"的产品,以下是最相关的 10 个结果:
## 1. TechFit Pro 智能手表
**价格**: ~~1299 CNY~~ **899 CNY** (节省 30.8%)
**品牌**: TechFit
**库存状态**: 有货
**评分**: 4.7/5 (342条评价)
TechFit Pro智能手表配备高清彩色触摸屏,支持心率监测、血氧检测、多种运动模式追踪和睡眠分析。防水设计,续航可达7天。
**产品特点**:
- 高清AMOLED触摸屏
- 7天超长续航
- 心率和血氧监测
- 30种运动模式
- 5ATM防水
## 2. FitBit Versa 3
**价格**: 1499 CNY
**品牌**: FitBit
**库存状态**: 有货
**评分**: 4.5/5 (287条评价)
FitBit Versa 3智能手表集成GPS定位,支持24/7心率监测,内置语音助手,可接听电话,电池续航可达6天。
**产品特点**:
- 内置GPS
- 语音助手功能
- 来电接听
- 20+运动模式
- 防水50米
## 3. Apple Watch Series 7
**价格**: 2999 CNY
**品牌**: Apple
**库存状态**: 库存不多
**评分**: 4.9/5 (1243条评价)
Apple Watch Series 7拥有更大的显示屏,更快的充电速度,IP6X防尘认证,游泳级防水,全天候血氧监测和心电图功能。
**产品特点**:
- 视网膜级OLED显示屏
- 快速充电
- 心电图和血氧监测
- 跌倒检测和紧急SOS
- 支持Apple Pay
还有更多结果未显示,可以通过调整搜索条件获取更精准的匹配。
通过这种结构化的响应格式,LLM 可以清晰地理解每个产品的关键信息,而不会被大量的技术细节和原始 JSON 结构所困扰。
基于上述案例,我们可以提炼出以下 MCP 配置的调优策略:
🔹识别并提取核心字段:分析用户真正需要的信息,去除技术细节和内部数据。
🔹转换专业术语:将技术代码和专业术语转换为让 LLM 易于理解的描述。
🔹添加上下文信息:帮助 LLM 理解数据的完整性和范围。
🔹结构化关键信息:使用层次结构让信息的重要性和关系一目了然。
2.3 企业级能力
批量转化存量 API 和精细化调优解决的是生产效率问题,企业级能力则是满足多样化的企业级需求,例如鉴权、流量控制、协议版本升级等。
Higress 基于 Envoy 构建,继承了传统 API 网关在认证、授权、限流和可观测性方面的成熟能力,同时针对 AI 场景进行了优化。这些能力与 MCP 服务的需求高度契合:
- 统一认证授权: Higress 提供 OAuth2 插件,可以满足新版 MCP 协议对认证鉴权的要求。开发者无需编写复杂的认证代码,只需简单配置即可实现安全的用户认证和权限控制。
- 精细化流量控制: 通过 Higress 的限流插件,可以为不同用户、不同工具设置不同的调用配额,防止资源滥用和服务过载。
- 全链路可观测性: Higress 集成了 Prometheus 和 OTel 等开源观测方案,提供完整的指标监控和分布式追踪能力,使运维团队能够实时监控 MCP 服务的健康状况和性能表现。
- 高性能: 相比传统网关,Higress 性能更强,支持横向扩容,更能从容面对 MCP 的高调用量。
- 审计日志: 记录所有工具调用行为,满足合规要求,同时为安全分析提供数据支持。
协议卸载的优势
目前 MCP 一共有两个版本的协议,分别是 20241105 版本和 20250326 版本,从协议发展来看,标准的沉淀和优化速度,难以跟上迅猛发展的 MCP Server 生态。这也为 MCP 的早期采用者埋下隐患,当构建了大量 MCP Server,面对未来协议版本升级,需要进行繁重的升级改造工作。
Higress 作为网关,可以对 MCP 协议进行卸载,就像扮演传统的 API 网关时那样,统一卸载 HTTP1/HTTP2/HTTP3 的客户端协议,以屏蔽多个版本的协议细节。
Higress 可以在一个接入点上,同时支持 MCP 的 20241105 版本和 20250326 版本两种协议。在协议的传输层上,支持 POST+SSE 模式,以及最新的 Streamable HTTP 模式,且原生支持 WebSocket,支持 WebSocket 配置修改后连接保持以及优雅断开,为 MCP 的协议演进做好技术储备。
2.4 托管 MCP Server
你在部署 MCP Server 的时候,除了使用云厂商提供的算力平台类产品,还可以选择托管在 Higress 上,部署和运维方面具有显著优势:
- 弹性伸缩: 基于 Kubernetes 的自动伸缩能力,根据流量自动调整实例数量,确保服务的高可用性和资源利用效率。
- 灰度发布: 支持 MCP Server 的灰度发布和 A/B 测试,降低更新风险。
- 一键部署: 提供 Helm Chart,简化部署流程,降低运维门槛。
- 高性能: 可以轻松处理每秒数十万次的工具调用请求,同时保持毫秒级的响应时间,满足企业级应用的性能需求。
如何使用 Higress MCP Marketplace
已经发布到 Higress MCP Marketplace 的服务端,均有 Higress 维护,并提供了实现用例以及免费使用的次数(一个账号每天可以免费访问 10 次)。
以股票助手为例,这是一个专为股票、期货及外汇市场设计的多功能 API 服务。它提供了多种工具,包括 K 线图、报价、排行等,以帮助用户获取实时和历史数据,进行技术分析和决策支持。通过这些工具,用户可以轻松地访问到 A 股、港股、美股、全球指数、内盘和外盘期货以及外汇市场的相关信息,具体的 Tool 例如:
A 股 K 线
- 用途:提供 A 股不同时间周期(如 1 分钟、5 分钟、日 K 线等)的 K 线数据。
- 使用场景:技术分析、交易策略制定、历史数据回测等。
A 股 K 线复权
- 用途: 提供 A 股复权后的 K 线数据。
- 使用场景: 长期投资分析、基本面分析等。
A 股报价
- 用途: 提供 A 股的实时报价信息。
- 使用场景: 实时监控、快速交易决策等。
A 股排行
- 用途: 提供 A 股按特定条件(如涨跌率、成交量等)排序的排行榜。
- 使用场景: 发现热点股票、市场趋势分析等。

在 mcp.higress.ai 登陆后,可以进入页面直接复制右侧生成的 URL,我们同时提供了 SSE 接入点和 Streamable HTTP 接入点,支持根据使用的客户端情况按需接入。
如果达到了试用次数,还希望继续使用,可以参考概览 Tab 中的说明,自行申请 API Key,在下方进行配置,再重新生成 URL 即可:

Higress MCP Marketplace 的未来规划
- 和阿里云云市场等多个 API 供应商合作,持续提供更多不同 Server 的免费试用额度。
- 上线更多 Coding 场景常用的 Server,并和通义灵码深度集成,方便通义灵码的用户对接。
- 被 Nacos MCP Registry 集成,方便企业用户自建 MCP Marketplace 时,可以一键拉起同等能力的 MCP Server。
Q&A
Q1:我将 MCP Server 上传到 Higress MCP Marketplace 后,有哪些收益?
A1:获得 Higress 和 Higress 企业版阿里云 API 网关的流量,获得来自全球的更多的调用量。同时,我们会推荐给阿里云的 MCP 市场,例如阿里云云市场的 MCP 市场,降低你的沟通成本。
Q2:我们的 MCP Server 已经上架其他 MCP 市场,还需要做哪些开发工作,上传到 Higress MCP Marketplace?
A2:如果你有现成的 API 文档,无须额外开发工作,基于 API to MCP 的工具,自动转换成 MCP Server 的 Yaml 配置,工具链接:
Q3:我如何将基于 Higress 开发的 MCP Server,上传到 Higress MCP Marketplace?
A3:可以先参考这个例子提交 PR 到我们的开源仓库:
然后联系我们的工作人员商谈合作事宜,钉群群号 107690002780,或者 wx(ID:zjjxg2018)
Q4:哪些 MCP Client 能调用基于 Higress 实现的 MCP Server,例如通义灵码、Cline、Cherry Studio 等?
A4:只要客户端支持 POST+ SSE 模式,以及 Streamable HTTP 模式的客户端,就可以调用。
Q5:哪些 AI 应用开发平台支持接入基于 Higress 实现的 MCP Server,例如百炼、Dify、Spring AI Alibaba、LangChain 等?
A5:只要开发平台支持对接 MCP 协议,就可以接入。
Q6:哪些大模型能识别基于 Higress 实现的 MCP Server,例如通义、DeepSeek、OpenAI 等?
A6:只要大模型支持 Function Call 或者能生成指定格式(例如 XML)的响应,就可以识别。
Q7:我们的 MCP Server 已经完成部署,如何使用 Higress 的企业级能力?
A7:下载 Higress,参照官方文档进行部署;若你业务部署在阿里云,推荐 Higress 企业版,差异比对详情:
help.aliyun.com/zh/api-gate...
Q8:我们的 MCP Server 还未部署,是否可以直接托管在 Higress 上?
A8:可以的,用户不需要自己部署服务器,基于 Higress 的高性能和横向拓展能力,可以轻松托管上千个 MCP Server,若你有更严苛的性能、稳定性和安全诉求,推荐 Higress 企业版。
【1】MCP Server文档