Arkame MCP
Ask your AI assistant how last night's backups went, why a server failed or whether restores are proven, and ask it to run or create a plan. Arkame speaks the Model Context Protocol (MCP), hosted: nothing to install.
Contents
Try it without an account
To see the MCP working before you sign up, use the public demo token. It only reads Harborline Logistics, a fictional company with four servers (one of them running Zimbra) and 90 days of backups. Every request to change something is refused.
In Claude Code:
claude mcp add --transport http arkame-demo https://save.arkame.app/api/mcp \
--header "Authorization: Bearer ark_demo3udDYUJZLkUyggylcEst_-so91lJrIC4idHYcgY"In other clients, use the configuration from Connect with this token.
Questions to start with:
- "How did last night's backups go at Harborline?"
- "Which Zimbra accounts are in the latest backup of mail-01? Did any of them leave Zimbra?"
- "Did any backup fail in the last 30 days? Why?"
- "Is restore proven on every server?"
The data is fictional and rewritten every few hours. Everyone shares the same token, and the limits count per IP address.
Create a token
- In the panel, open Settings → API and MCP.
- Give it a name, choose the scope (Read, or Read and operate) and the validity (up to one year). Confirm with your two-step verification code.
- Copy the token (
ark_…): it is shown only once. The same screen has the configuration ready to paste.
The token can never do more than your role in the organization, checked on every call: if your role changes, or you leave the organization, the token changes too. Admins see and revoke everyone's tokens.
Connect the assistant
The server is at https://save.arkame.app/api/mcp, over HTTP, with the token in the Authorization: Bearer header.
Claude Code
claude mcp add --transport http arkame https://save.arkame.app/api/mcp \
--header "Authorization: Bearer ark_…"Claude Desktopclaude_desktop_config.json
{
"mcpServers": {
"arkame": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://save.arkame.app/api/mcp",
"--header",
"Authorization:${ARKAME_AUTH}"
],
"env": {
"ARKAME_AUTH": "Bearer ark_…"
}
}
}
}Cursor~/.cursor/mcp.json
{
"mcpServers": {
"arkame": {
"url": "https://save.arkame.app/api/mcp",
"headers": {
"Authorization": "Bearer ark_…"
}
}
}
}VS Code.vscode/mcp.json
{
"servers": {
"arkame": {
"type": "http",
"url": "https://save.arkame.app/api/mcp",
"headers": {
"Authorization": "Bearer ark_…"
}
}
}
}Any other MCP client over HTTP works the same way: the address and the header.
What the assistant can do
Read tools come with any token; operate tools only with an operate token of someone who operates plans.
| Tool | What it does |
|---|---|
get_overviewread | Organization health right now: servers online and offline, backups in the last 7 days by outcome, open anomalies (possible ransomware) and restore proofs that failed or went stale. The place to start. |
list_serversread | Servers, with status, last contact and agent version. |
list_plansread | Plans, with server, storage, schedule (or the plan they run after), last and next run. |
get_planread | One plan: folders, exclusions, schedule, snapshot, whether it has before and after commands (their text is never returned) and its last 10 runs. |
list_backupsread | Backup runs, newest first, with the files left out next to the total, and filters by outcome, server and period. |
get_backupread | One run: outcome, counts (including the files that failed and the ones only in the cloud), the error summary, how files were read (snapshot or disk) and the anomaly assessment. File paths stay in the panel. |
list_storagesread | Storages, with versioning and Object Lock. |
list_restore_proofsread | For each server and storage: when the sample restore test proved the backup restores, or whether it failed. |
list_eventsread | Recent events, the same ones as the webhooks (backup.failed, agent.offline, anomaly.detected, storage.config_changed…), with who changed what, when known. |
run_planoperate | Runs an active plan now. A paused plan is refused: it was paused on purpose, resume it first. |
pause_planoperate | Requests to pause a plan. Nothing is deleted; it only pauses after the token owner approves it in the panel. |
resume_planoperate | Resumes a paused plan. |
create_planoperate | Requests a new backup plan, with its own schedule or after another plan of the same server. It is only created after the token owner approves it in the panel. No pre/post commands, and no folders with system keys and passwords. The agent (0.5.5 or newer) also checks the real path, after shortcuts, before each backup; 0.5.6 also checks each file as it reads it, and what was left out shows up in the backup details. |
update_planoperate | Requests a change to a plan’s name, folders, exclusions, schedule or snapshot, with the before and after. It only changes after the token owner approves it in the panel. Server, storage and commands do not change here. |
list_zimbra_accountsread | The Zimbra accounts in the latest backup of a plan that uses the Zimbra recipe: months of mail, size, and whether the account’s last export failed or the account left the export. |
create_serveroperate | Requests a new server tied to a storage. Owners and admins only. Once approved, the assistant receives the install code and commands once; the installed server is still approved in the panel. |
restore_filesoperate | Requests to restore a folder from a backup on the same server, into a new folder inside it (arkame-restore- plus the date), never overwriting anything. Restoring over the originals, or to another server, is only done in the panel. |
restore_zimbra_accountoperate | Requests to restore a Zimbra account from a backup. It only merges: what is in the mailbox stays, what was missing comes back, nothing is deleted or replaced. Into the same account, or into a new account that does not exist yet (an existing one is refused). Settings and forwarding are not restored here. Owners and admins only. |
get_approvalread | Shows an approval request: pending, approved (with the result), rejected, failed or expired (15 minutes). For an approved server registration, the first call returns the install code. |
Nothing changes without the token owner. Creating, editing and pausing a plan, registering a server and restoring become an approval request: it shows up in a panel window for the token owner, with the action’s details, the token, IP and region, and only happens after it is approved with the two-step verification code. Whoever does not recognize the request revokes the token right there. The request expires in 15 minutes. Run and resume act at once.
Never through MCP: retention and permanent deletion, before and after backup commands, archiving, members, billing, webhooks and tokens. That is what a leaked token (or an assistant tricked by malicious text) cannot destroy. Use the panel for those.
Limits
- Per token: 60 calls per minute and 2000 per day.
- Per organization, all tokens together: 300 calls per minute.
- Operate tools: 10 per minute per token.
- Per day, per token: run up to 20; resume up to 10; requests to create a plan or a server up to 5 (each), to edit up to 10, to pause up to 5 and to restore up to 10. A rejected request also counts.
- One call per request: JSON-RPC batches are not accepted.
- Lists return up to 50 rows per call.
- Every operate action goes to the activity log, with the token name.
Example requests
- "How did last night's backups go? Any server not responding?"
- "Why did erp-01's backup fail yesterday, and since when?"
- "Which servers have not had a proven restore in more than 14 days?"
- "Run the file server's daily plan now."
- "Create a plan that copies the same erp-01 folders to the cloud bucket, after the local backup."
Confirmation does not depend on the assistant: creating, editing and pausing plans, registering servers and restoring only happen after the token owner approves them in a panel window, with their two-step verification code, which never goes through the chat. The window shows the token, IP, region and program that made the request; whoever does not recognize it rejects it and revokes the token right there. The request expires in 15 minutes. Text coming back from the tools (plan, server and file names) is the organization’s data, and the server tells the assistant it is not an instruction.