Duplicacy MCP

io.github.GeiserXPublished by GitHub account GeiserXv0.2.1Updated Oct 29, 2026

MCP server for Duplicacy: backup health, status and Prometheus metrics from duplicacy-exporter

VerifiedSTDIODesktop onlyFiles & StorageSecurity & Monitoring

Overview

AI-generated overview

Read-only MCP bridge that turns Duplicacy backup metrics from a Prometheus exporter into backup health, status and storage answers for an assistant.

What you can do
  • Check backup health across all backups with a verdict, reason and age of last success
  • List snapshot IDs, storage targets and machines to use as filters
  • Read state and last-run details of one snapshot, plus its last completed run
  • Check whether a prune is running and when the last one succeeded
  • Read storage size, chunk counts and revisions per snapshot
  • Expose status, progress and health as MCP resources
When to use it
Useful when you already run Duplicacy backups with duplicacy-exporter and want an assistant to answer questions like whether backups are OK, which snapshot is stale or failed, or how much storage is in use, without opening dashboards.
Requirements
A running duplicacy-exporter reachable via DUPLICACY_EXPORTER_URL. The npm package runs over stdio and needs Node.js with npx. The Docker image serves Streamable HTTP and requires MCP_AUTH_TOKEN (at least 16 characters) unless running unauthenticated behind an authenticating proxy; MCP_ALLOWED_ORIGINS restricts cross-origin browser calls.
Before you install
The Docker image refuses to start without MCP_AUTH_TOKEN, and clients must send it as an Authorization bearer token, so treat that secret carefully. The server is read-only toward the exporter, but it reads backup status and storage data from your exporter endpoint, so point it only at a trusted URL. The exporter keeps only the last run, so history is limited.

Installation

In SourceWeft

  1. Open Duplicacy MCP in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[Duplicacy MCP]

Duplicacy MCP

[npm] [CI] [License] [Docker Pulls] [GitHub Stars]

A tiny bridge that reads Duplicacy backup metrics from a Prometheus exporter and exposes them as an MCP server, enabling LLMs to monitor backup status, progress, and health.

Features

  • Reads the metrics of duplicacy-exporter and serves them over MCP.
  • One call answers "are my backups OK?": get_backup_overview gives every backup a verdict (ok, running, stale, never, failed) with a reason.
  • Speaks MCP 2026-07-28 (server/discover, stateless requests) and every earlier revision down to 2024-11-05 (the initialize handshake) from the same binary, over stdio and Streamable HTTP. Clients that still use the old handshake keep working.
  • Read-only by design: every tool and resource only reads the exporter, so there is no read-only flag to set. Every tool carries readOnlyHint, a title, an output schema and structured results.
  • HTTP listens on 127.0.0.1:8080 by default. On any other address it refuses to start without a bearer token, rejects cross-origin browser requests and caps request bodies.
  • Ships as Go binaries for several platforms (GoReleaser), a Docker image and an npm wrapper.

Tools and resources

ToolWhat it answers
get_backup_overviewHealth of every backup in one call: verdict, reason, age of the last success. max_age_hours (default 26) sets when a backup is stale.
list_snapshotsEvery snapshot ID, storage target and machine, for use as filter values.
get_backup_statusState and last-run details of one snapshot, per storage target and machine.
get_backup_historyThe last completed run of one snapshot. The exporter keeps only the last run.
get_prune_statusWhether a prune is running and when the last one succeeded, per storage target.
get_storage_usageStorage size and chunks, and revisions per snapshot, from the exporter's storage poller.

Resources: duplicacy://status, duplicacy://progress and duplicacy://health. Parameters and output fields are on Usage.

Install

The npm package runs the server over stdio; set DUPLICACY_EXPORTER_URL to your exporter.

Claude Code

bash
claude mcp add --transport stdio --env DUPLICACY_EXPORTER_URL=http://localhost:9750 duplicacy -- npx -y duplicacy-mcp

Claude Desktop (claude_desktop_config.json) and Cursor (~/.cursor/mcp.json)

json
{  "mcpServers": {    "duplicacy": {      "command": "npx",      "args": ["-y", "duplicacy-mcp"],      "env": { "DUPLICACY_EXPORTER_URL": "http://localhost:9750" }    }  }}

VS Code (.vscode/mcp.json)

json
{  "servers": {    "duplicacy": {      "type": "stdio",      "command": "npx",      "args": ["-y", "duplicacy-mcp"],      "env": { "DUPLICACY_EXPORTER_URL": "http://localhost:9750" }    }  }}

Codex (~/.codex/config.toml)

toml
[mcp_servers.duplicacy]command = "npx"args = ["-y", "duplicacy-mcp"]env = { DUPLICACY_EXPORTER_URL = "http://localhost:9750" }

npm 12, pnpm and Bun skip install scripts, so the wrapper downloads and verifies the binary on first start. Versions up to 0.1.2 relied on the install script alone; with npm 12 run them as npx -y --allow-scripts=duplicacy-mcp duplicacy-mcp.

Docker (Streamable HTTP)

bash
export MCP_AUTH_TOKEN=$(openssl rand -hex 32)docker run -d -p 127.0.0.1:8080:8080 -e MCP_AUTH_TOKEN \  -e DUPLICACY_EXPORTER_URL=http://duplicacy-exporter:9750 drumsergio/duplicacy-mcp:v0.2.0claude mcp add --transport http duplicacy http://127.0.0.1:8080/mcp --header "Authorization: Bearer $MCP_AUTH_TOKEN"

The image listens on 0.0.0.0:8080 inside the container, so it will not start without MCP_AUTH_TOKEN (or MCP_ALLOW_UNAUTHENTICATED=true behind a reverse proxy that authenticates). Compose, a global npm install and a local build are in Getting started; every variable is in Configuration.

Documentation

  • Getting started: Docker Compose, npm, local build, first run
  • Configuration: environment variables, HTTP security, client config for stdio and HTTP
  • Usage: tools, parameters, output fields and resources
  • Development: testing with Inspector, credits, contributing
  • Related projects: the Duplicacy family, other MCP servers, registry listings

Related projects

Part of the Duplicacy family: duplicacy-exporter, duplicacy-cli-cron, duplicacy-ha, duplicacy-container.

License

GPL-3.0-or-later

Source: README.md at commit 0502468

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

4
  1. v0.2.1LatestOct 29, 2026
  2. v0.1.2Oct 21, 2026
  3. v0.1.1Oct 5, 2026
  4. v0.0.2Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts