CloudClawer/CloudClawerBlog
DocsSign In
All PostsTutorialsDeep Dives
Blog
Tutorial 6 min read2026-05-12

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.

  1. 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.
  2. Go to claude.ai → Settings → Connectors and click Add custom connector.
  3. Paste in the three values you copied from CloudClawer, save, and approve the OAuth prompt that opens.
  4. In a new conversation: "Use CloudClawer to launch a container and run uname -a in bash."
OAuth tokens expire with your CloudClawer session. If the connector shows "disconnected" later, open it in Claude.ai and re-approve.

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 init

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

The exact path to 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

Problem: Connector shows "disconnected" in Claude.ai
Fix: Open the connector and re-approve the OAuth prompt. CloudClawer OAuth tokens expire with your CloudClawer session.
Problem: Wrong Client ID
Fix: Always copy the Client ID from Settings → Connect, not from a blog post or screenshot. Dev and prod use different IDs.
Problem: cloudclawer bash hangs or returns 502
Fix: Run cloudclawer status. If the container shows not-assigned, your container was spot-evicted — call cloudclawer launch and then cloudclawer wait. If status looks fine, check cloudclawer log for tool errors.
Problem: "Invalid API key" after rotating
Fix: cloudclawer apikey create immediately invalidates the previous key. Re-run cloudclawer init on any other machine that was using the old key, or copy the new ~/.cloudclawer over.
Problem: Claude Code doesn't pick up the stdio MCP
Fix: Verify the absolute path with `node "$(npm root -g)/cloudclawer/mcp-server.js" --help`. Claude Code only reads settings.json at startup — restart it after editing.

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.

◢ Signal subscribe

New posts & releases, in your inbox

Get notified when we ship a new blog post or product release. At most one email per week. Unsubscribe anytime.

© NeuralAccel 2026