Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@restic-mcplist my recent snapshots and show what's in the latest one"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
restic-mcp
An MCP server for managing restic backups. Lets AI assistants list snapshots, browse backed-up files, create backups, apply retention policies, and more — all through the Model Context Protocol.
Tools
Read-only
Tool | Description |
| List snapshots, with optional filters by host, tags, or paths |
| List files and directories inside a snapshot |
| Show what changed between two snapshots |
| Search for files by name or glob pattern across snapshots |
| Repository size, file count, and deduplication statistics |
| Verify repository integrity |
Write
Tool | Description |
| Back up files/directories with optional tags and exclusions |
| Remove snapshots by ID or retention policy (keep-last, keep-daily, etc.) |
| Remove unreferenced data to reclaim disk space |
| Restore files from a snapshot to a target directory |
| Add or remove tags on a snapshot |
| Remove stale repository locks |
Requirements
Installation
git clone https://github.com/mohsenil85/restic-mcp.git
cd restic-mcp
uv syncConfiguration
The server reads repository credentials from environment variables:
Variable | Description |
| Path or URL to the restic repository |
| Repository password |
| Command that prints the password (alternative to |
Every tool also accepts an optional repo parameter to override RESTIC_REPOSITORY per-call.
Usage
Claude Code
Add to ~/.claude.json:
{
"mcpServers": {
"restic": {
"command": "uv",
"args": ["--directory", "/path/to/restic-mcp", "run", "restic-mcp"],
"env": {
"RESTIC_REPOSITORY": "/path/to/your/repo",
"RESTIC_PASSWORD_COMMAND": "pass show restic"
}
}
}
}Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"restic": {
"command": "uv",
"args": ["--directory", "/path/to/restic-mcp", "run", "restic-mcp"],
"env": {
"RESTIC_REPOSITORY": "/path/to/your/repo",
"RESTIC_PASSWORD": "your-password"
}
}
}
}MCP Inspector
Test the server interactively:
RESTIC_REPOSITORY=/path/to/repo RESTIC_PASSWORD=test uv run mcp dev src/restic_mcp/server.pyArchitecture
MCP Client (Claude, Cursor, etc.)
│
│ stdio (JSON-RPC)
▼
restic-mcp server (FastMCP)
│
│ subprocess (async)
▼
restic CLI ──► repository (local, S3, B2, SFTP, ...)The server is a thin async wrapper around the restic CLI. It calls restic with --json where supported for structured output, falling back to text parsing otherwise. No direct repository access — all operations go through the official restic binary.
License
MIT
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.