Cherry Studio 和 Dify 等一键接入 stdio MCP Server 的实践

壬云

|

2025年5月14日

|

Share on X

作者:壬云

简介

在 AI 应用日益复杂的当下,MCP 工具集成面临三大痛点:

  • 单工具部署效率低下,每次仅支持单个工具部署

  • 调用方式割裂,无法兼容 OpenAPI 与 MCP

  • 动态管理困难,工具增减需重复部署

为突破这些限制,我们提出基于阿里云计算巢的一站式解决方案——通过标准化协议实现多MCP工具批量部署,提高云上的资源利用率,并首创OpenAPI与MCP双通道调用能力,使Dify、Cherry Studio,OpenWebUI等主流AI助手均可无缝接入。

背景

MCP(Model Context Protocol,模型上下文协议)是Anthropic于2024年11月发布的开源通信标准,其核心目标是通过建立统一的交互范式,消除大型语言模型(LLM)与异构数据源、工具间的集成壁垒。该协议通过三层次革新解决AI领域的数据孤岛问题,实现本地数据和互联网数据,基于MCP就可以实现事实上的”万物互联“,包括但不限于,数据和文件系统,操作阿里云上任意资源,浏览器自动化等等。

这项技术突破使得AI应用真正实现"万物互联"——从个人设备的文档处理到企业级云资源调度,均可通过统一协议完成智能交互。

图1 MCP协议官方架构图

而Higress作为AI原生网关,率先实现了REST API到MCP Server的自动化转换。其API-to-MCP工具通过声明式配置文件(YAML格式),可将高德地图等REST API快速封装为MCP工具,无需编写代码。例如,通过定义请求模板和响应转换规则,开发者可在数分钟内完成接口适配,并享受统一认证、细粒度限流等企业级能力 。

然而,现有方案存在关键限制:Higress仅支持MCP Server托管,无法对接开源生态中大量基于stdio通信的MCP Server(如时间服务、Fetch工具等)。这些工具通常以命令行形式运行。为解决这一问题,我们的方案创新性地整合了MCPO开源项目与Higress能力,补齐了Higress在这方面的能力,基于计算巢和Higress提供了首个多MCP工具批量一键部署方案!

对比

传统MCP市场

计算巢-Higress解决方案

部署方式

每次只能选择单个MCP工具进行部署

支持选择多个MCP工具同时部署,复用ECS资源,提高资源利用率

调用兼容性

不能同时兼容OpenAPI和MCP的方式调用工具,这导致只能适配部分平台

支持通过OpenAPI和MCP两种方式调用,支持Dify,Cherry Studio,OpenWebUI等AI助手,支持百炼平台等

工具管理

增减要使用的MCP工具麻烦

支持通过变配动态增删要使用的MCP工具

平台对比

无法很好的兼容托管和私有化部署方式

该方案解决私有MCP问题,Higress平台解决托管问题


原理剖析

图二 计算巢MCP服务架构

本方案的核心依赖于开源项目mcpoHigress实现。整体工作步骤如下:

工具选择与配置生成

用户可选择多个MCP工具(如时间服务、高德地图等),系统将用户选择转化为标准化的JSON配置。每个工具的配置包含以下关键字段:

  • <font style="color:rgb(38, 38, 38);background-color:rgb(229, 229, 229);">args</font>: 工具启动参数数组

  • <font style="color:rgb(38, 38, 38);background-color:rgb(229, 229, 229);">serverCode</font>: 服务唯一标识符

  • <font style="color:rgb(38, 38, 38);background-color:rgb(229, 229, 229);">env</font>: 环境变量配置(包含API密钥等敏感信息)

  • <font style="color:rgb(38, 38, 38);background-color:rgb(229, 229, 229);">command</font>: 执行命令类型(如<font style="color:rgb(38, 38, 38);background-color:rgb(229, 229, 229);">uvx</font><font style="color:rgb(38, 38, 38);background-color:rgb(229, 229, 229);">npx</font>等)

示例配置展示了时间服务和高德地图服务的不同参数结构和环境需求。

{
  "args": [
    "mcp-server-time"
  ],
  "serverCode": "time",
  "env": {},
  "command": "uvx"
},
{
  "args": [
    "-y",
    "@amap/amap-maps-mcp-server"
  ],
  "serverCode": "amap-maps",
  "env": {
    "AMAP_MAPS_API_KEY": "dadasdaad"
  },
  "command": "npx"
}

2. 拉起MPCO服务

MCPO开源服务作为核心MCP工具功能提供方,通过解析第一步骤的JSON配置后在本地环境暴露标准化的OpenAPI接口,便于服务发现和调用

3. 协议转换阶段

OpenApi-To-Mcp自动化工具执行关键的协议转换工作:

  • 提取原始OpenAPI规范文档(通常为Swagger/OpenAPI格式)

  • 分析API端点、参数结构和响应模式

  • 生成符合MCP协议规范的配置文件

注意:该步骤做的相关协议的配置转换是无损的,不会影响到最终MCP工具的调用

4. 服务注册与路由配置

自动化注册工具与Higress网关集成,完成:

  • 服务元数据注册(包括服务来源、健康检查端点等)

  • 动态路由规则配置

  • MCP配置注入

  • 服务依赖关系建立与维护

5. 统一服务暴露与安全控制

最终架构通过双通道方式暴露服务:

  • Higress网关负责暴露MCP工具的SSE(Server-Sent Events)链接,支持实时数据推送

  • MCPO服务负责暴露标准化的OpenAPI接口,支持请求-响应模式交互

  • 整体服务访问通过统一的ApiKey进行鉴权,确保安全性


部署和使用实战

部署流程

部署步骤

  1. 单击部署链接,进入服务实例部署界面,选择想部署的地域,根据界面提示,填写参数完成部署。

  2. 多选你想使用的MCP工具集合。

  3. 这里的MCP有两种类型。一种是无需环境变量的,比如"时间服务",则直接勾选上,跳过参数配置步骤。

  4. 另一种MCP类型需要环境变量,比如高德地图,则需要配置上环境变量,否则MCP Server会部署失败

  5. 如果不清楚当前MCP工具怎么使用,可以点击查看"帮助文档"查看和学习。

  6. 系统默认帮你生成了一个API KEY,用于保护你即将部署的MCP工具。你可以手动修改此参数。

  7. 配置你的ECS实例规格,建议选择2核4G的规格以上。配置ECS登录密码

  8. 对可用区和网络进行配置。推荐选择任意可用区后,直接新建网络和虚拟机

  9. 点击立即创建,等待部署成功,该过程一般耗时3分钟。该时长根据您选择的工具的多少有所波动。

  10. 访问刚部署成功的实例界面,可查看到您部署的专属MCP工具的地址和API秘钥。

AI助手使用示例

Cherry Studio使用示例

  1. 来到计算巢实例界面,接下来的操作需要使用"MCP Server访问地址"部分

  2. 打开您的Cherry Studio助手,如没有可访问官网部署,按照下图示例,新建MCP服务器。

  3. "名称"和描述可以随便填,类型选择"服务器发送事件(sse)

  4. URL填写实例界面的此处链接

注意此处使用的是http协议,结尾是sse后缀

  1. 在请求头添加上鉴权参数:xxx,注意此处需要将":“改为”="填入,比如Authorization=Bearer 123

  1. 先点击右上角的启用按钮再点击保存按钮。

  2. 来到对话界面,选择要使用的MCP工具。

  3. 选择合适的模型,与AI对话,比如"我现在在杭州云谷,请给我推荐开车半小时以内的餐馆",即可让AI调用模型帮你找到合适的餐馆。

