使用说明
Kubernetes MCP服务器
一个全面的模型上下文协议(MCP)服务器,用于具有可配置安全模式的安全Kubernetes操作。
🚀 特性
- 🔒 安全第一:多种安全模式(非破坏性、只读、自定义、完全访问)
- 📦 模块化架构:通过专用模块实现关注点的清晰分离
- 🐳 Docker就绪:生产就绪的集装箱化部署
- ⚡ FastMCP集成:基于FastMCP 2.11.3框架构建
- 🎯 全面覆盖:支持所有主要的Kubernetes和Istio资源
- 💾 备份操作:删除前安全备份功能
- 🔧 Helm支持:完成Helm chart生命周期管理
📋 先决条件
- Python 3.12+
- Docker(用于容器化部署)
- Kubernetes集群访问
- kubectl已配置
- Helm 3.x(可选,用于Helm操作)
🛠️ 安装
选项1:Docker部署(推荐)
# Build the Docker image
docker build -t kubectl-mcp-server:latest .
# Run with non-destructive security mode
docker run -d \
--name kubectl-mcp-server \
-p 8000:8000 \
-v ~/.kube:/root/.kube:ro \
-e KUBECONFIG=/root/.kube/config \
-e ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS=true \
kubectl-mcp-server:latest
方案2:地方发展
# Install dependencies
pip install -r requirements.txt
# Run the server
python run_server.py --transport stdio
🔐 安全模式
1.无损模式(推荐用于生产)
export ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS=true
- ✅ 允许:所有读取操作、创建、缩放、备份
- ❌ 积木:删除操作,Helm卸载
2.只读模式(监控/观察)
export ALLOW_ONLY_READONLY_TOOLS=true
- ✅ 允许:获取/列出操作、日志、健康检查
- ❌ 积木:所有写入操作
3.自定义模式(粒度控制)
export ALLOWED_TOOLS="get_pods,get_deployments,get_services"
- ✅ 允许:仅指定工具
- ❌ 积木:其他一切
4.完全访问模式(仅限开发)
# No environment variables set
- ✅ 允许:所有操作
- ⚠️ 警告:仅在开发环境中使用
🎯 支持的资源
Kubernetes核心资源
- 工作量:Pod、部署、复制集、状态集、守护集
- 服务:服务、端点、入口
- 配置:配置地图,秘密
- 存储:持久卷、持久卷索赔、存储类
- RBAC:角色、集群角色、角色绑定、集群角色绑定、服务帐户
- 网络网络政策
- 簇:命名空间、节点、事件
Istio服务网格
- 交通管理:虚拟服务、目标规则、网关
- 安全服务条目
Helm操作
- 图表管理:安装、升级、卸载
- 发布操作:列表、状态、值
- 库管理:添加、列出存储库
🔧 配置
环境变量
| 变量 | 描述 | 默认值 | 示例 |
|---|---|---|---|
ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS |
启用非破坏性模式 | false |
true |
ALLOW_ONLY_READONLY_TOOLS |
启用只读模式 | false |
true |
ALLOWED_TOOLS |
自定义工具白名单 | "" |
"get_pods,get_services" |
KUBECONFIG |
Kubernetes配置路径 | ~/.kube/config |
/path/to/config |
TRANSPORT |
MCP传输方法 | stdio |
stdio 或 sse |
Windsurf集成
添加到您的Windsurf MCP配置(~/.codeium/windsurf/mcp_config.json):
{
"mcpServers": {
"kubectl-safe": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-v", "/Users/yourusername/.kube:/root/.kube:ro",
"-e", "KUBECONFIG=/root/.kube/config",
"-e", "ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS=true",
"-e", "TRANSPORT=stdio",
"kubectl-mcp-server:latest",
"python", "run_server.py", "--transport", "stdio"
]
}
}
}
📚 使用示例
基本操作
# List all pods
python run_server.py --transport stdio
# Then use MCP client to call: get_pods_tool
# Get deployments in specific namespace
# MCP call: get_deployments_tool(namespace="production")
# Scale a deployment
# MCP call: scale_deployment_tool(name="myapp", replicas=3, namespace="default")
备份操作
# Backup a resource before deletion
# MCP call: backup_resource_tool(name="myapp", resource_type="deployment", namespace="default")
# Safe delete (backup + delete)
# MCP call: backup_and_delete_resource_tool(name="myapp", resource_type="deployment")
Helm操作
# Install a Helm chart
# MCP call: install_helm_chart_tool(name="myapp", chart="nginx", namespace="default")
# List Helm releases
# MCP call: list_helm_releases_tool(namespace="default")
🏗️ 建筑
kubectl-mcp-server/
├── run_server.py # Main entry point
├── kubectl_mcp_tool/
│ ├── mcp_server.py # MCP server implementation
│ └── tools/ # Modular tool implementations
│ ├── kubectl_get.py # Read operations
│ ├── kubectl_operations.py # Utility operations
│ ├── kubectl_delete.py # Destructive operations
│ ├── kubectl_backup.py # Backup operations
│ └── helm_operations.py # Helm chart operations
├── Dockerfile # Container configuration
└── requirements.txt # Python dependencies
🔒 安全最佳实践
- 使用非破坏性模式 在生产环境中
- 挂载kubeconfig只读 装在集装箱里
- 定期备份 关键资源
- 监控日志 用于安全事件
- 使用最小权限 RBAC策略
- 验证配置 部署前
🐛 故障排除
常见问题
身份验证错误
# Check kubeconfig
kubectl config current-context
# Verify cluster access
kubectl get nodes
集装箱问题
# Check container logs
docker logs kubectl-mcp-server
# Verify volume mounts
docker exec -it kubectl-mcp-server ls -la /root/.kube/
MCP连接问题
# Test server directly
python run_server.py --transport stdio --debug
# Validate JSON configuration
cat ~/.codeium/windsurf/mcp_config.json | python3 -m json.tool
📊 监控
健康检查
- 服务器启动日志指示安全模式
- 记录失败的操作及其详细信息
- 对资源访问尝试进行审核
指标
- 操作成功/失败率
- 违反安全模式
- 资源访问模式
🤝 贡献
- 分叉存储库
- 创建要素分支
- 添加新功能的测试
- 确保安全模式正常工作
- 提交拉取请求
📄 许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
🆘 支持
对于问题和疑问:
- 检查故障排除部分
- 查看容器日志
- 验证Kubernetes连接
- 验证MCP配置
🔄 版本历史记录
- v1.0.0:具有安全模式和全面Kubernetes支持的初始版本
- FastMCP 2.11.3集成
- Docker容器化
- Windsurf集成