mcpField
M
Mcp Cluster Api

Mcp Cluster Api

本地服务
github.com/linode开发工具131 周前更新

关于 Mcp Cluster Api

Mcp Cluster Api 将 Kubernetes Cluster API(CAPI)资源接入 MCP,供集群运维人员通过客户端查询和管理集群与机器。它提供资源检查、升级资格评估及控制平面操作,也包含排障提示词。

主要功能

  1. 01列出并查看 CAPI 集群
  2. 02查询机器及 Kubernetes 资源
  3. 03生成集群 kubeconfig
  4. 04检查 Kubernetes 升级资格
  5. 05查看控制平面状态并触发滚动更新
  6. 06提供集群与机器排障提示词

适用场景

  1. 01盘点环境中的 CAPI 集群和机器
  2. 02检查集群能否升级到目标版本
  3. 03获取集群 kubeconfig 以便访问
  4. 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 集群。它提供了一种一致的方式来创建、更新和管理集群及其基础设施。

前提条件

  • Go(推荐 v1.20+)
  • Make
  • npm
  • kubectl
  • 可访问 Kubernetes 集群,并拥有有效的 kubeconfig.yaml

安装与构建

克隆代码仓库并构建二进制文件:

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 的设置中进行配置:

  1. 构建二进制文件(如果尚未构建):

    make build
    
  2. 找到 Claude 的配置文件:

    • 在 macOS 上:~/Library/Application Support/Claude/claude_desktop_config.json
    • 在 Windows 上:%APPDATA%\Claude\claude_desktop_config.json
    • 在 Linux 上:~/.config/Claude/claude_desktop_config.json
  3. 添加 MCP 服务配置:

    {
      "mcpServers": {
        "capi-mcp": {
          "command": "/absolute/path/to/capi-mcp/bin/capi-mcp",
          "env": {
            "KUBECONFIG": "/absolute/path/to/your/kubeconfig.yaml"
          }
        }
      }
    }
    
  4. 重启 Claude Desktop,以加载新配置。

  5. 验证连接:在与 Claude 开始的新对话中,你应该能在开发者设置中看到 CAPI MCP 服务已连接并正在运行。

    image
在 VSCode 中使用
通过 Claude 扩展

如果你通过支持 MCP 的 VSCode 扩展使用 Claude:

  1. 从 VSCode Marketplace 安装 Claude 扩展。

  2. 在 VSCode 设置或扩展配置文件中配置 MCP 服务:

    {
      "claude.mcpServers": {
        "capi-mcp": {
          "command": "/absolute/path/to/capi-mcp/bin/capi-mcp",
          "env": {
            "KUBECONFIG": "/absolute/path/to/your/kubeconfig.yaml"
          }
        }
      }
    }
    
  3. 重启 VSCode,以应用配置。

通过 VSCode 工具集

你也可以将此 MCP 服务与 VSCode 工具集集成,以增强开发工作流:

  1. 在工作区中创建工具集配置:

    • 打开命令面板(Cmd/Ctrl + Shift + P)
    • 运行“Toolsets: Configure Toolsets”
    • 添加新的工具集配置
  2. 配置 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"
        }
      ]
    }
    
  3. 使用工具集:

    • 通过侧边栏中的 Toolsets 面板访问
    • 直接从命令面板调用工具
    • 与其他 VSCode AI 功能和扩展集成

这样,你就可以在 VSCode 开发环境中直接使用 CAPI 管理工具,并与其他开发工具集协同工作。

可用工具和提示词

连接后,你可以使用 Claude 执行以下操作:

工具:

  • list_clusters - 列出 Kubernetes 环境中的所有 CAPI 集群
  • get_cluster - 获取特定集群的详细信息
  • get_cluster_kubeconfig - 生成并获取用于访问 CAPI 集群的 kubeconfig
  • check_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 权限。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。