Skip to main content
Glama
elvatis

elvatis-mcp

Official
by elvatis

elvatis-mcp

OpenClaw용 MCP 서버 — 스마트 홈, 메모리, cron 자동화, AI 하위 에이전트 오케스트레이션을 Claude Desktop, Cursor, Windsurf 및 모든 MCP 호환 AI 클라이언트에 노출합니다.

npm License Tests AAHP Verify

이 프로젝트는 무엇인가?

elvatis-mcp는 Claude(또는 모든 MCP 클라이언트)를 사용자의 인프라에 연결합니다:

  • 스마트 홈 제어: Home Assistant를 통한 조명, 온도 조절기, 로봇 청소기, 센서

  • 메모리 시스템: OpenClaw 서버에 일일 로그로 저장

  • Cron 작업 관리 및 트리거링

  • 멀티 LLM 오케스트레이션: Claude, OpenClaw, Google Gemini, OpenAI Codex, 로컬 LLM 등 5가지 AI 백엔드

  • 스마트 프롬프트 분할: 복잡한 요청을 분석하고, 하위 작업을 올바른 AI로 라우팅하며, rate limiting을 적용해 계획을 실행

핵심 아이디어: Claude는 오케스트레이터이지만, 특화된 작업은 다른 AI 모델에 위임할 수 있습니다. 코딩 작업은 Codex로, 리서치는 Gemini로, 간단한 포맷팅은 로컬 LLM(무료, 프라이빗)으로, 트레이딩과 자동화는 OpenClaw로 보냅니다. prompt_split은 라우팅을 자동으로 파악하고, prompt_split_execute는 클라우드 에이전트에 rate limiting을 적용하면서 계획을 실행합니다.

Related MCP server: hass-mcp-server

MCP란 무엇인가?

Model Context Protocol은 AI 클라이언트가 외부 도구 서버에 연결할 수 있게 해주는 Anthropic의 개방형 표준입니다. 한 번 구성하면 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_run

Claude (Anthropic)

로컬 CLI

Claude Code 로그인

복잡한 추론, 글쓰기, 코드 리뷰. Claude가 아닌 MCP 클라이언트용.

API 사용량

openclaw_run

OpenClaw (플러그인)

SSH

SSH 키

트레이딩, 자동화, 다단계 워크플로우

자체 호스팅

gemini_run

Google Gemini

로컬 CLI

Google 로그인

긴 컨텍스트(1M 토큰), 멀티모달, 리서치

API 사용량

codex_run

OpenAI Codex

로컬 CLI

OpenAI 로그인

코딩, 디버깅, 파일 편집, 셸 스크립트

API 사용량

local_llm_run

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초

무응답(hang) 발생률

약 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가 단계별로 실행하게 할 수도 있습니다. 작업은 의존성 순서대로 실행되며 병렬 그룹은 동시에 실행됩니다. 세 가지 분석 전략:

전략

속도

품질

용도

heuristic

즉시

명확한 프롬프트에 적합

키워드 매칭, LLM 호출 없음

local

5-30초

더 나은 추론

로컬 LLM이 프롬프트를 분석

gemini

5-15초

최고 품질

Gemini-flash가 프롬프트를 분석

auto (기본값)

상황에 따라 다름

사용 가능한 최상의 방법

단순한 프롬프트는 빠르게 처리하고, gemini → local → heuristic 순서로 시도


사용 가능한 도구 (총 34개)

Home Assistant (7개 도구)

도구

설명

home_get_state

모든 Home Assistant 엔티티 상태 읽기

home_light

조명 제어: 켜기/끄기/토글, 밝기, 색온도, RGB

home_climate

Tado 온도 조절기 제어: 온도, HVAC 모드

home_scene

방별 Hue 씬 활성화

home_vacuum

Roborock 로봇 청소기 제어: 시작, 정시, 충전 독, 상태

home_sensors

모든 온도, 습도, CO2 센서 읽기

home_automation

HA 자동화 목록, 트리거, 활성화, 비.활성화

메모리 (3개 도구)

도구

설명

openclaw_memory_write

오늘의 일일 로그에 메모 추가

openclaw_memory_read_today

오늘의 메모리 찾기

openclaw_memory_search

지난 N일 전체 메모리 파일 검색

Cron 자동화 (7개 도구)

도구

설명

openclaw_cron_list

예약된 모든 OpenClaw cron 작업 나열

openclaw_cron_run

ID로 cron 작업 즉시 트리거

openclaw_cron_status

스케줄러 상태 및 최근 실행 이력 조회

openclaw_cron_create

새 cron 작업 생성 (cron 표현식, 간격, 또는 일회성)

