Skip to main content
Glama
benzaidfoued

Velero MCP Server

by benzaidfoued

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:

  1. In-cluster ServiceAccount

  2. $KUBECONFIG

  3. ~/.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_backups and filter phase = Failed.”

Inspect a backup

β€œUse get_velero_backup for prod-full and 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!

-
security - not tested
F
license - not found
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/benzaidfoued/velero-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server