openclaw-mcp
OpenClaw MCPใตใผใใผ
๐ฆ OpenClaw AIใขใทในใฟใณใ็ตฑๅใฎใใใฎModel Context Protocol (MCP) ใตใผใใผใงใใ
ใใข
Related MCP server: claude-bridge-mcp
้็บใฎๅๆฉ
ใใใซใกใฏ๏ผ็งใใใฎMCPใตใผใใผใไฝๆใใใฎใฏใOpenClawใจ้ไฟกใใใใใซใกใใปใผใธใณใฐใใฃใใซใ ใใซ้ ผใใใใชใใฃใใใใงใใ็งใ็นใซใฏใฏใฏใฏใใฆใใใฎใฏใOpenClawใClaudeใฎWeb UIใซๆฅ็ถใงใใใจใใ็นใงใใๆฌ่ณช็ใซใ็งใฎใใฃใใใใClawใใใใซใฟในใฏใๅงไปปใใใใใใๆฎใใฎใในใฆ๏ผไพใใฐใClaude Codeใ่ตทๅใใฆๅ้กใไฟฎๆญฃใใใใชใฉ๏ผใๅฆ็ใงใใใใใซใชใใพใใ
AIใขใทในใฟใณใใๅฅใฎAIใขใทในใฟใณใใๆๆฎใใฆใใใจ่ใใฆใใ ใใใใจใฆใใฏใผใซใ ใจๆใใพใใใ๏ผ
ใฏใคใใฏในใฟใผใ
Docker๏ผๆจๅฅจ๏ผ
ใใซใๆธใฟใฎใคใกใผใธใใใชใชใผในใใจใซGitHub Container Registryใซๅ ฌ้ใใใฆใใพใใ
docker pull ghcr.io/freema/openclaw-mcp:latestdocker-compose.ymlใไฝๆใใพใ๏ผ
services:
mcp-bridge:
image: ghcr.io/freema/openclaw-mcp:latest
container_name: openclaw-mcp
restart: unless-stopped
ports:
- "3000:3000"
environment:
- OPENCLAW_URL=http://host.docker.internal:18789
- OPENCLAW_GATEWAY_TOKEN=${OPENCLAW_GATEWAY_TOKEN}
- OPENCLAW_MODEL=openclaw
- AUTH_ENABLED=true
- MCP_CLIENT_ID=openclaw
- MCP_CLIENT_SECRET=${MCP_CLIENT_SECRET}
- MCP_ISSUER_URL=${MCP_ISSUER_URL:-}
- CORS_ORIGINS=https://claude.ai
extra_hosts:
- "host.docker.internal:host-gateway"
read_only: true
security_opt:
- no-new-privilegesใทใผใฏใฌใใใ็ๆใใฆ่ตทๅใใพใ๏ผ
export MCP_CLIENT_SECRET=$(openssl rand -hex 32)
export OPENCLAW_GATEWAY_TOKEN=your-gateway-token
docker compose up -dๆฌกใซใClaude.aiใงใซในใฟใ MCPใณใใฏใฟใ่ฟฝๅ ใใMCP_CLIENT_ID=openclawใจMCP_CLIENT_SECRETใๆๅฎใใฆใตใผใใผใๆใ็คบใใพใใ
ใใณใ: ๆฌ็ช็ฐๅขใงใฏ
latestใงใฏใชใ็นๅฎใฎใใผใธใงใณใๅบๅฎใใฆใใ ใใ๏ผghcr.io/freema/openclaw-mcp:1.1.0
ใญใผใซใซ๏ผClaude Desktop๏ผ
npx openclaw-mcpClaude Desktopใฎ่จญๅฎใซ่ฟฝๅ ใใพใ๏ผ
{
"mcpServers": {
"openclaw": {
"command": "npx",
"args": ["openclaw-mcp"],
"env": {
"OPENCLAW_URL": "http://127.0.0.1:18789",
"OPENCLAW_GATEWAY_TOKEN": "your-gateway-token",
"OPENCLAW_MODEL": "openclaw",
"OPENCLAW_TIMEOUT_MS": "300000"
}
}
}
}ใชใขใผใ๏ผClaude.ai๏ผDockerใชใใฎๅ ดๅ
AUTH_ENABLED=true MCP_CLIENT_ID=openclaw MCP_CLIENT_SECRET=your-secret \
MCP_ISSUER_URL=https://mcp.your-domain.com \
CORS_ORIGINS=https://claude.ai OPENCLAW_GATEWAY_TOKEN=your-gateway-token \
npx openclaw-mcp --transport sse --port 3000้่ฆ: ใชใใผในใใญใญใท๏ผCaddyใnginxใชใฉ๏ผใฎ่ๅพใงๅฎ่กใใๅ ดๅใฏใ
MCP_ISSUER_URL๏ผใพใใฏ--issuer-url๏ผใใใใชใใฏใชHTTPS URLใซ่จญๅฎใใชใใใฐใชใใพใใใใใใ่กใใชใใจใOAuthใกใฟใใผใฟใhttp://localhost:3000ใใขใใใฟใคใบใใฆใใพใใใฏใฉใคใขใณใใ่ช่จผใซๅคฑๆใใพใใ
่ฉณ็ดฐใฏใคใณในใใผใซใฌใคใใๅ็ งใใฆใใ ใใใ
ใขใผใญใใฏใใฃ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Your Server โ
โ โ
โ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ OpenClaw โ โ OpenClaw MCP โ โ
โ โ Gateway โโโโโโโบโ Bridge Server โ โ
โ โ :18789 โ โ :3000 โ โ
โ โ โ โ โ โ
โ โ OpenAI-compat โ โ - OAuth 2.1 auth โ โ
โ โ /v1/chat/... โ โ - CORS protection โ โ
โ โโโโโโโโโโโโโโโโโโโ โ - Input validation โ โ
โ โโโโโโโโโโโโฌโโโโโโโโโโโโโโโ โ
โ โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ HTTPS + OAuth 2.1
โผ
โโโโโโโโโโโโโโโโโโโ
โ Claude.ai โ
โ (MCP Client) โ
โโโโโโโโโโโโโโโโโโโๅฉ็จๅฏ่ฝใชใใผใซ
ๅๆใใผใซ
ใใผใซ | ่ชฌๆ |
| OpenClawใซใกใใปใผใธใ้ไฟกใใๅฟ็ญใๅๅพใใ |
| OpenClawใฒใผใใฆใงใคใฎๅฅๅ จๆงใ็ขบ่ชใใ |
| ่จญๅฎๆธใฟใฎใในใฆใฎOpenClawใคใณในใฟใณในใไธ่ฆง่กจ็คบใใ |
้ๅๆใใผใซ๏ผ้ทๆ้ๅฎ่กๆไฝ็จ๏ผ
ใใผใซ | ่ชฌๆ |
| ใกใใปใผใธใใญใฅใผใซๅ
ฅใใๅณๅบงใซ |
| ใฟในใฏใฎ้ฒๆใ็ขบ่ชใใ็ตๆใๅๅพใใ |
| ใใฃใซใฟใชใณใฐไปใใงๅ จใฟในใฏใไธ่ฆง่กจ็คบใใ |
| ไฟ็ไธญใฎใฟในใฏใใญใฃใณใปใซใใ |
ใใซใใคใณในใฟใณในใขใผใ
ๅไธใฎMCPใตใผใใผใใ่คๆฐใฎOpenClawใฒใผใใฆใงใคใใชใผใฑในใใฌใผใทใงใณใใพใใ1ใคใฎใใชใใธใงๅคใใฎClawใ็ฎก็ใใๆฌ็ช็ฐๅขใในใใผใธใณใฐใ้็บ็ฐๅขใชใฉใๅๅใไปใใ็ฐๅขใธใชใฏใจในใใใซใผใใฃใณใฐใงใใพใ๏ผlobster-supremeใthe-claw-abidesใจใใฃใๅๅใๅฎๅ
จใซๆๅนใงใ๏ผใ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Claude.ai / Claude Desktop โ
โ (MCP Client) โ
โโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ OpenClaw MCP Bridge Server โ
โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ Instance โ โ Instance โ โ Instance โ โ
โ โ Registry โ โ Resolver โ โ Validator โ โ
โ โโโโโโโโฌโโโโโโโโ โโโโโโโโฌโโโโโโโโ โโโโโโโโฌโโโโโโโโ โ
โ โ โ โ โ
โ โโโโโโโโดโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโดโโโโโโโโ โ
โ โ Per-Instance OpenClaw Clients โ โ
โ โ (separate auth, timeout, URL per instance) โ โ
โ โโโโโโโโโโฌโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโผโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ โ
โผ โผ โผ
โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ
โ ๐ฆ prod โ โ ๐ฆ staging โ โ ๐ฆ dev โ
โ (default) โ โ โ โ โ
โ :18789 โ โ :18789 โ โ :18789 โ
โ OpenClaw GW โ โ OpenClaw GW โ โ OpenClaw GW โ
โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโใปใใใขใใ
OPENCLAW_INSTANCES='[
{"name": "prod", "url": "http://prod:18789", "token": "tok1", "default": true},
{"name": "staging", "url": "http://staging:18789", "token": "tok2"},
{"name": "dev", "url": "http://dev:18789", "token": "tok3"}
]'ไฝฟ็จๆนๆณ
ใในใฆใฎใใผใซใฏใ็นๅฎใฎใฒใผใใฆใงใคใใฟใผใฒใใใซใใใใใฎใชใใทใงใณใฎinstanceใใฉใกใผใฟใๅใๅ
ฅใใพใ๏ผ
# Chat with staging instance
openclaw_chat message="Deploy status?" instance="staging"
# Check health of prod
openclaw_status instance="prod"
# List all configured instances
openclaw_instances
# Async task targeting dev
openclaw_chat_async message="Run tests" instance="dev"instanceใ็็ฅใใใๅ ดๅใฏใใใใฉใซใใฎใคใณในใฟใณในใไฝฟ็จใใใพใใๅใคใณในใฟใณในใฏ็ฌ่ชใฎ่ช่จผใใผใฏใณใใฟใคใ ใขใฆใใURLใๆใกใๅฎๅ
จใซๅ้ขใใใฆใใพใใ
ไธปใชๆฉ่ฝ
็งป่กไธ่ฆใฎใขใใใฐใฌใผใ โ ๆขๅญใฎๅไธใคใณในใฟใณในๆงๆใฏ่จญๅฎๅคๆดใชใใงๅไฝใใพใ
ใคใณในใฟใณในใใจใฎๅ้ข โ ๅๅฅใฎ่ช่จผใใผใฏใณใใฟใคใ ใขใฆใใURL
ๅ็ใซใผใใฃใณใฐ โ Claudeใใชใฏใจในใใใจใซ้ฉๅใชใคใณในใฟใณในใ้ธๆใใพใ
ใฟในใฏ่ฟฝ่ทก โ ้ๅๆใฟในใฏใฏใฟใผใฒใใใจใใฆใใใคใณในใฟใณในใ่จๆถใใพใ
ใปใญใฅใชใใฃ โ ใใผใฏใณใฏ
openclaw_instancesใ้ใใฆๅ ฌ้ใใใใใจใฏใใใพใใ
่ฉณ็ดฐใชใชใใกใฌใณในใซใคใใฆใฏ่จญๅฎ โ ใใซใใคใณในใฟใณในใขใผใใๅ็ งใใฆใใ ใใใ
ใใญใฅใกใณใ
ใคใณในใใผใซ โ Claude DesktopใใใณClaude.aiใฎใปใใใขใใ
่จญๅฎ โ ็ฐๅขๅคๆฐใจใชใใทใงใณ
ใใใญใคใกใณใ โ Dockerใใใณๆฌ็ช็ฐๅขใฎใปใใใขใใ
่ ๅจใขใใซ โ Claudeใใใชใฌใผใงใใใใฎใปใงใใชใใใฎใไฟก้ ผๅข็ใจๆปๆๅฏพ่ฑก้ ๅ
ใญใฐ่จ้ฒ โ ไฝใใฉใใซ่จ้ฒใใใไฝใ่จ้ฒใใใชใใ
้็บ โ ่ฒข็ฎใจใใผใซใฎ่ฟฝๅ ๆนๆณ
ใปใญใฅใชใใฃ โ ใปใญใฅใชใใฃใใชใทใผใจใในใใใฉใฏใใฃใน
ใปใญใฅใชใใฃ
โ ๏ธ ๆฌ็ช็ฐๅขใงใฏๅฟ ใ่ช่จผใๆๅนใซใใฆใใ ใใ๏ผ
# Generate secure client secret
export MCP_CLIENT_SECRET=$(openssl rand -hex 32)
# Run with auth enabled
AUTH_ENABLED=true MCP_CLIENT_ID=openclaw MCP_CLIENT_SECRET=$MCP_CLIENT_SECRET \
openclaw-mcp --transport sseใขใฏใปในใๅถ้ใใใใใซCORSใ่จญๅฎใใพใ๏ผ
CORS_ORIGINS=https://claude.ai,https://your-app.comใในใฆใฎใปใญใฅใชใใฃใชใใทใงใณใซใคใใฆใฏ่จญๅฎใๅ็ งใใฆใใ ใใใ
่ฆไปถ
Node.js โฅ 20
HTTP APIใๆๅนใช็ถๆ ใงๅฎ่กใใใฆใใOpenClawใฒใผใใฆใงใค๏ผ
// openclaw.json
{ "gateway": { "http": { "endpoints": { "chatCompletions": { "enabled": true } } } } }ใฉใคใปใณใน
MIT
ไฝ่
ไฝๆ่ : Tomรกลก Grasl
้ข้ฃใใญใธใงใฏใ
Available Tools
7 toolsopenclaw_chatC
Send a message to OpenClaw and get a response
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | The message to send to OpenClaw | |
| instance | No | Target OpenClaw instance name. Use openclaw_instances to list available instances. Defaults to the default instance. | |
| session_id | No | Optional session ID for conversation context |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without any annotations, the description must convey behavioral traits. It only states 'get a response' but does not disclose error handling, rate limits, or blocking behavior. This is insufficient for an agent to understand side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with 10 words, which is concise. However, it could be more informative while still being brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, and the description fails to explain the response format or behavior. It does not mention the importance of session_id for conversation context or any error scenarios. Sibling tools indicate additional functionality (e.g., instances, async) that are not referenced.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters have descriptions in the schema (100% coverage), so the description adds no new information. The baseline is 3, and the description does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (send a message) and the target (OpenClaw), and implies a synchronous response. However, it does not explicitly differentiate from the sibling tool 'openclaw_chat_async' which is an asynchronous version.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'openclaw_chat_async' or when not to use it. The description lacks contextual selection advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openclaw_chat_asyncA
Send a message to OpenClaw asynchronously. Returns a task_id immediately that can be polled for results. Use this for potentially long-running conversations.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | The message to send to OpenClaw | |
| instance | No | Target OpenClaw instance name. Defaults to the default instance. | |
| priority | No | Task priority (higher = processed first). Default: 0 | |
| session_id | No | Optional session ID for conversation context |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses async behavior and returning a task_id, but does not mention error handling, rate limits, or authentication requirements. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first explains the action and immediate return, the second provides usage guidance. No wasted words, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, async behavior, sibling tools), the description covers the core purpose, async mechanism, and usage context. It lacks details on failure modes or error handling, but is sufficient for most agents. No output schema, but the return value is implied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter having a clear description in the input schema. The tool description does not add extra meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Send a message to OpenClaw asynchronously', providing a specific verb and resource. It distinguishes from sibling tools like openclaw_chat (likely synchronous) and openclaw_task_status (polling).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises 'Use this for potentially long-running conversations', giving explicit context for when to use the async variant. It also mentions returning a task_id for polling, implying the alternative is to use openclaw_task_status. Could be more explicit about when not to use it, but overall clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openclaw_instancesA
List all configured OpenClaw instances. Shows instance names, URLs, and which is the default. Use instance names in other tools to target a specific OpenClaw gateway.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It describes the tool as listing instances (read-only), which is accurate. No mention of authentication or edge cases, but for a simple list, it is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with purpose. Every word adds value; no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, no output schema, and simple functionality, the description fully covers what an agent needs: listing instances and their attributes for use in other tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and schema coverage is 100%. Description adds no parameter details as none exist, meeting the baseline of 4 for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists all configured instances, showing names, URLs, and default. It explicitly differentiates from siblings like openclaw_chat by specifying the use case of retrieving instance names for targeting other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using instance names in other tools, implying usage before those tools. However, it does not explicitly state when not to use or list alternatives, but the context is clear for a listing tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openclaw_statusB
Get OpenClaw gateway status and health information
| Name | Required | Description | Default |
|---|---|---|---|
| instance | No | Target OpenClaw instance name. Defaults to the default instance. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosure. It only states that the tool retrieves status and health info, but does not disclose behavioral traits such as side effects, authentication needs, or rate limits. Minimal additional context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. Every part adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description is almost complete. However, it could mention that it retrieves status for a specific instance (addressing the parameter's role) and note that openclaw_instances can be used to list available instances.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the single optional parameter 'instance' is described in the schema). The description adds no extra meaning beyond what the schema already provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Get' and identifies the resource as 'OpenClaw gateway status and health information', which clearly distinguishes this tool from siblings like openclaw_chat (chatting) and openclaw_task_list (task management).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., openclaw_instances for listing instances) or any exclusions. The description implies a health check but does not provide explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openclaw_task_cancelA
Cancel a pending task. Only works for tasks that haven't started yet.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | The task ID to cancel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that cancellation only works on pending tasks, which is a key behavioral constraint. However, it does not describe side effects (e.g., whether the task is permanently removed, whether it can be undone, or what happens if the task has already started). This is a significant gap for a destructive operation, but the 'only works' statement provides some transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with action, no redundant information. Perfectly sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (1 param, no output schema, no annotations). The description covers the purpose and the main constraint, but omits what happens on success/failure and whether cancellation is reversible. Given the lack of annotations and output schema, this leaves some ambiguity, so it's not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter task_id is clearly described as 'The task ID to cancel.' The tool description adds no additional meaning beyond that. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Cancel' with resource 'task' and adds a scope condition ('Only works for tasks that haven't started yet'), clearly differentiating it from sibling tools like openclaw_task_status and openclaw_task_list. It leaves no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the condition for use: tasks must be pending/not yet started. This provides clear context for when to invoke it. It doesn't explicitly name alternatives or exclusions, but the sibling list doesn't contain another cancel tool, so the guidance is sufficient. The restriction is explicit, earning a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openclaw_task_listA
List all tasks. Optionally filter by status, session, or instance.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by task status | |
| instance | No | Filter by instance name | |
| session_id | No | Filter by session ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not explicitly state that the tool is read-only or describe side effects, pagination, or performance. The name 'list' suggests read-only, but explicit context is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. It is front-loaded with the core action and immediately lists the filters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 optional params, no output schema, no annotations), the description covers the basic functionality. However, it lacks details on return format, pagination, or error handling, which would be useful for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and all parameters have descriptions. The description adds 'Optionally filter by status, session, or instance,' which mostly repeats the schema. It does not add significant new meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all tasks' with optional filters, which is a specific verb+resource. It distinguishes from sibling tools like openclaw_task_cancel and openclaw_task_status, though it does not explicitly differentiate them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing tasks with optional filters but provides no exclusions or alternative tool references. Sibling tools exist but are not mentioned, so guidance is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openclaw_task_statusB
Check the status of an async task. Returns status, and result if completed.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | The task ID returned from openclaw_chat_async |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It does state that the tool 'Returns status, and result if completed,' which gives some transparency about the return payload. However, it does not explicitly confirm that this is a non-destructive read operation, nor does it mention error behavior or whether the status check is one-time or can be polled. The description adds some value but leaves gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise with two short sentences: 'Check the status of an async task. Returns status, and result if completed.' Every word earns its place, with no filler or repetition. This is a model of efficient communication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description covers the core function and return behavior. However, it lacks detail on the possible status values, what 'result' looks like, or how this behaves when the task ID is invalid. Given no output schema exists, the description could be more explicit about the return format. It is adequate but not complete for an agent needing to interpret the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the only parameter (task_id), which is clearly described as 'The task ID returned from openclaw_chat_async'. The tool description adds no additional parameter meaning beyond what the schema already provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: checking the status of an async task. The verb 'check' and resource 'async task' are specific, and it is distinguishable from sibling tools like openclaw_chat_async (which starts tasks) and openclaw_task_cancel (which cancels). However, it does not explicitly differentiate from openclaw_task_list, which also deals with tasks, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit usage guidance is provided. The description does not state when to use this tool versus alternatives, nor does it mention prerequisites like having a task ID from openclaw_chat_async (though that is noted in the schema parameter description). The 'when to use' is only implied by the tool's name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
v1.4.2- Added
openclaw_chat - Added
openclaw_chat_async - Added
openclaw_instances - Added
openclaw_status - Added
openclaw_task_cancel - Added
openclaw_task_list - Added
openclaw_task_status
6 tool updates
v1.4.1- Removed
openclaw_chat - Removed
openclaw_chat_async - Removed
openclaw_status - Removed
openclaw_task_cancel - Removed
openclaw_task_list - Removed
openclaw_task_status
6 tool updates
v1.0.2- First observed
openclaw_chat - First observed
openclaw_chat_async - First observed
openclaw_status - First observed
openclaw_task_cancel - First observed
openclaw_task_list - First observed
openclaw_task_status
TDQS
Scored across 7 tools
Most tools have distinct purposes, but openclaw_chat and openclaw_chat_async could be confused if an agent skims descriptions. The async variant is clearly labeled, so overall disambiguation is good but not perfect.
All tools use the consistent pattern 'openclaw_verb_noun' with snake_case. This makes it easy to predict tool names and understand their function.
Seven tools is ideal for an API gateway wrapper. Each tool covers a distinct operation without redundancy, and the scope is well-scoped for interacting with OpenClaw instances.
The set covers core operations: chat (sync/async), instance management, health status, and task management. Minor gap: no tool for listing sessions or conversation history, but the core workflows are complete.
Maintenance
Related MCP Connectors
MCP server for Argo RPG Platform โ connects AI assistants to campaign data via OAuth2
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client โ Claude, ChatGPT, Cursor, Cline, Windsurf.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yoโฆ
Related MCP Servers
- AlicenseBqualityCmaintenanceA Model Context Protocol (MCP) server that lets you seamlessly use OpenAI's models right from Claude.1316 npm77MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that exposes your local Claude Code CLI over HTTP+SSE, enabling any MCP-compatible client to use your Claude Code MAX/PRO subscription remotely.15 npm2MIT
- AlicenseAqualityCmaintenanceAn MCP server that enables any AI agent to call Claude using your existing Max/Pro subscription via OAuth, avoiding additional API billing.11MIT
- FlicenseNot gradedqualityDmaintenanceEnables Claude.ai to connect to a Hermes MCP server via OAuth 2.1 authorization code flow with PKCE, acting as a reverse proxy and single-user authorization gateway.-