Skip to main content
Glama
README.md
# openclaw-mcp

MCP server for Claude Code to talk to OpenClaw AI agents (Daemon, Soren, Ash, etc.) via the gateway API.

## What it does

Gives Claude Code three tools:

- **`ask_agent`** — Send a message to any OpenClaw agent and get their response inline
- **`list_agents`** — Discover all available agents on the gateway
- **`agent_status`** — Check if a specific agent is active

## Quick Setup

```bash
# Install globally
npm install -g openclaw-mcp

# Add to Claude Code (simplest)
claude mcp add openclaw -- npx openclaw-mcp

# Or with explicit config
claude mcp add openclaw \
  --env OPENCLAW_GATEWAY_URL=http://172.16.24.250:18789 \
  --env OPENCLAW_GATEWAY_TOKEN=your_token \
  -- npx openclaw-mcp
```

## Manual Setup

Add to your `.claude/settings.json` (or `~/.claude.json` for global):

```json
{
  "mcpServers": {
    "openclaw": {
      "command": "npx",
      "args": ["openclaw-mcp"],
      "env": {
        "OPENCLAW_GATEWAY_URL": "http://172.16.24.250:18789",
        "OPENCLAW_GATEWAY_TOKEN": "your_token"
      }
    }
  }
}
```

## Configuration

| Variable | Default | Description |
|---|---|---|
| `OPENCLAW_GATEWAY_URL` | `http://localhost:18789` | OpenClaw gateway URL |
| `OPENCLAW_GATEWAY_TOKEN` | _(required)_ | Auth token from your OpenClaw config |

Find your token in `~/.openclaw/openclaw.json` under `gateway.token`.

## Usage in Claude Code

Once configured, just talk to Claude Code naturally:

- "Ask Daemon about the ClawPort architecture"
- "Check which agents are available"
- "Ask Soren to review this code approach"
- "What's the status of the Ash agent?"

## Tools Reference

### `ask_agent`

Sends a message to an OpenClaw agent and returns their response.

```
agent: "daemon" | "soren" | "ash" | "mira" | "jace" | "pip" | ...
message: "Your question or request"
```

Uses session key `agent:{name}:mcp` so MCP conversations are isolated from Discord/ClawPort sessions.

### `list_agents`

No params. Returns all models/agents registered on the gateway.

### `agent_status`

```
agent: "ash"
```

Returns the agent's name, model ID, and availability status.

## Local Development

```bash
git clone https://github.com/Codename-11/openclaw-mcp
cd openclaw-mcp
npm install
npm run build

# Test
OPENCLAW_GATEWAY_URL=http://localhost:18789 \
OPENCLAW_GATEWAY_TOKEN=your_token \
node dist/index.js
```

## License

MIT

TDQS

A4/5.0

Scored across 3 tools

Disambiguation5/5

Each tool serves a clearly distinct purpose: listing agents, checking a specific agent's status, and sending a message. There is no overlap between these operations.

Naming Consistency4/5

Most tools follow a verb_noun pattern (ask_agent, list_agents), but agent_status deviates by using noun_noun. The inconsistency is minor and the names remain clear.

Tool Count5/5

Three tools is a well-scoped set for an agent interaction server, covering the core needs of discovery, status checking, and messaging without unnecessary bloat.

Completeness4/5

The set covers the primary lifecycle of interacting with agents, but lacks explicit session management (e.g., start/stop). This is a minor gap for a basic agent gateway server.

Maintenance

ActivityInactive
ResponsivenessNo issues