Axcient x360Recover

Registre officiel Productivité

MCP server for Axcient x360Recover — BCDR clients, devices, jobs, vaults, and appliances.

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

OCI package ghcr.io/wyre-technology/axcient-mcp:v1.0.1
Claude Code
claude mcp add axcient-x360recover -e 'AXCIENT_API_KEY=<your axcient_api_key>' -e 'MCP_TRANSPORT=stdio' -e 'AUTH_MODE=env' -e 'LOG_LEVEL=info' -- docker run -i --rm ghcr.io/wyre-technology/axcient-mcp:v1.0.1
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "axcient-x360recover": {
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "ghcr.io/wyre-technology/axcient-mcp:v1.0.1"
            ],
            "env": {
                "AXCIENT_API_KEY": "<your axcient_api_key>",
                "MCP_TRANSPORT": "stdio",
                "AUTH_MODE": "env",
                "LOG_LEVEL": "info"
            }
        }
    }
}

Variables d'environnement

  • AXCIENT_API_KEY obligatoire secret Axcient x360Portal API key (Settings → API Keys)
  • MCP_TRANSPORT Transport mode. Set to 'stdio' for local CLI use; the image defaults to 'http' for gateway hosting.
  • AUTH_MODE Credential source: 'env' reads vars locally, 'gateway' expects header injection from the WYRE MCP Gateway.
  • LOG_LEVEL Log verbosity: debug, info, warn, error

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. axcient-mcp
  2. Credentials
  3. Run locally (stdio)
  4. Run as HTTP (gateway / hosted)
  5. Docker
  6. Tools
  7. License

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 use CONDUIT_S2S_SECRET.
  • Hosted / gateway: the WYRE MCP Gateway injects X-Axcient-Api-Key per request (AUTH_MODE=gateway). The gateway compose service does not set AXCIENT_API_KEY and does not use env_file.
VariableRequiredDescription
AXCIENT_API_KEYFor stdio and AUTH_MODE=envx360Portal API key
MCP_TRANSPORTNostdio (default) or http
AUTH_MODENogateway (Docker image and Compose default) or env. Gateway mode requires X-Axcient-Api-Key on each /mcp request and never falls back to AXCIENT_API_KEY. env uses that variable only after S2S auth succeeds.
CONDUIT_S2S_SECRETYes for HTTPService-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 openssl rand -hex 32.
MCP_ALLOW_INSECURE_DEVNoSet to 1 only for local development to start HTTP without CONDUIT_S2S_SECRET. The process logs a warning, does not enforce X-Gateway-S2S, and binds 127.0.0.1 only. A wider MCP_HTTP_HOST is ignored. A placeholder secret is still refused.
MCP_HTTP_HOSTNoBind address when a real CONDUIT_S2S_SECRET is set. Defaults to 127.0.0.1. The container image sets 0.0.0.0.
MCP_HTTP_PORTNoHTTP port. Defaults to 8080.

/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.

Run locally (stdio)

npm install
npm run build
AXCIENT_API_KEY=your-key npm start

Run 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/health

Local 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 start

Docker

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-mcp

Compose 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 up

Single-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-mcp

Tools

20 tools, flat surface (no router — well under the fleet's ~25-tool threshold).

ToolDescription
axcient_test_connectionVerify the API key by fetching the organization record
axcient_get_organizationGet the organization for the API key
axcient_list_clients / axcient_get_clientClients (customer/site records)
axcient_get_d2c_agent_tokenMint a D2C agent enrollment token
axcient_list_devices / axcient_list_devices_by_client / axcient_get_deviceDevices
axcient_get_device_autoverify / axcient_get_device_restore_pointsAutoVerify + restore points
axcient_list_jobs_by_device / axcient_get_job / axcient_get_job_historyBackup jobs
axcient_list_vaults / axcient_get_vaultVaults
axcient_get_vault_threshold / axcient_set_vault_thresholdVault connectivity threshold
axcient_list_appliances / axcient_list_appliances_by_client / axcient_get_applianceAppliances

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

Questions fréquentes

Qu'est-ce que Axcient x360Recover ?

MCP server for Axcient x360Recover — BCDR clients, devices, jobs, vaults, and appliances.

Comment installer Axcient x360Recover ?

Il s'exécute sur votre machine. Dans Claude Code : claude mcp add axcient-x360recover -e 'AXCIENT_API_KEY=<your axcient_api_key>' -e 'MCP_TRANSPORT=stdio' -e 'AUTH_MODE=env' -e 'LOG_LEVEL=info' -- docker run -i --rm ghcr.io/wyre-technology/axcient-mcp:v1.0.1. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour Axcient x360Recover ?

Oui. Il attend AXCIENT_API_KEY, à renseigner dans sa configuration.

Axcient x360Recover est-il open source ?

Son code est public sur GitHub, mais le dépôt ne déclare pas de licence standard.

Qui maintient Axcient x360Recover ?

Il est publié par wyre-technology. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.