Metadata-Version: 2.4
Name: mcp-duplicati
Version: 0.1.0
Summary: MCP server for Duplicati backup management — status, logs, run, pause, resume, versions
License: MIT
Keywords: backup,duplicati,homelab,mcp
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: System :: Archiving :: Backup
Classifier: Topic :: System :: Systems Administration
Requires-Python: >=3.12
Requires-Dist: httpx>=0.27
Requires-Dist: mcp>=1.0
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest-cov>=4.0; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Description-Content-Type: text/markdown

# mcp-duplicati

MCP server for [Duplicati](https://www.duplicati.com/) backup management. Exposes 9 tools for checking status, running backups, viewing logs, and controlling the scheduler.

## Quick Start

**With uvx (recommended):**
```bash
DUPLICATI_PASSWORD=yourpassword uvx mcp-duplicati
```

**With Docker:**
```bash
docker run -i \
  -e DUPLICATI_PASSWORD=yourpassword \
  -e DUPLICATI_HOST=http://10.0.0.30:8200 \
  ghcr.io/aaronckj/mcp-duplicati:latest
```

**Add to Claude Code:**
```bash
claude mcp add duplicati -- uvx mcp-duplicati
```

Then set env vars in Claude Code MCP settings (`DUPLICATI_PASSWORD`, `DUPLICATI_HOST`).

## Configuration

| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| `DUPLICATI_PASSWORD` | Yes | — | Duplicati web UI password |
| `DUPLICATI_HOST` | No | `http://localhost:8200` | Duplicati host URL |
| `DUPLICATI_TIMEOUT` | No | `30` | HTTP timeout in seconds |

## Tools

| Tool | Description |
|------|-------------|
| `server_info` | Server version and current state |
| `list_backups` | All configured backup jobs |
| `backup_status` | Detailed status of a specific job |
| `run_backup` | Trigger a job to run immediately |
| `progress` | Active backup/restore progress |
| `list_versions` | Available restore points for a job |
| `pause` | Pause the scheduler (optional duration in seconds) |
| `resume` | Resume the scheduler |
| `get_logs` | Recent log entries (optionally filtered by job) |

## Development

```bash
git clone https://github.com/aaronckj/mcp-duplicati
cd mcp-duplicati
uv sync --extra dev
uv run pytest -v
```
