该项目是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在使生成式AI系统能够通过标准化的方式与多个Kubernetes集群进行交互,特别是利用了 Open Cluster Management (OCM) 的能力。

主要功能点

  • 多集群工具:
    • 通过工具列出和管理中心集群及被管集群的资源。
    • 执行 'kubectl' 命令或应用 YAML 配置到指定的 Kubernetes 集群。
    • 安全地生成并管理用于访问被管集群的凭证 (通过 Open Cluster Management 的 ManagedServiceAccount)。
  • 上下文信息: 通过 MCP Resource 方式暴露信息 (规划中)。
  • 交互模式: 通过 MCP Prompt 模板支持定制的交互流程 (规划中)。

安装步骤

  1. 确保您的系统上已安装 'kubectl' 命令行工具。
  2. 该服务器通常通过 'npx' 命令直接运行,无需单独进行全局或本地安装。请参考下方的服务器配置信息。
  3. 确保您的 'KUBECONFIG' 环境变量已正确配置,以便服务器能够连接到作为中心集群使用的 Kubernetes 集群。

服务器配置

MCP客户端需要配置MCP服务器的启动命令和参数才能建立连接。以下是该服务器的典型配置方式:

{
  "mcpServers": {
    "multicluster-mcp-server": { // 服务器的名称
      "command": "npx",          // 启动服务器的命令
      "args": [                  // 传递给命令的参数
        "-y",                    // 允许 npx 安装依赖
        "multicluster-mcp-server@latest" // 要运行的 npm 包名及其版本
      ]
    }
  }
}

客户端(例如,支持MCP的LLM应用或开发工具)会使用此配置来启动并连接到服务器,并通过标准的JSON-RPC协议与其通信。

基本使用方法

用户不直接与此MCP服务器交互。此服务器作为支持MCP协议的AI客户端(如某些LLM应用)的后端上下文提供者工作。

  1. 配置客户端: 在您的AI客户端中配置上述服务器信息。
  2. AI调用: AI客户端会根据需要自动调用此MCP服务器暴露的工具,例如:
    • 询问服务器“列出所有被管集群”,客户端会调用 'clusters' 工具。
    • 要求服务器“在集群 'my-cluster' 上运行 'kubectl get pods'”,客户端会调用 'kube_executor' 工具。
    • 请求服务器“连接到集群 'another-cluster' 并获取管理员权限”,客户端会调用 'connect_cluster_via_role' 工具。
  3. 获取结果: 服务器执行请求的操作(如运行 'kubectl' 命令、获取集群列表)并将结果通过JSON-RPC响应返回给客户端,AI客户端再利用这些结果来提供更准确或功能更丰富的回复或执行进一步操作。

信息

分类

AI与计算