openclaw_cron_edit

기존 cron 작업 편집 (이름, 메시지, 일정, 모델)

openclaw_cron_delete

ID로 cron 작업 삭제

openclaw_cron_history

cron 작업의 최근 실행 이력 표시

OpenClaw 에이전트 (4개 도구)

도구

설명

openclaw_run

OpenClaw AI 에이전트에 프롬프트 전송 (모든 플러그인 사용 가능)

openclaw_status

OpenClaw 데핀(daemon)이 실행 중인지 확인

openclaw_plugins

설치된 모든 플러그인 나열

openclaw_notify

WhatsApp, Telegram 또는 마지막으로 사용한 채널을 통해 알림 전송

AI 하위 에이전트 (5개 도구)

도구

설명

claude_run

로컬 CLI를 통해 Claude에 프롬프트 전송. Claude가 아닌 MCP 클라이언트(Cursor, Windsurf)용.

gemini_run

로컬 CLI를 통해 Google Gemini에 프롬프트 전송. 1M 토큰 컨텍스트.

codex_run

로컬 CLI를 통해 OpenAI Codex에 코딩 작업 전송.

local_llm_run

로컬 LLM(LM Studio, Ollama, llama.cpp)에 프롬프트 전송. 무료, 프라이빗. 스트리밍 지원.

llama_server

TurboQuant 캐시 지원 내장 llama.cpp 서버 시작/중지/구성.

시스템 관리 (4개 도구)

도구

설명

system_status

모든 서비스 일괄 상태 점검 (HA, SSH, LLM, CLI)

local_llm_models

LM Studio / Ollama에서 모델 목록 확인, 로드, 언로드

openclaw_logs

OpenClaw 서버에서 apiocrates, 에이전트, 시스템 로그 보기

file_transfer

SSH로 OpenClaw 서버 내 파일 업로드, 다운로드, 목록 조회

라우팅 및 오케스트레이션 (3개 도구)

도구

설명

mcp_help

라우팅 가이드 표시. 작업을 전달하면 추천 도구를 안내.

prompt_split

복잡한 프롬프트를 분석하고 에이전트 지정과 함께 하위 작업으로 분할.

prompt_split_execute

분할 계획 실행: rate limiting을 적용, 하위 작업을 의존성 순서대로 에이전트에 포워딩.

대시보드

엔드포인트

설명

http://localhost:3334/status

자동 새로고침되는 HTML 대시보드 (서비스 상태, 로드된 모델)

http://localhost:3334/api/status

프로그매틱 상태 점검을 위한 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 서버 실행 중, SSH로 접근 가능한 OpenClaw 서버.


벤치마크

전체 벤치마크 스위트, 방법론, 커뮤니티 기여 가이드는 BENCHMARKS.md를 참조하세요.

참조 하드웨어

부품

사양

CPU

AMD Threadripper 3960X (24 코어 / 48 스레드)

GPU

AMD 라데온 RX 9070 XT Elite (16 GB GDDR6)

RAM

128 GB DDR4

OS

Windows 11 Pro

런타임

LM Studio + Vulkan (llama.cpp-win-x86_64-vulkan-avx2@2.8.0)

로컬 LLM 추론 (LM Studio, Vulkan GPU, --gpu max)

중간값은 3회 실행 기준이며, max_tokens=512입니다. 작업: 분류(단어 1개 감정 분석), 추출(JSON), 추론(산술), 코드(Python 함수). Vulkan은 AMD RX 9070 XT에서 권장되는 런타임입니다(ROCm 대비 5개 모델 중 4개에서 우위).

Model

매개변수

분류

추출

추론

코드

평균 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

CPU 대비 GPU 속도 향상 (Deepseek R1 8B, Vulkan): 분류 7.2배, 추출 3.8배 더 빠름.

서브 에이전트 비교 (동일 작업, 다른 백엔드)

에이전트

백엔드

평균 지연 시간

비용

비고

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 login 실행

  • codex_run: npm install -g @openai/codex 및 codex login 실행

  • local_llm_run: OpenAI 호환 로컬 서버:


설치

전역 설치:

npm install -g @elvatis_com/elvatis-mcp

또는 npx로 직접 사용 (설치 불필요):

npx @elvatis_com/elvatis-mcp

모든 릴리스는 푸시된 v* 태그에서 GitHub Actions에 의해 빌드 및 게시되며, 해당 태그가 가리키는 정확한 커밋에서 생성됩니다. SECURITY.md는 이 경로가 보장하는 것과 보장하지 않는 것, 그리고 설치한 버전을 검증하는 방법을 설명합니다. CHANGELOG.md는 각 릴리스에 포함된 내용을 기록합니다.


