Cloudback MCP Server - Manage your backups from Claude, Cursor, and VS Code

by
Cloudback now ships an official MCP server. Connect Claude Code, Claude Desktop, Cursor, VS Code, or any MCP client and manage your backup definitions, schedules, storages, and retention policies through plain-language chat - across GitHub, GitLab, Azure DevOps, and Linear. One prompt can reschedule and re-retain 300 backup definitions at once - no dashboard clicks, no throwaway scripts. Runs as a Docker image (myrtlelabs/cloudback-mcp).

Add a comment

Replies

Best
Hi PH 👋 I'm Evgeniy, co-founder of Cloudback. Today I'm bringing our MCP server to Product Hunt. 🛠️ Why we built it: Cloudback already has a dashboard, a Terraform provider, and a REST Operations API. They work well for scheduled automation and IaC. But when a platform engineer wants to answer "which of my 300 repos doesn't have a backup?" or "move every nightly job to 02:00 UTC and extend retention to 180 days" - that's a throwaway script or multiple dashboard clicks. It's not only for changes - you can also just ask for the read-only picture: "how many repos backed up last night?", "which backups failed this week?" - and get the status, stats, and an overview across every account in seconds. ⚡ What the MCP server does: - List and filter backup definitions across your accounts (GitHub, GitLab, Azure DevOps, Linear - one config file, case-insensitive). - Bulk-update schedules, storages, and retention policies in one prompt. The assistant reads your retention policy names directly and reuses them - no hardcoded day counts. - Read and adjust account-level defaults: timezone, default schedule, default storage, default retention. - Works with Claude Code, Claude Desktop, Cursor, VS Code, and any stdio MCP-compatible client. 🐳 Setup is three steps: create an Operations API key per account, drop them into a single appsettings.json (one entry per account: platform + account name + API key), and register the server in your MCP config. Docker pulls myrtlelabs/cloudback-mcp automatically on first run. 👥 Who it's for: - Platform engineers managing repos across multiple platforms who want config changes without a script. - DevOps teams already on Cloudback who want a faster path to bulk changes. - Operators who want natural-language access to backup state for audits or incident response. Cloudback protects 1.7k+ customers, 14k+ repositories, and 4M+ backups. Every plan starts with a free trial. 💬 Happy to answer questions
What guardrails did you have to add before feeling comfortable letting AI make changes to backup configurations? And Were there any backup operations you intentionally decided not to expose through MCP?

 Two good questions.

Guardrails: the main one is that the MCP server only manages configuration - it never runs backups, restores, or touches backup data. On top of that, every call is scoped to one account (one API key each), bulk edits have no wildcard (the assistant lists the exact definition IDs first, and unknown IDs are rejected), schedule, storage, and retention are set by name not raw ID, and every write is a tool call your client approves before it runs. All changes land in the audit log.

What we left out on purpose: restore, on-demand backup runs, and deleting backup definitions - the irreversible ones stay in the dashboard behind a human. Same for creating storage, which means handling credentials, and creating or deleting retention policies - the assistant can apply existing named policies, not invent or remove them. Read freely, edit config safely, and keep restore and anything that touches backup data out of chat.

MCP server for backup management is a natural fit, being able to reschedule retention policies through a plain-language prompt instead of clicking through a dashboard is exactly the kind of workflow improvement that compounds over time. Curious if you plan to support Bitbucket as well?

 Appreciate it - the "compounds over time" point is exactly the bet. On Bitbucket: it's not in Cloudback today, so it's not in the MCP surface yet either (the server covers what Cloudback backs up - GitHub, GitLab, Azure DevOps, and Linear). The upside is the MCP server rides on top of that platform support, so the day Bitbucket lands it shows up here automatically. Noted the ask - real demand like this is what we weigh when picking the next platform.

 Thanks for the detailed answer, Evgeniy! The automatic surface when Bitbucket lands makes total sense, that's clean architecture. Good luck with the launch!

Nice launch. Backup MCP is one of those places where natural language is useful, but dangerous if the write boundary is fuzzy.

