Skip to main content
Glama

openclaw-tools-mcp

MCP server that exposes OpenClaw tools to ACP agents (Kiro, Codex, Claude Code, etc.).

ACP agents run in their own runtime with their own native tools but lack access to OpenClaw's capabilities. This server bridges that gap — web search, page fetching, browser automation, PDF analysis, messaging, inter-agent communication, and Canvas are all available as MCP tools.

ACP Agent ◄── stdio (JSON-RPC) ──► openclaw-tools-mcp ◄── HTTP ──► OpenClaw Gateway

Default tools

Tool

Description

web_search

Search the web

web_fetch

Fetch and extract readable content from URLs

browser

Control a web browser (navigate, click, type, screenshot, etc.)

pdf

Analyze PDF documents

message

Send messages via Discord, Telegram, WhatsApp, etc.

canvas

Control the Canvas visual workspace

sessions_send

Send a message into another OpenClaw session (agent-to-agent)

Related MCP server: dat-ai-mcp

Quick start

cd openclaw-tools-mcp
npm install
npm run build

Add to ~/.kiro/settings/mcp.json:

{
  "mcpServers": {
    "openclaw-tools": {
      "command": "node",
      "args": ["/absolute/path/to/openclaw-tools-mcp/dist/index.js"],
      "env": {
        "OPENCLAW_GATEWAY_TOKEN": "${OPENCLAW_GATEWAY_TOKEN}"
      }
    }
  }
}

Requires Node.js >= 22 and a running OpenClaw Gateway.

Configuration

Environment variables

Variable

Required

Default

Description

OPENCLAW_GATEWAY_TOKEN

Yes

—

Bearer token for gateway auth

OPENCLAW_GATEWAY_URL

No

http://127.0.0.1:18789

Gateway base URL

OPENCLAW_MCP_TOOLS

No

all 7 tools

Comma-separated list of tools to expose

OPENCLAW_MCP_CONFIG

No

openclaw-mcp.json

Path to config file

OPENCLAW_MCP_CUSTOM_TOOLS

No

—

Comma-separated paths to custom tool JSON files

Config file

Optional openclaw-mcp.json:

{
  "gateway": {
    "url": "http://127.0.0.1:18789",
    "token": "your-token"
  },
  "tools": ["web_search", "web_fetch", "browser", "pdf", "message", "canvas", "sessions_send"],
  "customTools": ["./tools/rooms.json"]
}

Environment variables override config file values.

Exposing a subset of tools

{
  "mcpServers": {
    "openclaw-tools": {
      "command": "node",
      "args": ["/path/to/openclaw-tools-mcp/dist/index.js"],
      "env": {
        "OPENCLAW_GATEWAY_TOKEN": "${OPENCLAW_GATEWAY_TOKEN}",
        "OPENCLAW_MCP_TOOLS": "web_search,web_fetch,message"
      }
    }
  }
}

Custom tool definitions

Load additional tools from JSON files — useful for custom OpenClaw skills/plugins.

{
  "tools": [
    {
      "name": "room_join",
      "description": "Join a named room for multi-agent broadcast messaging.",
      "parameters": {
        "type": "object",
        "properties": {
          "room": { "type": "string", "description": "Room name" },
          "agentId": { "type": "string", "description": "Your agent ID" }
        },
        "required": ["room", "agentId"]
      }
    }
  ]
}

Single-tool files (without the tools wrapper) also work. The schema format matches what OpenClaw plugins use in registerTool(). Supported types: string, number, integer, boolean, array. Enums via "enum": [...].

A sessionKey parameter is automatically injected into every custom tool for gateway routing.

A ready-made definition for the rooms plugin is included at tools/rooms.json.

Notes

  • The server uses stdio transport — ACP agents spawn it as a child process.

  • All tool calls are proxied to the gateway's POST /tools/invoke HTTP endpoint.

  • sessions_send requires a gateway config change — see below.

  • Every built-in tool (except sessions_send) accepts an optional sessionKey parameter for routing the call to a specific agent session on the gateway.

Enabling sessions_send

sessions_send is on the gateway's default HTTP deny list for /tools/invoke. Without this config change, calls will return 404 Tool not available. Add to your OpenClaw config (~/.openclaw/openclaw.json):

gateway: {
  tools: {
    allow: ["sessions_send"]
  }
}

Then restart the gateway (openclaw gateway restart).

Troubleshooting

  • Server won't start — OPENCLAW_GATEWAY_TOKEN must be set.

  • Tools return errors — Verify the gateway is running (openclaw gateway status) and the token is correct.

  • Tool not found (404) — The tool may be blocked by gateway policy. Check gateway.tools.deny in your OpenClaw config.

  • Verify in Kiro CLI — Run /mcp in an interactive session to see loaded servers and tools.

License

This project is released into the public domain under The Unlicense. See LICENSE.

Available Tools

7 tools
browserC

Control a web browser. Actions: status, start, stop, tabs, open, snapshot, screenshot, navigate, act, click, type, scroll, select, hover, wait, evaluate, close, pdf

Inputs: action (required), ref, url, text, +9 more.

canvasC

Control the Canvas visual workspace. Actions: present, hide, navigate, eval, snapshot, a2ui_push, a2ui_reset

Inputs: action (required), url, html, node, +4 more.

messageC

Send messages and perform channel actions (Discord, Telegram, WhatsApp, etc.). Actions: send, react, search, read, poll, thread-create, thread-reply

Inputs: action (required), to, emoji, limit, +9 more.

pdfB

Analyze PDF documents from file paths or URLs

Inputs: pdf, pdfs, model, pages, +2 more.

sessions_sendA

Send a message into another OpenClaw session. Use for agent-to-agent communication. Either sessionKey or label must be provided to identify the target session.

Inputs: message (required), label, sessionKey, timeoutSeconds.

web_fetchA

Fetch and extract readable content from a URL (HTML converted to markdown or text)

Inputs: url (required), maxChars, sessionKey, extractMode.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.3/5.0

    Scored across 7 tools

    Disambiguation5/5

    Each tool targets a distinct domain: web search, URL fetching, browser control, PDF analysis, messaging, canvas, and inter-session communication. No two tools have overlapping purposes; even web_fetch and browser are differentiated by control vs extraction.

    Naming Consistency3/5

    The naming pattern is inconsistent: some tools use verb_noun (web_search, web_fetch), some are single nouns (browser, pdf, message, canvas), and one uses noun_verb (sessions_send). All are lowercase snake_case, but the structure varies.

    Tool Count5/5

    Seven tools is well-scoped for a general-purpose assistant toolkit, covering major capabilities like web, communication, document analysis, and workspace control without feeling bloated or sparse.

    Completeness4/5

    The suite covers web research, browsing, document analysis, messaging, canvas control, and agent-to-agent communication. Minor gaps like calendar or file management could be expected, but the core workflows are well covered.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers