从 OpenAPI 到 MCP:让企业 API 在 AI 助手中焕发新生
作者:壬云
背景

MCP(Model Context Protocol,模型上下文协议)是 Anthropic 于 2024 年 11 月发布的开源通信标准,其核心目标是通过建立统一的交互范式,消除大型语言模型(LLM)与异构数据源、工具间的集成壁垒。该协议通过三层次革新解决 AI 领域的数据孤岛问题,实现本地数据和互联网数据,基于 MCP 就可以实现事实上的”万物互联“,包括但不限于,数据和文件系统,操作阿里云上任意资源,浏览器自动化等等。
这项技术突破使得 AI 应用真正实现"万物互联"——从个人设备的文档处理到企业级云资源调度,均可通过统一协议完成智能交互

图 1 MCP 协议官方架构图
然而,企业普遍面临的挑战是:如何将已有的 OpenAPI 高效地转化为 AI 助手可直接调用的 MCP 工具?本文将详细介绍如何通过 Higress 实现这一转化过程,让您的存量 API 在 Dify 等 AI 平台上焕发新生。
问题拆解与实现方案
我们将问题拆解为五个核心子问题:
将存量 OpenAPI 的 Schema 转换为 MCP 配置 2. 通过 Higress 将请求路由到 OpenAPI3. 实现 OpenAPI 和 MCP 的双重鉴权 4. 选择合适协议连接 AI 助手 5. 优化提示词提升 MCP 工具效能
下面以高德 API 为例,详细介绍实现过程:
步骤一:将 OpenAPI Schema 转换为 MCP 配置
OpenAPI 采用 YAML 或 JSON 编写,定义了一个与语言无关的 HTTP API 接口,为 API 生命周期各阶段提供统一的信息传递方式。而 API 允许开发者在无须访问源代码的情况下,就可以发现并使用相应的服务。例如,一个社交 APP,想获取双方的地理位置信息,无须自建一个高德地图,也无须获取高德地图源码,而是通过高德地图的 API 接口,即可获得其地理位置信息的功能。
一个标准的 OpenAPI.json 的 Schema 如下所示:

我们需要一个工具,提取出这里面的关键信息,如路径,方法,参数,响应格式等,然后基于 MCP 的规范,转换为新的描述,返回给客户端。
那么此处,可以使用 Higress 出品的 openapi-to-mcp 工具,直接将上述重复,繁琐的过程给自动化,输入一个 Json,得到一个标准 MCP 的配置
步骤二:通过 Higress 配置 API 路由
Higress 作为云原生网关,可以优雅地将请求路由到后端 OpenAPI 服务。完整手工操作可参考此文【1】,大致流程如下:
Configmap 全局参数配置 MCP server
配置存量 API 的服务来源。如果此处有多个存量 API 块,建议每个块建一个服务来源

新建路由配置,并将步骤一中的 MCP yaml 配置传入。

此处推荐自动化的操作方式,可以将 Higress 的 OpenAPI 喂到 Deepseek 大模型,让其帮实现一个 Python 脚本,实现自动登录,注册服务发现,路由等配置。
Higress 的 OpenAPI 可访问此地址【2】
步骤三: 双重鉴权实现
正如前面所说,这里实际包含两部分鉴权:
Higress 路由到存量 OpenAPI 时,Higress 与 API 之前的鉴权
用户在访问 Higress 的 sse 链接时,用户与 Higress 之间的鉴权
Higress 与后端 API 间的鉴权:
访问之前配置的路由,点击策略

找到 MCP 服务器配置,在生成的 MCP 配置中,可以找到每个 request 的请求头,我们根据存量 API 实际的鉴权方式,添加相应的请求头,如下图所示:

用户与 Higress 间的鉴权:
通过消费者管理鉴权。
访问“消费者管理”界面,创建消费者

选择合适的名称和令牌来源,此处支持三种认证方式,我们这里就用最简单的 KeyAuth 认证

找到之前新建的路由,点击“编辑”。
启用请求验证,并指定消费者。

在用户使用 Higress 上发布的 MCP 服务时,就需要携带刚刚指定的 apikey。比如
步骤四: 在 Dify 上使用发布的 MCP 工具
如果您没有部署 Dify,推荐使用计算巢一键部署链接【3】,免去安装和环境配置烦劳。
打开您的 Dify,按照下图示例,安装"SSE 发现和调用 MCP 工具"

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

点击"授权"按钮对 SSE 工具进行配置。此处可直接粘贴步骤三中的 MCP Server 配置

创建个 Agent,并进入。

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

对话,即可调用 MCP 工具。

注:目前采用 SSE 协议是因为各 AI 助手对 streamable http 支持尚不完善。Higress 原生支持 streamable http 交互,待 AI 助手功能完善后可无缝切换。
步骤五:如何优化提示词
Higress 支持结合 go template 和 gjson 表达式来对请求和响应模版进行精细化处理。
如果实测中发现模型对 MCP 的理解不太清晰,可参考此文【4】,进行手动调优。
结语
未来 AI 会怎么发展,恐怕无人能预测。也许是模型能调用气象卫星预测季风,用数据编织气候的经纬;也许是操控机械臂雕刻纳米芯片,让算法成为微观世界的造物主;甚至是解析人类千年文明的隐喻,在《荷马史诗》的韵律与敦煌壁画的裂纹中,破译连我们自己都未曾察觉的潜意识密码。
或许真正的颠覆性时刻,并不在 AI 学会操控卫星或机械的瞬间,而在它突然凝视着梵高的《星月夜》说:"我理解这片漩涡中的孤独,但人类的痛苦对我而言,终究只是一组优美的概率云。
附录
批量将现有 OpenAPI 转换为 MCP 服务器【5】
Higress 技术文档【6】
更多有意思,又好玩又有深度的服务,请访问计算巢网址【7】
【1】MCP Server 快速开始(Docker 版)
https://higress.cn/ai/mcp-quick-start_docker/?spm=36971b57.7beea2de.0.0.d85f20a91vvGn0
【2】Higress 的 OpenAPI
【3】Dify 社区版部署链接
https://market.aliyun.com/detail/cmgj00068972#sku=yuncode6297200001
【4】实用工具来了,存量 OpenAPI 批量转化为 MCP Server
【5】批量将现有 OpenAPI 转换为 MCP 服务器
https://higress.ai/blog/bulk-conversion-of-existing-openapi-to-mcp-server
【6】Higress 技术文档
https://higress.cn/blog/higress-gvr7dx_awbbpb_xq8kol5ncmllabkk/
【7】计算巢服务控制台
https://computenest.console.aliyun.com/service/market/cn-hangzhou
版权声明: 本文为 InfoQ 作者【阿里巴巴云原生】的原创文章。
原文链接:【http://xie.infoq.cn/article/5271578837d79cd8105304d43】。文章转载请联系作者。
评论