Dify 使用示例

  1. 同Cherry Studio使用第一步,接下来的操作需要使用"MCP Server访问地址"部分

  2. 打开您的Dify,如没有Dify可访问阿里云快速部署链接进行部署,按照下图示例,安装"SSE发现和调用MCP工具"

  3. 如果后续使用出现问题,可将此工具版本降低到0.0.10。

  4. 点击"授权"按钮对SSE工具进行配置。此处可直接粘贴步骤一中的MCP Server访问地址

  5. 创建Agent,并进入。

  6. 按照下图示例,开启MCP工具调用,填写合适的提示词,选择合适的模型,比如QWEN-max。

  7. 对话,即可调用MCP工具。

百炼使用示例

  1. 来到计算巢实例界面,接下来的操作需要使用"百炼Mcp Server地址"部分

  2. 打开您的百炼控制台,进入到MCP界面

  3. 选择SSE的安装方式,填写合适的服务名称和描述

  4. 选择要使用的MCP工具,比如此处使用高德地图,将其配置粘贴到"MCP服务配置"中,示例如下。

{"mcpServers":{"amap-maps":{"type":"sse","url":"http://47.xxx:8080/amap-maps/sse","headers":{"Authorization":"Bearer rBrrSh7ZhA"}}}}
  1. 注意,此处如果在计算巢选择安装了多个工具,需要在控制台每个工具配置一次MCP服务。

  2. 在百炼"应用"界面,点击"应用管理",点击"新增应用",选择"智能体应用",并点击创建

  3. 按照图示顺序添加要使用的MCP工具。

  4. 选择合适的模型,即可在对话中使用MCP功能。

Open WebUI使用示例

  1. 访问计算巢实例界面,找到工具OpenAPI访问地址

  2. 打开您的Open WebUI客户端,如没有请访问阿里云快速部署链接部署,并将地址和API秘钥粘贴进去。

  3. 新建个对话,并开启MCP工具

  4. 验证一下AI使用您的MCP工具!

动态增减使用的MCP工具

如果想要修改要使用的MCP工具请参考下列操作

  1. 在计算巢控制台,点击"我的实例",选择之前部署的MCP Server实例,点击右上方的"修改配置"。

  2. 点击修改MCP工具,并点击"下一步"

  3. 选择想要新增的MCP工具,比如我这新增了Fetch工具。(注意:之前选择的工具在此处会被重新渲染)

  4. 如果此处MCP工具涉及到环境变量,则一定要按照文档进行设置。

  5. 点击确定,发起工具修改请求。

  6. 等待实例状态变更完。

  7. 将输出中新增的MCP工具加入到AI对话客户端中。

问题排查

如果发现实例一直未部署成功,90%的概率是环境变量配置错误,可参考以下步骤排查:

  1. 通过会话管理登录到ECS实例。

  2. 输入以下指令确认环境变量是否正确。

cat /root/config.json
  1. 对配置进行修改。重启docker compose应用

sudo systemctl restart quickstart-mcp

更多问题,请访问MCP官方了解如何使用:使用文档

结语

MCP协议正以标准化接口的身份,重塑人工智能与现实世界的连接方式。它不仅是AI工具间的"通用语言",更是打通数字系统与物理世界的桥梁。通过定义统一的交互规范,MCP使AI模型能够自主调用气象卫星数据预测季风轨迹,在纳米尺度操控机械臂雕刻芯片,甚至解析敦煌壁画的矿物色谱与《荷马史诗》的韵律结构,揭示人类文明潜藏的认知规律!

联系我们

通过以下方式,加入并关注我们,获取 higress.ai 最新动态;如您在使用过程遇到问题,请联系我们。

钉钉群

微信群

微信公众号

联系我们

通过以下方式,加入并关注我们,获取 higress.ai 最新动态;如您在使用过程遇到问题,请联系我们。

钉钉群

微信群

微信公众号

联系我们

通过以下方式,加入并关注我们,获取 higress.ai 最新动态;如您在使用过程遇到问题,请联系我们。

钉钉群

微信群

微信公众号

联系我们

通过以下方式,加入并关注我们,获取 higress.ai 最新动态;如您在使用过程遇到问题,请联系我们。

钉钉群

微信群

如过期请加微信:nomadao,注明 higress

微信公众号