MCP Server for AI Agents
Reaver V2 includes a built-in MCP server on your dashboard. Chat apps and AI clients can list sites, start backups, restore, and watch jobs — the same work as the Run button, without opening the browser.
MCP here means the Model Context Protocol: the client discovers tools on your dashboard and calls them. You do not install a separate MCP package on the dashboard host.
All paid plans (not Free). The MCP server is the chat-app surface of the same control plane as the REST API. The server stays off until you turn it on.
This is your dashboard talking to an AI client. It is not a backup agent — those are the poll-only workers on each host you protect.
Enable the server
- Open Security → MCP server on the dashboard.
- Turn it On.
- Copy this URL (your dashboard hostname):
https://your-dashboard.example/api/v1/mcp
The control stays closed on page load until you enable it. After that, the On/Off badge still shows the current state.
Point the client at /api/v1/mcp, not at /api/v1/openapi.json. OpenAPI is the human/script spec; MCP is the chat-app connection.
What an AI client can do
Same permission model as API tokens. The client cannot do more than the token you approve.
| Permission | Can do |
|---|---|
read |
Look at sites, jobs, snapshots, schedules, agent status, destination names |
backup |
Everything in read, plus choose storage, start backups, run a schedule now, check the host |
restore |
Everything in backup, plus restore and export. Restore must repeat the site name in confirm_slug. Export queues an archive; it does not return the file |
admin |
Tokens, MCP toggle, outbound webhooks. Adding destinations and pairing agents stays in the UI |
A User account can approve read or backup, not restore or admin.
Work started from the MCP server is labeled api:<token name> on the Jobs page. Responses never include destination keys, restic passwords, or agent secrets.
Typical loop:
- List sites if the client needs a slug.
- Check the backup (pick a destination or set encryption if asked).
- Optionally run a host check (preflight) and wait for that job.
- Start the backup. Watch the job until it is completed or failed. Queued is not finished.
Connect a chat app
Supported clients include Claude, Cursor, LibreChat, Open WebUI, and LM Studio. Any MCP client that speaks Streamable HTTP (or remote MCP) against a URL can use the same endpoint.
Sign-in from the app (usual path)
Most apps open a browser and ask you to sign in. That is expected.
- Paste
https://your-dashboard.example/api/v1/mcpinto the app. - Sign in to this Reaver dashboard (not a third-party login provider).
- Pick a permission and Approve.
- The app receives an
rv2_token (OAuth 2.1 + PKCE). A new row appears under Security → API tokens.
Revoke that row to drop the client.
Config file / header
If the app lets you paste a header instead of signing in, create a token under Security → API tokens and send it as Authorization: Bearer rv2_…:
{
"mcpServers": {
"reaver-backup": {
"url": "https://reaver.example.com/api/v1/mcp",
"headers": {
"Authorization": "Bearer rv2_…"
}
}
}
}
LibreChat
LibreChat builds the return address from DOMAIN_SERVER (default http://localhost:3080). If you open LibreChat at a LAN IP or hostname, set both DOMAIN_SERVER and DOMAIN_CLIENT to that URL and restart. HTTP on the LAN is fine. The Reaver approve page can also send this one login back to the address you actually use.
After the first approve, LibreChat sometimes opens a second connection without the token. Connect once from that host; Reaver reuses the token from that same IP for the chat-app URL only.
Nginx
The installer nginx template already routes /api/v1* and forwards the Authorization header. After you change nginx: sudo nginx -t && sudo systemctl reload nginx.
The MCP URL does not use your browser login cookie. Other websites cannot call it from a browser.
Not a backup agent
Backup agents on WordPress hosts authenticate with pairing secrets and only pick up jobs. Do not point a chat app at agent poll URLs. The MCP server lives on the dashboard at /api/v1/mcp.