MCP Integration¶
Vault exposes a Model Context Protocol (MCP) server for AI assistants and automation tools.
Transports¶
| Transport | Endpoint | Use Case |
|---|---|---|
| Streamable HTTP | http://<host>:24085/api/v1/mcp |
All clients, via a stdio bridge or a tunnel |
The former
vault mcp --db <path>stdio transport has been removed. It ran as a second process writing directly to the daemon's database from outside it, so jobs it created were never handed to the scheduler and silently never ran, and its changes bypassed the flash-storage flush and the live UI updates. Local clients should reach the HTTP endpoint through themcp-remotestdio bridge described below, which exposes the same tools with those protections intact.
You can't paste the
http://…endpoint straight into Claude Desktop. Its "Add custom connector" flow only accepts HTTPS URLs, and connectors are reached from Anthropic's cloud — so a LAN address (192.168.x.x,tower.local) is unreachable from Anthropic's servers and a self-signed certificate is rejected. Native HTTPS alone (see below) does not make a LAN URL work. Use one of the two paths in the Claude Desktop section.
Configuration¶
Claude Desktop¶
Pick the path that matches how you reach your server.
LAN-only (recommended): mcp-remote stdio bridge¶
Claude Desktop launches a local mcp-remote
process that bridges to Vault's HTTP endpoint over your LAN. Vault must be
configured to listen on a LAN-reachable address (Settings → Vault on the Unraid
webgui — the default bind is 127.0.0.1, which is not reachable from another
machine). Traffic, including the API key header, travels unencrypted over HTTP,
so only use this on a trusted LAN. No TLS or public exposure is required; you
just need Node.js installed on the same machine as Claude Desktop. A LAN bind also turns on
mDNS discovery; see Network discovery.
{
"mcpServers": {
"vault": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"http://<host>:24085/api/v1/mcp",
"--allow-http"
]
}
}
}
If you have set an API key (Settings → API), pass it as a header. Note there is
no space after the colon — mcp-remote mishandles spaces in header values:
{
"mcpServers": {
"vault": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"http://<host>:24085/api/v1/mcp",
"--allow-http",
"--header",
"X-API-Key:<your-key>"
]
}
}
}
Custom Connector: public HTTPS endpoint¶
To add Vault as a native Custom Connector, the endpoint must be reachable from
Anthropic's cloud over HTTPS with a publicly-trusted certificate. Vault
serves HTTPS natively when the daemon is started with --tls-cert/--tls-key,
but a self-signed cert won't be accepted and a private IP won't be reachable.
Put Vault behind a tunnel or reverse proxy that terminates trusted TLS — e.g.
Cloudflare Tunnel, Tailscale Funnel, or nginx with a Let's Encrypt
certificate — then add the resulting public https://…/api/v1/mcp URL under
Settings → Connectors in Claude Desktop.
Claude Code¶
Add to your project's .mcp.json:
{
"mcpServers": {
"vault": {
"type": "http",
"url": "http://<unraid-host>:24085/mcp"
}
}
}
The daemon binds to loopback by default, so reach it over an SSH tunnel
(ssh -L 24085:127.0.0.1:24085 root@<unraid-host>) and point the URL at
http://127.0.0.1:24085/mcp. For a client that only speaks stdio, bridge it
with npx mcp-remote http://127.0.0.1:24085/mcp rather than running a second
process against the database directly.
Available Tools¶
The MCP surface is intentionally curated rather than a 1:1 mirror of every REST route. The daemon currently registers 27 tools across the groups below. Settings, encryption, replication mutations, recovery planning, and storage scan/import remain REST-only — see the API Reference.
Jobs¶
| Tool | Description |
|---|---|
list_jobs |
List all backup jobs |
get_job |
Get a job and its items |
create_job |
Create a new backup job |
update_job |
Update an existing job |
delete_job |
Delete a job |
run_job |
Trigger an immediate backup |
get_job_history |
Job run history |
Storage¶
| Tool | Description |
|---|---|
list_storage |
List storage destinations |
get_storage |
Get a storage destination |
create_storage |
Create a storage destination |
update_storage |
Update a storage destination |
delete_storage |
Delete a storage destination |
test_storage |
Test a storage connection |
list_storage_files |
List files in storage |
Discovery¶
| Tool | Description |
|---|---|
list_containers |
Discover Docker containers |
list_vms |
Discover libvirt VMs |
list_folders |
Discover folder presets |
list_plugins |
Discover Unraid plugins |
Status¶
| Tool | Description |
|---|---|
get_health |
Basic health check |
get_health_summary |
Dashboard health metrics |
get_runner_status |
Current backup/restore state, with phase, byte and file counters, rate, and ETA |
get_activity_log |
Recent activity log |
get_run_logs |
Per-run streaming log entries |
Restore¶
| Tool | Description |
|---|---|
list_restore_points |
List restore points for a job |
restore_item |
Restore a backup item |
Replication¶
| Tool | Description |
|---|---|
list_replication |
List replication sources |
get_replication |
Get a replication source |
delete_replication |
Delete a replication source |
REST-Only Endpoints¶
The following operations are available via REST API only and are not exposed through MCP:
- Settings management and encryption configuration
- Storage scan and import workflows
- File downloads from storage
- Replication create and sync flows
- Recovery plan endpoint
See API Reference for the complete REST surface.