Alauda Build 的 MCP Lifecycle Operator

Alauda Build 的 MCP Lifecycle Operator 基于 Kubernetes SIG Apps MCP Lifecycle Operator 项目。它提供一个 Kubernetes 原生 API,用于将 Model Context Protocol (MCP) server 作为普通集群工作负载进行部署和管理。

该 operator 引入了 MCPServer 自定义资源(mcp.x-k8s.io/v1alpha1)。MCPServer 描述 MCP server 的容器镜像、网络端口、MCP endpoint 路径、环境变量、挂载配置、运行时资源以及安全设置。controller 会将该声明调和为一个与 MCPServer 同名的 Kubernetes DeploymentService。当前 API 仅支持将 ContainerImage 作为 spec.source.type

Alpha API

上游 MCPServer API 当前为 v1alpha1。字段名称和行为在未来版本中可能发生变化。

主要特性

  • 声明式 MCP server 生命周期:通过应用 MCPServer 资源来创建、更新、扩缩和删除 MCP server。
  • 受管 Kubernetes 资源:该 operator 会创建并拥有底层的 DeploymentService,并在 MCPServer 状态中报告它们的名称。
  • 内置服务发现MCPServer 状态会暴露一个内部 URL,例如 http://<name>.<namespace>.svc.cluster.local:<port>/mcp,供其他工作负载使用。
  • 运行时自定义:可配置命令行参数、环境变量、ConfigMap 和 Secret 挂载、EmptyDir 存储、资源请求与限制、副本数、探针、service account 以及 security context。
  • 具备会话感知的服务:使用 spec.mcp.stateless 选择生成的 Service 是采用自由负载均衡,还是客户端 IP 会话亲和性。

工作原理

  1. 用户在应用命名空间中应用一个 MCPServer 资源。
  2. controller 验证目标 MCP server 配置。
  3. controller 创建或更新一个同名 Deployment,运行 MCP server 容器镜像。
  4. controller 创建或更新一个同名 Service,在集群内暴露 MCP endpoint。
  5. controller 将就绪条件和服务地址写入 MCPServer.status

使用场景

  • 面向 AI 智能体的 MCP tools:运行 tool server,向智能体框架暴露实时数据、内部 API 或运维操作。
  • 可复用的平台服务:将 MCP server 打包为 Kubernetes 工作负载,并保持一致的部署、扩缩和状态行为。
  • 智能体化 MLOps 集成:提供可供 Kagenti agents、Llama Stack agents、notebooks 或其他集群内 AI 应用消费的 MCP endpoint。

为什么使用 MCPServer

对于由现有应用部署流水线完全管理的单个 MCP server,普通的 DeploymentService 可能已经足够。当 MCP tools 需要在多个命名空间和团队之间共享、发现或重复部署时,MCPServer 就会体现出价值。

其主要优势包括:

  • 稳定的 MCP 专用 API:用户可以在一个对象中声明 MCP server 镜像、端口、路径、运行时设置和协议行为。
  • 一致的状态和发现能力:operator 会在 MCPServer 状态中报告 AcceptedReady、受管资源名称以及集群内部 MCP 地址。其他工具和平台工作流无需解析任意 Kubernetes 清单即可发现 MCP endpoint。
  • 面向协议的默认值spec.config.pathspec.mcp.stateless 等 MCP 专用字段使 endpoint 路径和会话亲和性显式化。
  • 便于平台集成:专用的 MCP API 为平台提供了单一集成点,可用于未来的策略、UI、目录、可观测性以及 agent-tool 工作流。

文档

上游文档和相关资源: