作者:SmartX 高级售前工程师 李文权

随着 AI 大模型的逐渐成熟,不少企业的 IT 基础架构团队都希望借助 AI 的能力简化基础设施运维管理。不过由于不同 LLM 使用不同的指令格式,每个工具 API 也有独特的数据结构,想要将 AI 大模型与私有云平台快速对接并定制应用服务是个不小的挑战。近期,SmartX 技术团队利用 MCP(模型上下文协议)技术,探索了将 SmartX 集群管理平台 CloudTower 快速对接 DeepSeek 并生成“定制化报表”的实践,让用户根据自身需求快速获取虚拟机运行、告警数据等信息,简化日常运维管理。

以下,我们将简单介绍 MCP 基础知识与工作原理,并分享上述实践经验。您还可点击观看短视频,快速了解分享的重点内容!

什么是 MCP

早期的 AI 大模型依赖于静态训练数据,无法实时与外界数据或系统进行交互。而随着 AI 能力发展进入新阶段,业界更加关注让模型从 “被动回答” 转向 “主动执行”,这一转变催生了对交互的标准化协议的需求,类似于软件工程中的 HTTP 协议——如果没有标准化协议,模型就无法和上下游进行交互。因此,在 MCP 出现之前,AI 工具的调用经常会出现以下问题:

  • 接口碎片化:每个 LLM 使用不同的指令格式,每个工具 API 也有独特的数据结构,开发者需要为每个组合编写定制化连接代码。
  • 连接代码开发低效:这种“一对一翻译”模式成本高昂且难以扩展,就像为每个外国客户雇佣专属翻译。

在此背景下,开发了大模型 Claude 的人工智能公司 Anthropic 在 2024 年 11 月推出了开源模型上下文协议 MCP(Model Context Protocol)。MCP 是一种专为人工智能模型设计的通信协议,旨在解决复杂 AI 系统中多个模型或组件之间的协同、状态管理和资源优化问题。它尤其适用于大型语言模型(LLM)、多模态系统及分布式 AI 架构,通过标准化交互方式提升效率、安全性和可扩展性,为 AI 应用提供了连接万物的接口(类比 Type-C )。它采用通用语言格式(JSON – RPC),一次学习就能与所有支持这种协议的工具进行交流,相当于一个通用翻译器,不管什么 LLM,用上它就能使用工具/数据了。

图源:深入解析模型上下文协议(MCP), 知乎

 

该协议允许模型在处理请求时保留和共享关键信息(如用户历史对话、当前任务状态),确保连贯性;能够管理不同模型版本的上下文兼容性,避免因升级导致的逻辑冲突;还可根据请求类型(如文本生成、图像分类)、模型专长(如数学推理、创意写作)动态分配任务。

核心架构

MCP 遵循客户端 – 服务器架构,主要有 5 个模块,前 3 个是功能主体,需要协同工作,后 2 个是“外部模块”,一般是已存在的数据或服务。

图源:What is an MCP Server, MCP Client, and MCP Host?, MCPCat

 

工作原理

用户在各种 AI 平台上,利用客户端(MCP Client)发送请求给服务端(MCP Server),服务端则将这些请求转发给相应的资源,然后获取期望的数据或结果。

MCP Client 可以充当 LLM 和 MCP Server 之间的桥梁:

  • MCP Client 首先从 MCP Server 获取可用的能力。
  • 将用户的查询连同工具描述一起发送给 LLM。
  • LLM 决定是否需要使用工具以及使用哪些工具。
  • 如需要使用工具,MCP Client 会通过 MCP Server 执行相应的工具调用。
  • 工具调用的结果会被发送回 LLM。
  • LLM 基于所有信息生成自然语言响应。
  • 最后将响应展示给用户。

MCP Server 是 MCP 架构中的关键组件,提供 3 种主要类型的功能:

  • 资源(Resources):类似文件的数据,可以被客户端读取,如 API 响应或文件内容。
  • 工具(Tools):可以被 LLM 调用的函数(需要用户批准)。
  • 提示(Prompts):预先编写的模板,帮助用户完成特定任务。

通信机制

MCP 协议支持两种主要的通信机制:基于标准输入输出的本地通信和基于 SSE(Server-Sent Events)的远程通信。其中远程通信利用 SSE 与 HTTP 结合实现跨网络的实时数据传输,近期 MCP 又引入了 Streamable HTTP 的通信方式,解决了 HTTP+SSE 存在的一些问题,如不支持断线重连、服务器需要长时间维护高并发连接、消息只能单向推送等,使得 MCP 协议在安全性、灵活性和易用性方面得到了显著提升。

MCP 实战:以 CloudTower + DeepSeek 实现定制化报表

CloudTower 是 SmartX 榫卯企业云平台的集群管理组件,提供多种资源的一站式服务管理。在用户通过 CloudTower 管理超融合集群时,经常会希望了解更多集群信息:

  • 某业务系统最近创建了多少虚拟机?
  • 虚拟机占用集群资源的比例如何?
  • 虚拟机最近三个月的告警趋势如何?

目前,CloudTower 没有直接提供以上“报表”能力,不过我们可以借助 MCP,将 CloudTower 和 AI 大模型进行对接,让 AI 帮忙生成定制化的运维报表。

#1 选择合适的 MCP Client

由于 MCP 是 Anthropic 推出的,因此最先支持 MCP 的必然是它的自家产品 Claude Desktop。另外,用户也可以选择一些开源的编程助手(比如 Cline)作为 MCP Hosts。实践中我们使用的就是 Cline。

#2 选择/开发合适的 MCP Server

对于 MCP Server,用户可以选择已经开发好的 MCP Server,比如在 Cline 中自带的 MCP Server Marketplace 提供了多种选择。或者我们也可以根据需求创建自己的 MCP Server,实践中我们探索了以下两种方式:

方案一:CloudTower SDK  + MCP SDK,从代码层面开发 MCP Server

基于 CloudTower Golang SDK 和 MCP Golang SDK,我们可以通过编写代码从 0 到 1 来开发 CloudTower MCP Server。

编写查询虚拟机和告警数据的代码

 完成代码后将其转变为容器进行部署,随后转变为 SSE 模式即可进行远程调用。配置到支持 MCP 协议的客户端后,CloudTower MCP Server 就可以为用户提供查询虚拟机和告警的能力。

这一方案的优势在于可以从代码级别控制输出内容,降低大模型的 Token 消耗。不过缺点也同样明显:每次功能扩展都需要编写代码,无法复用当前存量的 API 接口。

方案二:直接利用 CloudTower HTTP API,通过特殊方式转换成 MCP Server

这一方案需要用到 SMTX Kubernetes 服务(SKS)以及开源的工作流自动化工具 n8n——以工作流或拖拽的方式把工具串联起来,无需用户编写太多代码。n8n 1.88 版本原生支持 MCP Client 与 MCP Server,可以快速搭建 MCP 工具平台。具体流程如下:

1. 基于 SKS 搭建 n8n 服务:将 n8n 的部署脚本,包括 Namespace、PVC、ConfigMap、Deployment、Service 等导入到 SKS 中,即可一键创建 n8n 服务。

2. 确认运行状态和访问地址:在 SKS 平台即可查看 n8n 的部署情况。

3. 进入 n8n 服务,配置 MCP Server:CloudTower 的 HTTP API 可以直接配置到 n8n 服务中,我们可以快速设置地址授权与查询的关键字段,这样在后面输入查询信息时,MCP Server 就可以直接查询 CloudTower 的相应信息。

#3 关联 MCP Client 和 MCP Server,让 AI 开始工作

进行完这些配置后,我们打开 Cline,配置好想要使用的 LLM(实践中我们选择了 DeepSeek API),并导入刚才配置好的 MCP Server URL(在 n8n 中获取),即可完成 MCP Server 的安装。

然后我们只需要提供具体的 prompt,就可以获取所需的报表信息,甚至让 AI 进行可视化的呈现。

通过操作演示,查看如何通过 CloudTower MCP Server 查询集群信息。

基于本方案搭建 CloudTower MCP Server 可以充分利用已有的 CloudTower API,无需编写代码即可搭建 MCP Server,并且可灵活按需配置工具内容。同时 n8n 基于 SKS 部署,可以利用 SKS 中原生的 CSI 可持久化存储,一次配置后可以复用工作流配置。不过本方案依赖的服务较多,搭建成本可能相对依旧较高。

未来,CloudTower 将进一步结合 AI 技术,进一步提升定制化平台管理能力,如各种资源使用的可视化报表、对话式自动化资源创建、结合 RAG 实现智能排障等,帮助用户实现高效运维。

您可下载《构建企业 AI 基础设施:技术趋势、产品方案与测试验证》电子书,了解更多企业在 AI 大模型方面的部署验证与应用实践。

参考文献:

1. 深入解析模型上下文协议(MCP), 知乎

https://zhuanlan.zhihu.com/p/30630381992

2. What is an MCP Server, MCP Client, and MCP Host?, MCPCat

MCP Server vs Client vs Host Explained | MCPcat

推荐阅读:

SmartX AI 基础设施新增昇腾 NPU 与 MindIE 支持能力:方案与评测

如何基于 SmartX 超融合满足企业 DeepSeek 快速落地验证需求?

实践分享|从 0 构建企业知识库,可能没你想的那么简单

超融合虚拟化和容器环境 GPU 支持性能测试:基于 NVIDIA T4 与 A30

趋势洞察|AI 会带动裸金属 K8s 强势崛起吗?

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