Home
Login

用于Kubernetes集群管理命令的MCP服务器

MITTypeScript 0.8kFlux159 Last Updated: 2025-06-11

Kubernetes MCP服务器 - 项目详细介绍

项目概述

Kubernetes MCP服务器是一个专门为Kubernetes集群管理设计的模型内容协议(Model Content Protocol)服务器。它允许AI代理(如Claude)通过自然语言命令来连接和管理Kubernetes集群,极大地简化了容器编排和集群运维的复杂性。

项目地址: https://github.com/Flux159/mcp-server-kubernetes

核心特性

🎯 集群连接与管理

  • 自动连接到当前kubectl上下文配置的集群
  • 支持多种Kubernetes环境(minikube、Rancher Desktop、GKE等)
  • 完全兼容现有的kubeconfig配置

📦 Pod与部署管理

  • Pod操作: 创建、描述、删除Pod
  • 部署管理: 列出所有部署,更新副本数量
  • 自定义配置: 支持创建自定义Pod和部署配置
  • 日志查看: 获取Pod日志进行调试(支持Pod、部署、作业和标签选择器)

🌐 服务与网络管理

  • 服务操作: 创建、描述、删除、更新服务
  • 端口转发: 支持Pod或服务的端口转发
  • 网络配置: 完整的Kubernetes网络管理支持

🗂️ 资源与配置管理

  • 命名空间: 列出所有命名空间,创建新命名空间
  • ConfigMap: 创建、获取、更新、删除配置映射
  • 节点管理: 列出和描述集群节点
  • 定时任务: 创建、列出和描述CronJob

⚙️ Helm集成支持

  • 图表安装: 使用自定义值安装Helm图表
  • 版本管理: 支持版本规范和自定义仓库
  • 发布管理: 卸载和升级现有发布
  • 命名空间支持: 完整的命名空间隔离

🔧 高级功能

  • kubectl支持: kubectl explain和kubectl api-resources命令
  • 事件监控: 获取集群事件信息
  • 非破坏性模式: 仅允许读取和创建/更新操作的安全模式
  • 实时监控: 支持集群状态的实时查看

系统架构

架构图

Client (Claude/AI Agent)
    ↓
StdioTransport (通信传输层)
    ↓
MCP Server (协议处理)
    ↓
Request Handler (请求路由)
    ↓
KubernetesManager (K8s管理器)
    ↓
Kubernetes API (集群API)

请求流程

  1. 客户端请求: AI代理通过STDIO发送请求
  2. 传输层: StdioTransport转发请求到MCP服务器
  3. 路由处理: 服务器将请求路由到相应处理器
  4. 工具执行: KubernetesManager执行具体的K8s操作
  5. API调用: 与Kubernetes API进行交互
  6. 响应返回: 处理结果逐层返回给客户端

安装与配置

环境要求

  • kubectl: 已安装并配置在PATH中
  • kubeconfig: 有效的kubeconfig文件和上下文配置
  • Kubernetes集群: 可访问的集群(minikube、GKE、EKS等)
  • Helm v3: 可选,如需使用Helm功能
  • Node.js: 运行时环境

快速安装

通过NPM安装(推荐)

# 全局安装
npm install -g mcp-server-kubernetes

# 或使用npx直接运行
npx mcp-server-kubernetes

Claude Desktop集成

编辑claude_desktop_config.json文件:

{
  "mcpServers": {
    "kubernetes": {
      "command": "npx",
      "args": ["mcp-server-kubernetes"]
    }
  }
}

连接验证

在安装完成后,您可以:

  1. 询问Claude列出您的Pod
  2. 创建测试部署
  3. 如有错误,先在终端运行kubectl get pods验证连接

开发环境搭建

本地开发

# 克隆仓库
git clone https://github.com/Flux159/mcp-server-kubernetes.git
cd mcp-server-kubernetes

# 安装依赖(需要bun)
bun install

# 开发模式启动(监听文件变化)
bun run dev

# 运行单元测试
bun run test

# 构建项目
bun run build

使用场景与示例

🚀 日常运维场景

  • "列出所有Pod的状态" - 快速查看集群健康状况
  • "创建一个nginx部署,3个副本" - 快速部署应用
  • "查看default命名空间中出错的Pod日志" - 故障排查
  • "将应用端口转发到本地8080" - 本地调试

📊 监控与调试

  • "显示集群中所有事件" - 监控集群活动
  • "描述node-1节点的详细信息" - 资源分析
  • "查看最近的CronJob执行情况" - 定时任务监控

🛠️ 应用部署

  • "使用Helm安装Redis图表" - 快速部署中间件
  • "更新web-app部署的副本数为5" - 扩容操作
  • "创建生产环境的ConfigMap" - 配置管理

高级配置

非破坏性模式

设置环境变量启用安全模式:

export ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS=true

此模式下只允许读取和创建/更新操作,禁止删除操作。

SSE传输协议

支持服务器推送事件传输协议,详细配置参见项目的ADVANCED_README.md

集群认证

支持多种Kubernetes认证方式:

  • 证书认证
  • Token认证
  • OIDC认证
  • 云厂商IAM集成

技术栈与依赖

核心技术

  • 运行时: Node.js + Bun
  • 协议: Model Content Protocol (MCP)
  • Kubernetes客户端: Official Kubernetes JavaScript Client
  • 传输层: STDIO Transport
  • 包管理: Helm v3

主要依赖

  • @kubernetes/client-node: Kubernetes官方JS客户端
  • @modelcontextprotocol/sdk: MCP协议SDK
  • commander: 命令行参数解析
  • yaml: YAML文件处理

相关项目与生态

MCP生态系统

  • mcp-chat: MCP服务器的CLI聊天客户端
  • MCP Inspector: MCP协议调试工具
  • Claude Desktop: 支持MCP的AI助手桌面应用

Kubernetes工具链

  • kubectl: 官方命令行工具
  • Helm: 包管理器
  • minikube: 本地开发环境
  • Rancher Desktop: 桌面Kubernetes环境

应用前景与价值

🎯 运维效率提升

通过自然语言操作Kubernetes集群,降低了学习曲线,提高了运维效率。新手也能快速上手复杂的集群管理任务。

🤖 智能化运维

结合AI代理的智能分析能力,可以实现:

  • 自动故障诊断
  • 智能资源推荐
  • 预测性维护
  • 自动化部署优化

🔗 无缝集成

与现有Kubernetes生态完全兼容,无需改变现有工作流程,可以渐进式引入AI辅助运维。

📈 未来发展方向

  • 支持更多Kubernetes资源类型
  • 集成更多云原生工具
  • 增强安全性和权限控制
  • 支持多集群管理
  • 图形化操作界面

总结

Kubernetes MCP服务器项目代表了AI与云原生技术结合的创新尝试。它通过自然语言接口简化了Kubernetes集群管理的复杂性,让运维人员能够更直观、高效地管理容器化应用。

无论您是Kubernetes新手还是经验丰富的运维专家,这个工具都能显著提升您的工作效率。通过与Claude等AI助手的集成,它为智能化运维开辟了新的可能性,是现代DevOps工具链中的有力补充。

随着云原生技术的持续发展和AI技术的不断进步,相信这类工具将在未来的IT运维中发挥越来越重要的作用。