关于 Mcp Cluster Api
Mcp Cluster Api 将 Kubernetes Cluster API(CAPI)资源接入 MCP,供集群运维人员通过客户端查询和管理集群与机器。它提供资源检查、升级资格评估及控制平面操作,也包含排障提示词。
主要功能
- 01列出并查看 CAPI 集群
- 02查询机器及 Kubernetes 资源
- 03生成集群 kubeconfig
- 04检查 Kubernetes 升级资格
- 05查看控制平面状态并触发滚动更新
- 06提供集群与机器排障提示词
适用场景
- 01盘点环境中的 CAPI 集群和机器
- 02检查集群能否升级到目标版本
- 03获取集群 kubeconfig 以便访问
- 04排查集群或机器故障
MCP 相关
该 MCP 服务通过 stdio 向客户端提供 CAPI 与 Kubernetes 资源管理工具及排障提示词。部分工具会执行控制平面滚动更新等写操作。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
capi-mcp
capi-mcp 是一款将 CAPI(Cluster API)资源与 Model Context Protocol(MCP) 集成的工具,可通过编程和提示词管理 Kubernetes 集群与机器。
什么是 MCP?
MCP(Model Context Protocol) 是一种开放协议,用于以标准化方式描述、调用和管理工具与提示词。它支持工具、Agent 和 UI 之间的互操作。
什么是 CAPI?
CAPI(Cluster API) 是一个 Kubernetes 项目,可使用 Kubernetes 风格的 API 以声明式方式管理 Kubernetes 集群。它提供了一种一致的方式来创建、更新和管理集群及其基础设施。
前提条件
安装与构建
克隆代码仓库并构建二进制文件:
make build
代码检查
运行代码检查(如果尚未安装 golangci-lint,则会安装):
make lint
运行与测试
传输支持:capi-mcp 仅支持 stdio 传输。
使用构建好的二进制文件运行 MCP 检查器:
npx @modelcontextprotocol/inspector -e KUBECONFIG=kubeconfig.yaml bin/capi-mcp
请将 kubeconfig.yaml 替换为你实际使用的 kubeconfig 文件。
在 Claude 和 VSCode 中使用
在 Claude Desktop 中使用
若要在 Claude Desktop 中使用此 MCP 服务,需要在 Claude 的设置中进行配置:
-
构建二进制文件(如果尚未构建):
make build -
找到 Claude 的配置文件:
- 在 macOS 上:
~/Library/Application Support/Claude/claude_desktop_config.json - 在 Windows 上:
%APPDATA%\Claude\claude_desktop_config.json - 在 Linux 上:
~/.config/Claude/claude_desktop_config.json
- 在 macOS 上:
-
添加 MCP 服务配置:
{ "mcpServers": { "capi-mcp": { "command": "/absolute/path/to/capi-mcp/bin/capi-mcp", "env": { "KUBECONFIG": "/absolute/path/to/your/kubeconfig.yaml" } } } } -
重启 Claude Desktop,以加载新配置。
-
验证连接:在与 Claude 开始的新对话中,你应该能在开发者设置中看到 CAPI MCP 服务已连接并正在运行。
在 VSCode 中使用
通过 Claude 扩展
如果你通过支持 MCP 的 VSCode 扩展使用 Claude:
-
从 VSCode Marketplace 安装 Claude 扩展。
-
在 VSCode 设置或扩展配置文件中配置 MCP 服务:
{ "claude.mcpServers": { "capi-mcp": { "command": "/absolute/path/to/capi-mcp/bin/capi-mcp", "env": { "KUBECONFIG": "/absolute/path/to/your/kubeconfig.yaml" } } } } -
重启 VSCode,以应用配置。
通过 VSCode 工具集
你也可以将此 MCP 服务与 VSCode 工具集集成,以增强开发工作流:
-
在工作区中创建工具集配置:
- 打开命令面板(
Cmd/Ctrl + Shift + P) - 运行“Toolsets: Configure Toolsets”
- 添加新的工具集配置
- 打开命令面板(
-
配置 CAPI MCP 工具集:
{ "name": "CAPI MCP Server", "description": "Cluster API management via MCP", "tools": [ { "name": "capi-mcp", "command": "/absolute/path/to/capi-mcp/bin/capi-mcp", "env": { "KUBECONFIG": "/absolute/path/to/your/kubeconfig.yaml" }, "protocol": "mcp" } ] } -
使用工具集:
- 通过侧边栏中的 Toolsets 面板访问
- 直接从命令面板调用工具
- 与其他 VSCode AI 功能和扩展集成
这样,你就可以在 VSCode 开发环境中直接使用 CAPI 管理工具,并与其他开发工具集协同工作。
可用工具和提示词
连接后,你可以使用 Claude 执行以下操作:
工具:
list_clusters- 列出 Kubernetes 环境中的所有 CAPI 集群get_cluster- 获取特定集群的详细信息get_cluster_kubeconfig- 生成并获取用于访问 CAPI 集群的 kubeconfigcheck_upgrade_eligibility- 验证集群能否安全升级到目标 Kubernetes 版本list_machines- 列出所有集群中的机器(节点)get_machine- 获取特定机器的详细信息get_kube_resource- 根据名称、类型和 API 版本获取任意 Kubernetes 资源rollout_controlplane- 滚动重启控制平面(触发滚动更新——非只读)get_control_plane_status- 获取 CAPI 集群控制平面组件的状态
提示词:
debug_capi_cluster- 获取逐步排查集群问题的指导debug_capi_machine- 获取逐步排查机器问题的指导restart_control_plane- 获取逐步重启集群控制平面的说明
使用示例
向 Claude / Copilot 提出以下问题:
- “显示我的所有 CAPI 集群”
- “名为 'production' 的集群状态如何?”
- “列出 'staging' 集群中的所有机器”
- “获取我在 'default' 命名空间中名为 'dev-cluster' 的集群的 kubeconfig”
- “检查我的集群能否升级到 Kubernetes v1.32.0”
- “使用 debug_capi_cluster 提示词帮我排查集群问题”
- “获取我的集群控制平面组件的状态”
- “使用类型 'Deployment' 和 apiVersion 'apps/v1',获取 default 命名空间中名为 'my-app' 的部署”
注意:确保你的 kubeconfig.yaml 文件具有访问 Kubernetes 集群中 CAPI 资源所需的权限。某些工具(例如 rollout_controlplane)会执行写入操作,因此需要相应的 RBAC 权限。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。