使用说明
Kubernetes MCP服务器
Kubernetes资源管理的模型上下文协议(MCP)服务器实现。该项目既是Kubernetes操作的实用工具,也是理解MCP协议的学习练习。
🎯 概述
此MCP服务器使AI助手和LLM能够通过标准化协议与Kubernetes集群进行交互。它提供了一套全面的工具来管理常见的Kubernetes资源,使通过自然语言接口执行集群操作变得更加容易。
✨ 特性
支持的Kubernetes资源
- 容器组 -管理单个工作负载单元
- 部署 -处理应用程序部署
- 状态集 -管理有状态的应用程序
- DaemonSets -控制节点级服务
- 副本集 -管理pod副本
- 工作 -运行批处理工作负载
- CronJobs -安排重复任务
- 服务 -公开应用程序
- 配置地图 -管理配置数据
- 秘密 -处理敏感信息
可用操作
对于每种资源类型,支持以下操作:
get-检索资源详细信息list-列出命名空间中的资源create-创建新资源update-修改现有资源delete-删除资源
🚀 安装
先决条件
- Go 1.24+已安装
- 访问Kubernetes集群
kubectl配置了群集访问权限- 有效的kubeconfig文件(通常位于
~/.kube/config)
从源头构建
git clone https://github.com/TheisFerre/kubernetes-mcp-server.git
cd kubernetes-mcp-server
go build -o kubernetes-mcp-server .
⚙️ 配置
在VS代码中设置
-
安装MCP扩展 如果您还没有,请使用VS Code。
-
配置MCP服务器 通过将其添加到VS Code MCP配置文件中(
mcp.json):
{
"servers": {
"golang-k8s-mcp": {
"command": "/path/to/your/kubernetes-mcp-server/kubernetes-mcp-server",
"args": [],
"env": {}
}
}
}
-
重新启动VS代码 加载新的MCP服务器。
-
验证设置 通过检查Kubernetes工具是否在您的AI助手界面中可用。
Kubernetes集群访问
服务器会自动检测并使用kubectl配置:
- 默认kubeconfig位置:
~/.kube/config - 使用kubectl中配置的当前上下文
- 从kubeconfig继承集群访问权限
🛠️ 使用示例
在VS Code中配置后,您可以使用自然语言与Kubernetes集群进行交互:
基本操作
- “列出默认命名空间中的所有Pod”
- “获取web命名空间中nginx部署的详细信息”
- “从批处理命名空间中删除旧作业作业”
资源管理
- “使用以下规范创建新部署:[JSON]”
- “将我的应用程序部署的副本计数更新为3”
- “显示生产命名空间中的所有服务”
高级查询
- “列出所有命名空间中所有失败的Pod”
- “获取数据库机密的配置”
- “显示自动化命名空间中所有cronjobs的状态”
🏗️ 建筑
服务器采用模块化架构构建:
kubernetes-mcp-server/
├── main.go # Entry point and server initialization
├── pkg/
│ ├── client/ # Kubernetes client configuration
│ │ └── client.go # kubeconfig and cluster connection
│ └── tools/ # MCP tool implementations
│ ├── tools.go # Tool registration and routing
│ ├── pod.go # Pod operations
│ ├── deployment.go # Deployment operations
│ └── ... # Other resource handlers
关键组件
- MCP服务器:使用
mcp-go协议合规性库 - Kubernetes客户端:利用官方
client-go集群通信库 - 工具注册表:Kubernetes资源工具的动态注册系统
- 资源处理程序:每种Kubernetes资源类型的专用处理程序
🔧 发展
添加新资源类型
要添加对新Kubernetes资源的支持:
- 将资源常数添加到
pkg/tools/tools.go - 按照现有模式创建新的处理程序函数
- 在中注册资源
InitializeTools函数 - 在中添加开关盒
addTool函数
地方发展
# Run the server locally
go run main.go
# Build for different platforms
GOOS=linux GOARCH=amd64 go build -o kubernetes-mcp-server-linux .
GOOS=windows GOARCH=amd64 go build -o kubernetes-mcp-server.exe .