xCloud

Connect xCloud to your AI assistant

The xCloud MCP server lets Claude, Cursor, or any MCP-compatible client manage your servers and sites. It’s built into xCloud — connect in seconds.

Server URL

https://app.xcloud.host/mcp

Add this URL to your client. Most clients authenticate over OAuth: the browser opens, you approve the access you want to grant, and the connection is live — no API key to create or store. If your client can’t do browser sign-in, use an API key.

1

Add the server URL

Point your client at the endpoint. No token, no headers.

claude mcp add xcloud --transport http https://app.xcloud.host/mcp

Then run /mcp inside Claude Code and pick Authenticate.

Open Settings → Connectors → Add custom connector, name it xcloud, and paste the URL:

https://app.xcloud.host/mcp

Claude Desktop opens the browser sign-in for you.

Open Settings → MCP → Add new MCP server, or add this to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "xcloud": {
      "url": "https://app.xcloud.host/mcp"
    }
  }
}

Cursor shows a Needs login prompt — click it to sign in.

Any client that supports the MCP Streamable HTTP transport can connect. Point it at the URL — it discovers the OAuth endpoints automatically:

https://app.xcloud.host/mcp

Client only supports local (stdio) servers? Bridge with npx mcp-remote https://app.xcloud.host/mcp.

2

Approve access in your browser

xCloud opens in a browser tab. Sign in if you aren’t already, then grant one of:

Access is scoped to the team you’re signed in to, and every connection is listed with your API keys so you can revoke it at any time.

Done. Ask your assistant “who am I on xCloud?” to check the connection.

 Client doesn’t support browser sign-in? Use an API key
1

Create an API key

Create an xCloud access token with the explicit mcp:invoke scope. Add read:servers and read:sites to let the assistant view things, or the write: scopes to let it make changes. Full access alone does not enable MCP.

Create API key
2

Install with the key

Pass the key as an Authorization header, replacing YOUR_TOKEN.

claude mcp add xcloud --transport http https://app.xcloud.host/mcp \
  --header 'Authorization: Bearer YOUR_TOKEN'
{
  "mcpServers": {
    "xcloud": {
      "type": "http",
      "url": "https://app.xcloud.host/mcp",
      "headers": { "Authorization": "Bearer YOUR_TOKEN" }
    }
  }
}

Add to your Claude Desktop config, then restart the app.

{
  "mcpServers": {
    "xcloud": {
      "url": "https://app.xcloud.host/mcp",
      "headers": { "Authorization": "Bearer YOUR_TOKEN" }
    }
  }
}

Add to ~/.cursor/mcp.json.

URL:    https://app.xcloud.host/mcp
Header: Authorization: Bearer YOUR_TOKEN

Stdio-only client? Bridge with npx mcp-remote https://app.xcloud.host/mcp --header "Authorization: Bearer YOUR_TOKEN".

Troubleshooting
SymptomCause & fix
Client asks for a tokenIt doesn’t support browser sign-in. Use the API key path instead.
403 on connectThe approval was declined or granted read-only for a write action — reconnect and approve read & write. On the API-key path, the key lacks explicit mcp:invoke.
“Lacks the … ability”The connection isn’t permitted that action. Reconnect with write access, or add the missing scope (e.g. write:sites) to your API key.
“Site not found”The connection is scoped to a different team than the site. Switch teams in xCloud, then reconnect.
401 UnauthorizedSign-in expired — reconnect. On the API-key path, the key is invalid or the Authorization header was mangled; check the single-quoting around the |.
Tip: if you’re using an API key, xCloud tokens contain a | — keep the single quotes so your shell doesn’t read it as a pipe.

API reference  ·  Agent skills