An MCP server for the OpenClaw control plane that connects to an OpenClaw gateway over WebSocket and exposes tools to manage crons, sessions, agents, channels, skills, secrets, device pairing, and approval flows. It supports stdio and HTTP transport, plus a mock mode for testing without a live gateway.
From the registry: MCP server bridging Claude Code to the OpenClaw gateway management plane via JSON-RPC.

$ Object.entries(localStorage).find(([k]) => k.startsWith("openclaw.control.settings.v1"))?.[1]Please install the `openclaw-control-mcp` MCP server into my current AI client (that's you).
Required prerequisites (do these first if not already done):
- **Install Node.js** — Node.js is required to run the MCP server via npx. (https://nodejs.org/)
- **Find your OpenClaw gateway WebSocket URL** — Open the OpenClaw Control panel, inspect localStorage in the browser DevTools, and copy the gatewayUrl value used by the Control panel. Run: `Object.entries(localStorage).find(([k]) => k.startsWith("openclaw.control.settings.v1"))?.[1]`
- **Obtain and approve device pairing on first run** — On first use, the server generates a device identity and returns a pairing request id. Approve that request once in the OpenClaw Control panel Devices tab so the gateway can issue a device token for future use.
Canonical MCP server config (stdio transport):
- command: `npx`
- args: ["-y","openclaw-control-mcp"]
- required environment variables:
- `OPENCLAW_GATEWAY_URL`: WebSocket URL of the OpenClaw gateway (ws:// or wss://). Required for env-var configuration; alternatively can be persisted later via the server's setup tools. (example: `wss://<your-gateway-host>`)
- optional environment variables:
- `OPENCLAW_GATEWAY_TOKEN`: Gateway login token. Recommended by the README; may be needed depending on your gateway configuration. (example: `<your-token>`)
- `OPENCLAW_GATEWAY_PASSWORD`: Additional gateway password for setups that require it. (example: `<your-password>`)
- `OPENCLAW_TIMEOUT_MS`: Connect/request timeout in milliseconds. (example: `30000`)
- `OPENCLAW_DEBUG`: Set to 1 to log WebSocket frames and retry decisions to stderr. (example: `1`)
- `OPENCLAW_CONTROL_HOME`: Override the directory used to persist store.json. (example: `<your-config-directory>`)
- `OPENCLAW_USE_KEYCHAIN`: Set to 0 or false to disable OS keychain storage and force plain JSON storage. (example: `0`)
- `OPENCLAW_MOCK`: Set to 1 to use the in-memory mock gateway instead of a real gateway. (example: `1`)
- `OPENCLAW_RETRY_ATTEMPTS`: Total retry attempts for transient gateway errors. (example: `4`)
- `OPENCLAW_RETRY_BASE_MS`: Initial exponential backoff in milliseconds for retries. (example: `1000`)
- `OPENCLAW_DEVICE_PRIVATE_KEY`: Headless/CI override for the device private key; takes priority over stored state. (example: `<your-device-private-key>`)
- `OPENCLAW_DEVICE_TOKEN`: Headless/CI override for the device token; takes priority over stored state. (example: `<your-device-token>`)
Note: Preferred install path is stdio via npx. The README also supports Streamable HTTP mode when explicitly enabled with --http or OPENCLAW_HTTP=1, using the same package. In stdio mode, configuration can be supplied either via environment variables or later persisted by calling the server's openclaw_setup tool after startup.
Add this MCP server to my current client's config in the correct format for you. If you need secrets or credentials I haven't provided, ASK me — do not invent values or leave raw placeholders. After adding it, tell me how to verify the server is connected.OPENCLAW_GATEWAY_URLrequiredWebSocket URL of the OpenClaw gateway.OPENCLAW_GATEWAY_TOKENrequiredGateway login token.Meta Ads MCP (Facebook + Instagram) - analyze performance, manage budgets, pause campaigns.