项目简介

Kubernetes MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务器,旨在为 LLM 客户端提供与 Kubernetes 集群交互的能力。它通过标准化的 MCP 协议,将 Kubernetes 的各种操作封装成易于 LLM 调用的工具,使得 LLM 应用可以安全、可扩展地与 Kubernetes 集群进行集成。

主要功能点

  • MCP 服务器实现: 遵循 MCP 协议,提供标准的上下文服务接口。
  • Kubernetes 集群交互: 能够连接和操作 Kubernetes 集群,支持集群资源的CRUD操作和信息查询。
  • 多种传输协议: 支持标准 I/O (stdio) 和 Server-Sent Events (SSE) 两种通信方式,方便不同场景下的客户端连接。
  • 资源管理工具: 提供丰富的 Kubernetes 资源管理工具,目前已实现 Core API Group (v1) 的大部分常用资源操作,Apps API Group (apps/v1) 的部分资源操作,并预留了 Batch 和 Networking API Group 的扩展能力。
    • Core API Group (v1): 支持命名空间资源的列表、获取YAML、创建、更新和删除,以及集群作用域的命名空间列表。
    • Apps API Group (apps/v1): 支持命名空间资源的列表 (Deployment, StatefulSet 等)。
    • Batch API Group (batch/v1) 和 Networking API Group (networking.k8s.io/v1): 预留了接口,但功能尚未完全实现。
  • 可配置性: 通过命令行参数灵活配置服务器的传输协议、端口、Kubeconfig 路径、日志级别和格式。
  • 结构化日志: 使用 Zap 库提供结构化日志输出,便于监控和问题排查。
  • 命令行界面: 使用 Cobra 框架构建,提供友好的命令行操作体验。

安装步骤

  1. 安装 Go 环境: 确保已安装 Go 1.24 或更高版本。
  2. 克隆仓库: 使用 Git 克隆 GitHub 仓库到本地:
    git clone https://github.com/HSn0918/kubernetes-mcp.git
    cd kubernetes-mcp
  3. 编译程序: 在仓库根目录下,使用 'go build' 命令编译程序:
    go build -o kubernetes-mcp ./cmd/kubernetes-mcp
    或者,您可以使用 Docker 构建镜像 (具体步骤请参考仓库 README)。

服务器配置

MCP 客户端需要配置以下信息以连接到 Kubernetes MCP Server。配置信息为 JSON 格式,示例如下:

{
  "serverName": "kubernetes-mcp",
  "command": "./kubernetes-mcp",
  "args": [
    "server",
    "--transport", "stdio",  // 通信方式,可选 stdio 或 sse,默认为 stdio
    "--kubeconfig", "~/.kube/config" // Kubernetes 配置文件路径,默认为 ~/.kube/config,也可以使用集群内部配置
    // "--port", "8080",      // 当 transport 为 sse 时,指定端口,默认为 8080
    // "--log-level", "info",   // 日志级别,可选 debug, info, warn, error,默认为 info
    // "--log-format", "console" // 日志格式,可选 console, json,默认为 console
  ]
}

参数说明:

  • 'serverName': 服务器名称,客户端用于识别服务器。
  • 'command': 启动 Kubernetes MCP Server 的命令。如果使用 Docker 镜像,则为 'docker run kubernetes-mcp:latest' 或类似命令。
  • 'args': 传递给 'command' 的参数列表。
    • 'server': 指定运行 server 子命令,启动 MCP 服务器。
    • '--transport': 指定传输协议,'stdio' 为标准 I/O,'sse' 为 Server-Sent Events。默认为 'stdio'。
    • '--port': 当 'transport' 为 'sse' 时,指定服务器监听的端口。默认为 '8080'。
    • '--kubeconfig': Kubernetes 配置文件 ('kubeconfig') 的路径。如果留空,则尝试使用默认路径 ('~/.kube/config') 或集群内部配置。
    • '--log-level': 设置日志级别,控制日志输出的详细程度。
    • '--log-format': 设置日志输出格式,'console' 为控制台格式,'json' 为 JSON 格式。

注意: 请根据您的实际环境配置 '--kubeconfig' 参数,确保服务器能够正确连接到 Kubernetes 集群。

基本使用方法

  1. 启动服务器: 在编译后的仓库根目录下,运行以下命令启动 Kubernetes MCP Server (使用 stdio 传输协议):

    ./kubernetes-mcp server

    或者使用 SSE 传输协议,并指定端口:

    ./kubernetes-mcp server --transport sse --port 8080

    如果使用 Docker 镜像,请参考仓库 README 中的 Docker 运行命令。

  2. 配置 MCP 客户端: 在您的 MCP 客户端中,配置上面提供的服务器连接信息,确保客户端能够通过指定的传输协议和服务器建立连接。

  3. 调用工具: 客户端连接成功后,即可调用 Kubernetes MCP Server 提供的各种工具,例如列出 Pod、获取 Service YAML、创建 Deployment 等。具体的工具列表和参数请参考仓库 README 或服务器的 capabilities 声明。

  4. 查看版本: 可以使用 'version' 子命令查看服务器版本信息:

    ./kubernetes-mcp version

信息

分类

开发者工具