{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.Servosity/cloudally-mcp","description":"CloudAlly Microsoft 365 and Google Workspace backup: accounts, backup tasks, status and restores","title":"CloudAlly MCP","repository":{"url":"https://github.com/servosity/msp-skills","source":"github","subfolder":"skills/cloudally"},"version":"0.1.0","icons":[{"src":"https://raw.githubusercontent.com/servosity/msp-skills/main/docs/assets/social/cloudally/cloudally-512x512.png","mimeType":"image/png","sizes":["512x512"]}],"packages":[{"registryType":"mcpb","identifier":"https://github.com/Servosity/msp-skills/releases/download/cloudally-v0.1.0/cloudally-mcp.mcpb","version":"0.1.0","fileSha256":"d9f87a592e36930e0cad74966c6f6ce096681a4005c776e8c262ae5315b91b1a","transport":{"type":"stdio"},"environmentVariables":[{"description":"The client-id of your CloudAlly API application (partner portal > Integrations > REST API), sent as the client-id header on every request.","isRequired":true,"isSecret":true,"name":"CLOUDALLY_CLIENT_ID"},{"description":"The client-secret of the same API application, sent as the client-secret header on every request.","isRequired":true,"isSecret":true,"name":"CLOUDALLY_CLIENT_SECRET"},{"description":"Optional override; leave blank. Run `cloudally-cli auth login --partner` (or `auth login` for one company) in a terminal instead, which saves and refreshes the token. A pasted token expires and keeps overriding the saved one.","isSecret":true,"name":"CLOUDALLY_ACCESS_TOKEN"},{"description":"Optional. Company account login used by `auth login`; every command is then limited to that one company. Most operators run `auth login` once in a terminal and leave this blank.","name":"CLOUDALLY_EMAIL"},{"description":"Optional. Password for the company account login above.","isSecret":true,"name":"CLOUDALLY_PASSWORD"},{"description":"Optional. Partner portal login used by `auth login --partner`; it reaches every customer account and is needed for the distributor and reseller commands and `auth use-account`.","name":"CLOUDALLY_PARTNER_EMAIL"},{"description":"Optional. Password for the partner portal login above.","isSecret":true,"name":"CLOUDALLY_PARTNER_PASSWORD"},{"description":"Optional; leave blank. Sends every CloudAlly API call to this base URL instead of https://api.cloudally.com, for tests and mock servers.","name":"CLOUDALLY_BASE_URL"},{"description":"Optional. Set to 1 to list only read-only tools: it removes cloudally_execute, sync, import, export, workflow_archive, jobs_prune and the learn-store writers, and cloudally_read refuses every state-changing endpoint. The tools it keeps can still write the learn journal and create an empty local store.","name":"CLOUDALLY_MCP_READ_ONLY"},{"description":"Optional. Set to 1 to keep no local copy of API responses: reads go to the API, the response cache is off, and sync refuses to run. Leave blank to keep the local store.","name":"CLOUDALLY_NO_LOCAL_DATA"},{"description":"Required only when running the MCP server with --transport http (a remote/hosted deployment); callers must send a matching Authorization: Bearer header. Leave blank for Claude Desktop.","isSecret":true,"name":"CLOUDALLY_MCP_HTTP_TOKEN"},{"description":"Optional. Overrides the User-Agent the CLI sends to CloudAlly. Leave blank to use the built-in one.","name":"CLOUDALLY_USER_AGENT"},{"description":"Only used when the MCP server is bound to a tenant-gated client profile. This connector registers no tenant-gated source, so leave it blank.","isSecret":true,"name":"PRINTING_PRESS_CLIENT_PROFILE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-11-05T16:37:29.06722Z","publishedAt":"2026-11-05T16:37:29.06722Z","updatedAt":"2026-11-05T16:37:29.06722Z","isLatest":true}}}
