claw-mcp
Provides tools for accessing channel-routed OpenClaw conversations, reading message transcripts, and sending replies through Discord as a conversation channel.
Provides tools for accessing channel-routed OpenClaw conversations, reading message transcripts, and sending replies through Slack as a conversation channel.
Provides tools for accessing channel-routed OpenClaw conversations, reading message transcripts, and sending replies through Telegram as a conversation channel.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@claw-mcpsearch the workspace for deployment notes"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
claw-mcp
A remote Model Context Protocol server that
wraps OpenClaw's stdio MCP bridge
(openclaw mcp serve) and serves the OpenClaw agent workspace read-only, over
stateless Streamable HTTP. It is meant to sit behind an identity-aware proxy
such as Pomerium, which handles MCP OAuth and
per-tool policy.
Started from mcp-typescript-template; its history is kept here as the starting point.
Tools
Tool | Source | What it does |
| wrapper | List files in the agent workspace (skips |
| wrapper | Read a text file, optionally a line range (max 1 MB, no binaries) |
| wrapper | Line search across workspace files (substring or regex) |
| bridge | Channel-routed OpenClaw conversations (Discord, Slack, Telegram...) |
| bridge | Transcript and attachments for a session key |
| bridge | Live event queue since the bridge connected |
| bridge | Reply through a conversation's existing channel route |
| bridge | Pending exec/plugin approvals |
Bridge conversation tools only cover sessions with a channel route (a channel
plus a recipient). Web UI chats such as agent:main:main are not listed, but
messages_read works on them by session key.
Related MCP server: AIPI Bridge MCP
How it works
One shared bridge. The HTTP side is stateless (MCP 2026-07-28: a fresh server per request), but the bridge's event queue only exists while it stays connected. So one
openclaw mcp servechild is shared by all requests and respawned lazily if it exits (src/openclaw.ts).Loopback + password. A Gateway in
trusted-proxyauth mode accepts only proxy-forwarded identity, plusgateway.auth.passwordfrom loopback callers. So the server runs in the Gateway's network namespace (a composenetwork_mode: service:<gateway>sidecar) and the bridge dialsws://127.0.0.1:18789with the password file.Workspace tools run in the wrapper itself (
src/workspace.ts), reading a read-only mount of~/.openclaw/workspace. Paths are realpath-checked to stay inside the root.
Future direction: one bridge per proxy-authenticated user rather than one shared bridge, so OpenClaw's own per-user scopes apply.
Running
Build Dockerfile.openclaw with OPENCLAW_VERSION matching the Gateway and
APP_UID matching the Gateway's user (workspace files are mode 600):
clawmcp:
build:
context: ../claw-mcp
dockerfile: Dockerfile.openclaw
args: [OPENCLAW_VERSION=2026.9.8, APP_UID=1001]
environment:
OPENCLAW_GATEWAY_PASSWORD_FILE: /run/clawmcp/gateway-password
OPENCLAW_WORKSPACE_DIR: /workspace
volumes:
- ./gateway-password:/run/clawmcp/gateway-password:ro
- ./state:/home/clawmcp/.openclaw
- ./openclaw-home/.openclaw/workspace:/workspace:ro
network_mode: service:openclaw-gatewayThe MCP endpoint is http://<gateway-host>:3000/mcp; GET /health is a
liveness check.
Configuration
Variable | Default | Description |
|
| HTTP port |
| from | MCP server identity |
|
|
|
|
| CLI used to spawn |
|
| Gateway WebSocket (loopback for the password fallback) |
| — | File holding |
| — | Workspace to serve read-only; empty disables |
| — | Comma-separated bridge tools to hide and refuse; prefer proxy tool policy |
|
| Per-call bridge timeout ( |
Development
npm install
npm run dev # watch mode (needs the openclaw CLI on PATH)
npm run lint && npm run format:check && npm run build && npm run test:ciSee AGENTS.md for project structure and conventions.
This server cannot be deployed
Maintenance
Related MCP Connectors
Query, browse, and automate OmegaAI workspaces from any MCP client. Streamable HTTP with OAuth 2.0.
Workspace messaging: conversations, contacts, agents, and connected lines through scoped OAuth.
Agent-to-agent messaging: directory, public lobby, DMs, channels, search. Stateless MCP + REST.
Public and private rooms for agents, with messages, files, search, and resumable events.
Related MCP Servers
- AlicenseAqualityCmaintenanceBridges MCP clients (like Claude Desktop) to A2A agents, enabling message sending and agent card retrieval via a stateless, non-persistent server.3MIT
- FlicenseNot gradedqualityCmaintenanceExposes a curated set of Bot Army tools (chat, GTD tasks, docs search, dice roll) to external SSE-only MCP clients via authenticated SSE transport.-
- FlicenseNot gradedqualityBmaintenanceEnables managing projects, features, tasks, dependencies, executions, and human review through a Streamable HTTP endpoint, along with persistent inter-agent cooperation via task messaging and event subscriptions. It also supports administrative actions such as approvals, cancellations, unblocking, and member management.-
- AlicenseNot gradedqualityCmaintenanceExposes remote, agent-facing MCP endpoints over Streamable HTTP for web search, webpage parsing, local knowledge-base retrieval and document creation, and delegation of tasks to configurable LLM providers. Also bundles an admin console with onboarding, provider/model configuration, API-key management, and call logging.MIT