axcient-mcp
Click on "Deploy 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., "@axcient-mcpshow me recent backup jobs for the client Acme Corp"
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.
axcient-mcp
MCP server for Axcient x360Recover — BCDR
clients, devices, backup jobs, vaults, and appliances. Built on
@wyre-technology/node-axcient and the
MCP v2 SDK, serving both the 2025-era initialize handshake and the 2026-07-28 stateless
envelope from a single dual-era HTTP entrypoint.
Credentials
Generate an API key in the x360Portal: Settings → API Keys (see Axcient's key management guide).
Copy .env.example. Leave CONDUIT_S2S_SECRET empty in that file.
Local / stdio (Claude Desktop, CLI): set
AXCIENT_API_KEY. The stdio transport does not useCONDUIT_S2S_SECRET.Hosted / gateway: the WYRE MCP Gateway injects
X-Axcient-Api-Keyper request (AUTH_MODE=gateway). The gateway compose service does not setAXCIENT_API_KEYand does not useenv_file.
Variable | Required | Description |
| For stdio and | x360Portal API key |
| No |
|
| No |
|
| Yes for HTTP | Service-to-service secret. The HTTP server logs an error and exits non-zero when this is empty or a known placeholder. Compose will not start without it. Never commit a real value. Generate one with |
| No | Set to |
| No | Bind address when a real |
| No | HTTP port. Defaults to |
/health and /healthz stay unauthenticated and do not read credentials.
X-Gateway-S2S signing
With MCP_TRANSPORT=http and CONDUIT_S2S_SECRET set, every /mcp request must include X-Gateway-S2S:
X-Gateway-S2S: t=<unix seconds>,v1=<hex hmac-sha256>v1 is HMAC-SHA256 over the ASCII message t=<unix seconds>, keyed with CONDUIT_S2S_SECRET, hex-encoded. The timestamp must be within 300 seconds of the server clock. A missing or invalid header returns 401. The secret is never logged.
import { createHmac } from "node:crypto";
const t = Math.floor(Date.now() / 1000);
const v1 = createHmac("sha256", process.env.CONDUIT_S2S_SECRET).update(`t=${t}`).digest("hex");
const xGatewayS2s = `t=${t},v1=${v1}`;In AUTH_MODE=gateway, /mcp also requires X-Axcient-Api-Key. A request missing that header returns 401 and does not fall back to AXCIENT_API_KEY.
Related MCP server: spanning-mcp
Run locally (stdio)
npm install
npm run build
AXCIENT_API_KEY=your-key npm startRun as HTTP (gateway / hosted)
CONDUIT_S2S_SECRET="$(openssl rand -hex 32)" MCP_TRANSPORT=http AUTH_MODE=env AXCIENT_API_KEY=your-key npm start
# → http://127.0.0.1:8080/mcp, health at http://127.0.0.1:8080/healthLocal HTTP without a secret is development-only. It binds 127.0.0.1 and logs a warning:
MCP_TRANSPORT=http MCP_ALLOW_INSECURE_DEV=1 npm startDocker
The image listens on 0.0.0.0 inside the container (MCP_HTTP_HOST) and defaults to AUTH_MODE=gateway. Publish the port on loopback and pass the S2S secret. In gateway mode, the Axcient API key arrives on each request as X-Axcient-Api-Key; it is not read from the environment.
docker build --platform linux/amd64 --build-arg GITHUB_TOKEN=$(gh auth token) -t axcient-mcp .
docker run \
-e CONDUIT_S2S_SECRET=your-s2s-secret \
-p 127.0.0.1:8080:8080 \
axcient-mcpCompose refuses to start when CONDUIT_S2S_SECRET is unset, runs AUTH_MODE=gateway, publishes 127.0.0.1:8080:8080, and does not inject AXCIENT_API_KEY:
CONDUIT_S2S_SECRET=your-s2s-secret GITHUB_TOKEN=$(gh auth token) docker compose upSingle-tenant HTTP (AUTH_MODE=env) still requires the S2S secret, then uses AXCIENT_API_KEY:
docker run \
-e CONDUIT_S2S_SECRET=your-s2s-secret \
-e AUTH_MODE=env \
-e AXCIENT_API_KEY=your-key \
-p 127.0.0.1:8080:8080 \
axcient-mcpTools
20 tools, flat surface (no router — well under the fleet's ~25-tool threshold).
Tool | Description |
| Verify the API key by fetching the organization record |
| Get the organization for the API key |
| Clients (customer/site records) |
| Mint a D2C agent enrollment token |
| Devices |
| AutoVerify + restore points |
| Backup jobs |
| Vaults |
| Vault connectivity threshold |
| Appliances |
No destructive tools exist in this surface — the x360Recover public API (v0.3.1) has no
delete/disable operations, so no confirmation/elicitation flow is wired up. See
node-axcient's README for known API quirks (error-shape inconsistencies, list-endpoint
schema documentation bugs) this server's error messages surface verbatim from the SDK.
License
Apache-2.0
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted MCP servers for MSP tools: ConnectWise, NinjaOne, Microsoft 365, SentinelOne, Pax8 and more.
- mttrlyOAuthcom.mttrly
AI-powered incident management and server monitoring via MCP.
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
- ZapierOAuthcom.zapier
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceAn MCP server for Datto BCDR (Business Continuity and Disaster Recovery), enabling management of backup jobs, restore points, and disaster recovery operations through Datto's API.Apache 2.0
- AlicenseNot gradedqualityAmaintenanceMCP server for Spanning Cloud Backup — M365/GWS/Salesforce SaaS backup, restore, and audit. Enables AI assistants to manage and monitor cloud backup protection via the Spanning API.Apache 2.0

Keepit MCPofficial
AlicenseNot gradedqualityBmaintenanceMCP server for interacting with Keepit backup and data protection services. Enables monitoring, management, and security operations through natural language.5MIT- AlicenseAqualityAmaintenanceAI-powered Veeam Backup & Replication operations MCP server with tools for managing jobs, restores, sessions, and repositories, featuring built-in governance, audit logging, and safety controls.27MIT