MCP Server 托管

最近更新时间:2025-10-13 17:17:22

我的收藏
本文档介绍如何在 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. 在仓库信息中设置您的镜像为公有镜像,方便部署工作负载时拉取镜像。


托管 Streamable HTTP MCP Server

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

目的:将 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 已成功对外提供访问能力。

验证 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 核数和内存大小,避免因资源请求过高或集群资源不足而无法调度。