dbackup-mcp

dbackup-mcp

A typed MCP server for curated backup administration of DBackup via its API, exposing tools for backup jobs, execution history, notifications, storage, and bounded restore workflows.

Category
Visit Server

README

dbackup-mcp

A typed Model Context Protocol server for curated backup administration of DBackup through its authenticated API.

This community project is not affiliated with or endorsed by the DBackup project. DBackup is licensed under GPL-3.0; dbackup-mcp is a separate integration project licensed under MIT.

What it covers

dbackup-mcp exposes explicit MCP workflows instead of a generic HTTP escape hatch. The current source package version is 0.1.0 and exposes 43 curated tools across:

  • backup jobs and read-only job planning;
  • execution history, cancellation and notification logs;
  • database, storage and notification adapters;
  • credential-profile references without credential reveal;
  • backup inspection, verification and bounded restore workflows;
  • capability and health diagnostics.

The server deliberately excludes raw HTTP, credential reveal, backup download/deletion, API-key administration, user/RBAC/SSO administration and unsupported DBackup UI-internal server actions.

See the complete Tool reference for every tool, mutation classification, destructive semantics, permissions and important guards.

Requirements

  • Python 3.12+
  • DBackup 3.2.0 as the tested and supported baseline; other versions are unverified unless explicitly documented
  • a DBackup API key with only the permissions required by the enabled MCP workflows
  • an MCP client or gateway that supports STDIO servers
  • uv for the documented source workflow

Configuration

Variable Required Default Meaning
DBACKUP_BASE_URL yes - DBackup HTTP(S) origin without /api, for example https://backup.example.com.
DBACKUP_API_KEY_FILE yes - Private regular file containing one DBackup API key. Group/other permissions are rejected.
DBACKUP_CREDENTIAL_SECRET_DIR no - Private directory containing mode-0600 JSON credential payload files for explicit credential create/update tools.
DBACKUP_REQUEST_TIMEOUT_SECONDS no 15 Per-request timeout in seconds, greater than zero and at most 120.

Example MCP registration from an installed package:

{
  "mcpServers": {
    "dbackup": {
      "command": "dbackup-mcp",
      "env": {
        "DBACKUP_BASE_URL": "https://backup.example.com",
        "DBACKUP_API_KEY_FILE": "/run/secrets/dbackup-api-key",
        "DBACKUP_CREDENTIAL_SECRET_DIR": "/run/secrets/dbackup-credentials"
      }
    }
  }
}

Omit DBACKUP_CREDENTIAL_SECRET_DIR when the MCP should not create or update DBackup credential profiles from local secret files.

Running from source

The repository includes uv.lock for a reproducible source environment.

uv sync --frozen --extra test
DBACKUP_BASE_URL=https://backup.example.com \
DBACKUP_API_KEY_FILE=/run/secrets/dbackup-api-key \
uv run --frozen dbackup-mcp

A gateway can also launch the checkout with uv run --frozen --directory /path/to/dbackup-mcp dbackup-mcp and the same environment variables.

Permissions

DBackup remains the authorization boundary. Grant only the permissions required by the workflows exposed to a given MCP consumer; a gateway can further restrict the visible tool set.

The full 43-tool surface can require job, history, source, destination, notification, storage/restore and credential-reference permissions. It does not require credential reveal, backup download/delete, API-key administration, user/RBAC/SSO administration or recovery-kit access. See the Tool reference for the exact full-surface permission set.

Security

  • API keys and credential payloads are file-backed and are never accepted as plaintext MCP arguments.
  • Secret input files must be private regular files; adapter inputs reject DBackup-sensitive configuration keys and use credential-profile references instead.
  • DBackup responses and error details are sanitized before model-visible output is returned.
  • No generic request escape hatch exists.
  • Destructive tools are explicitly annotated and confirmation is enforced where required; selected-file restore supports a dry-run path.
  • All tools publish openWorldHint=false.

See SECURITY.md for vulnerability reporting and the maintained security boundary.

Compatibility

DBackup 3.2.0 is the tested and supported baseline. The bundled OpenAPI description does not fully cover directory-job and granular file-restore behavior, so this project keeps a small source-verified 3.2.0 compatibility layer covered by contract tests.

Some objects used by DBackup's web job editor are available only through application-internal server actions rather than public API-key REST discovery. dbackup-mcp does not depend on those internal UI actions; known IDs may be supplied where the public job API accepts them. See the Tool reference for details.

Development and release

Run the repository-local verification entry point:

./scripts/verify.sh

GitHub Actions uses the same verification path. Dependabot maintains the locked dependency set within accepted compatibility ranges.

Normal development does not publish a release. An accepted strict SemVer tag (vMAJOR.MINOR.PATCH) triggers the release workflow, which fails closed while the repository is private, verifies the tag and package version, reruns verification, builds reproducible wheel/source artifacts plus SHA256SUMS, and publishes a GitHub Release. It does not publish to PyPI.

License

MIT. See LICENSE.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured