项目简介

'k8s-mcp-server' 是一个 Model Context Protocol (MCP) 服务器,专为与 Kubernetes 集群集成而设计。它允许支持 MCP 的 AI 工具或客户端,通过结构化的工具调用方式,理解和操作 Kubernetes 资源,从而实现 Kubernetes 集群的 AI 辅助管理、监控和自动化。

主要功能点

  • 资源获取与分析: 提供工具(如 'get_pod', 'list_deployments', 'get_configmap', 'list_namespaces', 'list_nodes')获取 Kubernetes 资源(Pod, Deployment, Service, ConfigMap, Namespace, Node 等)的详细信息或列表。
  • 日志获取: 提供工具(如 'get_pod_logs')获取指定 Pod 的日志。
  • 管理操作: 在非只读模式下,提供工具执行修改性操作(如 'delete_pod', 'scale_deployment')。
  • 多种传输协议支持: 支持 Stdio 和 SSE 两种 MCP 传输协议,适用于本地集成或集群内部署。
  • 访问控制: 支持通过 Kubeconfig/Service Account 的 RBAC 权限控制,可配置只读模式和限制可操作的资源类型。

安装步骤

  1. 确保您的系统已安装 Go (推荐 1.21+ 版本)。
  2. 确保您配置了对目标 Kubernetes 集群的访问权限(例如,通过有效的 '~/.kube/config' 文件或 Service Account)。
  3. 使用 Go 命令安装最新版本的服务器二进制文件:
    go install github.com/briankscheong/k8s-mcp-server/cmd/k8s-mcp-server@latest
  4. 安装完成后,'k8s-mcp-server' 可执行文件通常位于您的 Go bin 目录下(例如 '$HOME/go/bin/k8s-mcp-server')。

服务器配置 (针对 MCP 客户端)

MCP 客户端(如 Claude Desktop, VS Code MCP 扩展, Cline 等)需要通过配置来启动和连接 'k8s-mcp-server'。典型的客户端配置需要指定服务器的启动命令 ('command') 及其参数 ('args')。以下是 'k8s-mcp-server' 常用的启动参数说明:

  • 'command': 服务器可执行文件的完整路径,例如 '/home/user/go/bin/k8s-mcp-server'。

  • 'args': 传递给 'command' 的参数列表。列表的第一个参数必须指定使用的传输协议:

    • '"stdio"': 使用标准输入输出进行通信。
    • '"sse"': 使用 HTTP Server-Sent Events 进行通信。

    后续参数用于配置服务器行为,例如:

    • '"--kubeconfig=/path/to/your/kubeconfig"': 指定 Kubernetes 配置文件路径(如果不在默认位置)。
    • '"--in-cluster=true"': 指示服务器使用 Kubernetes 集群内部的 Service Account 配置(适用于部署在集群内的场景)。
    • '"--namespace=default"': 设置服务器默认操作的 Kubernetes 命名空间。
    • '"--read-only=false"': 启用写入操作(如删除 Pod、伸缩 Deployment)。默认为只读模式,仅允许读取操作。
    • '"--resource-types=pods,deployments,services"': 通过逗号分隔列表,限制服务器可以操作的 Kubernetes 资源类型。例如,只启用 Pods, Deployments, Services 的工具。默认为 'all',启用所有支持的资源类型。
    • '"--toolsets=all"': 通过逗号分隔列表,启用特定的工具集。默认为 'all',启用所有工具集。
    • '"--port=8080"': (仅 'sse' 模式需要) 指定服务器监听的端口。

请参考您使用的 MCP 客户端文档,将 'k8s-mcp-server' 的可执行路径和上述合适的参数配置到客户端的服务器设置中。

基本使用方法

'k8s-mcp-server' 通常由 MCP 客户端根据其配置自动启动,您无需手动运行它来与客户端配合。

如果您想手动启动服务器进行测试或独立部署 (尤其是 SSE 模式),可以使用命令行:

  • 使用 Stdio 模式 (通常由客户端自动启动):
    /path/to/k8s-mcp-server stdio --kubeconfig=/path/to/your/kubeconfig --namespace=my-namespace
  • 使用 SSE 模式 (例如,部署在集群中):
    /path/to/k8s-mcp-server sse --in-cluster=true --port=8080 --read-only=true

服务器启动后,将等待 MCP 客户端通过配置的传输协议进行连接和交互。

信息

分类

开发者工具