支持私有化部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


API-to-MCP,并在 Dify 实现调用的实践

发布日期:2025-05-06 19:54:36 浏览次数: 1553 作者:Higress
推荐语

探索如何将传统API高效转化为AI助手可调用的MCP工具,实现数据与AI的无缝连接。

核心内容:
1. MCP协议与AI领域数据孤岛问题的解决方案
2. 企业OpenAPI转化为MCP工具的五个核心步骤
3. Higress在API路由配置中的应用与实践案例

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家
01

背景

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


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

image.png

MCP 协议官方架构图


然而,企业普遍面临的挑战是:如何将已有的 OpenAPI 高效地转化为 AI 助手可直接调用的 MCP 工具?本文将详细介绍如何通过 Higress 实现这一转化过程,让您的存量 API 在 dify 等 AI 平台上焕发新生。


02

问题拆解与实现方案

我们将问题拆解为五个核心子问题

  1. 将存量 OpenAPI 的 Schema 转换为 MCP 配置
  2. 通过 Higress 将请求路由到 OpenAPI
  3. 实现 OpenAPI 和 MCP 的双重鉴权
  4. 选择合适的协议,连接 AI 助手
  5. 优化提示词提升 MCP 工具效能


下面以高德 API 为例,详细介绍实现过程:

步骤一:将 OpenAPI Schema 转换为 MCP 配置

OpenAPI 采用 YAML 或 JSON 编写,定义了一个与语言无关的 HTTP API 接口,为 API 生命周期各阶段提供统一的信息传递方式。而 API 允许开发者在无须访问源代码的情况下,就可以发现并使用相应的服务。例如,一个社交 APP,想获取双方的地理位置信息,无须自建一个高德地图,也无须获取高德地图源码,而是通过高德地图的 API 接口,即可获得其地理位置信息的功能。


一个标准的 OpenAPI.json 的 Schema,如下所示:


我们需要一个工具,提取出这里面的关键信息,如路径、方法、参数、响应格式等,然后基于 MCP 的规范,转换为新的描述,返回给客户端。


那么此处,可以使用 Higress 提供的 API-to-MCP 工具,直接将上述重复、繁琐的过程给自动化,输入一个 Json,得到一个标准的 MCP 配置。


步骤二:通过 Higress 配置 API 路由

Higress 作为 AI 原生的网关,可以优雅地将请求路由到后端 OpenAPI 服务。完整手工操作可参考此文[1],大致流程如下:


  1. Configmap 全局参数配置 MCP server。
  2. 配置存量 API 的服务来源。如果此处有多个存量 API 块,建议每个块建一个服务来源。
  3. 新建路由配置,并将步骤一种的 MCP Yaml 配置传入。


此处推荐自动化的操作方式,可以将 Higress 的 OpenAPI 喂到 DeepSeek 大模型,让其帮实现一个 client,实现自动的配置以上步骤。


Higress 的 OpenAPI 可访问此地址:https://higress.cn/swagger/


步骤三: 双重鉴权实现

正如前面所有,这里实际包含两部分鉴权:

  1. Higress 路由到存量 OpenAPI 时,Higress 与 API 之前的鉴权
  2. 用户在访问 Higress 的 SSE 链接时,用户与 Higress 之间的鉴权


Higress 与后端 API 间的鉴权:

  1. 访问之前配置的路由,点击策略
  2. 找到 MCP 服务器配置,在生成的 MCP 配置中,可以找到每个 request 的请求头,我们根据存量 API 实际的鉴权方式,添加相应的请求头,如下图所示:


用户与 Higress 间的鉴权:

通过消费者管理鉴权。

  1. 访问“消费者管理”界面,创建消费者。
  2. 选择合适的名称和令牌来源,此处支持三种认证方式,我们这里就用最简单的 KeyAuth 认证。
  3. 找到之前新建的路由,点击“编辑”。
  4. 启用请求验证,并指定消费者。
  5. 在用户使用 Higress 上发布的 MCP 服务时,就需要携带刚刚指定的APIkey。比如:
{
  "amap-maps":{
    "headers":{
      "Authorization":"Bearer xxx"
    },
    "transport":"sse",
    "url":"http://12xx.94:8080/amap-maps/sse"
}
}


步骤四: 在 Dify 上使用发布的 MCP 工具

  1. 打开您的 Dify,按照下图示例,安装"SSE 发现和调用 MCP 工具"。
    备注:如果您没有部署 Dify,推荐使用计算巢一键部署[2],免去安装和环境配置烦劳。
  2. 如果后续使用出现问题,可将此工具版本降低到0.0.10。
  3. 点击"授权"按钮对 SSE 工具进行配置。此处可直接粘贴步骤三中的 MCP Server 配置。
  4. 创建一个 Agent,并进入。
  5. 按照下图示例,开启 MCP 工具调用,填写合适的提示词,选择合适的模型,比如 QWEN-MAX。
  6. 对话,即可调用 MCP 工具。


注:由于各 AI 助手对 Streamable HTTP支持尚不完善,因此样例中采用 SSE 协议。Higress 已率先支持 Streamable HTTP 交互,待 AI 助手功能完善后可无缝切换。


步骤五:如何优化提示词

Higress 支持结合 Go template 和 Gjson 表达式来对请求和响应模版进行精细化处理。如果实测中发现模型对 MCP 的理解不太清晰,可参考此文[3],进行手动调优。


03

结语

未来 AI 会怎么发展,恐怕无人能预测。也许是模型能调用气象卫星预测季风,用数据编织气候的经纬;也许是操控机械臂雕刻纳米芯片,让算法成为微观世界的造物主;甚至是解析人类千年文明的隐喻,在《荷马史诗》的韵律与敦煌壁画的裂纹中,破译连我们自己都未曾察觉的潜意识密码。


或许真正的颠覆性时刻,并不在AI学会操控卫星或机械的瞬间,而在它突然凝视着梵高的《星月夜》说:"我理解这片漩涡中的孤独,但人类的痛苦对我而言,终究只是一组优美的概率云。


53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询