Skip to Content
ReferenceMCP Server

Overview

XReplicator exposes a Streamable HTTP MCP endpoint from the web UI:

  • Endpoint: POST /api/mcp
  • Auth: Authorization: Bearer <api-key>
  • Requirement: MCP_ENABLED=true and at least one active API key

You can manage MCP settings and API keys in the UI:

  • Settings -> MCP
  • Configure MCP_ENABLED, BACKUP_GRPC_ADDRESS, MCP_RPC_TIMEOUT_MS
  • Create/list/revoke API keys

Server Configuration

Set these in web/frontend/.env.local:

BACKUP_GRPC_ADDRESS=localhost:50051 MCP_ENABLED=true MCP_RPC_TIMEOUT_MS=15000 MCP_DB_PATH=./data/mcp.db

Available Tools

XReplicator exposes 79 MCP tools spanning backup operations, mount/explore, alerting, cloud sync, and disaster recovery.

Ops Core (backup, snapshots, jobs)

ToolPurpose
replicator.health_checkMCP/web/gRPC health and server metadata
replicator.get_server_statsAggregate server backup stats
replicator.list_clientsList known clients and status
replicator.get_client_devicesGet devices for a client hostname
replicator.list_snapshotsList snapshots with optional filters
replicator.get_snapshotGet snapshot details by snapshot_id
replicator.get_delete_impactPreview deletion impact for a snapshot
replicator.list_backup_jobsList backup jobs with optional filters
replicator.trigger_backupStart backup (full, incremental, auto)
replicator.control_backup_jobpause, resume, or cancel a job
replicator.delete_snapshotDelete snapshot (requires confirm=true)

Mount and Explore

ToolPurpose
replicator.get_partitionsPartition info for a prepared snapshot device
replicator.mount_partitionMount a partition read-only
replicator.unmount_partitionUnmount a previously mounted partition
replicator.detach_deviceUnmount all partitions and detach the loop device
replicator.explore_snapshotBrowse files/directories within a mounted partition

Alerts

ToolPurpose
replicator.list_alert_policies / get_alert_policy / create_alert_policy / update_alert_policy / delete_alert_policyManage alert policies (delete requires confirm=true)
replicator.list_recipient_groups / get_recipient_group / create_recipient_group / update_recipient_group / delete_recipient_groupManage email recipient groups (delete requires confirm=true)
replicator.list_webhook_endpoints / get_webhook_endpoint / create_webhook_endpoint / update_webhook_endpoint / delete_webhook_endpointManage webhook endpoints (delete requires confirm=true)
replicator.list_device_alert_policies / get_device_alert_policy / assign_policy_to_device / remove_device_policyManage device-to-policy assignments
replicator.list_alert_eventsAlert event history and delivery status
replicator.send_test_notificationSend a test alert notification

Cloud

ToolPurpose
replicator.get_cloud_configGet cloud sync + compaction configuration
replicator.update_cloud_configUpdate cloud configuration (optimistic concurrency via expected_revision)
replicator.list_cloud_snapshotsList snapshots stored in cloud storage
replicator.get_cloud_snapshotGet a single cloud snapshot

Disaster Recovery

ToolPurpose
replicator.list_dr_sources / list_dr_attached_disksInspect DR-staged sources and attached disks
replicator.set_dr_source_policyEnable/disable DR staging for a source (requires confirm=true)
replicator.retry_dr_backfillRetry a stalled DR backfill
replicator.run_dr_precheckCheck blueprint readiness for failover
replicator.trigger_dr_failoverExecute failover for a blueprint (requires confirm=true, high blast radius)
replicator.get_dr_failover_historyList past failover operations
replicator.prepare_dr_failback / check_dr_failback_disks / start_dr_failback_syncPrepare and sync a failback operation
replicator.cutover_dr_failbackCut production traffic back to the primary site (requires confirm=true, high blast radius)
replicator.control_dr_failbackPause/resume/stop a failback (stop requires confirm=true)
replicator.get_dr_failback_status / get_dr_failback_historyFailback status and history

DR Blueprints and Targets

Local workflow configuration (no gRPC call to the backup server) so an agent can drive DR end-to-end: blueprint → targets → precheck → failover → failback.

ToolPurpose
replicator.list_dr_blueprints / get_dr_blueprint / create_dr_blueprint / update_dr_blueprint / delete_dr_blueprintManage DR blueprints
replicator.list_dr_blueprint_rows / upsert_dr_blueprint_row / delete_dr_blueprint_rowManage per-VM source-to-target rows
replicator.list_dr_targets / get_dr_target / create_dr_target / update_dr_target / delete_dr_targetManage DR cloud targets (AWS/Azure/GCP); secrets are redacted on read

Misc

ToolPurpose
replicator.list_cron_jobs / set_cron_job / trigger_cron_jobManage and trigger cloud-sync/compaction schedules
replicator.get_operation_status / list_operation_historyTrack cloud-sync/compaction operations
replicator.get_license_statusCurrent license status and entitlements
replicator.get_client_stats / get_device_statsLightweight client and device statistics
replicator.get_resume_pointCheckpoint info for resuming an interrupted backup
replicator.get_incremental_backup_infoDirty-block and app-aware tracking stats
replicator.get_export_progressProgress of an in-flight raw image export

Guardrails:

  • confirm=true is required for: delete_snapshot, delete_alert_policy, delete_recipient_group, delete_webhook_endpoint, set_dr_source_policy, trigger_dr_failover, cutover_dr_failback, and control_dr_failback (only when action="stop")
  • update_cloud_config uses optimistic concurrency (expected_revision) instead of confirm
  • RPC requests are bounded by MCP_RPC_TIMEOUT_MS
  • Excluded by design: streaming/byte-transfer operations (cloud restore, mount progress, partition restore, file download) and cloud provider resource-discovery dropdowns (AWS/Azure/GCP regions, VPCs, instance types)

Client Setup

For remote MCP over HTTP, use mcp-remote and pass the bearer token via MCP_REMOTE_AUTHORIZATION.

Claude Desktop

Config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{ "mcpServers": { "xreplicator": { "command": "npx", "args": ["-y", "mcp-remote", "https://<your-host>/api/mcp"], "env": { "MCP_REMOTE_AUTHORIZATION": "Bearer <your-api-key>" } } } }

Restart Claude Desktop after updating the config.

Codex

Config file:

  • ~/.codex/config.toml
[mcp_servers.xreplicator] command = "npx" args = ["-y", "mcp-remote", "https://<your-host>/api/mcp"] enabled = true [mcp_servers.xreplicator.env] MCP_REMOTE_AUTHORIZATION = "Bearer <your-api-key>"

VS Code and other MCP JSON clients

Workspace config file:

  • .vscode/mcp.json
{ "mcpServers": { "xreplicator": { "command": "npx", "args": ["-y", "mcp-remote", "https://<your-host>/api/mcp"], "env": { "MCP_REMOTE_AUTHORIZATION": "Bearer <your-api-key>" } } } }

This same mcpServers JSON structure also works for other compatible MCP clients (for example, Cursor with .cursor/mcp.json).


Validation Checklist

  1. Enable MCP in Settings -> MCP
  2. Create an API key and use it in client config
  3. Confirm BACKUP_GRPC_ADDRESS points to your running backup server
  4. In your MCP client, run replicator.health_check
  5. If health is good, run replicator.list_clients
Last updated on