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.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
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: OpenClaw MCP Server
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
- AlicenseNot gradedqualityAmaintenanceEnables Claude.ai and Claude Desktop to reach self-hosted OpenClaw assistants through an OAuth 2.1-protected Streamable HTTP bridge, exposing tools to send chat messages, check gateway health, list instances, and queue or poll long-running tasks. Supports routing across multiple OpenClaw gateways with per-instance authentication, timeouts, and URLs.1,399 npmMIT
- AlicenseNot gradedqualityAmaintenanceBridges Claude.ai and Claude Desktop to self-hosted OpenClaw AI assistants through an OAuth 2.1-secured HTTP endpoint. Enables sending chat messages, tracking long-running tasks, checking gateway health, and routing requests across multiple isolated instances from a single connection.1,399 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables Claude clients to securely connect to self-hosted OpenClaw assistants via OAuth 2.1, exchange chat messages, check gateway health, manage asynchronous tasks, and route requests across multiple instances.1,399 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables Claude clients to securely connect to self-hosted OpenClaw assistants via OAuth 2.1, send synchronous or asynchronous chat messages, check gateway health, and manage long-running tasks. It also supports routing requests across multiple isolated gateway instances.1,399 npmMIT