Velero MCP服务器
这 Velero MCP服务器 是一个开源 模型上下文协议(MCP) 暴露的服务器 只读、安全、结构化访问 Velero备份和调度在任何Kubernetes集群内运行的资源。
它允许AI代理(ChatGPT、Claude、Cursor、GitHub Copilot等):
- 🔍 检查 Velero备份
- 🔄 检查 Velero时间表
- 📄 生成 Velero备份YAML清单
- 🧩 访问Velero数据 MCP资源
- 🔐 在中与您的集群安全交互 只读模式
该项目帮助平台工程师使用AI自动化工作流程,同时确保 零风险, 低特权,以及 只读的 访问关键集群配置。
______________________________________________________________________
⭐ 为什么这个项目存在
Velero通常用于:
- Kubernetes命名空间和集群备份
- 灾难恢复
- 群集迁移
- 持久卷快照管理
但直到现在, 不存在MCP服务器 以安全、结构化的方式将Velero CRD暴露于基于LLM的工具中。
该项目提供:
- 用于查询Velero的一致性API
- 强类型模型
- 完全只读安全
- 保证LLM友好输出
- 已准备好与GitOps集成
______________________________________________________________________
🚀 特性
🔧 MCP工具
list_velero_backups(namespace?: str)
返回Velero备份CR列表。
get_velero_backup(name: str, namespace?: str)
返回一个详细的结构化备份对象。
list_velero_schedules(namespace?: str)
列出Velero调度CR,包括cron、暂停状态和上次备份。
generate_velero_backup_yaml(...)
产生 只读YAML 对于Velero Backup.
______________________________________________________________________
📦 MCP资源端点
| 资源 | 描述 |
|---|---|
velero://backups | 默认命名空间中的所有备份 |
velero://schedules | 默认命名空间中的所有计划 |
这些允许LLM在不调用工具的情况下探索Velero州。
______________________________________________________________________
🏗 建筑
- Python 3.10+
- MCP(官方模型上下文协议SDK)
- Kubernetes Python客户端
- Pydantic模型
- 安全、只读设计
- 不
kubectl,没有执行,没有副作用
流量:
MCP Client → Velero MCP Server → Kubernetes API → Velero CRDs______________________________________________________________________
🔐 安全模型
设计为100%安全
服务器 从不:
- 创建备份
- 跑步恢复
- 删除备份对象
- 将任何内容写入Kubernetes
仅通过Kubernetes API读取CRD。
需要RBAC:
get, list on:
- backups.velero.io
- schedules.velero.io______________________________________________________________________
📥 安装
git clone https://github.com/YOUR-ORG/velero-mcp-server.git
cd velero-mcp-server
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
pip install .发展:
pip install ".[dev]"______________________________________________________________________
⚙️ 配置
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
KUBECONFIG | kubeconfig | auto的路径 |
VELERO_NAMESPACE | Velero命名空间 | Velero |
K8s身份验证顺序:
- 集群内服务帐户
$KUBECONFIG~/.kube/config
______________________________________________________________________
▶️ 运行服务器
在stdio模式下启动服务器(MCP要求):
python -m velero_mcp_server.server______________________________________________________________________
🧩 MCP客户端配置示例
ChatGPT MCP配置
{
"mcpServers": {
"velero-mcp": {
"command": "python",
"args": ["-m", "velero_mcp_server.server"],
"env": {
"KUBECONFIG": "/path/to/kubeconfig",
"VELERO_NAMESPACE": "velero"
}
}
}
}克劳德桌面版
"mcpServers": {
"velero-mcp": {
"command": "python",
"args": ["-m", "velero_mcp_server.server"],
"env": {
"KUBECONFIG": "/path/to/kubeconfig",
"VELERO_NAMESPACE": "velero"
}
}
}______________________________________________________________________
🧪 示例用法(AI代理)
列出失败的备份
“呼叫 list_velero_backups 过滤器阶段=失败。”检查备份
“使用get_velero_backup为了prod-full并告诉我包含的命名空间。”
生成清单
“生成包含命名空间的Velero备份YAMLdb,logging,TTL=168小时。”
生产:
apiVersion: velero.io/v1
kind: Backup
metadata:
name: prod-backup
namespace: velero
spec:
includedNamespaces:
- db
- logging
ttl: 168h______________________________________________________________________
🛠 发展
运行过梁:
ruff check velero_mcp_server类型检查:
mypy velero_mcp_server运行测试:
pytest______________________________________________________________________
🤝 贡献
我们 欢迎捐款 各种类型:
- 添加Velero恢复/VolumeSnapshot支持
- 改进错误处理
- 添加更多MCP资源
- 添加Helm图表
- 添加日志记录或指标
- 改进文档
阅读全文 贡献.md.
______________________________________________________________________
📜 许可证
该项目根据 MIT许可证,允许:
- 商业用途
- 私人使用
- 修改
- 分布
______________________________________________________________________
🗺 路线图
计划改进:
- 添加对还原CRD的支持
- 快照对象
- 恢复影响分析
- 写启用模式(在严格标志后面)
- 发布到PyPI
- 集群部署的Helm图
如果你想帮助塑造方向,请打开一个问题!