어디에서 사용할 수 있나요?

elvatis-mcp는 모든 MCP 호환 클라이언트에서 작동합니다. 각 클라이언트는 자체 구성 파일을 사용합니다.

클라이언트

전송

구성 파일

Claude Desktop / Cowork (Windows MSIX)

stdio

%LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.json

Claude Desktop / Cowork (macOS)

stdio

~/Library/Application Support/Claude/claude_desktop_config.json

Claude Code (전역, 모든 프로젝트)

stdio

~/.claude.json

Claude Code (이 프로젝트만)

stdio

저장소 루트의 .mcp.json (이미 포함됨)

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=o3

2. 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.js

HTTP 전송 (원격 클라이언트)

MCP_TRANSPORT=http MCP_HTTP_PORT=3333 npx @elvatis_com/elvatis-mcp

클라이언트를 http://your-server:3333/mcp에 연결하세요.


환경 변수

필수

변수

설명

HA_URL

Home Assistant 기본 URL, 예: http://192.168.x.x:8123

SSH_HOST

OpenClaw 서버 호스트명 또는 IP

선택 사항

변수

기본값

설명

HA_TOKEN

--

Home Assistant 장기 액세스 토큰

SSH_PORT

22

SSH 포트

SSH_USER

chef-linux

SSH 사용자 이름

SSH_KEY_PATH

~/.ssh/openclaw_tunnel

SSH 개인 키 경로

OPENCLAW_GATEWAY_URL

http://localhost:18789

OpenClaw Gateway URL

OPENCLAW_GATEWAY_TOKEN

--

선택적 Gateway API 토큰

OPENCLAW_DEFAULT_AGENT

--

openclaw_run용 명명된 에이전트

GEMINI_MODEL

gemini-2.5-flash

gemini_run의 기본 모델

CODEX_MODEL

--

codex_run의 기본 모델

LOCAL_LLM_ENDPOINT

http://localhost:1234/v1

로컬 LLM 서버 URL (LM Studio 기본값)

LOCAL_LLM_MODEL

--

기본 로컬 모델 (생략하면 서버에 로드된 모델 사용)

MCP_TRANSPORT

stdio

전송 모드: stdio 또는 http

MCP_HTTP_PORT

3333

HTTP 포트

SSH_DEBUG

--

1로 설정하면 상세 SSH 출력

ELVATIS_DATA_DIR

~/.elvatis-mcp

영구 사용 데이터 디렉터리 (속도 제한기)

RATE_LIMITS

--

에이전트별 속도 제한 재정의가 포함된 JSON 문자열


로컬 LLM 설정

elvatis-mcp는 모든 OpenAI 호환 로컬 서버에서 작동합니다. 널리 사용되는 세 가지 옵션:

LM Studio (데스크톱 권장)

  1. lmstudio.ai에서 다운로드

  2. 모델 로드 (예: Deepseek R1 Qwen3 8B, Phi 4 Mini)

  3. 사이드바에서 "Local Server"를 클릭하고 활성화

  4. 서버는 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로 설정하세요.

작업별 권장 모델

모델

크기

최적 용도

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)는 비용 폭주를 방지하기 위해 속도가 제한됩니다. 기본 제한:

에이전트

/분

/시간

/일

예상 비용/호출

claude_run

5

30

200

$0.03

codex_run

5

30

200

$0.02

gemini_run

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

빌드 watch 모드:

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 -- 저작권 2026 Elvatis

Available Tools

37 tools
claude_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.

NameRequiredDescriptionDefault
modelNoClaude model to use, e.g. "claude-sonnet-4-6", "claude-opus-4-6", "claude-haiku-4-5". Omit to use the default model.
promptYesPrompt or question to send to Claude.
timeout_secondsNoMax seconds to wait for a response.
working_directoryNoIgnored for Claude (always runs from homedir to prevent agentic mode). Kept for API compatibility.

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

NameRequiredDescriptionDefault
modelNoOpenAI model to use, e.g. "o3", "gpt-5-codex". Omit to use the configured default (CODEX_MODEL env var or Codex default).
promptYesTask or question to send to the Codex AI agent. Works best for coding tasks, file operations, and technical analysis.
sandboxNo"full-auto": workspace-write sandbox, no approval prompts (default, recommended). "dangerous": bypass all approvals and sandbox - only use in isolated environments.full-auto
timeout_secondsNoMax seconds to wait. Codex tasks can take longer than Gemini - 120s default.
working_directoryNoWorking 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

A3.9/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

