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)
请求流程
- 客户端请求: AI代理通过STDIO发送请求
- 传输层: StdioTransport转发请求到MCP服务器
- 路由处理: 服务器将请求路由到相应处理器
- 工具执行: KubernetesManager执行具体的K8s操作
- API调用: 与Kubernetes API进行交互
- 响应返回: 处理结果逐层返回给客户端
安装与配置
环境要求
- 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"]
}
}
}
连接验证
在安装完成后,您可以:
- 询问Claude列出您的Pod
- 创建测试部署
- 如有错误,先在终端运行
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生态系统
Kubernetes工具链
- kubectl: 官方命令行工具
- Helm: 包管理器
- minikube: 本地开发环境
- Rancher Desktop: 桌面Kubernetes环境
应用前景与价值
🎯 运维效率提升
通过自然语言操作Kubernetes集群,降低了学习曲线,提高了运维效率。新手也能快速上手复杂的集群管理任务。
🤖 智能化运维
结合AI代理的智能分析能力,可以实现:
- 自动故障诊断
- 智能资源推荐
- 预测性维护
- 自动化部署优化
🔗 无缝集成
与现有Kubernetes生态完全兼容,无需改变现有工作流程,可以渐进式引入AI辅助运维。
📈 未来发展方向
- 支持更多Kubernetes资源类型
- 集成更多云原生工具
- 增强安全性和权限控制
- 支持多集群管理
- 图形化操作界面
总结
Kubernetes MCP服务器项目代表了AI与云原生技术结合的创新尝试。它通过自然语言接口简化了Kubernetes集群管理的复杂性,让运维人员能够更直观、高效地管理容器化应用。
无论您是Kubernetes新手还是经验丰富的运维专家,这个工具都能显著提升您的工作效率。通过与Claude等AI助手的集成,它为智能化运维开辟了新的可能性,是现代DevOps工具链中的有力补充。
随着云原生技术的持续发展和AI技术的不断进步,相信这类工具将在未来的IT运维中发挥越来越重要的作用。