返回 MCP 目录
public公开dns本地运行

k8s-mcp-server-g9i

K8s MCP Server是一个基于Docker的服务器,实现了Anthropic的Model Context Protocol (MCP),允许Claude在安全的容器化环境中运行Kubernetes CLI工具(如kubectl、helm等),帮助用户管理、诊断和优化Kubernetes集群。

article

README

🚀 K8s MCP Server 配置指南

K8s MCP Server 是一个用于简化 Kubernetes 操作的工具,它支持通过自然语言交互,执行 kubectl 命令、部署 Helm Chart、管理 Istio 服务网格和 ArgoCD 应用等功能。

🚀 快速开始

使用以下命令启动 K8s MCP Server:

docker run -i --rm ghcr.io/alexei-led/k8s-mcp-server:latest

通过自然语言与 MCP 服务器交互,例如:

flowchart TB
    User->MCP_Server: "显示默认命名空间中的所有 pod"
    MCP_Server->K8s_API: kubectl get pods -n default
    K8s_API->MCP_Server: 返回 pod 列表
    MCP_Server->User: 显示结果并进行解释

✨ 主要特性

K8s MCP Server 支持以下功能:

  • kubectl 命令执行:通过自然语言理解 (NLU) 解析用户意图并执行相应的 kubectl 命令。
  • Helm Chart 部署:自动解析 Helm 图表并生成部署命令。
  • Istio 服务网格管理:支持 Istio 服务网格的配置和状态检查。
  • ArgoCD 应用管理:集成 ArgoCD 进行应用交付和版本控制。

💻 使用示例

基本交互

查询集群信息

flowchart TB
    subgraph "Basic Commands"
        A1["显示默认命名空间中的所有 pod"]
        A2["获取所有命名空间中的服务"]
        A3["显示 nginx pod 的日志"]
    end

故障排除

flowchart TB
    subgraph "故障排查"
        B1["为什么我的部署没有启动?"]
        B2["描述失败的 pod 并解释错误原因"]
        B3["检查我的服务是否正确连接到 pod"]
    end

高级配置

指定目标集群和命名空间

config.json 中添加以下配置:

{
  "mcpServers": {
    "kubernetes": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "/Users/YOUR_USER_NAME/.kube:/home/appuser/.kube:ro",
        "-e", "K8S_CONTEXT=production-cluster",
        "-e", "K8S_NAMESPACE=my-application",
        "-e", "K8S_MCP_TIMEOUT=600",
        "ghcr.io/alexei-led/k8s-mcp-server:latest"
      ]
    }
  }
}

连接到 AWS EKS 集群

{
  "mcpServers": {
    "kubernetes": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "/Users/YOUR_USER_NAME/.kube:/home/appuser/.kube:ro",
        "-v", "/Users/YOUR_USER_NAME/.aws:/home/appuser/.aws:ro",
        "-e", "AWS_PROFILE=production",
        "-e", "AWS_REGION=us-west-2",
        "ghcr.io/alexei-led/k8s-mcp-server:latest"
      ]
    }
  }
}

连接到 Azure Kubernetes Service (AKS)

{
  "mcpServers": {
    "kubernetes": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "/Users/YOUR_USER_NAME/.kube:/home/appuser/.kube:ro",
        "-e", "K8S_CONTEXT=aks-cluster",
        "ghcr.io/alexei-led/k8s-mcp-server:latest"
      ]
    }
  }
}

启用日志记录

config.json 中添加以下内容以启用调试模式:

{
  "logging": {
    "level": "debug",
    "file": "mcp_server.log"
  }
}

🔒 安全注意事项

  • 认证:通过 Kubernetes 服务账号或 IAM 角色进行身份验证。
  • 授权:使用 RBAC 策略限制 MCP Server 的访问权限。
  • 网络隔离:将 MCP Server 部署在受信任的网络环境中。

📄 许可证

本项目遵循 MIT 许可证,具体条款如下:

版权所有 (c) 2023, Alexei Ledovskoi
Permission is granted to use, modify and distribute this software under the MIT License.

📞 联系方式

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端