Kubernetes自然语言交互服务器

一个基于Model Context Protocol (MCP)的Kubernetes交互服务器,允许AI助手通过自然语言与Kubernetes集群进行交互。

  • by bharathmadvar123
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 bharathmadvar123/kubectl-k8s-mcp

使用说明

Kubectl MCP服务器

Kubernetes的模型上下文协议(MCP)服务器,使Claude、Cursor等AI助手能够通过自然语言与Kubernetes集群进行交互。

🎥 现场演示-观看 kubectl-mcp-tool 与克劳德一起行动!

🎥 现场演示-观看 kubectl-mcp-tool 使用Cursor进行操作!

🎥 现场演示-观看 kubectl-mcp-tool 与Windsurf一起行动!

特性

Kubernetes核心操作

  • [x] 连接到Kubernetes集群
  • [x] 列出并管理Pod、服务、部署和节点
  • [x] 创建、删除和描述Pod和其他资源
  • [x] 获取pod日志和Kubernetes事件
  • [x] 支持Helm v3操作(安装、升级、卸载)
  • [x] kubectl说明和api资源支持
  • [x] 为下一个命令选择命名空间(内存持久性)
  • [x] 端口转发到Pod
  • [x] 扩展部署和状态集
  • [x] 在容器中执行命令
  • [x] 管理配置映射和机密
  • [x] 将部署回滚到以前的版本
  • [x] 入口和网络策略管理
  • [x] 集群之间的上下文切换

自然语言处理

  • [x] 处理kubectl操作的自然语言查询
  • [x] 具有先前操作记忆的上下文感知命令
  • [x] 对Kubernetes概念的人性化解释
  • [x] 基于意图的智能指挥构建
  • [x] 当专用工具不可用时,回退到kubectl
  • [x] 离线/测试场景的模拟数据支持
  • [x] 命名空间感知查询处理

监控

  • [x] 集群健康监测
  • [x] 资源利用率跟踪
  • [x] Pod状态和健康检查
  • [x] 事件监控和警报
  • [x] 节点容量和分配分析
  • [x] 历史绩效跟踪
  • [x] 通过kubectl top进行资源使用统计
  • [x] 容器准备状态和活性跟踪

安全

  • [x] RBAC验证和确认
  • [x] 安全上下文审核
  • [x] 与Kubernetes API的安全连接
  • [x] 凭证管理
  • [x] 网络策略评估
  • [x] 集装箱安全扫描
  • [x] 安全最佳实践执行
  • [x] 角色和集群角色管理
  • [x] ServiceAccount创建和绑定
  • [x] PodSecurityPolicy分析
  • [x] RBAC权限审核
  • [x] 安全上下文验证

诊断

  • [x] 集群诊断和故障排除
  • [x] 配置验证
  • [x] 错误分析和恢复建议
  • [x] 连接状态监控
  • [x] 日志分析和模式检测
  • [x] 资源约束识别
  • [x] Pod健康检查诊断
  • [x] 常见错误模式识别
  • [x] 对配置错误进行资源验证
  • [x] 详细的活性和准备状态探针验证

高级功能

  • [x] 支持多种传输协议(stdio、SSE)
  • [x] 与多个AI助手集成
  • [x] 可扩展的工具框架
  • [x] 自定义资源定义支持
  • [x] 跨命名空间操作
  • [x] 对多个资源进行批处理操作
  • [x] 智能资源关系映射
  • [x] 错误解释和恢复建议
  • [x] 卷管理和识别

建筑

模型上下文协议(MCP)集成

Kubectl MCP工具实现了 模型上下文协议(MCP),使AI助手能够通过标准化的接口与Kubernetes集群进行交互。该架构由以下部分组成:

  1. MCP服务器:处理来自MCP客户端(AI助手)请求的兼容服务器
  2. 工具注册表:使用模式将Kubernetes操作注册为MCP工具
  3. 传输层:支持stdio、SSE和HTTP传输方法
  4. 核心业务:将工具调用转换为Kubernetes API操作
  5. 响应格式化程序:将Kubernetes响应转换为符合MCP的响应

请求流

双模式操作

该工具以两种模式运行:

  1. 命令行接口命令模式:用于执行Kubernetes操作的直接命令行界面
  2. 服务器模式:作为MCP服务器运行,以处理来自AI助手的请求

安装

有关详细的安装说明,请参阅 安装指南.

您可以直接从PyPI安装kubectl mcp工具:

pip install kubectl-mcp-tool

对于特定版本:

pip install kubectl-mcp-tool==1.1.1

该软件包在PyPI上可用: https://pypi.org/project/kubectl-mcp-tool/1.1.1/

先决条件

  • Python 3.9+
  • kubectl CLI已安装并配置
  • 访问Kubernetes集群
  • pip(Python包管理器)

全球安装

# Install latest version from PyPI
pip install kubectl-mcp-tool

# Or install development version from GitHub
pip install git+https://github.com/rohitg00/kubectl-mcp-server.git

本地开发安装

# Clone the repository
git clone https://github.com/rohitg00/kubectl-mcp-server.git
cd kubectl-mcp-server

# Install in development mode
pip install -e .

验证安装

安装后,验证工具是否正常工作:

kubectl-mcp --help

注意:此工具旨在作为AI助手连接的MCP服务器工作,而不是作为kubectl的直接替代品。可用的主要命令是 kubectl-mcp serve 启动MCP服务器。