NameRequiredDescriptionDefault
actionYes"upload": local -> server, "download": server -> local, "list": list files in a server directory.
local_pathNoPath 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_pathYesPath on the OpenClaw server (e.g. "~/scripts/backup.sh" or "~/.openclaw/workspace/trading/").

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

NameRequiredDescriptionDefault
modelNoGemini model to use, e.g. "gemini-2.5-pro" or "gemini-2.5-flash". Omit to use the configured default (GEMINI_MODEL env var).
promptYesPrompt or question to send to the Gemini AI model.
timeout_secondsNoMax seconds to wait for a response.
working_directoryNoWorking directory for the Gemini process. Set this to the project root so Gemini can read local files. Defaults to the user home directory.

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

NameRequiredDescriptionDefault
actionYesAction: "list" shows all automations, "trigger" fires one immediately, "enable"/"disable" toggles an automation on or off.
entity_idNoAutomation entity ID (e.g. "automation.lights_off_at_night"). Required for trigger/enable/disable.

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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)

NameRequiredDescriptionDefault
entity_idYesClimate entity, e.g. climate.wohnzimmer
hvac_modeNoHVAC mode
temperatureNoTarget temperature in °C

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.)

NameRequiredDescriptionDefault
entity_idYesEntity ID, e.g. light.wohnzimmer or climate.wohnzimmer

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

NameRequiredDescriptionDefault
actionYes
entity_idYesLight entity ID, e.g. light.wohnzimmer
rgb_colorNoRGB color as [r, g, b]
brightness_pctNoBrightness in percent (0-100)
color_temp_kelvinNoColor temperature in Kelvin (2000-6500)

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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)

NameRequiredDescriptionDefault
roomYesRoom name
sceneYesScene name, e.g. entspannen, konzentrieren, lesen, nachtlicht, hell, gedimmt

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
actionYes

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

NameRequiredDescriptionDefault
portNoPort to run the server on (default: 8082, avoids conflict with LM Studio on 1234).
actionYes"start" launches a llama-server process, "stop" kills it, "status" shows if running.
extra_argsNoAdditional CLI arguments to pass to llama-server (e.g. ["--threads", "8"]).
gpu_layersNoNumber of layers to offload to GPU (0 = CPU only). Use -1 for all layers.
model_pathNoPath to GGUF model file. Required for "start".
cache_type_kNoKV cache type for keys. Options: q8_0, q4_0, f16, turbo2, turbo3, turbo4 (TurboQuant fork). Default: f16.
cache_type_vNoKV cache type for values. Same options as cache_type_k. Asymmetric config (e.g. q8_0 keys + turbo4 values) often gives best results.
context_sizeNoContext window size in tokens (default: 4096).
flash_attentionNoEnable flash attention (-fa). Recommended for long contexts.

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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).

NameRequiredDescriptionDefault
modelNoModel identifier for load/unload (e.g. "microsoft/phi-4-mini-reasoning"). Required for load/unload.
actionNoAction: "list" shows available models, "load" loads a model, "unload" unloads a model. Load/unload requires LM Studio (not supported by all servers).list
endpointNoOverride the local LLM endpoint URL. Omit to use LOCAL_LLM_ENDPOINT env var or default.

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

NameRequiredDescriptionDefault
modelNoModel 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.
promptYesPrompt or question to send to the local LLM.
streamNoStream 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.
systemNoOptional system message to set the LLM's behavior.
endpointNoOverride 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_tokensNoMaximum tokens to generate. Default: server default.
temperatureNoSampling temperature (0 = deterministic, higher = more creative). Default: server default.
timeout_secondsNoMax seconds to wait for a response.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

NameRequiredDescriptionDefault
taskNoOptional: describe your task or question. If provided, returns a specific routing recommendation for which tool(s) to use.

TDQS

A4.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

NameRequiredDescriptionDefault
nameYesJob name (e.g. "daily-portfolio-check")
modelNoModel override (e.g. "openai-codex/gpt-5.2", "google-gemini-cli/gemini-2.5-flash"). Omit to use the server default.
targetNoDelivery target (phone number or chat ID). Only used with channel.
channelNoDelivery channel for results: "whatsapp", "telegram", "last". Omit for no delivery.
messageYesThe prompt/message the agent will execute on each run.
disabledNoCreate the job in disabled state (default: false, job starts immediately).
scheduleYesWhen 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)
timezoneNoIANA timezone for cron expressions (e.g. "Europe/Berlin"). Omit for server default.

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

NameRequiredDescriptionDefault
idYesJob ID (UUID) to delete.

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

NameRequiredDescriptionDefault
idYesJob ID (UUID) to edit.
nameNoNew job name.
modelNoNew model override.
messageNoNew agent message.
scheduleNoNew schedule (cron expression, interval, or one-shot).

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

