API-to-MCP,并在 Dify 实现调用的实践
探索如何将传统API高效转化为AI助手可调用的MCP工具,实现数据与AI的无缝连接。
核心内容:
1. MCP协议与AI领域数据孤岛问题的解决方案
2. 企业OpenAPI转化为MCP工具的五个核心步骤
3. Higress在API路由配置中的应用与实践案例
01 背景
MCP(Model Context Protocol)是Anthropic在2024年底发布的一个开源通信标准。一句话概括它的野心:让大语言模型和各种各样的数据源、工具之间不再鸡同鸭讲。过去我们常说“数据孤岛”,AI应用要调个本地文件、查个云资源、跑个自动化脚本,得分别写不同的集成代码,费时费力。MCP试图用一套统一的交互协议,把这一切打通——从个人设备上的文档,到阿里云上的任意资源,甚至浏览器的自动化操作,理论上都能通过MCP实现“万物互联”。

MCP协议官方架构图
但理想很丰满,现实很骨感。对于大多数企业来说,手里早就有一堆现成的OpenAPI接口,怎么把这些“存量资产”高效转换成AI助手能直接调用的MCP工具?这才是真正的卡脖子问题。下面就以高德API为例,一步步拆解如何通过Higress来完成这个转化,让老API在Dify这类AI平台上焕发第二春。
02 问题拆解与实现方案
整个转化过程可以拆成五个核心环节:
- 把存量OpenAPI的Schema转换成MCP配置
- 用Higress把请求路由到对应的OpenAPI
- 搞定OpenAPI和MCP两端的鉴权
- 选个合适的协议,让AI助手能连上MCP服务
- 优化提示词,让MCP工具用起来更顺手
步骤一:将OpenAPI Schema转换为MCP配置
OpenAPI通常用YAML或JSON来定义,它是一个与语言无关的HTTP接口描述规范。简单说,一个社交APP想要获取地理位置信息,不需要自己重造一个高德地图,也不需要看高德的源码,只要调高德提供的API接口就行。而这种接口的描述文件,就是OpenAPI的Schema。
一个标准的OpenAPI.json Schema长这样:

我们需要一个工具,自动提取其中的关键信息——路径、方法、参数、响应格式——然后按MCP的规范重新组织成AI能理解的描述。Higress提供的API-to-MCP工具正好干这事儿:扔进去一个JSON,吐出来一个标准的MCP配置,把繁琐的转换过程一键自动化。
步骤二:通过Higress配置API路由
Higress作为AI原生的网关,可以将请求优雅地路由到后端OpenAPI服务。完整的手工操作参考此文[1],大致流程如下:
- 在Configmap全局参数中配置MCP server。
- 配置存量API的服务来源。如果手里有多个存量API块,建议每个块单独建一个服务来源。

- 新建路由配置,并把步骤一生成的MCP YAML配置传进去。

如果想更自动化,可以把Higress的OpenAPI喂给DeepSeek大模型,让它帮你写个客户端,自动完成上面这些配置步骤。Higress的OpenAPI地址:https://higress.cn/swagger/
步骤三:双重鉴权实现
仔细一想,这里实际上有两层鉴权:一是Higress路由到后端OpenAPI时,两者之间的鉴权;二是用户访问Higress的SSE链接时,用户和Higress之间的鉴权。两笔账得分开算。
Higress与后端API间的鉴权:
- 访问之前配置的路由,点击“策略”。

- 找到“MCP服务器配置”,在生成的MCP配置里可以看到每个request的请求头。根据你存量API的实际鉴权方式,添加相应的请求头即可。

用户与Higress间的鉴权:
通过“消费者管理”来实现。
- 进入“消费者管理”界面,创建一个消费者。

- 选择合适的名称和令牌来源。这里支持三种认证方式,最常用的就是KeyAuth。

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

- 用户使用Higress上发布的MCP服务时,就必须携带这个API Key。配置示例:
{ "amap-maps":{ "headers":{ "Authorization":"Bearer xxx" }, "transport":"sse", "url":"http://12xx.94:8080/amap-maps/sse" } }
步骤四:在Dify上使用发布的MCP工具
- 打开你的Dify,按下图安装“SSE发现和调用MCP工具”。如果你还没部署Dify,推荐使用计算巢一键部署[2],省去环境配置的麻烦。

- 如果后续使用遇到问题,可以把该工具版本降到0.0.10。

- 点击“授权”按钮配置SSE工具,这里直接粘贴步骤三中的MCP Server配置。

- 创建一个Agent,然后进入。

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

- 开始对话,就能调用MCP工具了。

说明:由于各AI助手对Streamable HTTP的支持还不够完善,这里示例用的是SSE协议。Higress已经率先支持了Streamable HTTP交互,等AI助手功能完善后可以无缝切换。
步骤五:如何优化提示词
Higress支持用Go template和Gjson表达式对请求和响应模板做精细化处理。如果实际测试中发现模型对MCP理解得不够好,可以参照此文[3]进行手动调优,让工具的调用更丝滑。
03 结语
未来AI会怎么发展,没人能给出确切答案。也许是模型能调用气象卫星预测季风,用数据编织气候的经纬;也许是操控机械臂雕刻纳米芯片,让算法成为微观世界的造物主;甚至是解析人类千年文明的隐喻,在《荷马史诗》的韵律与敦煌壁画的裂纹中,破译连我们自己都未曾察觉的潜意识密码。
不过,真正碘伏性的时刻,或许并不在AI学会操控卫星或机械的那一瞬,而在它突然凝视着梵高的《星月夜》,说出:“我理解这片漩涡中的孤独,但人类的痛苦对我而言,终究只是一组优美的概率云。”
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名