elvatis-mcp
Officialelvatis-mcp
用于 OpenClaw 的 MCP 服务器 —— 将你的智能家居、记忆、定时任务自动化和 AI 子代理编排暴露给 Claude Desktop、Cursor、Windsurf 以及任何兼容 MCP 的 AI 客户端。
这是什么?
elvatis-mcp 将 Claude(或任何 MCP 客户端)连接到你的基础设施:
智能家居 控制,通过 Home Assistant(灯光、恒温器、扫地机器人、传感器)
记忆 系统,每日日志存储在你的 OpenClaw 服务器上
Cron 作业管理和触发
多 LLM 编排,通过 5 个 AI 后端:Claude、OpenClaw、Google Gemini、OpenAI Codex 和本地 LLM
智能提示拆分,分析复杂请求,将子任务路由到合适的 AI,并执行带速率限制的计划
核心思想:Claude 是编排者,但它可以将专业工作委派给其他 AI 模型。编码任务交给 Codex。研究交给 Gemini。简单格式化交给你的本地 LLM(免费、私密)。交易和自动化交给 OpenClaw。prompt_split 自动确定路由,prompt_split_execute 以速率限制在云端代理上执行计划。
Related MCP server: hass-mcp-server
什么是 MCP?
Model Context Protocol 是 Anthropic 提出的开放标准,允许 AI 客户端连接到外部工具服务器。配置后,Claude 可以直接调用你的工具,无需复制粘贴。
多 LLM 架构
You (Claude Desktop / Code / Cursor)
|
MCP Protocol (stdio/HTTP)
|
elvatis-mcp server
|
+--------+--------+--------+--------+--------+--------+
| | | | | | |
Claude OpenClaw Gemini Codex Local llama Home
(CLI) (SSH) (CLI) (CLI) LLM .cpp Asst.
| | | | (HTTP) (proc) (REST)
Reason Plugins 1M ctx Coding | | |
Write Trading Multi- Files LM Stu Turbo- Lights
Review Auto. modal Debug Ollama Quant Climate
Notify Rsch Shell (free!) cache Vacuum子代理对比
工具 | 后端 | 传输 | 认证 | 最适合的用途 | 成本 |
| Claude (Anthropic) | 本地 CLI | Claude Code 登录 | 复杂推理、写作、代码审查。适用于非 Claude 的 MCP 客户端。 | API 使用量 |
| OpenClaw (插件) | SSH | SSH 密钥 | 交易、自动化、多步骤工作流 | 自托管 |
| Google Gemini | 本地 CLI | Google 登录 | 长上下文(1M 令牌)、多模态、研究 | API 使用量 |
| OpenAI Codex | 本地 CLI | OpenAI 登录 | 编码、调试、文件编辑、Shell 脚本 | API 使用量 |
| LM Studio / Ollama / llama.cpp | HTTP | 无 | 分类、格式化、提取、重写 | 免费 |
会话恢复
claude_run、gemini_run 和 codex_run 使用 CLI 会话恢复 来消除冷启动开销。首次调用时创建新会话;后续调用恢复该会话,因此模型只接收新消息,而不是重新处理完整的对话历史。
指标 | 无会话恢复 | 有会话恢复 |
每次请求的提示大小 | 18-25 KB | <1 KB(仅新消息) |
Claude Sonnet 响应时间 | 80-120 秒(50% 挂起率) | 5-10 秒 |
静默挂起率 | ~50% | 接近 0% |
会话持久化到 ~/.openclaw/cli-bridge/cli-sessions.json,并在 2 小时不活动或 50 次请求后过期。session_id 在每次响应中返回,以便你检查使用了哪个会话。
智能提示拆分
prompt_split 工具分析复杂提示并将其拆分为子任务:
User: "Search my memory for TurboQuant notes, summarize with Gemini,
reformat as JSON locally, then save a summary to memory"
prompt_split returns:
t1: openclaw_memory_search -- "Search memory for TurboQuant" (parallel)
t3: local_llm_run -- "Reformat raw notes as clean JSON" (parallel)
t2: gemini_run -- "Summarize the key findings" (after t1)
t4: openclaw_memory_write -- "Save summary to today's log" (after t2, t3)使用 prompt_split_execute 自动执行计划,或让 Claude 逐步执行。任务按依赖顺序运行,并行组并发执行。三种分析策略:
策略 | 速度 | 质量 | 用途 |
| 即时 | 对清晰提示效果好 | 关键词匹配,无需 LLM 调用 |
| 5-30 秒 | 更好的推理 | 你的本地 LLM 分析提示 |
| 5-15 秒 | 最佳质量 | Gemini-flash 分析提示 |
| 视情况 | 最佳可用 | 对简单提示短路,然后尝试 gemini -> local -> heuristic |
可用工具(共 34 个)
Home Assistant(7 个工具)
工具 | 描述 |
| 读取任何 Home Assistant 实体状态 |
| 控制灯光:开/关/切换、亮度、色温、RGB |
| 控制 Tado 恒温器:温度、HVAC 模式 |
| 按房间激活 Hue 场景 |
| 控制 Roborock 扫地机器人:启动、停止、回充、状态 |
| 读取所有温度、湿度和 CO2 传感器 |
| 列出、触发、启用或禁用 HA 自动化 |
记忆(3 个工具)
工具 | 描述 |
| 向今天的每日日志写入笔记 |
| 读取今天的记忆日志 |
| 搜索最近 N 天的记忆文件 |
Cron 自动化(7 个工具)
工具 | 描述 |
| 列出所有计划的 OpenClaw cron 作业 |
| 按 ID 立即触发 cron 作业 |
| 获取调度器状态和最近的运行历史 |
| 创建新的 cron 作业(cron 表达式、间隔或一次性) |
| 编辑现有 cron 作业(名称、消息、计划、模型) |
| 按 ID 删除 cron 作业 |
| 显示 cron 作业的最近执行历史 |
OpenClaw 代理(4 个工具)
工具 | 描述 |
| 向 OpenClaw AI 代理发送提示(所有插件可用) |
| 检查 OpenClaw 守护进程是否正在运行 |
| 列出所有已安装的插件 |
| 通过 WhatsApp、Telegram 或最后使用的渠道发送通知 |
AI 子代理(5 个工具)
工具 | 描述 |
| 通过本地 CLI 向 Claude 发送提示。适用于非 Claude 的 MCP 客户端(Cursor、Windsurf)。 |
| 通过本地 CLI 向 Google Gemini 发送提示。1M 令牌上下文。 |
| 通过本地 CLI 向 OpenAI Codex 发送编码任务。 |
| 向本地 LLM(LM Studio、Ollama、llama.cpp)发送提示。免费、私密。支持流式输出。 |
| 启动/停止/配置 llama.cpp 服务器,支持 TurboQuant 缓存。 |
系统管理(4 个工具)
工具 | 描述 |
| 一次性健康检查所有服务,带延迟(HA、SSH、LLM、CLI) |
| 列出、加载或卸载 LM Studio / Ollama 上的模型 |
| 查看 OpenClaw 服务器的网关、代理或系统日志 |
| 通过 SSH 上传、下载或列出 OpenClaw 服务器上的文件 |
路由和编排(3 个工具)
工具 | 描述 |
| 显示路由指南。传入任务以获得具体工具推荐。 |
| 分析复杂提示,拆分为带代理分配的子任务。 |
| 执行拆分计划:按依赖顺序将子任务分派给代理,并带速率限制。 |
仪表板
端点 | 描述 |
| 自动刷新的 HTML 仪表板(服务健康、已加载模型) |
| 用于编程状态检查的 JSON API |
测试结果
所有测试都针对实时服务运行(LM Studio 搭配 Deepseek R1 Qwen3 8B,通过 SSH 连接 OpenClaw 服务器)。
elvatis-mcp integration tests
Local LLM (local_llm_run)
Model: deepseek/deepseek-r1-0528-qwen3-8b
Response: "negative"
Tokens: 401 (prompt: 39, completion: 362)
PASS local_llm_run: simple classification (21000ms)
Extracted: {"name":"John Smith","age":34}
PASS local_llm_run: JSON extraction (24879ms)
Error: Could not connect to local LLM at http://localhost:19999/v1/chat/completions
PASS local_llm_run: connection error handling (4ms)
Prompt Splitter (prompt_split)
Strategy: heuristic
Agent: codex_run
Summary: Fix the authentication bug in the login handler
PASS prompt_split: single-domain coding prompt routes to codex (1ms)
Strategy: heuristic
Subtasks: 3
t1: codex_run -- "Refactor the auth module"
t2: openclaw_run -- "check my portfolio performance and"
t3: home_light -- "turn on the living room lights"
Parallel groups: [["t1","t3"],["t2"]]
Estimated time: 90s
PASS prompt_split: heuristic multi-agent splitting (0ms)
Subtasks: 4, Agents: openclaw_memory_write, gemini_run, local_llm_run
Parallel groups: [["t1","t3","t4"],["t2"]]
PASS prompt_split: cross-domain with dependencies (1ms)
Strategy: local->heuristic (fallback)
Subtasks: 1
PASS prompt_split: local LLM strategy (with fallback) (60007ms)
Routing Guide (mcp_help)
Guide length: 2418 chars
PASS mcp_help: returns guide without task (0ms)
Recommendation: local_llm_run (formatting task)
PASS mcp_help: routes formatting task to local_llm_run (0ms)
Recommendation: codex_run (coding task)
PASS mcp_help: routes coding task to codex_run (0ms)
Memory Search via SSH (openclaw_memory_search)
Query: "trading", Results: 5
PASS openclaw_memory_search: finds existing notes (208ms)
-----------------------------------------------------------
11 passed, 0 failed, 0 skipped
-----------------------------------------------------------自行运行测试:
npx tsx tests/integration.test.ts先决条件:已配置 .env,本地 LLM 服务器正在运行,OpenClaw 服务器可通过 SSH 访问。
基准测试
参见 BENCHMARKS.md 获取完整的基准测试套件、方法论和社区贡献指南。
参考硬件
组件 | 规格 |
CPU | AMD Threadripper 3960X(24 核 / 48 线程) |
GPU | AMD Radeon RX 9070 XT Elite(16 GB GDDR6) |
RAM | 128 GB DDR4 |
OS | Windows 11 Pro |
运行时 | LM Studio + Vulkan( |
本地 LLM 推理(LM Studio、Vulkan GPU、--gpu max)
3 次运行的中位数,max_tokens=512。任务:分类(1 词情感)、提取(JSON)、推理(算术)、代码(Python 函数)。Vulkan 是 AMD RX 9070 XT 的推荐运行时(在 5 个模型中胜过 ROCm 4 个)。
模型 | 参数 | 分类 | 提取 | 推理 | 代码 | 平均 tok/s |
Phi 4 Mini Reasoning | 3B | 2.6s | 1.9s | 4.7s | 4.8s | 106 |
Deepseek R1 0528 Qwen3 | 8B | 3.0s | 6.5s | 7.2s | 7.4s | 70 |
Qwen 3.5 9B | 9B | 6.2s | 4.0s | 8.4s | 7.2s | 48 |
Phi 4 Reasoning Plus | 15B | 0.4s | 9.7s | 3.5s | 9.9s | 40 |
GPT-OSS 20B | 20B | 0.6s | 0.6s | 0.6s | 1.9s | 63 |
GPU 速度对比 vs CPU(Deepseek R1 8B,Vulkan): 分类快 7.2 倍,提取快 3.8 倍。
子代理对比(相同任务,不同后端)
Agent | 后端 | 平均延迟 | 费用 | 备注 |
local_llm_run | GPT-OSS 20B(Vulkan GPU) | 1.0s | 免费 | 比 Codex 快 4 倍,比 Claude 快 6 倍 |
codex_run | OpenAI Codex CLI | 4.1s | 按使用付费 | 最适合代码任务 |
claude_run | Claude Sonnet 4.6 | 6.3s(恢复会话需 5-10s) | 按使用付费 | 最适合复杂推理 |
gemini_run | Gemini 2.5 Flash | 34.0s | 免费套餐 | CLI 启动开销,最适合长上下文 |
服务延迟(system_status)
服务 | 延迟 | 备注 |
Home Assistant(REST API) | 48–84 ms | 本地网络,直接 HTTP |
OpenClaw SSH | 273–299 ms | LAN SSH + 命令执行 |
本地 LLM(模型列表) | 19–38 ms | LM Studio localhost API |
Claude CLI(版本检查) | 472–478 ms | CLI 启动开销 |
Codex CLI(版本检查) | 131–136 ms | CLI 启动开销 |
Gemini CLI(版本检查) | 4,700–4,900 ms | CLI 启动 + 身份验证 |
prompt_split 准确率(启发式策略)
指标 | 结果 |
通过率 | 10/10(100%) |
任务数量准确率 | 10/10(100%) |
平均代理匹配度 | 100% |
延迟 | <1ms(无 LLM 调用) |
v0.8.0+ 的改进:词边界正则匹配、多代理提示的逗号子句拆分、按工具的路由规则、openclaw_notify 路由。完整测试语料请参阅 BENCHMARKS.md。
想贡献自己硬件上的基准结果?请看看 BENCHMARKS.md。
要求
Node.js 18 或更高版本
OpenSSH 客户端(Windows 10+、macOS、Linux 内置)
一个已运行、可通过 SSH 访问的 OpenClaw 实例
一个拥有长期访问令牌的 Home Assistant 实例
可选(用于子代理):
claude_run:npm install -g @anthropic-ai/claude-code,然后运行一次claude完成身份验证gemini_run:npm install -g @google/gemini-cli,然后执行gemini auth logincodex_run:npm install -g @openai/codex,然后执行codex loginlocal_llm_run:任何兼容 OpenAI API 的本地服务器:
安装
全局安装:
npm install -g @elvatis_com/elvatis-mcp或者直接通过 npx 使用(无需安装):
npx @elvatis_com/elvatis-mcp每个版本都由 GitHub Actions 从推送的 v* 标签构建并发布,并且基于该标签所指向的确定提交。
SECURITY.md 说明了这种构建方式能保证什么、不能保证什么,以及如何验证你已安装的版本。
CHANGELOG.md 记录了每个版本包含的内容。
在哪里可以使用它?
elvatis-mcp 适用于所有 MCP 兼容客户端。每个客户端都使用自己的配置文件。
客户端 | 传输方式 | 配置文件 |
Claude Desktop / Cowork(Windows MSIX) | stdio |
|
Claude Desktop / Cowork(macOS) | stdio |
|
Claude Code(全局,所有项目) | stdio |
|
Claude Code(仅当前项目) | stdio | 仓库根目录下的 |
Cursor / Windsurf / 其他 | stdio 或 HTTP | 参见应用文档 |
Claude Desktop 和 Cowork 共享同一个配置文件。Claude Code 是一个独立的系统。
配置
1. 创建你的 .env 文件
cp .env.example .env# Required
HA_URL=http://your-home-assistant:8123
HA_TOKEN=your_long_lived_ha_token
SSH_HOST=your-openclaw-server-ip
SSH_USER=your-ssh-username
SSH_KEY_PATH=~/.ssh/your_key
# Optional: Local LLM
LOCAL_LLM_ENDPOINT=http://localhost:1234/v1 # LM Studio default
LOCAL_LLM_MODEL=deepseek-r1-0528-qwen3-8b # or omit to use loaded model
# Optional: Sub-agent models
GEMINI_MODEL=gemini-2.5-flash
CODEX_MODEL=o32. 配置 MCP 客户端
Claude Desktop(macOS)
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"elvatis-mcp": {
"command": "npx",
"args": ["-y", "@elvatis_com/elvatis-mcp"],
"env": {
"HA_URL": "http://your-home-assistant:8123",
"HA_TOKEN": "your_token",
"SSH_HOST": "your-openclaw-server-ip",
"SSH_USER": "your-username",
"SSH_KEY_PATH": "/Users/your-username/.ssh/your_key"
}
}
}
}Claude Desktop(Windows MSIX)
打开此文件(如不存在则创建):
%LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.json{
"mcpServers": {
"elvatis-mcp": {
"command": "C:\\Program Files\\nodejs\\node.exe",
"args": ["C:\\path\\to\\elvatis-mcp\\dist\\index.js"],
"env": {
"HA_URL": "http://your-home-assistant:8123",
"HA_TOKEN": "your_token",
"SSH_HOST": "your-openclaw-server-ip",
"SSH_USER": "your-username",
"SSH_KEY_PATH": "C:\\Users\\your-username\\.ssh\\your_key"
}
}
}
}在 Windows 上始终使用完整的绝对路径。MSIX 沙盒不会解析
~或相对路径。
Claude Code(当前项目)
将 .mcp.json.example 复制为 .mcp.json(已加入 gitignore,永远不会提交),然后填入你的路径和 SSH 详细信息。接着将 .env.example 复制为 .env 来补齐其余配置。
Claude Code(全局)
claude mcp add --scope user elvatis-mcp -- node /path/to/elvatis-mcp/dist/index.jsHTTP 传输(远程客户端)
MCP_TRANSPORT=http MCP_HTTP_PORT=3333 npx @elvatis_com/elvatis-mcp将你的客户端连接到 http://your-server:3333/mcp。
环境变量
必填
变量 | 描述 |
| Home Assistant 的基础 URL,例如 |
| OpenClaw 服务器的主机名或 IP |
可选
变量 | 默认值 | 描述 |
| -- | Home Assistant 长期访问令牌 |
|
| SSH 端口 |
|
| SSH 用户名 |
|
| SSH 私钥路径 |
|
| OpenClaw Gateway URL |
| -- | 可选的 Gateway API 令牌 |
| -- | 供 |
|
| 供 |
| -- | 供 |
|
| 本地 LLM 服务器地址(LM Studio 默认) |
| -- | 默认本地模型(留空则使用服务器已加载的模型) |
|
| 传输模式: |
|
| HTTP 端口 |
| -- | 设为 |
|
| 持久化使用数据的目录(速率限制器) |
| -- | JSON 字符串,包含按 agent 限制覆盖速率 |
本地 LLM 设置
elvatis-mcp 可与任意兼容 OpenAI API 的本地服务器配合使用。这里有三种常用选择:
LM Studio(推荐桌面端)
从 lmstudio.ai 下载
加载一个模型(例如 Deepseek R1 Qwen3 8B、Phi 4 Mini)
点击侧边栏中的“Local Server”并启用它
服务器运行在
http://localhost:1234/v1(默认地址)
Ollama
ollama serve # starts server on port 11434
ollama run llama3.2 # downloads and loads model在 .env 中设置 LOCAL_LLM_ENDPOINT=http://localhost:11434/v1。
llama.cpp
llama-server -m model.gguf --port 8080在 .env 中设置 LOCAL_LLM_ENDPOINT=http://localhost:8080/v1。
按任务推荐的模型
Model | 大小 | 最适合 |
Phi 4 Mini | 3B | 快速分类、格式化、提取 |
Deepseek R1 Qwen3 | 8B | 推理、分析、提示拆分 |
Phi 4 Reasoning Plus | 15B | 高度复杂的推理以及高质量输出 |
GPT-OSS | 20B | 通用任务、更长响应 |
推理模型(Deepseek R1、Phi 4 Reasoning)会将其思维链包裹在
thinking标签中。elvatis-mcp 会自动移除这些标签,给你干净简洁的响应。
SSH 设置
cron工具、memory工具和 OpenClaw 工具通过 SSH 与你的服务器通信。
# Verify connectivity
ssh -i ~/.ssh/your_key your-username@your-server "openclaw --version"
# Optional: SSH tunnel for OpenClaw WebSocket gateway
ssh -i ~/.ssh/your_key -L 18789:127.0.0.1:18789 -N your-username@your-server在 Windows 上,elvatis-mcp 会自动将 SSH 二进制解析为 C:\Windows\System32\OpenSSH\ssh.exe,并在临时连接失败时重试。设置 SSH_DEBUG=1 可查看详细输出。
/mcp-help 斜杠命令
在 Claude Code 中,/mcp-help 斜杠命令会将完整的 34 工具路由指南以格式化输出显示:
/mcp-help # full guide
/mcp-help openclaw_status # help for a specific tool
/mcp-help analyze this trading strategy for risk # routing recommendation速率限制
云量子代理(claude_run、codex_run、gemini_run)被限速以避免出现不可控的成本。默认限制:
Agent | /分钟 | /小时 | /天 | 估算成本/调用 |
| 5 | 30 | 200 | $0.03 |
| 5 | 30 | 200 | $0.02 |
| 10 | 60 | 500 | $0.01 |
本地代理(local_llm_run、home_*、openclaw_*)不受限。
使用数据持久化到 ~/.elvatis-mcp/usage.json。可通过 RATE_LIMITS 环境变量覆盖限制:
RATE_LIMITS='{"claude_run":{"perMinute":3,"perDay":100}}'开发
git clone https://github.com/elvatis/elvatis-mcp
cd elvatis-mcp
npm install # builds automatically via prepare script
cp .env.example .env # fill in your values
node dist/index.js # starts in stdio mode, waits for MCP client构建并监听模式:
npm run dev运行集成测试:
npx tsx tests/integration.test.ts项目结构
src/
index.ts MCP server entry, tool registration, transport, dashboard
config.ts Environment variable configuration
dashboard.ts Status dashboard HTML renderer
ssh.ts SSH exec helper (Windows/macOS/Linux)
spawn.ts Local process spawner for CLI sub-agents (supports stdin piping)
session-registry.ts CLI session registry: persist/resume Claude, Gemini, Codex sessions
tools/
home.ts Home Assistant: light, climate, scene, vacuum, sensors
home-automation.ts HA automations: list, trigger, enable, disable
memory.ts Daily memory log: write, read, search (SSH)
cron.ts OpenClaw cron: list, run, status (SSH)
cron-manage.ts OpenClaw cron: create, edit, delete, history (SSH)
openclaw.ts OpenClaw agent orchestration (SSH)
openclaw-logs.ts OpenClaw server log viewer (SSH)
notify.ts WhatsApp/Telegram notifications via OpenClaw
claude.ts Claude sub-agent (local CLI, for non-Claude clients)
gemini.ts Google Gemini sub-agent (local CLI)
codex.ts OpenAI Codex sub-agent (local CLI)
local-llm.ts Local LLM sub-agent (OpenAI-compatible HTTP)
local-llm-models.ts LM Studio model management (list/load/unload)
llama-server.ts llama.cpp server manager (start/stop/configure)
file-transfer.ts File upload/download via SSH
system-status.ts Unified health check across all services
splitter.ts Smart prompt splitter (multi-strategy)
split-execute.ts Plan executor with agent dispatch and rate limiting
help.ts Routing guide and task recommender
routing-rules.ts Shared routing rules and keyword matching
rate-limiter.ts Rate limiting + cost tracking for cloud sub-agents
tests/
unit.test.ts 42 unit tests (no external services needed)
integration.test.ts Live integration tests许可证
Apache-2.0 -- Copyright 2026 Elvatis
Available Tools
37 toolsclaude_runA
Send a prompt to Claude via the local Claude Code CLI. Use this when the MCP client is NOT Claude (e.g. Cursor, Windsurf, Zed) or for cross-checking results from other AI backends. Uses cached Anthropic auth.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Claude model to use, e.g. "claude-sonnet-4-6", "claude-opus-4-6", "claude-haiku-4-5". Omit to use the default model. | |
| prompt | Yes | Prompt or question to send to Claude. | |
| timeout_seconds | No | Max seconds to wait for a response. | |
| working_directory | No | Ignored for Claude (always runs from homedir to prevent agentic mode). Kept for API compatibility. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses caching of Anthropic auth and notes that working_directory is ignored for safety. However, it does not describe output format, error handling, or rate limits, which are gaps for a tool with no annotations.
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?
Three sentences, no redundancy. First sentence states purpose, second gives usage context, third mentions auth. Every sentence earns its place. Front-loaded with the most critical 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?
The description adequately covers purpose, usage context, auth, and one parameter note, but given no output schema and no annotations, it is missing output format, error handling, and model availability details. Adequate but 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?
All 4 parameters have schema descriptions (100% coverage). The description adds value beyond the schema by explaining the authentication caching, the default timeout (60s), and that working_directory is ignored for Claude. This extra context helps the agent use parameters correctly.
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 verb 'Send' and resource 'prompt to Claude via local Claude Code CLI'. It explicitly distinguishes from sibling tools like codex_run, gemini_run, and local_llm_run by specifying when to use: when the MCP client is not Claude or for cross-checking results.
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 provides explicit usage guidance: 'Use this when the MCP client is NOT Claude (e.g. Cursor, Windsurf, Zed) or for cross-checking results from other AI backends.' It lacks explicit when-not-to-use but the positive cases are clear and imply alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
codex_runA
Send a task to OpenAI Codex via the local codex CLI. Specializes in coding tasks, file operations, and technical analysis. Uses cached OpenAI auth - no API key required.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | OpenAI model to use, e.g. "o3", "gpt-5-codex". Omit to use the configured default (CODEX_MODEL env var or Codex default). | |
| prompt | Yes | Task or question to send to the Codex AI agent. Works best for coding tasks, file operations, and technical analysis. | |
| sandbox | No | "full-auto": workspace-write sandbox, no approval prompts (default, recommended). "dangerous": bypass all approvals and sandbox - only use in isolated environments. | full-auto |
| timeout_seconds | No | Max seconds to wait. Codex tasks can take longer than Gemini - 120s default. | |
| working_directory | No | Working directory for the Codex process. Set this to the project root so Codex can read and write local files. Defaults to the user home directory. |
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 the tool uses cached OpenAI auth and requires no API key, which is a useful behavioral detail. It also mentions that tasks can take longer than Gemini, setting expectations. However, it does not discuss side effects such as file modifications (sandbox behavior) or potential irreversible actions, but the sandbox parameter partially covers that. Since the sandbox parameter mentions approvals and workspace-write, the description provides decent transparency without contradicting anything.
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 efficient and front-loaded: it opens with the core purpose, then adds key differentiators (specialization and auth) in a compact form. The sentence about cached auth is useful, but the description could be slightly more structured by separating general purpose from usage notes. Overall, it is concise and clearly structured without wasted words.
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 moderate complexity (5 params, one enum, no output schema), and the description plus schema provide enough for an agent to call it correctly. It covers the key operational aspects: what it does, how to specify the model, sandbox options, timeout, and working directory. There is no explicit mention of return format, but given no output schema, that is a minor gap. The description is sufficiently complete for a coding-task tool.
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%, so the schema already documents all parameters thoroughly, including the sandbox enum and the timeout's purpose. The description adds a bit of context by mentioning that Codex tasks can take longer than Gemini, which explains the timeout default, and that working_directory should be set to the project root so Codex can read/write files. This adds marginal value beyond the schema, so a 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 verb 'Send' and the resource 'task to OpenAI Codex via the local codex CLI', and specifies the specialization in coding tasks, file operations, and technical analysis. It distinguishes from siblings like gemini_run, claude_run, and local_llm_run by naming the specific platform (Codex) and the local CLI mechanism.
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 that this tool is for coding tasks and specifically mentions it can take longer than Gemini, which hints at when to use it relative to siblings with faster models. However, there is no explicit guidance on when NOT to use it (e.g., for non-coding tasks) or direct comparison with alternatives like gemini_run or claude_run. The specializations are mentioned but not framed as usage conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
file_transferA
Upload, download, or list files on the OpenClaw server via SSH. Supports text and binary files up to 10MB. "download" without local_path returns file content directly.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | "upload": local -> server, "download": server -> local, "list": list files in a server directory. | |
| local_path | No | Path on the local machine. Required for upload (source) and download (destination). For download, if omitted, file content is returned in the response instead of saved to disk. | |
| remote_path | Yes | Path on the OpenClaw server (e.g. "~/scripts/backup.sh" or "~/.openclaw/workspace/trading/"). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full behavioral transparency burden. It discloses supported file types, size limit, and special download behavior, but does not mention authentication requirements, error handling, or what happens if a file already exists. More detail would improve 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?
The description is concise: two sentences efficiently cover purpose, constraints, and a special use case. Every word adds value with no redundancy or fluff.
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 (3 parameters, simple enum action, no output schema), the description is fairly complete. It covers actions, remote path, local path optionality, file types, and size. It could mention that 'list' returns a directory listing, but that is implied by the enum.
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 already describes all three parameters with 100% coverage. The description adds value by explaining the special case for download without local_path (returns content) and the size limit, which are not in the schema. This enhances understanding beyond the schema alone.
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: to upload, download, or list files on an OpenClaw server via SSH. It specifies supported file types (text and binary), size limit (10MB), and a special behavior for download without local_path. This clearly distinguishes it from sibling tools which are mostly for running code or home automation.
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 provides clear context for when to use the tool (SSH file transfers) and gives a specific guideline for 'download' without local_path. However, it does not explicitly mention when not to use it or suggest alternative tools, though the sibling tools are quite different.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gemini_runA
Send a prompt to Google Gemini via the local gemini CLI. Fast, direct LLM call with no OpenClaw overhead. Uses cached Google auth - no API key required.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Gemini model to use, e.g. "gemini-2.5-pro" or "gemini-2.5-flash". Omit to use the configured default (GEMINI_MODEL env var). | |
| prompt | Yes | Prompt or question to send to the Gemini AI model. | |
| timeout_seconds | No | Max seconds to wait for a response. | |
| working_directory | No | Working directory for the Gemini process. Set this to the project root so Gemini can read local files. Defaults to the user home directory. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses the execution mechanism ('local gemini CLI'), authentication behavior ('cached Google auth'), and the lack of an API key requirement. But it does not mention failure modes, the dependency on the CLI being installed, potential side effects from working_directory, or what the response contains.
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?
Three short sentences with the core action front-loaded and each additional sentence conveying a distinct non-obvious fact (speed/no overhead, cached auth/no API key). It is slightly redundant because 'Fast, direct LLM call with no OpenClaw overhead' partially repeats the implications of 'via the local gemini CLI,' but overall it is tight and efficient.
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 4-parameter tool with full schema coverage, the description covers provider, execution method, and auth context. However, because there is no output schema, the description should have mentioned what the tool returns or how errors surface, and it remains silent on exit/error behavior. This is adequate but not 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 description coverage is 100%, so the input schema already documents all four parameters with sufficient detail. The description adds no parameter-specific meaning beyond restating that a prompt is sent, so the baseline score of 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 opens with a specific verb and resource: 'Send a prompt to Google Gemini via the local gemini CLI,' which clearly differentiates it from sibling LLM tools like codex_run, claude_run, and local_llm_run. The extra traits, 'no OpenClaw overhead' and 'no API key required,' further distinguish this as a lightweight, direct Gemini call.
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 context with 'Fast, direct LLM call with no OpenClaw overhead' and 'Uses cached Google auth - no API key required,' suggesting it is for minimal-overhead Gemini calls or when API keys are not available. However, it does not explicitly state when to use this tool instead of siblings like local_llm_run or codex_run, nor does it mention any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
home_automationB
List, trigger, enable, or disable Home Assistant automations. "list" shows all automations with their state and last trigger time.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: "list" shows all automations, "trigger" fires one immediately, "enable"/"disable" toggles an automation on or off. | |
| entity_id | No | Automation entity ID (e.g. "automation.lights_off_at_night"). Required for trigger/enable/disable. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose side effects and constraints. It only details the output of 'list' (state and last trigger time). For trigger, enable, disable, it does not state whether actions are immediate, reversible, or require specific permissions. This lack of transparency for mutation operations is a significant gap.
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, front-loaded with the tool's purpose. The second sentence could be integrated into the first, but overall it is efficient. No unnecessary words.
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 multi-action nature, no output schema, and two parameters, the description is incomplete. It does not describe the effect or output of trigger, enable, disable, nor any prerequisites or error conditions. The agent lacks full context for effective invocation.
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%, so baseline is 3. The description adds meaning for the 'action' parameter by explaining the 'list' output. However, it does not elaborate on 'entity_id' beyond its schema description, nor does it clarify how the action affects entity_id for non-list operations.
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 identifies the tool as managing Home Assistant automations with actions: list, trigger, enable, disable. It distinguishes from sibling tools like home_light or home_climate by focusing on automations. However, it only elaborates on the 'list' action, leaving other actions partially defined.
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 the tool is for automation management but provides no explicit guidance on when to use it vs alternatives like home_get_state or home_scene. No exclusions or conditions are stated, so usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
home_climateA
Control Tado thermostats: set target temperature or HVAC mode (heat/auto/off)
| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | Yes | Climate entity, e.g. climate.wohnzimmer | |
| hvac_mode | No | HVAC mode | |
| temperature | No | Target temperature in °C |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the tool controls (mutates) settings but does not mention side effects, permanence, authentication needs, or other behavioral traits.
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 (13 words) that is front-loaded with key information. Every word adds value; no unnecessary content.
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 simple tool (3 parameters, no output schema), the description is adequate for basic usage. However, it omits context like whether authentication is required, what happens on failure, or how the tool integrates with the broader home environment.
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%, so the schema already documents all parameters. The description reinforces the purpose of parameters (e.g., 'target temperature') but adds limited new meaning. 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 verb 'Control', the specific resource 'Tado thermostats', and the actions 'set target temperature or HVAC mode (heat/auto/off)'. It effectively distinguishes from sibling tools like home_light or home_vacuum.
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 thermostat control but provides no explicit guidance on when to use this tool versus alternatives like home_automation, nor does it mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
home_get_stateA
Get the current state of a Home Assistant entity (light, climate, sensor, switch, vacuum, media_player, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | Yes | Entity ID, e.g. light.wohnzimmer or climate.wohnzimmer |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It indicates a read-only operation but does not disclose any additional behavioral traits such as authentication needs, error handling, or 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, concise sentence that is front-loaded and contains no unnecessary 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 read operation with one parameter and no output schema, the description is reasonably complete. It lists entity types, but could hint at the return format (JSON state object).
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% with the entity_id parameter clearly described. The description does not add significant meaning beyond what the schema already provides, thus baseline score of 3.
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 verb 'Get' and the resource 'current state of a Home Assistant entity', with a list of example entity types. This distinguishes it from sibling tools like home_light or home_climate which are entity-specific.
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 this tool is for generic state retrieval, but it does not explicitly state when to use it versus the specific sibling tools (e.g., home_light). No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
home_lightB
Control a light: turn on/off/toggle, set brightness (0-100%), color temperature, or RGB color
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| entity_id | Yes | Light entity ID, e.g. light.wohnzimmer | |
| rgb_color | No | RGB color as [r, g, b] | |
| brightness_pct | No | Brightness in percent (0-100) | |
| color_temp_kelvin | No | Color temperature in Kelvin (2000-6500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It indicates mutation by 'control' but omits side effects, error handling (e.g., setting conflicting parameters like RGB and color temperature), idempotency, or prerequisites (device availability, permissions).
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?
A single concise sentence front-loads the core purpose and enumerates key capabilities. No redundancy or unnecessary words.
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?
Despite good parameter coverage, the description fails to mention the required entity_id parameter or explain return behavior (no output schema). It does not address combinations of parameters or device-specific constraints, leaving gaps 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 80% (4 of 5 params described). The description maps actions and parameters (e.g., 'color temperature' to color_temp_kelvin) but adds minimal meaning beyond the schema's own descriptions. The entity_id parameter is not mentioned in the description, relying on the schema.
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 controls a light with specific operations (on/off/toggle, brightness, color temperature, RGB). It differentiates from sibling tools like home_climate or home_vacuum by naming the exact capability.
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 lists operations but does not explicitly state when to use this tool over alternatives like home_get_state (reading state) or home_scene (preset scenes). The context of sibling tools implies light-specific control, but no exclusionary guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
home_sceneA
Activate a Hue scene in a room (wohnzimmer, flur, kuche, schlafzimmer, home)
| Name | Required | Description | Default |
|---|---|---|---|
| room | Yes | Room name | |
| scene | Yes | Scene name, e.g. entspannen, konzentrieren, lesen, nachtlicht, hell, gedimmt |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states 'Activate' which implies mutation, but it does not disclose side effects, reversibility, or any prerequisites (e.g., Hue bridge). Lacks sufficient detail for a mutating tool.
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?
Single sentence with no wasted words. Room list is parenthetically appended, making it efficient while providing essential context.
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 two parameters and no output schema, the description covers basic functionality. However, it lacks usage guidelines and behavioral transparency, leaving the agent with incomplete context for correct invocation among siblings.
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%, so the schema already documents both parameters. The description repeats the room enum values and gives scene examples that are also in the schema description. It adds marginal value beyond the schema, meriting the baseline score of 3.
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?
Description clearly states verb 'Activate' and resource 'Hue scene in a room', and explicitly lists the valid room names (enum values), distinguishing it from sibling tools like home_light which target individual lights.
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?
Usage is implied (activate a scene), but there is no explicit guidance on when to use this tool versus alternatives such as home_light or home_get_state. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
home_sensorsA
Read all environmental sensors: temperature, humidity, CO2 for all rooms plus outside temperature
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read frequency, caching, permission requirements, or side effects. For a data-reading tool, basic transparency 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?
Single sentence, no redundant words, front-loaded with verb and resource. Efficient and to the point.
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?
No output schema exists, but the description adequately lists what sensors are read. Could mention if data is current or historic, but for a simple read-all tool it is sufficient.
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 has no parameters (100% coverage by default). The description adds meaning by listing the sensor types included, which is useful context beyond the empty schema.
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 verb 'Read' and specifies the resource 'all environmental sensors' with explicit sensor types (temperature, humidity, CO2, outside temperature). It distinguishes from sibling tools like home_climate and home_get_state.
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. Sibling tools like home_climate or home_automation might overlap, but the description provides no context for choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
home_vacuumA
Control the Roborock vacuum: start full clean, stop, return to dock, or get status
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description alone must disclose behavioral traits. It only lists actions without explaining side effects, prerequisites, or state implications (e.g., what happens if already cleaning).
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 that front-loads the purpose and efficiently lists all actions, with no extraneous words.
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 1-parameter tool with no output schema, the description covers the main purpose and each action sufficiently, though it omits any state or prerequisite details.
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 description adds meaning beyond the enum by clarifying 'start' as 'start full clean' and naming the other actions, which helps an agent understand each option's purpose despite 0% schema description coverage.
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 controls a Roborock vacuum and lists specific actions (start, stop, return to dock, get status), which distinguishes it from sibling tools like home_light or home_climate.
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; it simply describes what the tool does without any when-to-use or when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
llama_serverA
Manage a local llama.cpp server: start with specific model, cache type (turbo2/turbo3/turbo4 for TurboQuant), GPU layers, and context size. Runs alongside LM Studio on a different port. Use "status" to check, "stop" to kill. Once started, use local_llm_run with the endpoint to query it.
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | Port to run the server on (default: 8082, avoids conflict with LM Studio on 1234). | |
| action | Yes | "start" launches a llama-server process, "stop" kills it, "status" shows if running. | |
| extra_args | No | Additional CLI arguments to pass to llama-server (e.g. ["--threads", "8"]). | |
| gpu_layers | No | Number of layers to offload to GPU (0 = CPU only). Use -1 for all layers. | |
| model_path | No | Path to GGUF model file. Required for "start". | |
| cache_type_k | No | KV cache type for keys. Options: q8_0, q4_0, f16, turbo2, turbo3, turbo4 (TurboQuant fork). Default: f16. | |
| cache_type_v | No | KV cache type for values. Same options as cache_type_k. Asymmetric config (e.g. q8_0 keys + turbo4 values) often gives best results. | |
| context_size | No | Context window size in tokens (default: 4096). | |
| flash_attention | No | Enable flash attention (-fa). Recommended for long contexts. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description discloses basic behaviors: starting a server, using status/stop, and cache types. However, it does not detail side effects, error handling, or prerequisites for starting, which would improve 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?
The description is two sentences, front-loaded with the core purpose, and each sentence provides essential information without 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?
The description covers the main workflow (start, stop, status) and key parameters, and references sibling tools. However, it lacks details on error scenarios or prerequisites like requiring model_path for start, but overall it is fairly complete for the tool's complexity.
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%, providing a baseline of 3. The description adds value by explaining cache types in the context of TurboQuant and advising that asymmetric configuration often yields best results for cache_type_v.
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 manages a local llama.cpp server with start, stop, and status actions. It distinguishes from siblings like local_llm_run by indicating that once started, local_llm_run is used for querying.
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 provides clear context on when to use the tool (start with specific model, cache type, etc.) and mentions that it runs alongside LM Studio on a different port. It also directs to local_llm_run for queries, but lacks explicit when-not-to-use or alternative options.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
local_llm_modelsA
List, load, or unload models on the local LLM server. "list" shows available models. "load"/"unload" switches models in LM Studio without opening the GUI (LM Studio only).
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Model identifier for load/unload (e.g. "microsoft/phi-4-mini-reasoning"). Required for load/unload. | |
| action | No | Action: "list" shows available models, "load" loads a model, "unload" unloads a model. Load/unload requires LM Studio (not supported by all servers). | list |
| endpoint | No | Override the local LLM endpoint URL. Omit to use LOCAL_LLM_ENDPOINT env var or default. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that load/unload only works with LM Studio and switches models without GUI, which is useful behavioral context. However, it lacks details on side effects (e.g., memory, time to load), error handling, or whether unloading affects running inference. As annotations are absent, the description carries the full burden and is incomplete.
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 only two sentences, front-loading the core purpose and then clarifying the LM Studio constraint. Every sentence contributes necessary information without redundancy or fluff. Very efficient.
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 description covers the main actions but leaves gaps: it does not describe the return format for 'list' (e.g., JSON array), nor what happens on success/failure for load/unload. With no output schema and three actions, more detail on return values and state changes would improve completeness.
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 are described in the schema (100% coverage). The description adds value by explaining the action enum values ('list' shows models, 'load' loads a model) and providing an example model identifier ('microsoft/phi-4-mini-reasoning'). This supplements the schema beyond redundancy.
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 verb 'List, load, or unload' and the resource 'models on the local LLM server.' It distinguishes the tool from siblings like 'local_llm_run' (which handles inference) and 'llama_server' by specifying model management. The three actions are explicitly listed, making the purpose unambiguous.
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 provides clear context for each action: list shows available models, load/unload switches models. It also notes that load/unload requires LM Studio, implying when not to use these actions. However, it does not explicitly compare to alternatives or give when-not-to-use advice beyond the LM Studio limitation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
local_llm_runA
Send a prompt to a local LLM (LM Studio, Ollama, llama.cpp, or any OpenAI-compatible server). Free, private, no API key needed. Best for simple tasks: classify, format, extract, rewrite, proofread. Set stream=true for token-by-token progress.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Model identifier as shown in LM Studio / Ollama (e.g. "deepseek-r1-0528-qwen3-8b", "phi-4-mini"). Omit to use the server's currently loaded model or LOCAL_LLM_MODEL env var. | |
| prompt | Yes | Prompt or question to send to the local LLM. | |
| stream | No | Stream response token-by-token via MCP progress notifications. The client sees partial content in real time. Final result is still returned as a complete response. | |
| system | No | Optional system message to set the LLM's behavior. | |
| endpoint | No | Override the local LLM endpoint URL (e.g. "http://localhost:11434/v1" for Ollama). Omit to use LOCAL_LLM_ENDPOINT env var or default (http://localhost:1234/v1 for LM Studio). | |
| max_tokens | No | Maximum tokens to generate. Default: server default. | |
| temperature | No | Sampling temperature (0 = deterministic, higher = more creative). Default: server default. | |
| timeout_seconds | No | Max seconds to wait for a response. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behavioral traits: the tool is free, private, requires no API key, and supports streaming via 'stream=true'. It does not mention potential side effects or prerequisites, but for a read-like operation this is adequate.
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 extremely concise—two sentences achieving high information density. The first sentence states purpose and key attributes; the second clarifies when to use and a streaming option. No wasted words.
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 medium complexity (8 parameters, no output schema), the description covers purpose, usage scope, and a key optional feature (streaming). It provides enough context for an agent to decide and invoke correctly, though lacking details on error handling or response format.
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%, so the baseline is 3. The description adds little beyond the schema, only reiterating the streaming hint and the default behavior for model/endpoint. No additional parameter context or examples are provided.
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 sends a prompt to a local LLM, explicitly listing supported backends (LM Studio, Ollama, etc.) and use cases (classify, format, extract, rewrite, proofread). It differentiates from siblings like claude_run, gemini_run, and llama_server by emphasizing 'Free, private, no API key needed' and 'Best for simple tasks.'
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 tells the agent this tool is 'Best for simple tasks' and lists specific task types, giving clear guidance on when to use it. However, it does not explicitly state when NOT to use it or suggest alternative tools for complex tasks, which would improve the score further.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp_helpA
List all available elvatis-mcp tools with a routing guide. Optionally provide a task description to get a specific recommendation for which sub-agent (openclaw_run, gemini_run, codex_run, local_llm_run) or tool to use.
| Name | Required | Description | Default |
|---|---|---|---|
| task | No | Optional: describe your task or question. If provided, returns a specific routing recommendation for which tool(s) to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not disclose whether the tool is read-only, any side effects, or how the recommendation is generated (e.g., LLM call). For a help tool, these are typically safe, but the description lacks explicit 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 sentences, front-loaded with purpose. No redundant words, efficient and clear.
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 a single optional parameter and no output schema, the description fully covers both modes of operation (list and recommend). No additional context is needed.
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% with a clear description for the 'task' parameter. The description adds context by mentioning sub-agent names (openclaw_run, gemini_run, etc.), which enriches the schema.
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 lists available tools and optionally provides a routing recommendation based on a task description. It differentiates itself from sibling tools which are specific execution agents.
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: list tools or get a recommendation by providing a task. It does not explicitly state when not to use or alternatives, but the context makes it clear this is an introspection tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openclaw_cron_createA
Create a new cron job on the OpenClaw server. Supports cron expressions ("0 9 * * *"), intervals ("every 30m"), and one-shot ("at 2026-04-01T14:00" or "+20m"). Optionally deliver results via WhatsApp/Telegram.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Job name (e.g. "daily-portfolio-check") | |
| model | No | Model override (e.g. "openai-codex/gpt-5.2", "google-gemini-cli/gemini-2.5-flash"). Omit to use the server default. | |
| target | No | Delivery target (phone number or chat ID). Only used with channel. | |
| channel | No | Delivery channel for results: "whatsapp", "telegram", "last". Omit for no delivery. | |
| message | Yes | The prompt/message the agent will execute on each run. | |
| disabled | No | Create the job in disabled state (default: false, job starts immediately). | |
| schedule | Yes | When to run. Accepts: cron expression: "0 9 * * *" (daily at 9am) interval: "every 30m", "every 6h" one-shot: "at 2026-04-01T14:00:00" or "+20m" (in 20 minutes) | |
| timezone | No | IANA timezone for cron expressions (e.g. "Europe/Berlin"). Omit for server default. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses schedule varieties, optional delivery, and the disabled state parameter. However, it does not mention side effects (e.g., overwriting existing jobs), authentication needs, or whether creation is synchronous. Adequate but not thorough.
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 extremely concise: two sentences covering core functionality, schedule types, and delivery option. No extraneous words. Efficient and front-loaded.
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 output schema, the description should hint at return values (e.g., job ID) or confirmation. It does not. Also omits behavior on duplicate names. But it covers key aspects: parameters, schedule syntax, and delivery. Adequate but with gaps for a creation tool.
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% with each parameter described. The description adds context on schedule formats and delivery channels, but this largely echoes the parameter descriptions. Does not add meaning beyond schema; 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 the verb (create) and resource (cron job on OpenClaw server). It distinguishes from sibling cron tools (edit, delete, list) by focusing on creation. Mentions supported schedule types and optional delivery, leaving no ambiguity about the tool's function.
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 when to use (scheduling tasks) but does not explicitly contrast with siblings like openclaw_cron_edit or openclaw_cron_delete. No guidance on when NOT to use or prerequisites (e.g., server access). Context is clear but incomplete for a new agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openclaw_cron_deleteB
Delete a cron job by its ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job ID (UUID) to delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present. The description does not disclose any behavioral traits (e.g., permanence, authorization needs) beyond the basic fact of deletion.
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?
A single sentence of 7 words, perfectly concise with no extraneous 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 simple interface (1 param, no output schema), the description minimally states the function but offers no context about effects, errors, or irreversibility.
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%, so the description adds no new meaning beyond what is already in the parameter description ('Job ID (UUID) to delete').
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 verb 'Delete' and the resource 'cron job by its ID', effectively distinguishing it from sibling tools like create, edit, and list.
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, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openclaw_cron_editB
Edit an existing cron job. Change its name, message, schedule, or model.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job ID (UUID) to edit. | |
| name | No | New job name. | |
| model | No | New model override. | |
| message | No | New agent message. | |
| schedule | No | New schedule (cron expression, interval, or one-shot). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full burden. It fails to disclose whether editing is a full replacement or partial merge, what happens to unspecified fields, required permissions, or side effects. This is insufficient for a mutation tool.
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, efficient sentence with zero wasted words. It is front-loaded and easy to parse.
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 5 parameters and no output schema, the description is somewhat incomplete. It doesn't explain the editing semantics (merge vs replace), schedule format validation, or confirm if the id must exist. Still minimally adequate.
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%, so the schema fully documents each parameter. The description mentions the editable fields but adds no extra meaning (e.g., format constraints, default behavior). 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 the tool edits an existing cron job and lists the editable fields (name, message, schedule, model). It uses a specific verb (edit) and resource (cron job), and implicitly distinguishes from sibling tools like openclaw_cron_create and openclaw_cron_delete.
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 provides no guidance on when to use this tool versus alternatives, no prerequisites, no when-not scenarios. It only states what the tool does, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openclaw_cron_historyB
Show recent execution history for cron jobs. Optionally filter by job ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job ID (UUID) to show history for. Use openclaw_cron_list to find IDs. | |
| lines | No | Number of recent runs to show. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It says 'recent execution history' but does not clarify what 'recent' means, nor does it mention ordering, pagination, or limitations. The lines parameter max is 100 but not stated. Partial transparency is provided.
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 short sentence, which is concise. However, it could be slightly more informative without being wasteful. It is well-structured and front-loaded.
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 output schema and no annotations, the description should explain the return format (e.g., list of runs with timestamps). It does not. Also lacks permission or scope details. Incomplete for a history tool.
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 covers 100% of parameters with descriptions. The tool description adds no additional meaning beyond what is already in the schema. 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 verb 'Show' and the resource 'recent execution history for cron jobs'. It mentions optional filtering by job ID, and the tool is distinct from sibling tools like openclaw_cron_status and openclaw_cron_list.
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 does not provide explicit guidance on when to use this tool versus alternatives. The parameter description for id suggests using openclaw_cron_list to find IDs, but there is no discussion of when not to use or other context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openclaw_cron_listB
List all scheduled OpenClaw cron jobs
| Name | Required | Description | Default |
|---|---|---|---|
| include_disabled | No | Include disabled jobs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It only says 'list all' but doesn't disclose return format, default behavior (e.g., whether disabled jobs are included by default), or any 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?
Extremely concise single sentence, front-loaded with action and resource. Could be slightly more informative without sacrificing brevity.
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?
No output schema, yet description doesn't describe what the list returns (e.g., job names, schedules). With many sibling cron tools, more context on scope (e.g., this lists only, not status) would help.
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% for the single parameter, so the description doesn't need to add much. However, it doesn't reference 'include_disabled' at all, missing an opportunity to clarify default behavior beyond schema.
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 verb 'list' and the resource 'scheduled OpenClaw cron jobs', distinguishing it from siblings like openclaw_cron_create or openclaw_cron_delete.
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_cron_status or openclaw_cron_history), nor any prerequisites or context given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openclaw_cron_runA
Trigger an OpenClaw cron job immediately by its ID
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Cron job ID (UUID) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states 'trigger immediately' but provides no details about return values, side effects, error handling, permissions, or idempotency. This is insufficient for a mutation tool.
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, clear sentence with no wasted words. Every word contributes meaning.
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 parameter and no output schema, the description is minimal but lacks behavioral or error context. It is adequate but not comprehensive.
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% (job_id described as 'Cron job ID (UUID)'), and the description adds no additional meaning beyond 'by its ID'. 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 the action ('trigger immediately') and the resource ('OpenClaw cron job'), effectively distinguishing it from sibling tools like list, status, history, and create.
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 use for immediate execution, but offers no explicit guidance on when to use this tool versus alternatives like openclaw_cron_create or openclaw_cron_list, nor does it mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openclaw_cron_statusB
Get OpenClaw cron scheduler status and overview
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. While 'Get' implies a read operation, it does not explicitly state side effects, required permissions, or what 'status and overview' entails. The transparency is minimal.
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, concise and front-loaded. It is efficient but could be slightly expanded to include more detail without becoming verbose.
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 lack of output schema and annotations, the description is incomplete. It does not specify what information the status overview contains (e.g., scheduler health, running jobs, last run times), which is essential for an agent to understand 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 zero parameters with 100% schema coverage. Per guidelines, no parameters means a baseline of 4. The description does not add parameter info, which is acceptable since there are none.
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 verb 'Get' and the resource 'OpenClaw cron scheduler status and overview'. Among sibling tools like openclaw_cron_create, delete, and list, this tool is distinct as it provides a status overview, not specific operations.
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_cron_list or openclaw_cron_history. The description does not specify the context or prerequisites for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openclaw_deployA
Trigger deploy or rollback scripts on the OpenClaw server, or check the last deploy log. Scripts must exist at OPENCLAW_DEPLOY_SCRIPT_DIR (default: ~/deploy).
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | deploy: run deploy script, rollback: run rollback script, status: show last deploy log | |
| service | Yes | Service name to deploy, e.g. "api", "worker", "frontend" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that scripts are triggered and a log check is possible, and provides a prerequisite. However, it lacks details on behavior like whether deployment is synchronous, error handling, or rollback safety. Adequate but not thorough.
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 sentences efficiently convey purpose and a key prerequisite. Every word earns its place, no verbosity.
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 tool with two parameters and no output schema, the description covers basic purpose and a prerequisite. However, for a deployment tool, additional context (e.g., idempotency, concurrency) would be helpful to ensure correct usage. Adequate given simplicity.
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 descriptions of parameters are clear. The description adds context about the script directory, but does not enhance understanding of individual parameter values beyond the schema. 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 the verb 'Trigger' and resource 'OpenClaw server' with specific actions (deploy, rollback, status). It distinguishes itself from sibling tools like openclaw_cron_* or openclaw_logs by focusing on deploy scripts and log checking.
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 through the action enum and mentions a prerequisite (scripts must exist), but does not explicitly state when to use this tool vs alternatives like openclaw_run or openclaw_logs. No guidance on when not to use or how to choose between actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openclaw_logsA
View recent logs from the OpenClaw server: gateway logs, agent execution logs, or system journal. Supports line count and keyword filtering.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Custom log file path on the server (only used when source="custom"). | |
| lines | No | Number of log lines to return (default: 50). | |
| filter | No | Filter log lines by keyword (grep -i). Only lines matching this pattern are returned. | |
| source | No | Log source: "gateway" (OpenClaw gateway), "agent" (last agent run), "system" (systemd journal), "custom" (specify path). | gateway |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description fully discloses behavior: it supports line count and keyword filtering, and lists all source options (gateway, agent, system, custom). It does not mention any destructive side effects, which is appropriate for a read-only log viewer.
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?
Single sentence that is concise, front-loaded with the main action, and contains no unnecessary words. Every part of the description 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?
Description is complete given the tool's complexity: it explains the purpose, supported sources, and filtering options. It lacks detail on output format but that is acceptable since there is no output schema. Overall, provides enough context for an AI agent to select and use the tool correctly.
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 all parameters described. The description reiterates the line count and keyword filtering capability but does not add significant new meaning beyond what is already in the schema.
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?
Description clearly states the verb 'View' and the resource 'logs' from the OpenClaw server, listing specific log types (gateway, agent execution, system journal). It distinguishes from sibling tools like openclaw_status by focusing specifically on log viewing.
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?
Description implicitly tells when to use (to view logs from OpenClaw server) but does not explicitly state when not to use or provide alternatives. The clear context of log viewing is sufficient for most scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openclaw_memory_read_todayA
Read today's memory log from the OpenClaw server
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only states 'read' (non-destructive) but gives no details on output format, error handling, or what happens if no log exists for today. This is insufficient for full 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?
Single sentence, directly to the point with no filler. Perfectly concise and front-loaded with the core action.
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 zero parameters and no output schema, so the description should compensate by explaining what the returned memory log looks like. It fails to do so, leaving the agent unclear on the format or content of the output.
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?
There are no parameters, so the baseline is 4. The description correctly implies no input needed. No additional parameter information is required.
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?
Description clearly states the action (read), the resource (today's memory log), and the server (OpenClaw). It distinguishes itself from sibling tools like openclaw_memory_search and openclaw_memory_write by specifying a fixed temporal scope.
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 retrieving today's log but does not explicitly mention when to use alternatives like openclaw_memory_search for historical queries. With no parameters, the usage is simple, but lack of explicit guidance slightly limits score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openclaw_memory_searchB
Search across daily memory files on the OpenClaw server for a keyword (default: last 14 days)
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | How many days back to search (default: 14) | |
| query | Yes | Search term |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only states the search scope and default days, but omits safety profile (read-only implied), side effects, rate limits, or what happens on no results.
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?
Single sentence, 12 words, no redundancy. Front-loaded with action and resource. Every word is informative.
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?
No output schema, so description must explain return values. It does not mention output format, error behavior, or pagination. For a search tool, more context (e.g., returns file paths or snippets) is needed.
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% with descriptions for both parameters. The tool description adds minimal value beyond restating the default days. 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 the action ('Search'), the resource ('daily memory files'), the server ('OpenClaw'), and the scope ('for a keyword, default last 14 days'). It distinguishes from sibling tools like 'openclaw_memory_read_today' by focusing on cross-day search.
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 like 'openclaw_memory_read_today'. The description does not mention exclusions or prerequisites, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openclaw_memory_writeA
Write a note to today's daily memory log on the OpenClaw server. Use for capturing important context, decisions, or things to remember.
| Name | Required | Description | Default |
|---|---|---|---|
| note | Yes | The note to save | |
| category | No | Optional category/tag, e.g. "decision", "todo", "context" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavioral traits. It states it writes to a daily log but does not specify whether it appends or overwrites, note length limits, or persistence details. For a write operation, this lack of transparency is a significant gap.
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 extremely concise with two sentences, no redundancy, and the core action is front-loaded. Every word adds value, making it efficient for AI parsing.
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 write tool with 2 parameters and no output schema, the description covers the main purpose and usage. However, it omits critical details like append vs. overwrite behavior and any limits, which are important for completeness. It is adequate but not fully comprehensive.
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%, achieving baseline score. The description does not add any meaning beyond the schema's parameter descriptions (e.g., 'The note to save' and 'Optional category/tag'). No additional semantic value is provided.
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 specifies the verb 'Write a note' and the resource 'today's daily memory log on the OpenClaw server'. It distinguishes from sibling tools like openclaw_memory_read_today and openclaw_memory_search, leaving no ambiguity about its function.
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 provides explicit guidance on when to use the tool: 'for capturing important context, decisions, or things to remember'. While it doesn't list alternatives, sibling tool names imply read/search tools exist, making the usage context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openclaw_notifyA
Send a notification via WhatsApp, Telegram, or the last-used channel. Uses OpenClaw message delivery.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | Delivery target: phone number (E.164 format, e.g. "+491234567890") for WhatsApp, chat ID for Telegram. Omit to send to the default/last conversation. | |
| channel | No | Channel to send through: "whatsapp", "telegram", or "last" (most recently used channel). | last |
| message | Yes | The message to send. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It omits any mention of side effects, return values, error conditions, or whether the operation is synchronous. The simple statement 'Uses OpenClaw message delivery' adds minimal 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 consists of two concise sentences with no wasted words. It front-loads the core action and resource, making it immediately scannable.
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 parameters, no output schema, no nested objects), the description is mostly adequate but lacks information about the return format or confirmation of delivery. This omission reduces completeness slightly.
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%, so the parameters are already well-documented in the schema. The description does not add further meaning or context beyond what the schema provides, which meets the baseline.
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 verb 'Send' and the resource 'notification', specifying the channels (WhatsApp, Telegram, last-used). It effectively distinguishes from sibling tools, none of which are notification 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 implies usage for sending messages via supported channels, but lacks explicit guidance on when to use this tool versus alternatives or when not to use it. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openclaw_pluginsA
List all plugins installed on the OpenClaw server
| 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 must disclose behavior. It only says 'list all plugins', with no mention of side effects, authorization, rate limits, or response format.
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?
Single sentence, front-loaded with key verb and resource, zero waste.
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 zero-param list tool, description is adequate but would benefit from mentioning output format (e.g., plugin names or objects). Without an output schema, a hint would improve completeness.
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?
No parameters exist; schema coverage is 100% by virtue of being empty. Baseline for 0 params is 4; description adds nothing extra because nothing is needed.
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?
Description uses specific verb 'List' and resource 'all plugins installed on the OpenClaw server', clearly distinguishing from sibling tools like openclaw_status or openclaw_logs.
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?
Implied usage is when one needs to see installed plugins, but no explicit guidance on when to use vs. alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openclaw_runA
Send a task or prompt to the OpenClaw AI agent via SSH. The agent has access to all installed plugins (trading, home automation, etc.) and multiple LLM backends. Use this to delegate complex tasks that OpenClaw already knows how to handle.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Optional: name of a specific OpenClaw agent to use (e.g. "ops", "trading"). Omit to use the default agent. | |
| prompt | Yes | Task or question to send to the OpenClaw AI agent. It has access to all installed plugins (trading, home, memory, etc.). | |
| timeout_seconds | No | Max seconds to wait for the agent response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It mentions SSH access and agent capabilities but does not disclose behavior like synchronous waiting, error handling, or side effects. The timeout_seconds parameter implies a wait but is not explained.
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 concise, front-loaded, and information-dense. Three sentences deliver purpose, capability, and usage guidance without unnecessary details.
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 output schema, no annotations, and many sibling tools, the description is somewhat thin. It lacks details on return format, error scenarios, and explicit comparisons to alternatives like openclaw_cron_run. Adequate but not comprehensive.
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% (all parameters documented). The description adds no additional 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 clearly states the action ('Send'), the resource ('OpenClaw AI agent'), and the method ('via SSH'). It distinguishes from sibling tools like claude_run, codex_run, gemini_run, and local_llm_run by specifying that this delegates complex tasks that OpenClaw already knows how to handle.
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 explicitly says 'Use this to delegate complex tasks that OpenClaw already knows how to handle', providing a clear usage context. However, it does not explicitly state when not to use or mention alternatives among the many sibling run tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openclaw_statusA
Check if the OpenClaw daemon is running on the server and get version info
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It correctly implies a read-only operation, but does not explicitly confirm no side effects or mention permissions needed. For a status check, this is minimally acceptable.
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?
A single sentence of 15 words that is front-loaded and direct. Every word earns its place with 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 output schema and no parameters, the description covers the essential purpose. It could mention what the response looks like (e.g., boolean and version string) but remains adequate for a simple tool.
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 zero parameters, so schema coverage is trivial. Baseline for 0 params is 4. The description adds no parameter info as none are needed, which 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 checks if the OpenClaw daemon is running and retrieves version info. The verb 'check' and resource 'OpenClaw daemon' are specific, and it distinguishes from sibling tools like openclaw_cron_status or openclaw_run.
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 when to use or alternatives are provided. While the purpose is self-evident for a status tool, guidelines could mention situations like verifying daemon health before running commands. Lack of exclusions or context makes it adequate but not exemplary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prompt_splitA
Analyze a complex prompt and split it into sub-tasks with agent assignments. Returns a structured plan showing which sub-agent (gemini, codex, openclaw, local LLM) handles each part, dependency ordering, and the actual prompts to send. Each subtask includes a suggested model that the user can override before execution. IMPORTANT: Always present the plan to the user for review before executing. Strategy: "auto" (default), "gemini", "local", or "heuristic".
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | The complex prompt to analyze and split into sub-tasks. | |
| strategy | No | How to analyze the prompt: "auto" (default): tries gemini, then local LLM, then heuristic "gemini": use Gemini CLI for smart analysis "local": use local LLM (LM Studio/Ollama) for analysis "heuristic": pure keyword splitting (no LLM, instant) | auto |
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 behavioral disclosure. It describes the output (structured plan with agent assignments, dependency ordering, prompts), the strategy parameter's behavior, and the required user review. It does not cover authorization needs or error handling, but the core behavior is transparent.
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 concise (4 sentences, ~108 words), front-loads the main purpose, and each sentence adds value. No redundant or vague phrasing.
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 (2 parameters, no output schema), the description covers the return structure, strategy options, and usage note. It could mention potential limitations (e.g., prompt length constraints), but overall it is sufficiently complete for an agent to use correctly.
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?
Both parameters are described in the schema (100% coverage). The description adds extra meaning for the 'strategy' parameter by explaining each enum value's behavior in detail, which goes beyond the schema's minimal descriptions.
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: 'Analyze a complex prompt and split it into sub-tasks with agent assignments.' It specifies the resources involved (sub-agents like gemini, codex, openclaw, local LLM) and distinguishes from sibling tools that are execution-focused (e.g., gemini_run, codex_run).
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 decomposing complex prompts, and includes an important guideline to 'always present the plan to the user for review before executing.' However, it does not explicitly state when to use this tool versus alternatives (e.g., directly using a run tool) or provide exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prompt_split_executeA
Execute a prompt_split plan: runs subtasks in dependency order, dispatches to the correct sub-agent, passes results between dependent tasks, and enforces rate limits on cloud agents. Provide a "plan" from prompt_split, or just a "prompt" to generate and execute in one step. Use "overrides" to change agent/model/prompt per task or skip tasks. Set dry_run=true to preview.
| Name | Required | Description | Default |
|---|---|---|---|
| plan | No | A SplitPlan object (from prompt_split). If omitted, provide "prompt" to generate one. | |
| prompt | No | If no plan is provided, run prompt_split with this prompt first (heuristic strategy). | |
| dry_run | No | If true, return the plan with rate limit checks but do not execute. | |
| overrides | No | Optional per-task overrides: change agent, model, prompt, or skip a task. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the tool runs subtasks in dependency order, dispatches to sub-agents, passes results between tasks, and enforces rate limits. It also mentions dry_run for preview. However, it doesn't explicitly state potential side effects or whether this tool is destructive.
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 three sentences, efficiently front-loading the primary purpose and then covering optional inputs and dry_run. Every sentence adds unique value with no redundancy or fluff.
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 (multi-step execution, dependencies, rate limits) and absence of an output schema, the description omits crucial details about return values, error handling, or execution results. While dry_run output is hinted, the actual execution output format is not described, leaving a gap for agents.
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%, but the description adds meaningful context beyond the schema: it explains the conditional relationship between 'plan' and 'prompt' (if no plan, prompt is used to generate one), and elaborates on overrides (change agent/model/prompt per task or skip). This helps the agent understand parameter usage beyond formal definitions.
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: executing a prompt_split plan, running subtasks in dependency order, dispatching to sub-agents, and enforcing rate limits. It distinguishes from sibling tools like prompt_split (which generates plans) and direct run tools, but could be more explicit about when to use this versus individual run 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 explains when to use the tool: provide a 'plan' or a 'prompt', and optionally use 'overrides' to modify per-task settings. However, it does not specify when not to use this tool (e.g., for single-step tasks) or explicitly mention alternatives among sibling tools like claude_run.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remote_dockerB
Manage Docker containers on the remote Linux server via SSH. Actions: list, logs, start, stop, restart, stats, exec. No Docker API or open port needed.
| Name | Required | Description | Default |
|---|---|---|---|
| lines | No | Number of log lines to tail (for logs action, default: 50) | |
| action | Yes | Action to perform | |
| command | No | Shell command to run inside the container (required for exec) | |
| container | No | Container name or ID (required for all actions except list) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It mentions SSH and actions but omits side effects (e.g., service disruption from stop/restart) and prerequisites like SSH key authentication.
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 short, front-loaded sentences with no fluff. Every word adds value, covering purpose, mechanism, actions, and a key advantage.
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, yet the description does not hint at return values (e.g., container lists, log lines). For a multi-action tool with conditional parameters, this omission reduces completeness.
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%, so baseline is 3. The description does not add significant meaning beyond the schema, merely listing action names without explaining parameter relationships or output.
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 manages Docker containers via SSH, listing specific actions. However, it does not explicitly differentiate from sibling tools like remote_shell or remote_service, leaving implicit contrast.
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 notes 'No Docker API or open port needed,' indicating suitable when SSH is available. However, it lacks explicit when-not-to-use guidance or comparison with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remote_serviceA
Manage systemd services on the remote Linux server via SSH. Actions: status, start, stop, restart, enable, disable, list.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | systemctl action to perform | |
| service | No | Service name, e.g. "nginx" or "postgresql" (required for all actions except list) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the tool operates over SSH, indicating network and authentication needs. However, it does not mention required permissions (e.g., root), side effects of actions, or error handling behavior. Basic transparency but incomplete for a mutating tool.
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 sentences with no redundant information. The front-loaded purpose and action list are efficiently packed, earning every sentence's keep.
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?
Covers core functionality (systemd management via SSH) and param semantics, but omits return value format for actions like status, and does not specify error behavior. For a tool with no output schema, some description of output would be helpful.
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 descriptions cover 100% of parameters with clear enum and service name examples. The description adds no significant extra meaning beyond listing actions, which is already in the schema. Baseline score applies due to full schema coverage.
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?
Clearly states it manages systemd services on a remote Linux server via SSH, listing all specific actions. This distinguishes it from sibling tools like remote_shell or remote_docker, making the purpose unambiguous.
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?
Implies usage for systemd service management on a remote server, but does not provide explicit when-to-use vs when-not-to-use guidance or mention alternatives. The context is clear but lacks exclusions or comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remote_shellA
Run a shell command on the configured remote Linux server (REMOTE_HOST). Use for deployments, log checks, service restarts, or any ad-hoc command on a remote machine.
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | Shell command to run on the remote server | |
| timeout_seconds | No | Timeout in seconds (default: 30, max: 300) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses the tool runs commands on a remote server, but lacks details on security, error handling, or what happens on timeout. 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?
Two sentences with no redundant information. The first sentence states the primary action, the second provides usage context. Efficient and front-loaded.
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 simple tool (2 parameters, no output schema), the description adequately explains purpose, use cases, and defaults. Missing return value details, but this is minor for a shell command tool.
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 parameter descriptions are clear. The description does not add significant meaning beyond the schema, 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?
Description clearly states 'Run a shell command on the configured remote Linux server' and provides specific use cases (deployments, log checks, service restarts). It distinguishes from siblings like remote_docker and remote_service by focusing on arbitrary shell commands.
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?
Explicitly lists when to use (deployments, log checks, service restarts, ad-hoc commands) but does not mention when not to use or alternative tools. The context is clear and helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_statusA
Check health of all connected services at once: Home Assistant, OpenClaw (SSH), local LLM, Gemini CLI, Codex CLI. Returns a unified status overview with latency for each service.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose all behavioral traits. It describes the return as status and latency, implying a read-only operation, but does not confirm safety or mention any authorization needs or side effects. It is adequate but minimal.
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, well-structured sentence that front-loads the primary action and lists services. Every word earns its place, with 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 output schema, the description adequately explains the return value. It covers the main purpose but could benefit from mentioning that it is non-destructive or how to interpret latency. Overall, it is complete for a simple health check tool.
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?
There are no parameters, so the schema covers everything. The description adds value by explaining the output structure (unified status with latency), which is sufficient for this simple tool. Baseline 4 since 0 parameters.
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 health of all connected services (Home Assistant, OpenClaw, local LLM, Gemini CLI, Codex CLI) at once, returning a unified status overview with latency. It uses a specific verb and resource, and distinguishes itself from sibling tools like openclaw_status which likely focus on individual services.
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 implicitly suggests using this tool for a broad overview of all services, but does not provide explicit guidance on when not to use it or mention alternatives. No exclusions or context for choosing this over sibling monitoring tools.
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.
1 tool update
v1.3.0- Changed
codex_run2 fields changed- changed
Input schema / properties / sandbox / descriptionPrevious value: -"\"full-auto\": workspace-write sandbox, no approval prompts (default, recommended). \"dangerous\": bypass all approvals and sandbox — only use in isolated environments."New value: +"\"full-auto\": workspace-write sandbox, no approval prompts (default, recommended). \"dangerous\": bypass all approvals and sandbox - only use in isolated environments." - changed
Input schema / properties / timeout_seconds / descriptionPrevious value: -"Max seconds to wait. Codex tasks can take longer than Gemini — 120s default."New value: +"Max seconds to wait. Codex tasks can take longer than Gemini - 120s default."
37 tool updates
v1.2.4- First observed
claude_run - First observed
codex_run - First observed
file_transfer - First observed
gemini_run - First observed
home_automation - First observed
home_climate - First observed
home_get_state - First observed
home_light - First observed
home_scene - First observed
home_sensors - First observed
home_vacuum - First observed
llama_server - First observed
local_llm_models - First observed
local_llm_run - First observed
mcp_help - First observed
openclaw_cron_create - First observed
openclaw_cron_delete - First observed
openclaw_cron_edit - First observed
openclaw_cron_history - First observed
openclaw_cron_list - First observed
openclaw_cron_run - First observed
openclaw_cron_status - First observed
openclaw_deploy - First observed
openclaw_logs - First observed
openclaw_memory_read_today - First observed
openclaw_memory_search - First observed
openclaw_memory_write - First observed
openclaw_notify - First observed
openclaw_plugins - First observed
openclaw_run - First observed
openclaw_status - First observed
prompt_split - First observed
prompt_split_execute - First observed
remote_docker - First observed
remote_service - First observed
remote_shell - First observed
system_status
TDQS
Scored across 37 tools
Most tools target distinct resources, but there are overlapping groups: five AI prompt-run tools, multiple status/list/history tools, and home_sensors vs home_get_state. The descriptions help differentiate them, but an agent must read carefully to avoid misselection.
Naming is readable and mostly snake_case, with domain prefixes like home_, openclaw_, and remote_. However, the pattern shifts between noun-only names (home_scene, local_llm_models), verb-object names (openclaw_cron_create), agent-verb names (gemini_run), and bare nouns (llama_server), so it is not fully predictable.
37 tools is too many for a single MCP surface, exceeding the 25+ threshold even though the server spans home automation, AI backends, remote operations, and OpenClaw management. The breadth is real, but the sheer count makes routing and selection costly.
Core workflows are well covered: cron has full create/edit/delete/list/run/history, memory has write/read/search, AI backends have run/model management, and Docker/systemd/file operations are covered. Minor gaps exist around generic Home Assistant entity control, scene listing, and delete/update operations for files or memory, but these can be worked around via remote_shell or openclaw_run.
Maintenance
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Persistent memory, knowledge graph, task management and more for AI agents via MCP.
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server that integrates with the OpenClaw API to enable AI assistants to send messages across multiple platforms, execute system commands, and manage calendar events and emails.51MIT
- AlicenseBqualityCmaintenanceMCP server for full Home Assistant control, enabling AI agents to manage dashboards, automations, files, apps, entities, and more via REST API, WebSocket, and SSH.66189 npmMIT
- AlicenseNot gradedqualityAmaintenanceMCP server with persistent memory, voice understanding, multi-thread orchestration, and remote control via Telegram for AI assistants.2,299 npm5MIT
- AlicenseNot gradedqualityCmaintenanceMCP server providing persistent memory, goal tracking, self-reflection, and background monitoring for any MCP-compatible AI agent.26 PyPI2MIT