Docker镜像

如果你更喜欢使用Docker,Docker Hub上有一个预构建的镜像:

# Pull the latest image
docker pull rohitghumare64/kubectl-mcp-server:latest

运行图像

容器内的服务器监听端口 8000.将任意空闲主机端口绑定到8000并挂载kubeconfig:

# Replace 8081 with any free port on your host
# Mount your local ~/.kube directory for cluster credentials

docker run -p 8081:8000 \
           -v $HOME/.kube:/root/.kube \
           rohitghumare64/kubectl-mcp-server:latest
  • -p 8081:8000 映射主机端口8081→ 集装箱港口8000。
  • -v $HOME/.kube:/root/.kube 挂载kubeconfig,以便服务器可以访问集群。

构建多架构映像(AMD64和ARM64)

如果你想构建和推送一个多拱形镜像(这样它就可以在x86_64和Apple Silicon上运行),请使用Docker Buildx:

# Ensure Buildx and QEMU are installed once per machine
# docker buildx create --name multiarch --use
# docker buildx inspect --bootstrap

# Build and push for linux/amd64 and linux/arm64
# (replace <your_username> if you're publishing to your own registry)

docker buildx build \
  --platform linux/amd64,linux/arm64 \
  -t rohitghumare64/kubectl-mcp-server:latest \
  --push .

发布的镜像将包含一个包含两种架构的清单列表,Docker将自动在每台机器上提取正确的变体。

配置

允许MCP服务器访问这些路径以读取Kubernetes配置:

run:
  volumes:
    - '{{kubectl-mcp-server.kubeconfig}}:/root/.kube'
config:
  description: The MCP server is allowed to access this path
  parameters:
    type: object
    properties:
      kubeconfig:
        type: string
        default:
          $HOME/.kube
    required:
      - kubeconfig

此配置允许用户将他们的kubeconfig目录添加到容器中,使MCP服务器能够通过他们的Kubernetes集群进行身份验证。

使用AI助手

使用MCP服务器

MCP服务器(kubectl_mcp_tool.mcp_server)是一个基于FastMCP SDK的强大实现,可在不同的AI助手之间提供增强的兼容性:

备注:如果您在MCP Server实现中遇到任何错误,您可以通过替换来重新使用最小包装器 kubectl_mcp_tool.mcp_server 随着 kubectl_mcp_tool.minimal_wrapper 在您的配置中。最小包装器以更简单的实现提供基本功能。

  1. 直接配置

    {
      "mcpServers": {
        "kubernetes": {
          "command": "python",
          "args": ["-m", "kubectl_mcp_tool.mcp_server"],
          "env": {
            "KUBECONFIG": "/path/to/your/.kube/config",
            "PATH": "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin",
            "MCP_LOG_FILE": "/path/to/logs/debug.log",
            "MCP_DEBUG": "1"
          }
        }
      }
    }
    
  2. 关键环境变量

    • MCP_LOG_FILE:日志文件的路径(建议避免stdout污染)
    • MCP_DEBUG:设置为“1”以进行详细日志记录
    • MCP_TEST_MOCK_MODE:设置为“1”以使用模拟数据而不是真实集群
    • KUBECONFIG:Kubernetes配置文件的路径
    • KUBECTL_MCP_LOG_LEVEL:设置为“调试”、“信息”、“警告”或“错误”
  3. 测试MCP服务器 您可以通过以下方式测试服务器是否正常工作:

    python -m kubectl_mcp_tool.simple_ping
    

    这将尝试连接到服务器并执行ping命令。

    或者,您可以直接使用以下命令运行服务器:

    python -m kubectl_mcp_tool
    

克劳德桌面

将以下内容添加到您的Claude Desktop配置中 ~/Library/Application\ Support/Claude/claude_desktop_config.json (Windows: %APPDATA%\Claude\mcp.json):

{
  "mcpServers": {
    "kubernetes": {
      "command": "python",
      "args": ["-m", "kubectl_mcp_tool.mcp_server"], 
      "env": {
        "KUBECONFIG": "$HOME/.kube/config" // or whatever your path is for the config file
      }
    }
  }
}

光标AI

通过添加新的全局MCP服务器,将以下内容添加到MCP下的Cursor AI设置中:

{
  "mcpServers": {
    "kubernetes": {
      "command": "python",
      "args": ["-m", "kubectl_mcp_tool.mcp_server"],
      "env": {
        "KUBECONFIG": "/path/to/your/.kube/config",
        "PATH": "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/homebrew/bin"
      }
    }
  }
}

将此配置保存到 ~/.cursor/mcp.json 用于全局设置。

备注:替换 /path/to/your/.kube/config 带有kubeconfig文件的实际路径。在大多数系统中,这是 ~/.kube/config.

帆板运动

将以下内容添加到您的Windsurf配置中 ~/.config/windsurf/mcp.json (Windows: %APPDATA%\WindSurf\mcp.json):

{
  "mcpServers": {
    "kubernetes": {
      "command": "python",
      "args": ["-m", "kubectl_mcp_tool.mcp_server"],
      "env": {
        "KUBECONFIG": "/path/to/your/.kube/config"
      }
    }
  }
}

自动配置

要自动配置所有支持的AI助手,请运行提供的安装脚本:

bash install.sh