duplicacy-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DUPLICACY_WEB_URL | No | duplicacy-web base URL | http://localhost:3875 |
| DUPLICACY_COMPUTER | No | Computer name in duplicacy-web | localhost |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_schedule_statusA | Return schedule status: each schedule's next run, pause state, and running jobs. Use this to see whether a backup is running or when the next one is due. |
| get_backup_statusA | Return per-repository backup status (last run outcome, timestamps, sizes). |
| lookup_storageA | Look up a storage by name; returns whether it exists and its details. Args: name: Storage name as configured in duplicacy-web. |
| create_storageA | Create a new backup storage (destination). Args: name: Storage name, unique in duplicacy-web. url: Storage URL. Local path (e.g. /backups/plex), or scheme URLs like b2://bucket, s3://..., sftp://user@host/path. password: Encryption password for the repository. Keep it safe; all backups in this storage are encrypted with it. compression: Chunk compression. One of lz4, zstd_default, zstd_fastest, zstd_better, zstd_best. lz4 suits already-compressed media. copy_from: Name of an existing storage to copy chunk files from (dedupe seeding). Empty string for a fresh storage. |
| delete_storageA | Delete a storage configuration. Existing backups in it are NOT deleted. Args: name: Storage name to remove. |
| list_repositoriesB | List backup repository IDs that exist in a storage. Args: storage: Storage name. |
| create_repositoryA | Create a backup repository: one source directory backed up to one storage. Args: id: Repository ID, unique per computer (e.g. Plex-media). path: Source directory inside the duplicacy-web container (e.g. /source/plex). storage: Destination storage name. |
| delete_repositoryA | Delete a repository configuration. Existing backups remain in storage. Args: index: Repository index (0-based, as shown by get_backup_status). |
| get_filtersA | Return the include/exclude filter patterns of a repository. Args: index: Repository index (0-based). |
| set_filtersA | Set the include/exclude filter patterns of a repository. Patterns are duplicacy filter rules, one per entry, first match wins:
Args: index: Repository index (0-based). patterns: Filter rules in order. |
| create_scheduleA | Create a backup schedule (container for one or more jobs). Args: name: Schedule name, unique in duplicacy-web. start_time: Daily start time as HH:MMAM/PM, e.g. "02:00AM" or "10:35AM". frequency: Interval in seconds (86400 = daily). days: 7-char bitmask of active weekdays, built Sunday-first, "1111111" = every day, "0000000" = never (disabled). max_time: Latest time of day the schedule may start, HH:MMAM/PM. "00:00" = no limit. |
| delete_scheduleA | Delete a schedule and its jobs. Args: schedule_index: Schedule index (0-based, as shown by get_schedule_status). |
| add_jobA | Add a job (backup, prune, or check) to a schedule. Args: schedule_index: Schedule index (0-based). type: Job type: "backup", "prune", or "check". repository: Repository index (0-based). destination: Storage name the job writes to (or reads from for prune/check). source: Source path for backup jobs (e.g. /source/plex); empty for prune/check. options: Extra duplicacy CLI options. Backup example: "-threads 4". Prune example: "-keep 0:30 -a" (keep the 30 newest snapshots). Check example: "-fossils". parallel: Whether the job may run in parallel with others. |
| delete_jobB | Remove a job from a schedule. Args: schedule_index: Schedule index (0-based). job_index: Job index within the schedule (0-based). |
| start_stop_scheduleA | Start (enable) or stop (disable) a schedule. Args: schedule_index: Schedule index (0-based). is_start: True to enable the schedule, False to disable it. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 15 tools
Each tool targets a distinct resource (storage, repository, schedule, job) and a unique action (create, delete, get, set, list). The two status tools are clearly separated by their focus: schedule status vs backup status.
All tool names follow a consistent verb_noun pattern in lower_snake_case (e.g., create_storage, get_filters, delete_job). Verbs are specific and predictable, making the naming uniform and easy to anticipate.
15 tools is well-scoped for a backup management server, covering the core resources without unnecessary bloat. Each tool has a clear role in the lifecycle of storages, repositories, schedules, and jobs.
The tool set provides comprehensive CRUD-like coverage for storages and repositories, full schedule and job lifecycle management, plus filter configuration and status monitoring. No critical operations are missing; any workaround is only for convenience, not necessity.