velero-mcp
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"velero-mcp": {
"args": [
"-m",
"velero_mcp_server.server"
],
"command": "python",
"env": {
"KUBECONFIG": "/path/to/kubeconfig",
"VELERO_NAMESPACE": "velero"
}
}
}
}
服务介绍
Velero MCP Server
The Velero MCP Server is an open-source Model Context Protocol (MCP) server that exposes read-only, safe, structured access to Velero backup and schedule resources running inside any Kubernetes cluster.
It allows AI agents (ChatGPT, Claude, Cursor, GitHub Copilot, etc.) to:
- Inspect Velero backups
- Inspect Velero schedules
- Generate Velero Backup YAML manifests
- Access Velero data as MCP resources
- Safely interact with your cluster in read-only mode
This project helps platform engineers automate workflows using AI while ensuring zero-risk, low-privilege, and read-only access to critical cluster configuration.
Why This Project Exists
Velero is commonly used for:
- Kubernetes namespace & cluster backups
- Disaster recovery
- Cluster migrations
- Persistent volume snapshot management
But until now, no MCP server existed to expose Velero CRDs to LLM-based tools in a safe, structured way.
This project provides:
- A consistent API for querying Velero
- Strong typed models
- Complete read-only safety
- Guaranteed LLM-friendly output
- Ready integration with GitOps
Features
MCP Tools
list_velero_backups(namespace?: str)
Returns a list of Velero Backup CRs.
get_velero_backup(name: str, namespace?: str)
Returns a detailed structured backup object.
list_velero_schedules(namespace?: str)
Lists Velero Schedule CRs including cron, paused state, and last backup.
generate_velero_backup_yaml(...)
Generates read-only YAML for a Velero Backup.
MCP Resource Endpoints
| Resource | Description |
|---|---|
velero://backups |
All backups in default namespace |
velero://schedules |
All schedules in default namespace |
These allow LLMs to explore Velero state without calling tools.
Architecture
- Python 3.10+
- MCP (official Model Context Protocol SDK)
- Kubernetes Python Client
- Pydantic models
- Safe, read-only design
- No
kubectl, no exec, no side effects
Flow:
MCP Client Velero MCP Server Kubernetes API Velero CRDs
Security Model
Designed to be 100% safe
The server never:
- Creates backups
- Runs restores
- Deletes backup objects
- Writes anything to Kubernetes
Only reads CRDs via the Kubernetes API.
RBAC Required:
get, list on:
- backups.velero.io
- schedules.velero.io
Installation
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 .
For development:
pip install ".[dev]"
Configuration
Environment Variables
| Variable | Description | Default |
|---|---|---|
KUBECONFIG |
Path to kubeconfig | auto |
VELERO_NAMESPACE |
Velero namespace | velero |
K8s auth order:
- In-cluster ServiceAccount
$KUBECONFIG~/.kube/config
Running the Server
Start the server in stdio mode (required by MCP):
python -m velero_mcp_server.server
Example MCP Client Configuration
ChatGPT MCP configuration
{
"mcpServers": {
"velero-mcp": {
"command": "python",
"args": ["-m", "velero_mcp_server.server"],
"env": {
"KUBECONFIG": "/path/to/kubeconfig",
"VELERO_NAMESPACE": "velero"
}
}
}
}
Claude Desktop
"mcpServers": {
"velero-mcp": {
"command": "python",
"args": ["-m", "velero_mcp_server.server"],
"env": {
"KUBECONFIG": "/path/to/kubeconfig",
"VELERO_NAMESPACE": "velero"
}
}
}
Example Usage (AI Agent)
List failed backups
Call
list_velero_backupsand filter phase = Failed.
Inspect a backup
Use
get_velero_backupforprod-fulland tell me included namespaces.
Generate a manifest
Generate a Velero backup YAML including namespaces
db,logging, TTL=168h.
Produces:
apiVersion: velero.io/v1
kind: Backup
metadata:
name: prod-backup
namespace: velero
spec:
includedNamespaces:
- db
- logging
ttl: 168h
Development
Run linters:
ruff check velero_mcp_server
Type-check:
mypy velero_mcp_server
Run tests:
pytest
Contributing
We welcome contributions of all kinds:
- Add Velero Restore / VolumeSnapshot support
- Improve error handling
- Add more MCP resources
- Add a Helm chart
- Add logging or metrics
- Improve documentation
Read the full CONTRIBUTING.md.
License
This project is licensed under the MIT License, allowing:
- Commercial use
- Private use
- Modification
- Distribution
Roadmap
Planned improvements:
- Add support for Restore CRDs
- Snapshot objects
- Restore impact analysis
- Write-enabled mode (behind strict flags)
- Publish to PyPI
- Helm chart for cluster deployment
If you'd like to help shape the direction, please open an issue!