Step-by-Step: Connecting Claude to CloudClawer
Two real paths to wire up CloudClawer's MCP server — the Claude.ai custom connector for everyday chats and the npm CLI for terminal automation — plus the pitfalls each one tends to trip on.
What CloudClawer's MCP server actually exposes
CloudClawer runs an HTTP MCP server at https://api.cloudclawer.com/mcp and ships an equivalent local stdio server in the cloudclawer npm package. Once connected, Claude gets a handful of container-shaped tools: launch, wait, status, stop, bash, log, tools, tool_config/ tool_set, secrets_*, proxy_allowlist_*, instructions_*, and apikey_status. The full reference lives in the docs.
Prerequisites
- A CloudClawer account — sign up here.
- For the Claude.ai path: a Claude.ai account.
- For the CLI path: Node.js 18+ on your machine.
Path 1: Add CloudClawer as a Claude.ai custom connector
This is the recommended path for everyday use — every Claude.ai conversation can drive your container, no terminal needed.
- Open Settings → Connect in CloudClawer. The page shows three values: Server name, MCP server URL, and Client ID. Each has a copy button. The Client ID differs between the dev and prod environments, so always copy it from this page.
- Go to claude.ai → Settings → Connectors and click Add custom connector.
- Paste in the three values you copied from CloudClawer, save, and approve the OAuth prompt that opens.
- In a new conversation: "Use CloudClawer to launch a container and run
uname -ain bash."
Path 2: Install the CLI
The npm package gives you a CLI, a stdio MCP server, and the Playwright recording helper. Install once, authenticate once:
npm install -g cloudclawer
cloudclawer initcloudclawer init opens your browser, you approve the new key, and the CLI writes it to ~/.cloudclawer with mode 0600. From there, every CLI command (and the stdio MCP server) reads that file automatically.
Verify with three commands:
cloudclawer launch
cloudclawer wait
cloudclawer bash "uname -a && whoami"Path 2a: Wire the stdio MCP into Claude Code
If you want Claude Code (the desktop / IDE CLI) to expose the same tools, point it at the bundled stdio server. Edit ~/.claude/settings.json:
{
"mcpServers": {
"cloudclawer": {
"command": "node",
"args": ["${HOME}/.npm-global/lib/node_modules/cloudclawer/mcp-server.js"]
}
}
}The server reads CLOUDCLAWER_KEY from ~/.cloudclawer — no header config required. Restart Claude Code so it re-reads the file.
mcp-server.js depends on your npm prefix. Run npm root -g to find it (then append /cloudclawer/mcp-server.js).Verifying the connection
The cleanest check is to ask Claude to actually use a tool, not just list one. From Claude.ai or Claude Code:
"Use CloudClawer to check container status. If nothing is assigned,
launch and wait. Then run `uname -a` in bash and show me the output."Claude should call status (and if needed launch + wait), then bash. The container log line will also appear on your routines page.
Common pitfalls
Next steps
Now that Claude can talk to your container, set up a process definitionto gate risky tool calls — that's where CloudClawer earns its keep over a raw shell.