For bulk retention or schedule changes, do you make the assistant show a planned diff and receipt per account before it applies the change?

 Good question, and the right risk to poke at. Bulk changes aren't a wildcard. The assistant has to pull the exact definitions first, so you see the current settings and which IDs will change, and update only touches those IDs. Each call is scoped to one account, and the apply is a normal MCP tool call your client surfaces for approval - with the account, IDs, and new values - before it runs. And every change lands in Cloudback's audit log, so there's a full record of what was applied, when, and by whom. A one-step before/after diff across all definitions isn't there yet - today that view comes from the List call before the write.

That is a solid boundary. I like that the write call stays account-scoped and the client owns approval.

The missing piece I’d want as an operator is the diff receipt: these 17 definitions changed from X to Y, these 2 failed, here is the audit link. Is that something Cloudback plans to expose from the write response?

 The success/fail receipt comes straight from the write response. The before/after values aren't bundled into that response, but the assistant can still show them if you ask - it reads each definition's current settings to get the IDs first (that's your "before"), applies the change, and can re-read to confirm the "after." So "repo X: Daily to Weekly, retention 30 to 180 days, succeeded" works today. The one piece that lives outside the response is a direct audit link - that's in the dashboard audit log.

That makes sense. If the dashboard audit log is the source of truth, the bit I’d want in the write response is a stable audit event id or dashboard reference.

Then the assistant can say what changed, confirm the re-read, and point the operator to the record without inventing its own diff layer.

The MCP angle is interesting here because backup tools sit right on the boundary between helpful automation and dangerous side effects.

The details I would want to see as a user are: read-only inspection tools separated from mutating restore/delete actions, a dry-run mode for any restore operation, clear repository/account scope, and an audit trail that shows exactly which backup was touched and why.

If those boundaries are visible to Claude/Cursor/VS Code before a tool call runs, this becomes much easier to trust. Backups are one of those domains where the assistant should be useful, but never casually powerful.

 This is exactly the right framing, and most of that list is how it's already built. Read-only inspection and mutating tools are separate, every call is scoped to one account with bulk edits limited to explicit definition IDs (no wildcard), and your client shows each write - account, IDs, and new values - for approval before it runs. Every change lands in the audit log with what was touched and when. On restore and delete specifically: those aren't exposed through MCP at all. The server only manages configuration - it can't restore, run, or delete backup data. The irreversible actions stay in the dashboard behind a human, which is the "useful but never casually powerful" line you're drawing.

This is one of the more practical MCP launches today. Backup configs are exactly the kind of repetitive operational surface where chat beats clicking through a dashboard, especially for bulk schedule and retention changes. Curious whether teams are using it mostly for inspection, like “what isn’t backed up?”, or actually letting it propose config changes.

 Thanks - that's exactly the surface we built it for. It's early, so we won't pretend we have usage stats yet, but by design it leans inspection-first: you have to list the definitions before you change them, so people naturally start with "what's not backed up?" or "which repos have no retention policy?" The bulk config changes are the payoff once they spot the gap.

One prompt rescheduling 300 backup definitions sounds powerful but also a bit risky if the model misreads intent. Does the MCP server have a confirmation or dry-run step before applying changes, or is it fire-and-execute straight to the API?

there is no dry run yet, but we did not include any destructive actions in the MCP server - there is no way to delete anything, and all actions can be traced using audit log in Cloudback platform.

Can you manage what the MCP server is allowed to touch, like only one repo or one workspace?

yes, the access is granted using the API key, one per connected account - Linear workspace, GitHub org, etc

Exposing backup operations through MCP is clever. Claude and Cursor already have context to know when a restore makes sense, so meeting devs inside the IDE is the right call. We've been thinking about which operations are safe to put behind MCP in our own agent workflows. How do you handle the auth model? Is confirmation required per action, or scoped at the connection level?

 Thank you for the question! We use API keys for each account you connect to MCP.

Leaving restore and delete out of the MCP surface entirely is the right call, the destructive stuff was never the scary part for me. It's the safe bulk edit where a wrong scope quietly retouches 300 definitions and nothing throws. With no dry-run yet, is the list-before-write step enough to catch that, or are people mostly trusting the audit log after?

 Listing the definitions first is really enough here - you see the exact set and count before anything runs, so the scope is whatever you filtered, not a guess. And a wrong scope can't run away: each account has its own API key, so a bulk change only ever touches that one account. On top of that, Cloudback sends instant backup-status notifications - so if a change ever left a backup failing, you'd know right away, not at edit time.