NameRequiredDescriptionDefault
idYesJob ID (UUID) to show history for. Use openclaw_cron_list to find IDs.
linesNoNumber of recent runs to show.

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
include_disabledNoInclude disabled jobs

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
job_idYesCron job ID (UUID)

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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).

NameRequiredDescriptionDefault
actionYesdeploy: run deploy script, rollback: run rollback script, status: show last deploy log
serviceYesService name to deploy, e.g. "api", "worker", "frontend"

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

NameRequiredDescriptionDefault
pathNoCustom log file path on the server (only used when source="custom").
linesNoNumber of log lines to return (default: 50).
filterNoFilter log lines by keyword (grep -i). Only lines matching this pattern are returned.
sourceNoLog source: "gateway" (OpenClaw gateway), "agent" (last agent run), "system" (systemd journal), "custom" (specify path).gateway

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_writeA

Write a note to today's daily memory log on the OpenClaw server. Use for capturing important context, decisions, or things to remember.

NameRequiredDescriptionDefault
noteYesThe note to save
categoryNoOptional category/tag, e.g. "decision", "todo", "context"

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

NameRequiredDescriptionDefault
targetNoDelivery target: phone number (E.164 format, e.g. "+491234567890") for WhatsApp, chat ID for Telegram. Omit to send to the default/last conversation.
channelNoChannel to send through: "whatsapp", "telegram", or "last" (most recently used channel).last
messageYesThe message to send.

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

NameRequiredDescriptionDefault
agentNoOptional: name of a specific OpenClaw agent to use (e.g. "ops", "trading"). Omit to use the default agent.
promptYesTask or question to send to the OpenClaw AI agent. It has access to all installed plugins (trading, home, memory, etc.).
timeout_secondsNoMax seconds to wait for the agent response

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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".

NameRequiredDescriptionDefault
promptYesThe complex prompt to analyze and split into sub-tasks.
strategyNoHow 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

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

NameRequiredDescriptionDefault
planNoA SplitPlan object (from prompt_split). If omitted, provide "prompt" to generate one.
promptNoIf no plan is provided, run prompt_split with this prompt first (heuristic strategy).
dry_runNoIf true, return the plan with rate limit checks but do not execute.
overridesNoOptional per-task overrides: change agent, model, prompt, or skip a task.

TDQS

A3.8/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

NameRequiredDescriptionDefault
linesNoNumber of log lines to tail (for logs action, default: 50)
actionYesAction to perform
commandNoShell command to run inside the container (required for exec)
containerNoContainer name or ID (required for all actions except list)

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

NameRequiredDescriptionDefault
actionYessystemctl action to perform
serviceNoService name, e.g. "nginx" or "postgresql" (required for all actions except list)

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

NameRequiredDescriptionDefault
commandYesShell command to run on the remote server
timeout_secondsNoTimeout in seconds (default: 30, max: 300)

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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. 1 tool updatev1.3.0
    • Changedcodex_run2 fields changed
      • changedInput schema / properties / sandbox / description
        Previous 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."
      • changedInput schema / properties / timeout_seconds / description
        Previous 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."
  2. 37 tool updatesv1.2.4
    • First observedclaude_run
    • First observedcodex_run
    • First observedfile_transfer
    • First observedgemini_run
    • First observedhome_automation
    • First observedhome_climate
    • First observedhome_get_state
    • First observedhome_light
    • First observedhome_scene
    • First observedhome_sensors
    • First observedhome_vacuum
    • First observedllama_server
    • First observedlocal_llm_models
    • First observedlocal_llm_run
    • First observedmcp_help
    • First observedopenclaw_cron_create
    • First observedopenclaw_cron_delete
    • First observedopenclaw_cron_edit
    • First observedopenclaw_cron_history
    • First observedopenclaw_cron_list
    • First observedopenclaw_cron_run
    • First observedopenclaw_cron_status
    • First observedopenclaw_deploy
    • First observedopenclaw_logs
    • First observedopenclaw_memory_read_today
    • First observedopenclaw_memory_search
    • First observedopenclaw_memory_write
    • First observedopenclaw_notify
    • First observedopenclaw_plugins
    • First observedopenclaw_run
    • First observedopenclaw_status
    • First observedprompt_split
    • First observedprompt_split_execute
    • First observedremote_docker
    • First observedremote_service
    • First observedremote_shell
    • First observedsystem_status

TDQS

B3.4/5.0

Scored across 37 tools

Disambiguation3/5

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 Consistency3/5

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.

Tool Count2/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers