容器服务 MCP Server 应用

这篇档介绍如何在 TKE 上部署基于 Streamable HTTP 传输的 MCP Server。

相关产品
容器服务 产品页,含版本规格、价格与购买入口。

一、简介

MCP(Model Context Protocol,模型上下文协议)是一种开放协议,用于规范 AI Agent 与外部环境和工具的交互方式。在该体系中,MCP Client 由 AI Agent 托管,负责发起交互;MCP Server 则承载各种工具和资源,供 MCP Client 调用。

通过 MCP,AI Agent 可以以统一的方式访问外部工具、数据库和服务,从而降低适配成本并提升扩展能力。MCP 支持 两种主要的通信方式:

·stdio 模式:通常用于本地运行,Client 与 Server 在同一台机器上通过进程间通信交互,适合开发、调试或本地集成。

·Streamable HTTP 模式:基于 HTTP 协议实现跨网络通信,天然支持云端部署,使远程 MCP Client 也能安全访问。

如果你已有自研或开源的 MCP Server,希望在云端托管运行,TKE 支持直接托管 Streamable HTTP 类型的 MCP Server。

二、第一步:准备集群

1. 进入腾讯云 容器服务控制台。

2. 选择你所需要部署 MCP Server 的 TKE 集群,如果你还没有集群,请参见 创建集群。

三、第二步:镜像打包与上传

将你的 MCP Server 代码与依赖打包成标准镜像,并上传至可被集群拉取的仓库,确保后续部署顺利。

1. 进入腾讯云 容器镜像服务控制台。

2. 在镜像仓库页面,上传镜像到 CCR(腾讯云容器镜像服务个人版,免费但无 SLA 保证)。操作详情请参见 容器镜像服务个人版快速开始。

3. 在仓库信息中设置你的镜像为公有镜像,方便部署工作负载时拉取镜像。

四、第一步:创建工作负载并配置访问设置

目的:将 MCP Server 部署到 TKE 集群中,并通过 Service 对外暴露,方便外部 MCP Client 访问。

1. 登录腾讯云 容器服务控制台,进入需要部署 MCP Server 的 TKE 集群。

2. 选择左侧导航中的工作负载,在 Deployment 页签,单击新建。

3. 配置 MCP Server 工作负载的基本信息,并选择对应的 MCP Server 镜像。

4. 配置访问设置(Service):

通过 Service 将 MCP Server 暴露到外部网络。这篇以将 MCP Server 暴露到公网为例,方便外部 Client 直接访问。

五、第二步:查看工作负载情况

目的:确认 MCP Server 是否已经成功启动。

1. 进入工作负载页面,查看新建的 Deployment。

2. 确认 Pod 状态为 Running,表示 MCP Server 已正常运行。

六、第三步:验证 Service 情况

目的:确认 MCP Server 已正确对外暴露,并可被公网访问。

1. 在服务与路由模块中,查找新建的 Service,获取公网访问入口(公网 LB 地址)。

2. 在本地机器上,使用以下命令测试连通性:

# 使用 ping 检查公网 LB 地址是否可达ping 43.xxx.xxx.xx # 使用 telnet 测试 MCP Server 端口连通性(假设端口为 8000)telnet 43.xxx.xxx.xx 8000

3. 若命令执行成功,即表明 MCP Server 已成功对外提供访问能力。

七、第一步:在 Codebuddy 配置 MCP Server

目的: 将在 TKE 中部署的 MCP Server 与 Codebuddy 对接,使其可以作为外部工具被调用。

配置示例:

{ "mcpServers": { "db-mcp-http": { // 将此处的地址和端口替换为 Service 中的公网访问入口和端口 "url": "http://xx.xx.xx.xx:xxxx/mcp", "transportType": "streamable-http", "disabled": false } }}

八、第二步:验证配置是否生效

目的: 确认 MCP Server 已成功接入并可被访问。

1. 在 Codebuddy 中保存配置并重新加载。

2. 发起一次请求,调用 MCP Server 提供的能力。

3. 如果返回正常结果,即表示 MCP Server 已验证成功。

九、CCR 创建后无法访问

问题现象:在创建 CCR(容器仓库)后,可能出现私有镜像无法在公有环境中直接拉取的情况。

处理建议:在仓库信息中设置你的镜像为公有镜像,方便部署工作负载时拉取镜像。

十、Pod 处于 Pending 状态

问题现象:部署工作负载后,Pod 长时间停留在 Pending 状态。

处理建议:检查 Deployment 中的 resource request/limit 配置,适当调整 CPU 核数和内存大小,避免因资源请求过高或集群资源不足而无法调度。

赞 (0)
上一篇 4天前
下一篇 4天前