Skip to main content
Glama
isina-nej
by isina-nej

claude-host-mcp

version tools resources platform license

Give Claude Desktop hands on your real machine β€” safely. One local MCP server (host-system) that lets Claude run shell, manage files, drive dev servers, inspect the system, use git, Docker, GitHub, databases, the web, and your local 9router AI gateway β€” on Linux, macOS, and Windows β€” with approvals, audit, and rollback.

Install now

git clone https://github.com/isina-nej/claude-host-mcp.git && cd claude-host-mcp && chmod +x install.sh && ./install.sh

macOS: replace ./install.sh with ./install-mac.sh Β· Windows PowerShell: git clone https://github.com/isina-nej/claude-host-mcp.git; cd claude-host-mcp; Set-ExecutionPolicy -Scope Process Bypass; .\install.ps1

Then fully quit Claude Desktop, reopen it, and call host_identity in a new session. Detailed OS instructions are below.

claude-host-mcp hero

  • πŸ–₯️ Your host, not a sandbox. Claude sees your real hostname, files, processes, ports β€” not the VM.

  • πŸ›‘οΈ Destructive = prompt. Reads run free; deletes, kills, commits, restores, and external posts ask first.

  • πŸ”Œ One server, zero new deps. 146 tools + 10 resources over stdio. Vercel/Cloudflare/GitHub managed with link-and-wait auth. Python 3.10+, mcp>=2,<3. Integrations are credential-gated and fail clean without keys.

Related MCP server: Local Dev Bridge MCP

Who is it for, and when is it useful?

Who

Use it when

Typical jobs

Developers

Claude must work on the real project or keep processes alive outside its sandbox

Edit files, run dev servers/REPLs, use git/worktrees, debug localhost

DevOps, SRE, sysadmins

Host operations need visibility, approvals, audit, and rollback

Inspect processes, ports, logs, services, Docker, packages, and system health

AI and automation builders

One MCP should replace a pile of host-side scripts and narrow integrations

Combine shell, files, browser/web, GitHub, databases, Slack, and local 9router models

Self-hosters and technical power users

Claude should help operate a workstation or homelab without unrestricted root access

Diagnose services, manage files, monitor resources, and run guarded maintenance

Where: install it on the Linux, macOS, or Windows machine running Claude Desktop. It is most useful on development workstations and self-hosted machines where the built-in sandbox cannot reach the host. Skip it for chat/research-only use or when Claude's mounted-folder tools already cover the job.

English | فارسی


πŸš€ Install β€” pick your OS (60 seconds)

Install first, read later. Same 146 tools everywhere β€” the code auto-adapts to your OS.

Three installers, same result: an isolated venv at ~/.local/share/claude-host-mcp and a host-system entry in your Claude config (backed up first).

git clone https://github.com/isina-nej/claude-host-mcp.git
cd claude-host-mcp
chmod +x install.sh install-mac.sh doctor.sh uninstall.sh
./install.sh
git clone https://github.com/isina-nej/claude-host-mcp.git
cd claude-host-mcp
chmod +x install.sh install-mac.sh doctor.sh uninstall.sh
./install-mac.sh

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

git clone https://github.com/isina-nej/claude-host-mcp.git
cd claude-host-mcp
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\install.ps1

Writes to %APPDATA%\Claude\claude_desktop_config.json. Install dir: %USERPROFILE%\.local\share\claude-host-mcp.

Then do all three, in order:

  1. Fully quit Claude Desktop (not just the window) and reopen it.

  2. Open a new session/task.

  3. Say:

Use the host-system MCP tool host_identity.

Real hostname + your desktop user in the reply = wired to the host. If not, run ./doctor.sh (or .\doctor.ps1) and see Diagnostics.

First taste after install:

system_snapshot  β†’  cpu, memory, disk, load, temps, battery, gpu, net in one call
diagnose "127.0.0.1:3000"  β†’  DNS β†’ TCP β†’ owner β†’ HTTP β†’ resources, with failed_layers
memory_store("my-project", "Next.js 15, pnpm, port 3000")  β†’  it remembers next session

Custom paths:

CLAUDE_DESKTOP_CONFIG="$HOME/path/claude_desktop_config.json" ./install.sh
HOST_MCP_INSTALL_DIR="$HOME/custom-dir" ./install.sh

OS

Installer

Config location

Linux / WSL

./install.sh

~/.config/Claude-3p/ or ~/.config/Claude/

macOS

./install-mac.sh

~/Library/Application Support/Claude/

Windows

.\install.ps1

%APPDATA%\Claude\

Same 146 tools everywhere β€” the Python code checks platform.system() and adapts: run_command β†’ Bash or PowerShell, process_list β†’ ps or tasklist, service_status β†’ systemctl / launchctl / sc, port_list β†’ ss / lsof / netstat fallback.


πŸ“Έ See it in action

πŸ” diagnose finds the break

πŸ–₯️ Terminals stay alive

↩️ Snapshots = undo

diagnose demo

terminal demo

snapshot demo

One call runs DNS β†’ TCP β†’ owner β†’ HTTP β†’ resources and tells you which layer failed.

Dev servers and REPLs keep running between calls. Cursor reads, wait instead of polling.

file_version before risky edits, file_restore when tests fail.


πŸ“‘ Contents


🧭 What it actually does

Claude Desktop runs agent tasks in a restricted sandbox/VM. This server is a bridge out: it runs on your real machine as your normal user and exposes typed tools over MCP stdio. Claude calls them; you approve the dangerous ones.

Claude Desktop ──stdio/JSON-RPC──▢ host-system MCP ──▢ your machine
                                        β”œβ”€β”€ shell + persistent terminals + background jobs
                                        β”œβ”€β”€ files + search + snapshots (undo)
                                        β”œβ”€β”€ git + worktrees
                                        β”œβ”€β”€ system: processes, journal, ports, diagnose, Docker, packages
                                        β”œβ”€β”€ mind: time, persistent memory, thinking chain
                                        β”œβ”€β”€ web + integrations: fetch, search, browser, GitHub, DBs, maps, drive, Slack
                                        β”œβ”€β”€ 9router AI: chat/fanout/image/search (multi-agent)
                                        β”œβ”€β”€ accounts: github/vercel/cloudflare link + manage
                                        └── guarded by: scoped roots Β· profiles Β· approvals Β· audit Β· rate limits

Concrete things Claude can now do for you:

  • 🌑️ "Why is my laptop hot?" β†’ system_snapshot shows CPU, temps, top processes in one call.

  • πŸ”Œ "Why won't localhost:3000 load?" β†’ diagnose pinpoints the failed layer instead of guessing.

  • πŸ’» "Run my dev server and tell me when it's ready" β†’ terminal_create + terminal_wait(pattern="ready"), no polling loop.

  • ✏️ "Patch server.py, and undo it if tests fail" β†’ file_version β†’ edit_file β†’ file_restore.

  • 🧠 "Remember my stack" β†’ memory_store today, memory_recall next session.

What it does NOT do: no privilege escalation (sudo/su blocked), no shutdown/reboot, no disk formatting, no push on your behalf (git_commit never pushes), no silent exfiltration (secrets never hit the audit log; integrations need your keys).

🧰 Tools

146 tools in fourteen groups (verified live via stdio handshake). Only destructive tools prompt (see Approval policy).

architecture

Reading guide: Core = everyday shell+files Β· Terminal+Jobs = long-running work without polling Β· Files/Git = semantic editing with rollback Β· Ops+Docker = observe then act Β· Mind+Web+Integrations = memory and outside world, all credential-gated Β· 9router = local AI (chat/fanout/image/search).

Core

Tool

Description

host_identity

Hostname, os (Linux/Darwin/Windows), kernel, arch, user, home, server PID. Health-check tool.

system_summary

Linux: hostname/uname/id/uptime/df/free. macOS: df/vm_stat/sysctl hw.memsize. Windows: hostname/whoami/Get-ComputerInfo/Get-PSDrive.

run_command

Bash (/bin/bash -lc) on Linux/macOS, PowerShell on Windows. Args: command, cwd, timeout_seconds. Returns exit_code, stdout, stderr.

read_file

Text read inside readable roots. Args: path, max_chars.

write_file

Text write inside writable roots. Refuses overwrite unless overwrite=true.

list_directory

DIR/FILE listing inside readable roots. Args: path, max_entries.

Terminal sessions (persistent)

One shell process per session, kept alive across calls. For dev servers, REPLs, ssh β€” not one-shot commands.

Tool

Description

terminal_create

Spawn shell (or run command interactively). Returns session_id, pid, cwd.

terminal_read

Incremental output since cursor. Returns new cursor.

terminal_write

Send keystrokes/commands to stdin.

terminal_resize

Store dimensions (metadata; no PTY ioctl yet).

terminal_signal

INT/TERM/KILL (HUP on Unix). Destructive β€” prompts.

terminal_wait

Block until regex pattern, exit, or timeout_seconds. Replaces polling loops.

terminal_close

Terminate session. Destructive β€” prompts.

terminal_list

Live sessions with pid, cwd, age, buffer size.

Background jobs

Tool

Description

job_start

Launch command detached. Optional timeout_seconds watchdog kill. Returns job_id.

job_status

State, pid, exit code, buffer sizes.

job_output

Incremental stdout/stderr since cursor.

job_wait

Block until exit or timeout. Prefer over polling.

job_cancel

TERM then KILL after 5s. Destructive β€” prompts.

job_list

All jobs, or running_only=true.

Files

Tool

Description

file_stat

Type, size_bytes, mtime, mode.

file_search

Recursive name match (*.log). Permission errors skipped, matches kept.

file_grep

Recursive content regex. rg preferred, grep on Unix, pure-Python fallback on Windows. Returns file:line.

file_copy

File/dir copy. Source readable, dest writable.

file_move

Move/rename. Both ends must be writable. Destructive β€” prompts.

file_delete

Delete file, or dir with recursive=true. Never deletes a configured root. Destructive β€” prompts.

edit_file

Exact-string replace (old β†’ new). dry_run=true previews unified diff. Refuses ambiguous multi-match unless replace_all=true.

apply_patch

Unified diff apply (patch binary preferred, naive fallback). dry_run supported.

head_file

First N lines.

tail_file

Last N lines.

directory_tree

ASCII tree, depth + max_entries, noise dirs (__pycache__, .git, .venv, node_modules) hidden.

find_files_tool

Glob find, fd preferred, find/pathlib fallback.

search_text_tool

Literal (default) or regex=true content search, rg preferred.

fuzzy_find_tool

Subsequence filename ranking, dependency-free.

Process and system

Tool

Description

process_list

ps sorted by CPU (Linux/macOS), tasklist on Windows. Args: filter substring, limit.

process_kill

Signal by PID (HUP/INT/TERM/KILL; no HUP on Windows). Protects PID 1 and self. Destructive β€” prompts.

service_status

User service status: systemd --user (Linux), launchctl list filtered (macOS), sc query (Windows).

disk_usage

df -h (Linux/macOS) or drive usage (Windows); plus du -sh / dir size for one allowed path.

system_snapshot

One-call cpu/memory/disk/load/temps/battery/gpu/network/uptime JSON.

journal_query

User journal tail with service/priority/since filters (macOS log show).

Git

Tool

Description

git_status

Branch + status --short --branch.

git_log

Recent commits, short date format. Arg: count.

git_diff

Uncommitted diff + --stat. staged=true shows --cached.

git_branch

Local + remote branches (branch -a -v).

git_commit

add -A + commit -m. Refuses empty message, clean tree. Never pushes. Destructive β€” prompts.

git_show

Commit with stat, oneline. Read-only.

git_blame

Line-range blame of a tracked file. Read-only.

git_tag

list (read-only) / create / delete.

git_stash

list / push / pop / drop. pop/drop destructive.

git_checkout

Checkout (or -b create). Refuses on dirty tree.

git_reset

--soft/--mixed/--hard; --hard requires confirm=true.

git_revert

Inverse commit of a revision.

git_merge

Merge branch, conflict output on failure.

git_rebase

Rebase onto upstream; abort/cont for conflicts.

git_clean

dry_run=true default preview; execution requires confirm=true.

git_worktree_create

Isolated worktree under .worktrees/ for agent work.

git_worktree_list

List worktrees. Read-only.

git_worktree_remove

Remove an agent worktree.

Network

Tool

Description

http_fetch

http(s) GET, capped size. Returns status, content_type, truncated, body.

network_check

TCP reachability + latency_ms. Args: host, port, timeout_seconds.

download_file

http(s) to writable root, byte-capped. Aborts + cleans partial on overflow.

dns_lookup

Hostname β†’ addresses.

interface_list

Interfaces with state + MAC.

connection_list

Active sockets via ss/netstat.

port_list

Listening sockets + owner pid/process (/proc on Linux, ss/lsof fallback).

port_check

TCP connect to host:port with latency.

port_owner

Owner of a listening port: pid, comm, cmdline, cwd.

diagnose

Layered diagnosis: host:port/http(s):// runs DNS→TCP→owner→HTTP→resources; service:NAME runs service→process→journal→ports. Returns failed_layers.

diagnose flow

Docker

Requires the docker CLI. Mutations are profile-gated (developer/full) and prompt.

Tool

Description

docker_ps

Containers (running default, all=true for all).

docker_logs

Tail container logs.

docker_inspect

State, image, ports, mounts.

docker_start / docker_stop / docker_restart / docker_rm

Lifecycle (10s stop timeout).

docker_exec

sh -c inside container. --privileged blocked.

Packages

Native manager auto-detected (apt/dnf/pacman/zypper/apk/brew/flatpak/snap). Search/info everywhere; mutations on apt/dnf/pacman/brew, developer/full profile only.

Tool

Description

package_search

Search packages.

package_info

Package metadata.

package_install / package_remove

Install/remove. Prompt.

package_update

Refresh index. Prompt.

Mind: time, memory, thinking

No new dependencies. Mirrors the official time/memory/sequential-thinking servers with stdlib-only internals.

Tool

Description

time_now

Current time in IANA timezone (default local).

time_convert

ISO datetime between timezones.

time_zones

List IANA zones, optional filter.

memory_store

Store observation on entity (persistent JSON graph).

memory_link

Typed relation between two entities.

memory_recall

Substring recall over entities/observations/relations.

memory_forget

Delete observation or whole entity. Destructive β€” prompts.

think

Record one reasoning step in a chain.

think_list

Return the thought chain. Read-only.

think_clear

Clear the chain. Destructive β€” prompts.

Web data: fetch, search, browser

Tool

Description

fetch_text

Fetch URL β†’ LLM-ready text (boilerplate stripped, ≀3 redirects).

web_search

Keyless-first fan-out (html+wiki+duck, deduped); backend auto|wiki|duck|html|brave; Brave when keyed.

wiki_search

Dedicated Wikipedia search. Keyless, reputable, structured.

browser_fetch

JS render via local Chrome when installed, fetch_text fallback otherwise.

browser_shot

Page screenshot PNG into writable roots. Opt-in; prompts.

Integrations: GitHub, databases, maps, drive, Slack

All credential-gated: without keys they return setup errors, never crash. Secrets never reach the audit log.

Tool

Description

github_repo

Repo metadata keyless (60/hr); token raises quota.

github_issue

List/get/create issues. Create prompts.

github_pr

List/get/create PRs. Create prompts.

db_query

SELECT-first SQL; empty dsn auto-discovers local sqlite. Writes need confirm=true + full profile.

db_status

Keyless DB probe: sqlite files, postgres/redis reachability.

db_tables

List tables for a DSN.

redis_get

GET a key; defaults to local 127.0.0.1:6379; docker:redis fallback.

maps_geocode

Forward geocode (Google with key, else nominatim).

maps_directions

Routing (Google with key, else straight-line km).

drive_list

List rclone remote; auto-picks when one remote exists.

drive_get

Download remote file into writable roots. Prompts.

slack_list

List channels (SLACK_BOT_TOKEN; send also works via webhook).

slack_send

Post a message. Prompts.

9router: local AI gateway

Your 9router (npm 0.5.69) at 127.0.0.1:20128 becomes 14 tools + 2 resources. Auth is automatic: NINEROUTER_API_KEY wins, else the first active key from ~/.9router/db/data.sqlite. No new setup.

Tool

Description

nine_status

Health + version. No key needed. Read-only.

nine_models

349 routable combos + provider models. Read-only.

nine_combos

26 bundles (sina-pro, image, FastImg...) with members. Read-only.

nine_providers

37 connections, health only, no secrets. Read-only.

nine_usage

Requests, tokens, cost, providers. Read-only.

nine_chat

Ask any combo/model. Returns text + usage.

nine_chat_stream

SSE chat, concatenated text.

nine_fanout

Same prompt to N models in parallel (max 6). Judge/ensemble primitive.

nine_image

Generate images (b64_json). Auto-picks FastImg member. Verified live.

nine_tts

Text-to-speech. Shape passes through.

nine_stt

Speech-to-text from base64 audio.

nine_embeddings

Embed texts. Shape passes through.

nine_search

Web search via 9router searchapi. Keyless for you.

nine_video

Video generation. Speculative on most hosts.

Resources: nine://status, nine://models.

Multi-agent pattern: nine_fanout(["sina-economy","sina-pro"], prompt) β†’ compare β†’ nine_chat(judge) β†’ decide. Fanout concurrency is capped at 6 to protect free-tier quotas.

Snapshots and audit

Tool

Description

snapshot_create

Copy file/dir into timestamped slot before risky ops.

snapshot_list

Slots with source + creation time.

snapshot_restore

Copy slot back. Destructive β€” prompts; overwrite required on clash.

file_version

One-call pre-edit file snapshot.

file_restore

Restore newest slot for a path. Destructive β€” prompts.

audit_log

Last N audit records (paths/sizes only, never contents).

audit_search

Filter by tool substring + ok true/false.

One token store (~/.local/share/claude-host-mcp/accounts/*.json, chmod 600). Never pasted into audit. Resolution everywhere: explicit env β†’ stored β†’ CLI auto-login (gh, vercel) β†’ keyless.

Tool

Description

accounts

Linked providers with source + live status. Never returns secrets. Read-only.

accounts_connect

Start linking. Returns open-link URL + request_id (or already:true) plus a live login sub-flow when available: GitHub device code (login.user_code + login.verification_uri), Vercel localhost callback (login.url) when HOST_MCP_VERCEL_CLIENT_ID is set.

accounts_wait

Block until you authorize. Polls the live login flow (GitHub device, Vercel callback), then CLI-login state. Poll interval follows the provider (β‰₯5s).

accounts_complete

Validate pasted token live, store chmod 600, close request.

accounts_remove

Delete a stored token. Prompts. CLI logins untouched.

vercel_projects

List projects (name, id, URL). Auto token. Read-only.

vercel_deployments

List deployments, optional project filter. Read-only.

vercel_inspect

Aliases, state, regions, creator. Read-only.

vercel_logs

Build/runtime event tail. Read-only.

vercel_redeploy

Rebuild a deployment. Prompts (creates live deploys).

cloudflare_zones

Zones (id, name, status, plan). Read-only.

cloudflare_account

First account id/name. Read-only.

cloudflare_dns

List DNS records for a zone. Read-only.

cloudflare_dns_create

Create a DNS record. Prompts.

cloudflare_dns_delete

Delete a DNS record by id. Prompts.

cloudflare_purge

Purge a zone cache. Prompts.

figma_me

Validate token + identity: handle, email, id. Read-only.

figma_file

File metadata: name, lastModified, thumbnailUrl, version. Read-only.

postman_me

Validate token + identity: username, email, id. Read-only.

postman_workspaces

List workspaces: id, name, type. Read-only.

postman_collections

List collections: id/uid, name. Optional workspace filter. Read-only.

apidog_teams

Validate token + list teams: id, name. Read-only.

The flow Claude uses: sees accounts unlinked β†’ accounts_connect returns a link plus a live login β†’ you open it and approve β†’ accounts_wait notices by itself. GitHub: open login.verification_uri, type login.user_code, approve (device flow, no app to create; override via HOST_MCP_GITHUB_CLIENT_ID). Vercel: with HOST_MCP_VERCEL_CLIENT_ID set, open login.url and approve on localhost (port via HOST_MCP_VERCEL_REDIRECT_PORT, default 8765); without it, vercel login in your terminal or a pasted token via accounts_complete. Cloudflare / Figma / Postman / Apidog: token-only (no OAuth exists) β€” accounts_connect auto-opens the token page, accounts_complete validates live (GET /v1/me Figma, GET /me Postman, GET /v1/teams Apidog).

πŸ“‘ Resources

Live context without tool calls:

URI

Content

system://summary

One-line identity, uptime, disk, memory.

system://snapshot

Full system_snapshot JSON.

system://ports

Listening-port table JSON.

policy://current

Profile, roots, caps, destructive set JSON.

audit://recent

Last 20 audit records JSON.

process://{pid}

ps row + cmdline + cwd JSON.

terminal://{session}

Buffer tail + alive state JSON.

job://{job_id}

Status + stdout/stderr tails JSON.

βœ… Approval policy

Only destructive tools prompt: file_delete, file_move, terminal_close, terminal_signal, process_kill, job_cancel, git_commit, git_reset, git_revert, git_merge, git_rebase, git_checkout, git_clean (exec), git_tag (create/delete), git_stash (pop/drop), git_worktree_* (create/remove), snapshot_restore, file_restore, docker_* (mutations), package_* (mutations), memory_forget, think_clear, github_issue/github_pr (create), db_query (writes), browser_shot, drive_get, slack_send, accounts_remove, accounts_complete, vercel_redeploy, cloudflare_dns_create, cloudflare_dns_delete, cloudflare_purge. Everything else β€” shell, reads, search, monitoring, journal, ports, diagnose β€” runs without approval friction.

Caveat: deletion via shell (rm / Remove-Item inside run_command) is NOT blocked and does NOT prompt. Use file_delete for guarded deletes that request approval.

πŸ›‘οΈ Safety at a glance

safety model

Three profiles, one rule: destructive = prompt. safe passes read-only tools only; developer (default) adds workspace+git+process+network; full unlocks Docker/package/service-style ops. reset --hard and clean execution additionally need confirm=true in the call itself. Secrets (tokens, DSNs) never reach the audit log.

πŸ”’ Security

Runs as your normal user. Anything that user can read/modify is reachable through tools.

Hard blocks in run_command: sudo/su/pkexec, shutdown/reboot/poweroff (Restart-Computer/Stop-Computer on Windows), disk tools (mkfs, wipefs, fdisk, parted, diskpart, Format-Volume, Clear-Disk), raw dd of=/dev/*, recursive rm of / or $HOME (drive-root Remove-Item C:\ on Windows), root-wide chown/chmod, fork bombs.

Policy engine (HOST_MCP_PROFILE): safe = read-only tools pass, everything else blocked server-side; developer (default) = full workspace + git + process + network; full = developer + Docker/package/service-restart style ops. Destructive git ops (reset --hard, clean exec) additionally require confirm=true in the call. docker_exec --privileged always blocked. process_kill refuses PID 1 and self; file_delete refuses configured roots; git_commit never pushes; service_status user-scope only; download_file/http_fetch http(s) only, byte-capped.

Rate limits (HOST_MCP_RATE_LIMIT, default 60/60): per-family call budget; excess calls fail with a rate-limit error instead of executing.

Audit (~/.local/share/claude-host-mcp/audit.jsonl, override HOST_MCP_AUDIT_FILE, empty disables): every mutating tool logs timestamp/tool/args-hint/ok. File contents never logged.

Blocklist = guardrail, not sandbox. General shell access is inherently powerful. Tighten *_ROOTS to least privilege.

Requirements

  • Linux, macOS, or Windows; Python 3.10+

  • Claude Desktop with local MCP support

  • uv optional; installers fall back to venv + pip

Configuration

Set under host-system β†’ env in claude_desktop_config.json. Restart Claude Desktop after change.

Variable

Default

Description

HOST_MCP_PROFILE

developer

safe (read-only) / developer / full.

HOST_MCP_READ_ROOTS

$HOME:/etc:/var/log (Linux/macOS), $HOME (Windows)

Readable roots (OS path separator).

HOST_MCP_WRITE_ROOTS

$HOME

Writable roots (OS path separator).

HOST_MCP_MAX_OUTPUT

50000

Output truncation cap, chars.

HOST_MCP_MAX_TIMEOUT

180

Max run_command timeout, seconds.

HOST_MCP_MAX_DOWNLOAD

20971520

Download/fetch cap, bytes (20 MB).

HOST_MCP_AUDIT_FILE

~/.local/share/claude-host-mcp/audit.jsonl

Audit trail path; empty disables.

HOST_MCP_SNAPSHOT_DIR

~/.local/share/claude-host-mcp/snapshots

Snapshot slot directory.

HOST_MCP_RATE_LIMIT

60/60

N/seconds per tool family.

HOST_MCP_LOG_LEVEL

WARNING

Python log level.

HOST_MCP_MEMORY_FILE

~/.local/share/claude-host-mcp/memory.json

Knowledge-graph file.

HOST_MCP_WEB_SEARCH

auto

Default backend: auto (keyless fan-out), off disables; BRAVE_API_KEY forces Brave.

HOST_MCP_BROWSER

auto

auto uses local Chrome if installed (else fetch_text fallback); off disables.

GITHUB_TOKEN / GH_TOKEN

(unset)

Optional: raises quota + enables create; reads work keyless.

POSTGRES_DSN / REDIS_URL

(unset)

Default DSNs for db_* / redis_get.

GOOGLE_MAPS_API_KEY

(unset)

Google backend for maps_*; else nominatim/fallback.

RCLONE_REMOTE

(unset)

e.g. gdrive: enables drive_*.

SLACK_BOT_TOKEN

(unset)

Bot token for slack_*; SLACK_WEBHOOK_URL also enables send.

NINEROUTER_API_KEY

(auto from ~/.9router)

Optional override; else first active 9router key.

NINEROUTER_BASE_URL

http://127.0.0.1:20128

9router gateway address.

HOST_MCP_GITHUB_CLIENT_ID

(public default)

Override for GitHub device flow. Default is the public GitHub CLI app id (public client, no secret).

HOST_MCP_VERCEL_CLIENT_ID

(unset)

Your own Vercel Integration client id. Enables localhost-callback login in accounts_connect.

HOST_MCP_VERCEL_REDIRECT_PORT

8765

Localhost callback port for Vercel OAuth.

FIGMA_TOKEN / FIGMA_ACCESS_TOKEN

(unset)

Optional: Figma PAT override (else stored file).

POSTMAN_API_KEY

(unset)

Optional: Postman API key override (starts with PMAK-).

APIDOG_TOKEN / APIDOG_API_TOKEN

(unset)

Optional: Apidog OpenAPI token override.

HOST_MCP_APIDOG_BASE

https://api.apidog.com

Apidog base URL; EU tenants use https://api.eu.apidog.com.

HOST_MCP_AUTO_OPEN_BROWSER

(on)

Set 0 to disable auto-open browser in accounts_connect.

Example:

{
  "mcpServers": {
    "host-system": {
      "command": "/home/alice/.local/share/claude-host-mcp/.venv/bin/claude-host-mcp",
      "args": [],
      "env": {
        "HOST_MCP_PROFILE": "developer",
        "HOST_MCP_READ_ROOTS": "/home/alice:/etc:/var/log",
        "HOST_MCP_WRITE_ROOTS": "/home/alice/Documents",
        "HOST_MCP_MAX_TIMEOUT": "180",
        "HOST_MCP_MAX_OUTPUT": "50000"
      }
    }
  }
}

Diagnostics

./doctor.sh        # Linux / macOS
.\doctor.ps1       # Windows

Checks OS, Python, venv entry point, MCP SDK import, registered config. MCP logs: Claude config/log dir; 3P Linux often ~/.config/Claude-3p/logs/.

Common fixes:

  • Full Claude Desktop restart (not just window reload), then a new session.

  • If scripts won't run after git clone, re-apply chmod +x install.sh install-mac.sh doctor.sh uninstall.sh.

  • On Windows, if PowerShell blocks scripts: Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass, then .\install.ps1.

  • If the wrong config got edited, re-run with CLAUDE_DESKTOP_CONFIG (Unix) or -ClaudeConfig (Windows) pointing at the right file.

Uninstall

./uninstall.sh     # Linux / macOS
.\uninstall.ps1    # Windows

Removes host-system entry (config backed up first) and installed runtime. Restart Claude Desktop.

Development

Layout: src/claude_host_mcp/ (server.py, sessions.py, jobs.py, policy.py, files.py, gitx.py, ops.py, snapshots.py, resources.py, mind.py, webdata.py, ninerouter.py), skills/ (morning-diagnose, safe-deploy), pyproject.toml (hatchling), install.sh, install-mac.sh, install.ps1, doctor.sh, doctor.ps1, uninstall.sh, uninstall.ps1.

Skills

Two prompt-only skills live in skills/. No code, just fixed tool order. Built from real audit.jsonl patterns (edit_file bursts, web_search loops, nine_fanout usage).

  • morning-diagnose: diagnose β†’ layer drill (service_status, journal_query, process_list, port_owner) β†’ snapshot_create β†’ edit_file (dry run first) β†’ verify (git_diff, journal_query, port_check) β†’ fail path file_restore + audit_log.

  • safe-deploy: snapshot_create β†’ edit_file (dry run) β†’ git_diff + job_start/job_wait tests β†’ git_commit (never push) β†’ red path file_restore + audit_log.

Triggers: service down / "Ψ¨Ψ§Ω„Ψ§ Ω†Ω…ΫŒΨ§Ψ―" β†’ morning-diagnose. Patch/fix/deploy / "Ψ―Ψ±Ψ³ΨͺΨ΄ Ϊ©Ω†" β†’ safe-deploy.

Installers copy skills/ into ~/.claude/skills/ automatically (install.sh, install-mac.sh, install.ps1). Skip with ./install.sh --skip-skills or .\install.ps1 -SkipSkills. Override dest with HOST_MCP_SKILLS_DIR. Only skills carrying installed-by-host-mcp are removed on uninstall; your own same-named skills are backed up, never overwritten. ./doctor.sh / .\doctor.ps1 report installed vs missing.

from mcp.server import MCPServer
mcp = MCPServer("Host System")

Rules: no stdout logging under stdio transport (stdout = JSON-RPC; log to stderr). Smoke test:

python3 -c "import sys; sys.path.insert(0,'src'); import claude_host_mcp.server; print('OK')"

Full handshake check (tools + resources count):

PYTHONPATH=src python -m claude_host_mcp.server  # speak JSON-RPC on stdin; see CHANGELOG process

Changelog

See CHANGELOG.md. Current: 0.7.0.

License

MIT β€” see LICENSE.

Available Tools

146 tools
accountsLinked accountsA
Read-only

Linked providers with source + live status. Never returns secrets.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false. The description adds the guarantee 'Never returns secrets,' which is a valuable behavioral detail beyond the annotations. No other behaviors are disclosed, but given the tool's simplicity and annotation coverage, this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no wasted words. The core function is front-loaded, and the safety guarantee is a concise addition. It is perfectly sized for the tool's simplicity.

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 the zero parameters and the presence of an output schema, the description covers what the tool returns (providers with source and live status) and a key safety behavior. Nothing an agent needs to correctly invoke this tool is missing.

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, and the schema is empty with 100% coverage. Since there are no parameters to document, the description does not need to explain them. The baseline is high for a parameterless tool, and the description adds no parameter-related confusion.

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 states it returns linked providers with source and live status, which gives a specific resource and what it provides. It implies a read-only listing but does not explicitly say 'list' or 'get all accounts.' It distinguishes from siblings like accounts_connect and accounts_remove by implying a read operation, though not naming them.

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 given on when to use this tool versus alternatives such as accounts_connect, accounts_remove, or others. There are no conditions or exclusions, leaving the agent to infer that it is for viewing accounts without any explicit direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

accounts_completeComplete linkD

Validate a pasted token live, store chmod 600, close request.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYes
request_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds some behavioral details (validation, file permissions, request closure) beyond the all-false annotations, but these are cryptic. It does not explain what 'store' means, what happens to the request, or any side effects. Since annotations provide no safety profile (all false), the description carries the burden but fails to adequately disclose the mutation and its implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely brief, which is technically concise, but it is a run-on list of actions without structure or context. It does not front-load a clear purpose and leaves the agent to infer meaning, making it more under-specified than genuinely concise.

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 having an output schema, the description is incomplete for a mutation tool with all-false annotations. It omits when to use it, what the token and request_id represent, what 'complete' entails, and any prerequisites. An agent cannot reliably call this tool without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must explain the two required parameters. It mentions 'pasted token' (loosely mapping to token) and 'close request' (mapping to request_id) but offers no details about formats, expected values, or how they interact. This is insufficient compensation for the absent schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description lists three actions ('validate a pasted token live, store chmod 600, close request') without a clear, single-purpose statement. It gives a vague sense of completing an account link but does not explicitly say 'completes an account linking process' or what the resource is. The name and title are slightly clearer, but the description itself lacks specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/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 siblings like accounts_connect, accounts_wait, or accounts_remove. The description gives no context about the linking flow, prerequisites, or exclusions, leaving the agent without direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

accounts_connectConnect accountA

Start linking github|vercel|cloudflare. Returns open-link + request_id (or already:true).

ParametersJSON Schema
NameRequiredDescriptionDefault
providerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are all false and offer no safety hints, so the description carries the burden. It discloses the core behavior and return fields (open-link, request_id, already:true), but it does not explain side effects such as whether a pending connection/request is created, whether repeated calls are safe, or how the returned link is used.

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 entire description is one compact sentence that front-loads the action, then lists return values in parentheses. No words are wasted, and the special already:true case is included efficiently.

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 single-parameter tool with an output schema present, the description is mostly complete: it names the provider values and the expected result shape. It could mention that the open-link requires user action or that request_id is used in a later completion step, but those are optional for correct invocation.

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 schema merely defines provider as a string with no description and 0% schema coverage. The description compensates by listing the acceptable providers (github, vercel, cloudflare), giving an agent concrete input guidance that the schema alone lacks.

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 uses a specific verb ('Start linking') and names the exact resources (github, vercel, cloudflare), clearly identifying this as the initial step in connecting an external account. This differentiates it from sibling tools like accounts_remove or accounts_complete, whose roles are distinct.

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 as the entry point to an account-linking flow ('Start linking') and signals a no-op when already connected ('or already:true'), but it never explicitly says when to use this instead of accounts_wait or accounts_complete, nor does it describe prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

accounts_removeRemove accountA
Destructive

Delete a stored token. Prompts. CLI logins untouched.

ParametersJSON Schema
NameRequiredDescriptionDefault
providerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, so the destructive nature is known. The description adds useful behavioral context beyond that: 'Prompts.' signals the tool will prompt (likely for confirmation), and 'CLI logins untouched' clarifies what is not affected. This gives the agent expectations for interaction and scope without contradicting the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and front-loads the core action, which is good. But 'Prompts.' is an ambiguous standalone fragment that is structurally awkward, and the three fragments could be clearer as connected sentences. It is concise but not polished enough to be a model of clarity.

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 single-parameter destructive tool with annotations and an output schema, the description covers the main behavior (delete token), the prompting behavior, and the boundary (CLI logins untouched). The primary gap is parameter semanticsβ€”provider format and accepted values are unstatedβ€”which prevents it from being fully complete for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%: the only parameter, provider, has no description beyond its title. The tool description does not explain what values provider accepts, what it identifies, or how it maps to the stored token. The agent must infer from the name 'provider' that it specifies which provider's token to delete, but this is not explicit enough to compensate for the schema gap.

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 action and resource: 'Delete a stored token.' This clearly identifies the tool's function. The phrase 'CLI logins untouched' further distinguishes it from broader account deletion, and the sibling list includes other account tools (accounts_connect, accounts_wait) so the scope is explicit.

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 intended use is implied: call this tool to delete a stored token. The exclusion 'CLI logins untouched' provides some boundary, telling the agent this tool is not for removing CLI login credentials. However, it does not explicitly name alternatives or specify conditions for choosing this over related account tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

accounts_waitWait for linkB
Read-only

Block until the user authorizes (link opened) or timeout. Polls 5s.

ParametersJSON Schema
NameRequiredDescriptionDefault
request_idYes
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the operation as readOnly, and the description adds useful behavioral detail: the call blocks, polls every 5 seconds, and stops when the user authorizes or a timeout occurs. It does not contradict the readOnly hint.

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 sentences convey the blocking behavior, the exit condition, and the polling cadence with no filler. All information is front-loaded and relevant.

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?

For a wait tool in an authorization flow, the description omits how to obtain request_id (presumably from accounts_connect) and what happens when timeout is reached. The output schema may cover return values, but the operational flow is not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It mentions timeout behavior and a 5s polling interval, but never identifies request_id as the authorization request handle, and does not clarify timeout_seconds as the configurable max wait.

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 operation as blocking until the user authorizes (link opened) or timeout, with a polling interval of 5s. It distinguishes the wait behavior from sibling tools by describing the blocking action, but it does not explicitly name or contrast accounts_complete or accounts_connect.

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 given about when to use this tool versus its siblings, such as calling it after accounts_connect or before accounts_complete. The description implies a waiting step in an authorization flow but does not state prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

apply_patchApply patchB
Idempotent

Apply a unified diff to a file (patch binary preferred, naive fallback otherwise).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
patchYes
dry_runNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate the tool is mutating (readOnlyHint=false), idempotent (idempotentHint=true), and not destructive (destructiveHint=false). The description adds one useful implementation detail: it prefers the `patch` binary and falls back to a naive implementation. However, it does not explain failure behavior, conflict handling, or whether the fallback can partially apply changes.

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 front-loaded sentence with no filler. Every clause adds information, including the fallback behavior. It is appropriately sized for the tool's apparent simplicity.

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?

For a mutation tool with minimal schema descriptions, the description is too thin to fully support correct invocation. It omits behavior of dry_run, failure handling, and any distinction against direct file editing tools. The presence of an output schema does not compensate for these gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden for explaining parameters. It clarifies that `patch` should contain a unified diff, but it says nothing about `path` semantics or the `dry_run` flag. This is only partial compensation for an otherwise bare 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 states a specific verb ('apply'), a concrete resource ('a file'), and a precise input format ('unified diff'). This clearly distinguishes it from sibling file-editing tools like write_file or edit_file, which operate on raw content or line edits.

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 implies a use caseβ€”applying a unified diffβ€”but provides no explicit guidance about when to prefer this tool over alternatives such as edit_file, nor any exclusions or prerequisites. The agent must infer the appropriate context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

audit_logAudit logA
Read-only

Return the last N mutating-tool audit records (paths and sizes only, never contents).

ParametersJSON Schema
NameRequiredDescriptionDefault
countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as read-only, and the description adds important behavioral context: it returns only paths and sizes, never contents, and covers only mutating-tool audit records. This clearly sets expectations about what the agent will and will not receive, going well beyond the annotation alone.

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, tightly worded sentence that front-loads the verb and resource while adding the critical 'never contents' constraint. Every word earns its place; there is no filler or 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?

For a simple read-only tool with one optional parameter and an output schema, the description covers the essential behavior, scope, and safety profile. It is slightly incomplete because it does not mention the sibling audit_search or explain when this recent-list tool is preferable, but nothing needed to call it correctly is missing.

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 0%, so the description must carry meaning for the single count parameter. The phrase 'last N' directly conveys that count controls how many records are returned, which is the essential semantic. It does not detail bounds or edge cases, but for one optional integer with a default, this is adequate.

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 states a specific verb ('Return'), a clear resource ('mutating-tool audit records'), and a precise scope ('paths and sizes only, never contents'). It is unambiguous about what the tool does, but it does not explicitly differentiate it from the sibling audit_search, so it misses full marks.

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 explicit guidance is given about when to use this tool versus alternatives. The sibling list includes audit_search, which likely overlaps, but the description never mentions it or explains when the recent unfiltered list is preferable. The only clue is 'last N', which implies recency, but no when/when-not guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

browser_fetchBrowser renderA
Read-only

Render JS page in headless Chrome, return DOM text. Opt-in.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
max_charsNo
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, so the description does not need to restate safety. It adds useful behavioral context by explaining that the tool runs headless Chrome and returns extracted DOM text rather than, say, a screenshot or raw HTML. The 'Opt-in' note also conveys that this is an intentionally chosen, more invasive rendering step.

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 sentences carry the core information with no filler. The first sentence front-loads the purpose and output, the second delivers the critical opt-in behavior. This is an appropriately sized description for a straightforward tool.

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 is adequate for a high-level understanding but incomplete for safe invocation without guessing. With no output schema and three parameters, the agent would benefit from knowing that max_chars bounds the returned text and that rendering can time out. The opt-in flag helps, but the description still leaves important operational details implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, so the description must compensate, but it only says 'Render JS page' and 'return DOM text.' It never explains that max_chars truncates the returned text or that timeout_seconds bounds the render wait. The url parameter is implied by 'page,' but max_chars and timeout_seconds are left entirely to the agent to infer from their names.

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 names a specific verb and resourceβ€”'Render JS page in headless Chrome'β€”and clearly states the output: 'return DOM text.' This distinguishes it from plain fetch tools like http_fetch that do not execute JavaScript. The 'Opt-in' note further signals that this is a deliberate alternative to standard fetching.

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 'Opt-in' marker gives clear guidance that this tool should be used deliberately, not as a default fetch mechanism. It implies that the agent should choose it when JavaScript rendering is required, but it does not explicitly name the alternative or state 'use http_fetch for non-JS pages.' Thus it is clear but lacks explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

browser_shotBrowser screenshotA
Destructive

Screenshot page to PNG in writable roots. Opt-in; prompts.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
destYes
widthNo
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as non-readable, destructive, non-idempotent, and not open-world. The description adds useful behavioral context beyond those flags: output is written to files and the operation is 'opt-in' and 'prompts,' meaning user approval may be required. It does not describe overwrite behavior, but the destructive annotation already covers that risk.

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 short and front-loaded: the core action comes first, followed by two important constraints. Every word earns its place and there is no redundant phrasing or restating of the tool name.

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 output schema exists and annotations cover safety, the description is minimally viable: it states purpose, output type, writable-path constraint, and prompting behavior. However, with four parameters and zero schema descriptions, an agent still lacks details about URL handling, dest path rules, width, and timeout behavior, so completeness is only average.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not compensate. It only hints that dest must be in writable roots; it gives no guidance on URL format, dest naming/extension, width semantics, or timeout_seconds behavior. Without parameter descriptions, an agent must rely on titles and defaults alone, which is insufficient for confident invocation.

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 a specific action and result: 'Screenshot page to PNG.' It also adds a unique constraint, 'in writable roots,' which helps distinguish it from browsing/fetching siblings like browser_fetch or fetch_text. The verb+resource+output format removes ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description conveys when to use this tool: whenever a visual PNG screenshot of a page is needed, with the constraint that output must go to writable roots. It does not explicitly name alternatives or say when not to use it, but it provides enough context for an agent to route correctly against fetch-type siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloudflare_accountCloudflare accountC
Read-only

First account id/name. Needs Account:Read.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds the permission requirement 'Needs Account:Read', which is beyond the readOnlyHint annotation. However, it does not describe the tool's behavior, return format, or any side effects. Since annotations already mark it as read-only, the added permission note provides minimal behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short with two fragments, but the first fragment is cryptic and not a proper sentence. It is concise but under-specified, lacking a clear verb and structure. The permission note is separate but does not improve clarity.

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 having an output schema and no parameters, the description fails to state the tool's purpose clearly. It does not explain what 'first account' means, whether it returns a list or a single object, or why it would be used. The description is incomplete for an agent to confidently invoke it.

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, and schema coverage is 100% (no parameters to document). The baseline for 0 parameters is 4, and the description does not need to add parameter information. This dimension is adequate by default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'First account id/name' is a noun phrase without a verb, so it does not clearly state an action. It could be interpreted as a command to fetch the first account, but the intent is ambiguous. It does not distinguish itself from siblings like cloudflare_zones, though the 'account' focus hints at a retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives. There is no mention of context, prerequisites beyond the permission note, or how it fits into a workflow. The agent is left to guess when this should be called.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloudflare_dnsCloudflare DNSB
Read-only

List DNS records for a zone (name or id).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
zoneYes
dtypeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, so the description does not need to restate that. It adds the detail that zone can be a name or id, which is a minor behavioral note. However, it does not disclose any other behavior such as pagination, limits, or how records are ordered, but given the annotation coverage this is 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?

The description is a single, front-loaded sentence with no filler. It states the core action and the key nuance about the zone parameter. Efficient and easy to parse.

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?

While an output schema exists, the description is incomplete for a tool with three parameters and zero schema descriptions. It does not explain what 'name' and 'dtype' are used for, nor does it mention any filtering or options. An agent would have to guess or inspect other tools to understand the full interface.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the lack of parameter documentation. It only explains that 'zone' can be a name or id, but leaves 'name' and 'dtype' entirely unexplained. With three parameters, two are completely ambiguous, making it hard for an agent to call 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 states a specific action ('List DNS records') on a specific resource ('for a zone'), and clarifies the zone can be provided by name or id. This clearly distinguishes it from sibling tools that create, delete, or purge DNS records.

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 given on when to use this tool versus alternatives. It does not mention that it is a read-only listing operation or when one might prefer cloudflare_dns_create or delete. The agent must infer usage from the verb 'List' and sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloudflare_dns_createCloudflare DNS createC
Destructive

Create a DNS record. Prompts.

ParametersJSON Schema
NameRequiredDescriptionDefault
ttlNo
nameYes
zoneYes
dtypeYes
contentYes
proxiedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already communicate that this is a mutating, non-idempotent operation with a destructive hint, and the description does not contradict that. However, it adds no extra behavioral context, such as duplicate record handling, permission requirements, or reversibility, leaving the burden entirely on annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but not effectively concise: the second sentence ('Prompts.') is an unexplained fragment that adds noise. For a tool with six parameters and no schema descriptions, this brevity constitutes under-specification rather than thoughtful conciseness.

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?

Although an output schema exists, the description is insufficient for correct invocation. Required parameters are undocumented, there is no mention of how this fits with cloudflare_dns list/delete workflows, and no error conditions or edge cases are noted. For a mutating Cloudflare operation, this is a significant completeness gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description provides zero information about the six parameters (zone, dtype, name, content, ttl, proxied). An agent cannot infer accepted values or formats, such as what dtype values are valid or whether zone expects a name or ID, making this a critical gap.

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 names a specific verb ('Create') and resource ('DNS record'), which clearly conveys the core function and distinguishes it from siblings like cloudflare_dns_delete. However, the trailing 'Prompts.' is an unexplained artifact that slightly detracts from clarity.

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 given on when to use this tool versus cloudflare_dns (listing) or cloudflare_dns_delete, nor any prerequisites such as selecting a zone. The name implies creation, but the description provides no explicit context, exclusions, or workflow hints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloudflare_dns_deleteCloudflare DNS deleteC
Destructive

Delete a DNS record by id. Prompts.

ParametersJSON Schema
NameRequiredDescriptionDefault
zoneYes
record_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, so the description's 'Delete' adds no new behavioral insight. It doesn't disclose irreversibility, permission requirements, or side effects. The 'Prompts.' fragment is meaningless. With annotations covering the destructive nature, the description adds negligible value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The main sentence is concise and front-loaded, but the trailing 'Prompts.' is waste and unclear. Under-specification rather than efficient concisenessβ€”it omits essential context.

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?

For a destructive 2-parameter tool with an output schema (not shown), the description should at least note that deletion is permanent or requires a valid zone and record ID. It lacks any such context, leaving an agent to guess. The output schema may cover return values, but prerequisites and side effects are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only says 'by id' but doesn't explain that 'zone' is the Cloudflare zone identifier or that 'record_id' is the specific DNS record ID. No format or examples. The description adds minimal meaning beyond the bare parameter names.

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 states a specific verb ('Delete') and resource ('DNS record by id'), which is clear and distinguishes it from cloudflare_dns_create. The trailing 'Prompts.' is odd but doesn't mislead. It lacks explicit sibling differentiation but the action is obvious.

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 like cloudflare_dns or cloudflare_dns_create. No mention of prerequisites (e.g., needing a zone ID) or when deletion is appropriate. Usage 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.

cloudflare_purgeCloudflare purgeC
Destructive

Purge a zone cache. Prompts.

ParametersJSON Schema
NameRequiredDescriptionDefault
zoneYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as destructive (destructiveHint=true), so the description adds little. 'Prompts.' could imply a confirmation step, but it is vague and unexplained. No additional behavioral context such as impact on cache or reversibility 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but not effective. The second sentence 'Prompts.' is unclear and appears to be a placeholder or incomplete thought. It does not earn its place and detracts from clarity.

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?

For a destructive tool with one parameter and no parameter explanation, the description is inadequate. It does not mention required inputs, effects, or any cautions. The presence of an output schema does not compensate for missing parameter and usage details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain the 'zone' parameter. It does not indicate whether a zone ID or name is expected, or any format. The single parameter remains completely undocumented.

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 phrase 'Purge a zone cache' clearly identifies the action and resource. It is distinct from sibling Cloudflare tools like cloudflare_dns or cloudflare_zones, though it does not explicitly name alternatives.

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 given on when to use this tool or when to prefer a sibling. The cryptic 'Prompts.' adds no context. There is no mention of prerequisites like obtaining the zone ID.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cloudflare_zonesCloudflare zonesA
Read-only

List zones (id, name, status, plan). Needs token.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the description does not need to restate that it is a read-only operation. It adds a practical note that a token is required, which is useful behavioral context. However, it does not describe what happens if the token is missing or invalid, nor any pagination or error behavior. With annotations covering the safety profile, the added token requirement justifies a 3.

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 short sentences that immediately state the purpose and a key requirement. There is no filler, and the core action is front-loaded. Every word adds value, making it an ideal model of efficiency.

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 tool is simple (one optional parameter, no required fields) and has an output schema, so the description need not detail return formats. However, the 'name' parameter is completely unexplained, and the token requirement lacks specifics (e.g., how to provide it or error behavior). These gaps prevent the description from being fully complete, though the overall simplicity keeps it from being inadequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must compensate for parameter clarity. The schema has a single optional 'name' parameter with a default, but the description never mentions it. The agent is left without any explanation of what 'name' doesβ€”whether it filters zones, acts as an exact match, or something else. This is a significant gap given the schema provides no descriptions, and the description does not address the parameter at all.

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 ('List zones') and identifies the resource (zones) along with the returned fields (id, name, status, plan). It differentiates from sibling tools like cloudflare_dns or cloudflare_purge, which focus on other Cloudflare operations. The verb and resource are specific, leaving no ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

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 used to list zones, but it does not explicitly state when to use it versus alternatives or when not to use it. It mentions a prerequisite ('Needs token') but no exclusions or alternative tools are referenced. The guidance is implied rather than explicit, so it meets the threshold for a 3 but lacks direct routing to or away from other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

connection_listList connectionsB
Read-only

Active TCP/UDP sockets via ss or netstat.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint and openWorldHint annotations already establish that this is a safe, non-mutating local query. The description adds that it reads active sockets via ss or netstat, but it does not disclose potential permission requirements or how the limit interacts with the query.

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 compact sentence with no filler. It front-loads the resource and method, and every word contributes to understanding the tool's purpose.

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 read-only tool with one optional parameter and an output schema, the definition is mostly adequate. The main gaps are the undocumented limit semantics and the lack of guidance distinguishing this tool from similar network inspection siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not mention the 'limit' parameter at all. The agent must infer from the property name and default that limit caps the number of returned connections, but the description provides no compensating clarification.

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 title and description jointly specify a clear verb (List) and resource (active TCP/UDP sockets), with useful implementation detail ('via ss or netstat'). It does not explicitly differentiate from sibling network tools such as port_list or network_check, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

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 inspecting current TCP/UDP socket connections, which gives some usage context. However, it gives no explicit guidance on when to prefer it over alternatives like port_list, port_check, or network_check, and no exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

db_querySQL queryC

SELECT-first SQL (postgres psql / sqlite stdlib). Writes need confirm+full.

ParametersJSON Schema
NameRequiredDescriptionDefault
dsnNo
sqlNo
limitNo
confirmNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide no safety hints (all false), so the description carries the full burden. It discloses that write operations require confirmation ('Writes need confirm+full'), which is a meaningful behavioral trait. However, it does not explain the meaning of 'full', nor does it address error handling, result format, or side effects beyond the confirmation requirement. This is a partial disclosure 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely conciseβ€”one sentenceβ€”and front-loads the key constraint (SELECT-first). It wastes no words. However, its brevity comes at the cost of clarity, omitting essential details about parameters and usage. It is concise but under-specified, which balances to a middle score.

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?

This tool executes arbitrary SQL, making it complex and potentially dangerous. With no schema descriptions, no annotations, and an output schema that is not described in the text, the description is inadequate. It does not explain return behavior, error handling, parameter details, or the 'full' requirement for writes. For a tool of this power, the description is far from complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for all four parameters. It only indirectly references the 'confirm' parameter and introduces the ambiguous term 'full'. The dsn, sql, and limit parameters are not explained at all. Given the high parameter count and lack of schema descriptions, the description fails to clarify parameter meanings.

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 executes SQL queries, specifically SELECT-first, and supports postgres and sqlite. It distinguishes the tool from siblings like db_tables (which lists tables) and db_status (status) by its focus on arbitrary SQL execution. However, it does not explicitly name these alternatives, so it lacks the explicit differentiation seen in higher-scoring examples.

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 such as db_tables or db_status. While the SELECT-first wording implies a preference for read-only queries, there is no mention of when to choose this tool over others or any exclusions. The usage context is only implied, not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

db_statusDB statusB
Read-only

Keyless DB probe: sqlite files, postgres/redis reachability.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds useful behavioral context by stating 'keyless' and specifying the targets (sqlite files, postgres/redis reachability), which goes beyond the annotations. It does not, however, describe what the probe actually does (e.g., open connections, ping, read files) or what conditions count as reachable, so it only modestly increases transparency.

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 very short and front-loaded: 'Keyless DB probe' immediately conveys the core purpose, followed by the list of targets. It wastes no words, though it is a fragment rather than a complete sentence and omits a clear imperative verb, which slightly reduces structural quality.

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 zero-parameter tool with an output schema, the description is minimally adequate: it names the target systems and the probe intent. Yet given the large sibling set containing db_query, db_tables, and redis_get, the description would benefit from stating when this probe is preferred (e.g., for quick health checks without credentials) and what 'reachability' means. The missing usage context prevents a higher score.

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 and schema description coverage is 100%, so the schema fully describes the input surface. The description adds nothing about parameters, but none are needed; the baseline of 4 for zero-parameter tools applies.

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 identifies a specific resource (sqlite files, postgres/redis) and a distinct operation kind (probe for reachability/status), which is not a generic restatement of the name 'DB status'. However, it is phrased as a noun phrase rather than a clear imperative verb like 'Check', and it does not explicitly contrast with db_query/db_tables or redis_get, so it is clear but not maximally action-oriented.

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?

There is no explicit guidance on when to use this tool versus alternatives such as db_query, db_tables, redis_get, or system_summary. The word 'keyless' hints that it is for probing without credentials, but the description never states a condition like 'use this to check reachability before running a query' or names any sibling alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

db_tablesList DB tablesB

List tables for a DSN.

ParametersJSON Schema
NameRequiredDescriptionDefault
dsnNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

All annotations are false, so the description carries the full burden for behavioral disclosure. It only says 'List tables,' with no indication of whether connections are opened, whether the operation is expensive, error behavior, or any side effects. This is minimal but not directly contradictory with the 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?

Five words with no filler, and the core action is front-loaded. Every word earns its place.

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 tool is simple and has an output schema, so return values need no explanation. However, the DSN parameter is undocumented, and with zero useful annotations the description leaves an agent without enough context about valid input and behavior for a fully confident call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the single parameter dsn has only a default. The description merely repeats the DSN concept instead of defining what a valid DSN looks like, where to obtain one, or how it affects the listing. It does not compensate for the missing schema documentation.

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 uses a specific verb and resource: 'List tables for a DSN.' It clearly distinguishes the tool from related siblings like db_query (query execution) and db_status (server status), and the title reinforces the same meaning.

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?

There is no guidance about when to call this tool instead of db_query, db_status, or other database-related tools. 'For a DSN' only states the parameter scope, not when listing tables is the appropriate action or what prerequisites apply.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

diagnoseDiagnose targetA
Read-only

Layered diagnosis: host:port/http(s):// (DNS/TCP/owner/HTTP/resources) or service:NAME.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, covering safety and scope. The description adds specific behavioral detail: the order/tayers of checks (DNS, TCP, owner, HTTP, resources) and accepted target forms. It does not contradict the annotations and gives an agent a clear picture of what will happen when invoked.

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 one terse line with no filler. It front-loads the core concept ('layered diagnosis') and packs the accepted formats and diagnostic layers without waste. Every token contributes to the tool's behavior.

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 single-parameter tool with an output schema present, the description covers the input format and the diagnostic layers sufficiently. However, terms like 'owner' and 'resources' are left undefined, and there is no example or note on what a typical invocation looks like. It is adequate but leaves room for misinterpretation.

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 0%, so the description must carry all parameter meaning. It explains that the single 'target' parameter can be host:port, http(s)://, or service:NAME, which directly informs how to fill the argument. Some sub-terms like 'owner' and 'resources' are not expanded, but the core syntax is useful.

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 states a clear action ('layered diagnosis') and defines the target formats (host:port, http(s)://, service:NAME). It also lists the diagnostic layers (DNS/TCP/owner/HTTP/resources), which distinguishes it from simpler single-purpose siblings like dns_lookup or port_check. However, it does not explicitly name any alternative tool, so differentiation is implicit rather than explicit.

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 gives input syntax but no guidance on when to choose this tool over siblings such as port_check, dns_lookup, network_check, or service_status. It implies a use case for layered diagnosis but does not state exclusions or provide decision criteria. There is no mention of prerequisites or typical scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

directory_treeDirectory treeB
Read-only

Render an ASCII tree of a directory (noise dirs hidden).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo~
depthNo
max_entriesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the useful behavioral detail that noise directories are hidden, but it does not define what counts as noise or how depth and max_entries affect the output. This is meaningful but incomplete behavioral disclosure.

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, front-loaded sentence that states the action, output format, and the key filtering behavior. There is no redundant or filler wording. Every part of the sentence earns its place.

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 read-only tool, the description is mostly adequate, and the presence of an output schema reduces the need to describe return values. However, the ambiguity of 'noise dirs hidden' and the lack of usage differentiation from list_directory are noticeable gaps. An agent could still invoke the tool correctly, but may misjudge what is omitted from the output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description provides no explanation of path, depth, or max_entries. An agent must rely solely on the parameter names and defaults in the schema, which is thin for a tool with three parameters. The description adds no value beyond what the schema already exposes.

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 uses a specific verb ('Render') and resource ('ASCII tree of a directory'), making the tool's function immediately clear. The parenthetical 'noise dirs hidden' adds a meaningful behavioral qualifier. This distinguishes it from sibling tools like list_directory, which would not produce a tree structure.

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 gives no guidance on when to use directory_tree versus alternatives such as list_directory, find_files_tool, or file_search. There is no mention of when the tree format is preferable, nor any exclusions or conditions. Usage must be inferred entirely from the tool name and one-line description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

disk_usageDisk usageA
Read-only

Show filesystem usage (df on Linux/macOS, drive usage on Windows) plus size of one allowed path.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds value by specifying platform differences (df vs drive usage) and the 'allowed path' concept, which goes beyond the annotation. It does not contradict annotations, and the added context is useful.

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 that front-loads the main purpose. Every word earns its place, with no filler or repetition. It is concise and well-structured.

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 optional parameter and an output schema, the description is mostly sufficient, but the phrase 'allowed path' is ambiguousβ€”it does not define what 'allowed' means (e.g., permissions, path type, or allowed directory). The return format is covered by the output schema, but the missing clarification of 'allowed path' could confuse an agent. Given the tool's simplicity, this gap is notable but not fatal.

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 0%, so the description must explain the 'path' parameter. It mentions 'size of one allowed path,' which gives a hint that the path is used to retrieve its size, but it does not clarify that the parameter is optional (as indicated by the schema default ''), nor does it explain the default behavior when no path is provided. The description partially compensates but lacks full semantic detail.

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 function: 'Show filesystem usage' plus size of one allowed path. It is specific (verb 'Show', resource 'filesystem usage') and differentiates from siblings by noting platform-specific behavior (df on Linux/macOS, drive usage on Windows). No sibling tool has a similar purpose, so it stands alone.

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 contexts (displaying disk usage and path size) but does not explicitly state when to use this tool versus alternatives. There are no obvious sibling tools for disk usage, so the lack of explicit exclusions is acceptable, but it doesn't provide guidance on when not to use it or alternative approaches.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_lookupDNS lookupB
Read-only

Resolve a hostname to addresses.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already indicate a read-only operation (readOnlyHint=true) and external world access (openWorldHint=true). The description adds no behavioral context beyond restating the core function, such as reliance on DNS servers, possible timeouts, multiple address records, or error behavior.

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 no filler. The verb is front-loaded, and every word contributes to meaning. It is appropriately sized for a tool of this simplicity.

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 tool is simple, read-only, and has an output schema, so the description covers the basics. However, it lacks any guidance on when to reach for this tool over related network tools and does not describe output characteristics such as address families or failure cases. It is minimally viable but leaves room for useful context.

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 single required parameter has no schema description (0% coverage), but the description clarifies that 'host' expects a hostname rather than a URL or raw IP. This provides minimal semantic value, though it does not specify format details like whether FQDNs, trailing dots, or protocol prefixes are accepted.

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 a specific verb ('Resolve') and resource ('a hostname') with a concrete result ('to addresses'). It is recognizable as a DNS lookup, but it does not explicitly differentiate itself from sibling tools like network_check or host_identity.

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 given about when to use this tool versus alternatives such as web_search, network_check, or http_fetch. The intended usage is only implied by the tool's name and terse description, and no exclusions or follow-up tools are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

docker_execDocker execA
Destructive

Run sh -c inside a container. --privileged blocked.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYes
containerYes
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag this as destructive, so the description does not need to restate that. It adds value by disclosing that --privileged is blocked, a meaningful security boundary. The core behavior of running a shell command inside a container is clearly stated.

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 and front-loaded. Every word earns its place: the primary action, the target resource, and the key security restriction are all included with no filler.

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 tool is relatively simple and has an output schema plus annotations covering destructiveness, so the description does not need to explain return values. However, it leaves important operational context unstated, such as whether the container must already be running and how timeout_seconds affects execution.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the burden of explaining parameters. It loosely maps 'command' via 'Run sh -c' and 'container' via 'inside a container', but it completely omits timeout_seconds and gives no detail on command format or container identifier expectations.

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 states a specific action ('Run sh -c') and a specific resource ('inside a container'), which clearly identifies the tool's function. It is inherently distinguishable from sibling tools like docker_ps, docker_logs, or docker_inspect, none of which execute arbitrary commands inside a container.

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 gives no explicit guidance on when to use this tool versus alternatives such as run_command, docker_logs, or docker_start. The only qualification is '--privileged blocked,' which is a constraint rather than a usage guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

docker_inspectDocker inspectB
Read-only

State, image, ports and mounts of a container.

ParametersJSON Schema
NameRequiredDescriptionDefault
containerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, so the read-only nature is already known. The description adds that the tool returns state, image, ports, and mounts, which is useful context. However, it does not disclose error behavior (e.g., if the container does not exist) or that the output is detailed JSON, but the output schema likely covers the format. With annotations, the description adds moderate value.

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 front-loads the key information types. There is no waste or redundancy, making it highly 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 tool has an output schema, so return values do not need to be explained. The description gives a high-level summary of what is inspected. However, it does not mention that this is for a single container or that it provides low-level configuration details, which could help an agent decide when to use it. Overall, it is minimally adequate given the output schema and annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has a single required parameter 'container' with no description, and schema description coverage is 0%. The description does not explain the expected format (ID or name), nor does it clarify that this is the container to inspect. Given the low coverage, the description should compensate but does not.

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 states the tool inspects a container and lists the categories of information returned (state, image, ports, mounts). This is clear and specific, though it could explicitly say 'inspect' rather than relying on the name. It distinguishes from siblings like docker_ps (list) and docker_logs (logs) by indicating detailed info, but does not name alternatives.

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 docker_ps, docker_logs, or other container tools. The description does not state when inspection is appropriate or provide exclusions. The use case is only implied by the name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

docker_logsDocker logsB
Read-only

Tail logs of a container.

ParametersJSON Schema
NameRequiredDescriptionDefault
linesNo
containerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, covering the safety profile. The description adds the notion of 'tailing' (recent log lines) but does not clarify whether the tool streams continuously or returns a one-shot snapshot, nor how the 'lines' parameter affects behavior.

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 with no filler; it is immediately readable and front-loaded. No words are wasted.

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 read-only log tool with two parameters, the description is minimally adequate, but it omits whether the operation blocks/follows, how to specify the container, and how it differs from other log tools. The output schema and readOnlyHint fill some gaps, but the vague 'Tail' behavior leaves important runtime uncertainty.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not elaborate on either parameter. 'container' and 'lines' are self-evident from their names, but the description fails to explain that 'lines' controls the number of lines returned or that 'container' expects an ID/name.

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?

States a specific verb ('Tail') and resource ('logs of a container'), making its operation clear and distinguishable from sibling Docker tools like docker_inspect or docker_ps. The 'container' in the description aligns with the required parameter, leaving no doubt about the target resource.

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 such as vercel_logs, journal_query, or job_output. The description merely restates the action without prerequisites, exclusions, or selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

docker_psDocker containersA
Read-only

List containers (running by default, all=true for all).

ParametersJSON Schema
NameRequiredDescriptionDefault
allNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already discloses that this is a safe read operation. The description adds useful behavioral context by noting that running containers are shown by default and that 'all=true' expands coverage, which goes slightly beyond the annotation but does not provide deeper details such as output format or environment assumptions.

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 core operation and then explains the one parameter's effect. There is no filler or redundant restatement of the tool name.

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?

This is a simple listing tool with one optional boolean parameter, a readOnly annotation, and an output schema. The description covers the default and all-case behavior, leaving no missing information needed to invoke the tool correctly in its likely use contexts.

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 only provides a boolean named 'all' with a default of false, and schema description coverage is 0%. The description compensates by explaining the effective meaning: running containers by default, and all containers when 'all=true'. This gives the agent enough semantic understanding to set the parameter 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 uses a specific verb and resource ('List containers'), which makes the tool's primary function immediately clear. It also clarifies the default behavior (running only) and the way to override it, distinguishing it from the many docker_* siblings that inspect, modify, or manage containers.

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 the tool: when you need to list containers, especially running ones. However, it does not explicitly state when not to use it or mention alternatives like docker_inspect or docker_logs for more detailed per-container information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

docker_restartDocker restartB
Destructive

Restart a container (10s timeout).

ParametersJSON Schema
NameRequiredDescriptionDefault
containerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation already marks this as destructive (destructiveHint: true), so the description doesn't need to repeat that. It adds the 10s timeout, which is useful but not comprehensive. It doesn't explicitly state that restarting stops and then starts the container, which would imply downtime. Given the annotation covers the destructive nature, the description provides only a minor behavioral detail, so a 3 is appropriate.

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 that states the operation first and the timeout parenthetically. No wasted words; it is appropriately concise 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?

For a destructive tool with an output schema and a single parameter, the description is too sparse. It doesn't provide usage context (when to use vs. stop/start), doesn't mention that the container will be stopped and restarted, and doesn't clarify the parameter format. Even though the output schema exists, the description leaves the agent with gaps about invocation and side effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the description only says 'Restart a container,' which implies the parameter is the container but doesn't specify whether it's an ID, name, or how to format it. The description adds minimal meaning beyond the schema's bare 'container' string field. For a single-parameter tool, more detail (e.g., 'Provide the container ID or name') would be expected.

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 ('Restart') and the target ('a container'), making the tool's purpose unambiguous. It distinguishes from siblings like docker_start, docker_stop, and docker_rm by the specific verb. The timeout note adds a useful detail without confusing the core purpose.

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 given on when to use this tool versus alternatives such as docker_stop followed by docker_start. It doesn't mention scenarios (e.g., container unresponsive) or why restart is preferred over stop/start. The agent is left to infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

docker_rmDocker removeA
Destructive

Remove a (stopped) container.

ParametersJSON Schema
NameRequiredDescriptionDefault
containerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and readOnlyHint=false, so the description does not need to restate that this is destructive. It adds the precondition that the container should be stopped, which is useful behavioral context beyond the schema, but it does not explain what happens if a running container is passed or whether removal is irreversible beyond the annotation.

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 extremely short and front-loaded with the key action and target resource. There is no wasted wording, though the under-specification in other dimensions prevents a perfect conciseness score.

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 one-parameter destructive tool with an output schema and annotations covering safety, the bare description is minimally adequate. However, it lacks explicit guidance about handling running containers, and the single parameter is not semantically enriched, leaving some ambiguity for an agent deciding how to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has one required parameter, 'container', with no description, and schema description coverage is 0%. The description repeats that a container is removed but does not clarify whether the value should be a container ID, name, or how to identify the container, so the parameter remains under-specified.

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 states a specific action ('Remove') and resource ('container'), plus the relevant state condition ('stopped'). This clearly distinguishes it from sibling tools like docker_start, docker_stop, and docker_restart, which perform different lifecycle operations.

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 word 'stopped' implies the tool is for containers that are not running, which hints at when to use it, but it does not explicitly say 'use docker_stop first for running containers' or name alternatives. The usage guidance is therefore only implied, not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

docker_startDocker startC
Destructive

Start a container.

ParametersJSON Schema
NameRequiredDescriptionDefault
containerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and readOnlyHint=false, so the agent knows this is a mutating operation. The description adds no additional behavioral information such as side effects, state changes, or required container existence. It does not contradict annotations, but fails to enrich them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with a single sentence, but it is under-specified rather than efficiently front-loaded. There is no wasted wording, but the lack of essential details means it does not earn its place as a standalone definition.

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 is simple with one parameter, the description should cover at least the container identifier and expected behavior. It does not mention what happens if the container is already running, whether it must exist, or the output format. The output schema exists but is not shown, so the description carries responsibility for usage context, which it fails to provide.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has one required parameter 'container' with no description, and schema coverage is 0%. The description does not explain what the container parameter should be (ID, name, format) or any constraints. This is a critical gap because the agent has no guidance on how to fill the parameter correctly.

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 'Start a container' clearly states the verb and resource, making the primary action unambiguous. However, it does not differentiate from sibling tools like docker_stop, docker_restart, or docker_exec, though the distinct verb helps. It is specific enough for an agent to know what it does, but lacks context about scope.

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?

There is no guidance on when to use this tool versus alternatives such as docker_restart or docker_start with specific flags. No exclusions, prerequisites, or conditions are mentioned. The description merely states the action without any usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

docker_stopDocker stopA
Destructive

Stop a container (10s timeout).

ParametersJSON Schema
NameRequiredDescriptionDefault
containerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds a behavioral detail beyond annotations: the 10-second timeout. Annotations already declare the operation is destructive and not read-only, so the description does not need to restate that safety profile.

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 entire description is one short sentence with no redundant words. The core action is front-loaded, and the timeout is presented as a concise parenthetical detail.

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 one-parameter tool with an output schema and safety-related annotations, the description covers the essential operation and the timeout. It does not explain return values, but the output schema handles that, and no major contextual gap remains for normal usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has one required parameter ('container') with no description, and the description provides 0% schema coverage. The description only restates the resource concept but does not clarify whether the parameter expects a container ID, name, or other identifier, so it fails to fully compensate for the missing schema documentation.

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 uses a specific verb ('Stop') with a clear resource ('a container') and adds a timeout detail, making the tool's function immediately obvious. It also distinguishes itself from sibling tools like docker_start, docker_restart, and docker_rm by naming the exact operation.

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 clearly conveys when to use the tool: when you want to stop a container. It does not explicitly contrast with sibling tools such as docker_restart or docker_rm, but the context is clear enough to avoid obvious misuse.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

download_fileDownload fileB
Idempotent

Download an http(s) URL to a file inside writable roots. Total size is capped.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
destYes
overwriteNo
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare idempotentHint=true, readOnlyHint=false, and destructiveHint=false, covering safety aspects. The description adds useful context: the 'writable roots' constraint and the total size cap. However, it does not elaborate on what happens when dest already exists (overwrite behavior is only in the schema default) or the implications of the idempotent hint. It adds some value but not rich behavioral detail.

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, efficient sentence that front-loads the action and key constraint. It is appropriately concise, though it could briefly mention overwrite or timeout behavior without becoming verbose.

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 download tool, the description covers the core operation and a key constraint (writable roots, size cap). However, it omits details like what happens on URL failure, the exact handling of the overwrite flag, and any guidance on relative vs. absolute dest paths. With an output schema present, return value details are covered, but the description leaves room for ambiguity in edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning the schema has no property descriptions. The description mentions 'writable roots' as a constraint on dest, which provides some semantic guidance, but it doesn't explain the format of url, dest, overwrite, or timeout_seconds beyond what their names imply. Since the description carries the full burden for parameter semantics but only hints at one constraint, it is insufficient.

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 action: downloading an http(s) URL to a file, with the constraint 'inside writable roots.' This is a specific verb+resource combination that distinguishes it from general fetch or read operations, though it doesn't explicitly name alternative siblings like fetch_text or http_fetch.

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?

There is no guidance on when to use this tool versus alternatives such as fetch_text, http_fetch, or browser_fetch. The description only explains what it does, leaving the agent to infer the appropriate context. No exclusions or when-not-to-use conditions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

drive_getDrive downloadC
Destructive

Copy remote file into writable roots. Prompts.

ParametersJSON Schema
NameRequiredDescriptionDefault
destYes
overwriteNo
remote_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and readOnlyHint=false, so the description's implicit write behavior adds nothing new. The 'Prompts.' hint suggests an interactive confirmation step, but this is too vague to be useful and does not disclose consequences like overwrite behavior or error handling. No contradiction with annotations, but minimal added transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short, but this is under-specification rather than conciseness. The fragment 'Prompts.' is poorly structured and adds confusion. It does not front-load key usage information, and every word should earn its place; here they do not.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with three parameters and no parameter documentation, this description is wholly inadequate. It does not explain the purpose of 'writable roots', what 'Prompts' means, how overwrite works, or any return behavior. Even with an output schema present, the operational context is missing, making it impossible for an agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must explain parameters but does not mention remote_path, dest, or overwrite at all. It provides zero semantic meaning for any of the three parameters, leaving the agent without guidance on what each field expects.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Copy remote file into writable roots') which conveys a clear verb and resource, but the phrase 'writable roots' is ambiguous and the trailing 'Prompts.' is confusing. It does not clearly differentiate from siblings like download_file or drive_list, and the mention of prompting is unexplained.

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 given on when to use this tool versus alternatives. There is no mention of appropriate scenarios, exclusions, or references to sibling tools. The description gives no context about when copying a remote file is preferable over other operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

drive_listDrive listC
Read-only

List rclone remote path (needs RCLONE_REMOTE).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
max_entriesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true and openWorldHint=true, so the read-only nature is covered. The description adds the RCLONE_REMOTE prerequisite, which is useful, but it does not disclose expected output format, pagination behavior, error handling, or any network/rate implications. Given the annotations cover the safety profile, the description adds minimal additional behavioral context.

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 concise sentence that front-loads the core action and resource. It is efficient and avoids fluff. The inclusion of the RCLONE_REMOTE prerequisite is valuable. It is slightly terse but structurally sound.

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 has two parameters with zero schema descriptions, an output schema exists but the description does not reference it, and annotations are sparse, the description is incomplete. It does not explain how to construct a path (e.g., remote:folder), what max_entries does, or how results are returned. A more complete description would provide examples or clarify parameter semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description provides no parameter documentation. The path parameter is implied by 'remote path' but not explained in terms of format or examples, and max_entries is entirely undocumented. The description fails to compensate for the missing schema descriptions, leaving agents guessing about valid inputs.

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 action 'List' and the resource 'rclone remote path', which is specific enough to distinguish from local file listing tools like list_directory. The prerequisite 'needs RCLONE_REMOTE' adds context. However, it does not specify whether the listing returns files, directories, or both, leaving some ambiguity about the exact scope.

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 given on when to use this tool versus alternatives. The sibling list includes list_directory, file_search, and drive_get, but the description does not differentiate drive_list from these or explain when a remote listing is appropriate. The only hint is the RCLONE_REMOTE prerequisite, which is an environmental requirement rather than a usage condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

edit_fileEdit fileC
Idempotent

Replace an exact string in a file. dry_run=true previews a unified diff without writing.

ParametersJSON Schema
NameRequiredDescriptionDefault
newYes
oldYes
pathYes
dry_runNo
replace_allNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds the dry_run behavior, which is not covered by annotations. However, it does not disclose other behavioral traits such as what happens if the old string is not found, whether the file is modified in place, or how replace_all affects the operation. Annotations indicate non-readonly and non-destructive, but the description does not elaborate on side effects. It provides some context but is thin.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the core action, which is good. However, it is so short that it omits essential parameter details and usage context. While conciseness is valued, it comes at the cost of completeness, making it only minimally acceptable.

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 has five parameters with three required and an output schema, the description should cover input semantics and notable behaviors. It does not explain the required parameters (path, old, new) or the replace_all option, and it does not mention error conditions or return value expectations. It is incomplete for an agent to use this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate by explaining parameters. It only mentions dry_run, and even that is already present in the schema with a default and title. It does not explain path, old, new, or replace_all, leaving the agent to infer their meaning from parameter names. This is insufficient for a low-coverage situation.

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 states a specific action: 'Replace an exact string in a file.' This clearly identifies the verb and resource. It implicitly differentiates from patch-based tools by emphasizing 'exact string,' but it does not explicitly name alternatives or contrast with siblings like apply_patch or write_file.

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 given on when to use this tool versus alternatives. The description does not mention scenarios where edit_file is preferred over apply_patch or write_file, nor does it state any exclusions or prerequisites. Only the dry_run flag is mentioned, which is a usage detail, not a selection criterion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fetch_textFetch as textA
Read-only

Fetch URL, strip boilerplate, return LLM-ready text (<=3 redirects).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
max_charsNo
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds meaningful behavior beyond that: it strips boilerplate, produces LLM-ready text, and limits redirects to three. This gives the agent useful expectations about transformation and safety without contradicting the 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?

A single, front-loaded sentence with no filler. It states the action, transformation, output format, and a key constraint in under ten words. Every element earns its place.

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 tool is simple, has an output schema, and read-only annotations, so the description covers core purpose and transformation. However, it lacks alternatives guidance and parameter details, making it slightly incomplete for an agent deciding between similar fetch tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it does not explain max_chars or timeout_seconds behavior. While the URL parameter is obvious, the truncation and timeout semantics are left entirely to inference from names and defaults.

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 names a specific verb and resource ('Fetch URL, strip boilerplate, return LLM-ready text') and includes a concrete constraint ('<=3 redirects'). This clearly distinguishes it from sibling search tools like web_search and from raw HTTP tools like http_fetch.

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 retrieving a URL's content as clean, LLM-ready text, but it does not explicitly state when to choose this over alternatives such as browser_fetch or http_fetch. There is no exclusion guidance or mention of cases like JavaScript-heavy pages.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

file_copyCopy host fileA
Idempotent

Copy a file or directory. Source must be readable, destination must be writable.

ParametersJSON Schema
NameRequiredDescriptionDefault
destYes
sourceYes
overwriteNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnlyHint=false, destructiveHint=false, idempotentHint=true). The description adds useful prerequisite context ('Source must be readable, destination must be writable'), but it does not explain overwrite behavior or what happens when the destination already exists and overwrite is false. This is a moderate gap given the overwrite parameter exists.

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 focused sentence, front-loaded with the core action. Every part earns its place, and there is no unnecessary detail.

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 three-parameter copy tool, the description is mostly adequate, especially with an output schema present. However, it leaves the overwrite behavior implied rather than stated, which is important for an agent predicting side effects. The permission prerequisites are helpful but incomplete coverage of the tool's behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it only names source and destination without adding path format details or any semantics for the overwrite parameter. The overwrite behaviorβ€”whether existing files are replaced or cause an errorβ€”is not explained anywhere in the description.

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 states a specific action and resource: 'Copy a file or directory.' This clearly distinguishes it from sibling tools like file_move, file_delete, and file_restore. No ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: use this when a copy of a file or directory is needed. It does not explicitly contrast with file_move or other file operations, so it misses the full 'when not to use' guidance, but the core usage is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

file_deleteDelete host fileA
DestructiveIdempotent

Delete a file, or a directory when recursive=true. Never deletes a configured root itself.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
recursiveNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already convey destructiveHint=true, idempotentHint=true, and readOnlyHint=false. The description adds a valuable behavioral guarantee not present in the annotations: it never deletes a configured root itself. It does not detail failure modes such as missing paths or non-empty directories without recursive=true, but the core destructive boundary is clearly disclosed.

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 concise sentences, front-loaded with the action and target. Every clause earns its place: the first defines the operation and recursive behavior, and the second states a crucial safety limit. No filler or redundant repetition of schema or annotations.

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 two-parameter destructive tool with an output schema and annotations covering idempotence and destructiveness, the description is largely sufficient. It covers the purpose, the recursive condition, and the key safety exception. Minor ambiguity remains around what 'configured root' means and whether recursive deletion removes contents or just the directory itself, but these are acceptable gaps at this 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 0%, so the description must carry parameter meaning. It explains that path can reference a file or directory and that recursive=true enables directory deletion, while also adding the root-protection constraint on path. It does not specify path resolution or exact non-recursive directory behavior, but the essential semantics are well covered.

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?

States the operation explicitly with a specific verb and resource: 'Delete a file, or a directory when recursive=true.' The safety constraint 'Never deletes a configured root itself' adds meaningful scope and distinguishes it from read, copy, move, and restore siblings. It is not a tautology and leaves no doubt about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

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 the tool: when a file or directory needs to be removed, with recursive=true required for directories. However, it does not explicitly contrast with alternatives such as file_restore, file_move, or other file operations, and it gives no 'when not to use' guidance. The root-protection statement is a behavioral constraint rather than usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

file_grepSearch file contentsB
Read-only

Recursively search file contents for a regex pattern. Prefers ripgrep, falls back to grep or pure Python.

ParametersJSON Schema
NameRequiredDescriptionDefault
rootYes
patternYes
max_matchesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description adds value by specifying recursive search behavior and the fallback chain (ripgrep to grep to Python). However, it omits details like output format, error handling, or match limits beyond the default, leaving the agent with incomplete behavioral expectations.

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 concise sentences: the first front-loads the core purpose, the second adds relevant implementation context. No filler words, and each sentence earns its place.

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?

For a tool with three parameters, no schema descriptions, and a large sibling set, the description is too sparse. It lacks parameter semantics for root and max_matches, no usage guidance, and doesn't clarify return value behavior despite having an output schema. An agent would need to infer too much.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It clarifies that pattern is a regex, but leaves root (presumably a directory path) and max_matches (maximum number of matches) unexplained. This is insufficient given zero schema descriptions.

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 recursively searches file contents for a regex pattern, which is a specific verb+resource. However, it does not differentiate from siblings like search_text_tool or fuzzy_find_tool, which also search text, so it lacks explicit sibling distinction.

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. It only mentions implementation details (ripgrep fallback), not selection criteria or exclusions. An agent would have no basis to choose this over similar search tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

file_moveMove host fileA
DestructiveIdempotent

Move or rename a file or directory inside writable roots.

ParametersJSON Schema
NameRequiredDescriptionDefault
destYes
sourceYes
overwriteNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as destructive and non-read-only, and the description does not contradict them. It adds useful context like supporting both files and directories and restricting operations to writable roots, but it does not disclose what happens to the original after a move or how overwrite failures behave.

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?

One sentence of 13 words that is front-loaded with the core action and scope. No filler or redundant restatement of the tool name/title.

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?

With an output schema and annotations covering safety, the description does not need to detail return values. Still, it is incomplete for a destructive move operation because it does not clarify overwrite semantics, behavior when destination exists, or that the original is removed. 'Writable roots' is helpful but does not fully compensate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It implies source and dest through 'move', but it does not explain the 'overwrite' parameter at all, nor describe path constraints, default behaviors, or error cases. This is a notable gap for a tool with no parameter 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 states exact verbs 'Move or rename', the resource 'a file or directory', and a scope constraint 'inside writable roots'. It clearly distinguishes this from sibling tools like file_copy (copy) and file_delete (remove), so an agent can tell them apart without inspecting schemas.

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 used when moving or renaming files/directories, and 'inside writable roots' hints at a limitation. However, it does not explicitly compare with siblings such as file_copy or file_restore, nor state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

file_restoreRestore file versionB
DestructiveIdempotent

Restore the newest snapshot recorded for this path.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, so the mutating nature is known. The description adds the useful detail that only the newest snapshot is restored, but does not clarify whether the current file is overwritten without backup or what side effects occur. No contradiction with annotations is present.

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 that delivers the core behavior and the version selection rule with no wasted words. The most important information ('newest','snapshot','path') is 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?

For a simple one-parameter destructive restore, the description plus annotations cover basic invocation. However, it does not mention that the operation overwrites the current file, how to restore older snapshots, or when snapshot_restore/file_version would be more appropriate. An output schema exists so return details are less critical, but behavioral context remains thin for a destructive tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description needed to compensate. It only repeats 'this path' without explaining whether path must be a file, absolute or relative, or how it relates to snapshots. The single required parameter is obvious from the schema, but the description adds little beyond it.

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 states a clear action ('Restore') and a specific resource ('the newest snapshot recorded for this path'), which separates it from snapshot-level or listing tools. It does not explicitly name sibling tools to differentiate itself, but the path-scoped 'newest snapshot' wording is specific enough.

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 given on when to use this tool versus alternatives like file_version, snapshot_restore, or git_checkout. The description only says what it does, not when an agent should prefer it or what conditions exclude its use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

file_statFile statA
Read-only

Return size, modification time and type for a file on the host.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and openWorldHint=false, so the read-only nature is known. The description adds the specific returned fields but does not mention error handling, symlink behavior, or performance. It is consistent with annotations but does not go beyond them.

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, front-loaded sentence with zero waste. It states the action and result efficiently.

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 is simple with one parameter and an output schema exists, so return format is covered. The description fully covers the purpose and is sufficient for an agent to call it correctly. Missing edge-case details are minor for this level of complexity.

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 0%, so the description must compensate. It only says 'file on the host', which implies the path is a local filesystem path, but does not clarify absolute vs relative or whether directories are supported. Given a single obvious parameter, this is adequate but not thorough.

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 returns size, modification time, and type for a file on the host. It uses a specific verb and resource, and the listed fields distinguish it from sibling file tools like read_file or write_file.

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 any guidance on when to use this tool versus alternatives. It does not mention that it is metadata-only or suggest using it instead of read_file for non-content needs. The intended usage is implied but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

file_versionVersion fileB
Read-only

One-call pre-edit snapshot of a single file.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the useful 'pre-edit snapshot' context but does not explain what a snapshot entails, whether it persists, or what the returned output represents beyond what the output schema provides.

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 five-word sentence with no filler. It front-loads the core purpose and the intended use case efficiently.

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 one-parameter tool with an output schema and readOnlyHint annotation, the description provides sufficient context for correct invocation. It could be slightly more explicit about usage timing, but nothing critical is missing for a straightforward snapshot operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description should compensate, but it only mentions 'a single file' and does not elaborate on the path parameter's meaning, required format, or constraints. The path schema is minimal and the description adds little beyond the schema's own 'Path' title.

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 a snapshot of a single file intended for pre-edit use, giving both a specific resource and a clear purpose. It is distinguishable from plain read tools by the 'snapshot' framing, though it lacks an explicit verb like 'create' and does not fully differentiate from other snapshot-related siblings.

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 phrase 'pre-edit' implies when the tool should be used: before modifying a file. However, it gives no explicit guidance about when not to use it, nor does it name alternatives such as read_file, head_file, or snapshot_create.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_files_toolFind filesB
Read-only

Find files by glob, fd preferred with find/pathlib fallback.

ParametersJSON Schema
NameRequiredDescriptionDefault
rootYes
patternNo*
max_resultsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile with readOnlyHint=true and openWorldHint=false, so the description only needs to add extra behavioral context. It contributes one useful implementation trait β€” 'fd preferred with find/pathlib fallback' β€” signaling environment-adaptive execution. But it says nothing about recursion behavior, hidden-file handling, or what happens when root does not exist or is unreadable.

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?

One sentence, purpose verb front-loaded, followed by a compact implementation note β€” no wasted words. The 'fd preferred with find/pathlib fallback' parenthetical is terse jargon that may be cryptic to some agents, but it earns its place as the sole behavioral disclosure.

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 3-parameter tool with an output schema and a read-only annotation, the definition is minimally adequate. The notable gap is contextual: the sibling list contains at least four overlapping file-discovery tools, and the description does nothing to position find_files_tool among them, nor does it cover edge cases like missing roots or result truncation.

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?

With 0% schema description coverage and bare titles ('Root', 'Pattern', 'Max Results'), the description bears the full burden of explaining parameters. It adds the essential fact that pattern is a glob expression, which is critical for correct invocation. However, it leaves root's exact meaning (starting directory vs. file) and max_results's truncation role undocumented.

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 states a specific verb ('find'), resource ('files'), and method ('by glob'), making it clear this is filename-pattern discovery rather than content search or directory listing. However, it does not explicitly distinguish itself from the many file-related siblings (file_search, fuzzy_find_tool, directory_tree), relying on the 'glob' qualifier alone to carry that differentiation.

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?

There is no when-to-use guidance, no exclusions, and no alternatives named despite a sibling list crowded with overlapping tools like file_search, fuzzy_find_tool, search_text_tool, and list_directory. The 'by glob' phrase only implies that this is for pattern-based filename matching; the agent must infer the selection criteria against siblings entirely on its own.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fuzzy_find_toolFuzzy find filesA
Read-only

Subsequence filename search ranked by match compactness.

ParametersJSON Schema
NameRequiredDescriptionDefault
rootYes
queryYes
max_resultsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so safety is covered. The description adds valuable behavioral detail: matching is by subsequence (not substring or glob) and results are ranked by 'match compactness', which is a non-obvious behavior not visible in the schema. This goes beyond the annotations without contradicting them.

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, tightly packed sentence that front-loads the core action ('Subsequence filename search') and immediately adds the distinguishing ranking behavior. Every word contributes value; there is no repetition or filler.

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 tool has an output schema and read-only annotations, so return values and safety are covered. However, the description omits parameter semantics and usage guidance, and gives no hints about path handling or query formatting. For a simple read-only search tool this is acceptable but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain any of the three parameters. The names 'root', 'query', and 'max_results' are somewhat self-explanatory, but their precise semanticsβ€”such as whether root is a directory path or path prefix, what query syntax is expected, and how max_results limits outputβ€”are left entirely to inference.

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 states a specific verb ('search'), resource ('filename'), and defines the matching algorithm ('subsequence') plus ranking criterion ('match compactness'). This clearly distinguishes it from content-search tools like search_text_tool and from exact/glob-based finders like find_files_tool, even without naming them explicitly.

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 gives no guidance on when to use this tool instead of siblings such as find_files_tool, file_search, or search_text_tool. There are no conditions, exclusions, or alternative recommendations, so the agent must infer usage context from the tool name and one-line description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_blameGit blameB
Read-only

Blame line ranges of a tracked file. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYes
pathYes
countNo
startNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the 'Read-only' label adds little. However, the description contributes useful context by narrowing the scope to line ranges of a tracked file, implying that untracked files are out of scope. It does not contradict annotations.

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 very short and front-loaded, with no wasted sentences. 'Read-only' is slightly redundant with the readOnlyHint annotation, but the overall structure is efficient and easy to parse.

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 four parameters with zero schema descriptions, this description is incomplete. It does not clarify the distinction between path and file, nor how start and count define the line range. The presence of an output schema covers return values, but the invocation contract remains underspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain the meaning of 'path' versus 'file' or the roles of 'start' and 'count'. The phrase 'line ranges' only hints at start/count semantics but is not sufficient for an agent to confidently construct arguments.

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 uses a specific verb and resource: 'Blame line ranges of a tracked file.' It clearly identifies the operation and scope, and 'blame' is distinct enough from sibling git tools like git_log or git_diff to avoid confusion.

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 explicit guidance is given about when to use this tool instead of alternatives such as git_log, git_show, or git_diff. The description only implies usage through the term 'blame' and the tracked-file constraint, leaving the agent to infer selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_branchGit branchesA
Read-only

List local and remote branches for a repository on the host.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, and the description consistently describes a listing operation. It adds useful behavioral context beyond the annotation by specifying that both local and remote branches are listed and that the repository is on the host, implying a local filesystem operation rather than an API call.

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, front-loaded sentence with no filler. Every word contributes meaning: it states the action, scope (local and remote), resource (branches), and context (repository on the host).

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?

This is a simple read-only listing tool with one parameter, readOnlyHint=true, and an output schema. The description covers what the tool does and where it operates. There is no missing information needed for an agent to select and invoke it 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?

The input schema has 0% description coverage for its single required parameter, so the description must compensate. It does so by indicating that the repository is on the host, which tells the agent that 'path' refers to a local Git repository path. It does not provide detailed path formatting guidance, but for a single obvious parameter this is sufficient.

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 uses a specific verb and resource: 'List local and remote branches for a repository on the host.' It clearly identifies what the tool does and distinguishes it from sibling git tools like git_tag (tags), git_log (history), and git_status (working tree state) by naming branches explicitly.

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 the tool: when the agent needs to see local or remote branches. However, it does not explicitly mention alternatives or exclusions, even though many related git sibling tools exist. The usage context is clear but not fully elaborated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_checkoutGit checkoutB
Destructive

Checkout branch (create with -b). Refuses on dirty tree.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
branchYes
createNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds a behavioral trait beyond the annotations by stating 'Refuses on dirty tree,' which tells the agent the tool will fail under uncommitted changes. This is valuable safety information. However, it does not explain other side effects beyond the destructiveHint, and the '-b' reference introduces ambiguity about how creation is triggered.

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 compact and front-loaded: it states the action first, then the safety constraint. Every word earns its place. However, the '-b' phrasing is cryptic and slightly inconsistent with the structured 'create' boolean, preventing a perfect score.

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?

For a tool with three parameters, two required, treated as destructive, the description is too sparse. It omits the meaning of 'path', the relationship between '-b' and 'create', and the post-condition after checkout. The output schema exists but the description still leaves key invocation details unresolved, so an agent cannot reliably call this tool without external git knowledge.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the burden of explaining parameters. It hints at 'create' via '-b' and implies 'branch' is the target, but the required 'path' parameter is never defined. There is no explanation of what path refers to or what formats are accepted, making correct invocation difficult.

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 states the core action: 'Checkout branch' with an optional creation flag, which is a specific verb and resource. It's distinguishable from siblings like git_brach or git_show, though it doesn't explicitly name alternatives. The phrasing 'create with -b' is slightly inconsistent with the schema's 'create' boolean, which somewhat blurs the clarity.

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 given on when to use this tool versus alternatives like git_brach, git_reset, or git_merge. The only conditional statement, 'Refuses on dirty tree,' is a failure condition, not a usage directive. An agent receives no hints about prerequisites or which sibling to prefer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_cleanGit clean previewA
Destructive

Preview (dry_run) or execute clean; execution requires confirm=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
dirsNo
pathYes
confirmNo
dry_runNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and readOnlyHint=false, and the description adds important safety context by requiring confirm=true for execution. It does not explain specifically that git clean removes untracked files/directories, but the confirmation gate meaningfully supplements the destructive annotation.

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, front-loaded sentence with no filler: it states the mode, the default behavior, and the safety requirement efficiently. Every part earns its place.

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?

For a destructive command with no schema-level parameter descriptions, the description is incomplete. It omits what git clean actually removes and leaves path/dirs semantics undefined, even though the confirmation gate is well handled.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it only clarifies confirm and dry_run. The path and dirs parameters remain semantically unexplained, leaving an agent to guess their meaning and role in the operation.

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 operation as previewing or executing git clean, with an explicit confirmation requirement. It is specific enough to distinguish from other git operations like checkout or reset, though it does not explicitly name a sibling alternative.

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 gives clear operational context: preview via dry_run is the default, and actual execution is gated on confirm=true. It does not spell out when to choose git_clean over other git tools, but the safety gating and mode distinction provide useful guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_commitGit commitA
Destructive

Stage all changes and commit in a repository inside writable roots. Never pushes.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
messageYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it as destructive (destructiveHint: true), so the description doesn't need to restate that. It adds valuable behavioral context: it stages ALL changes (not selective) and guarantees it never pushes, which goes beyond the annotation and clarifies 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, efficient sentence that front-loads the primary action ('Stage all changes and commit') followed by the key constraint. There is no fluff or redundant 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 simplicity, the description covers the action, the writable-roots prerequisite, and the critical non-push guarantee. With an output schema present, return details are covered. Minor gaps like the exact staging scope (e.g., whether untracked files are included) are not critical for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at 0%, the description must compensate for the parameter meanings, but it does not. It only says 'stage all changes and commit', leaving the 'path' and 'message' parameters unexplained beyond their self-evident names. The description fails to elaborate on what each parameter expects (e.g., path as repo directory, message as commit text).

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 specific verb 'Stage all changes and commit' with the resource 'a repository inside writable roots'. It distinguishes from sibling git tools like git_status or git_log by focusing on the commit action, and the explicit 'Never pushes' differentiates it from any push-related operation.

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 committing changes, and the constraint 'inside writable roots' gives a prerequisite. The exclusion 'Never pushes' clarifies what it does not do, but it does not explicitly name alternatives or provide when/when-not guidance relative to other git tools like git_reset or git_revert.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_diffGit diffA
Read-only

Show uncommitted changes (or staged changes with staged=true) for a repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
stagedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description's burden is lighter. It adds behavioral context by specifying that uncommitted changes are shown by default and staged changes require staged=true, which complements the schema default. No contradiction with 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?

A single concise sentence that front-loads the primary action and uses a parenthetical to cover the alternative mode. There is no redundancy, and every word contributes to the meaning.

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 simplicity (2 simple parameters), the presence of an output schema, and the readOnly annotation, the description is mostly sufficient. The main gaps are the lack of usage differentiation and minimal path explanation, but for a simple diff tool this is relatively complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explicitly explains the staged parameter's effect, but the path parameter is left unexplained beyond implying it refers to a repository. The format, scope, and exact meaning of path are left to inference, so it only partially compensates for the missing schema 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 shows uncommitted changes, with an optional staged mode via the staged parameter. The verb 'Show' and resource 'uncommitted changes' are specific and distinguish it from siblings like git_show (specific commits), git_status (status summary), and git_log (history).

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 alternative git tools. It does not mention git_show, git_status, git_log, or any conditions for choosing this one. The usage context is implied by the description but never made explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

github_issueGitHub issuesD

List/get/create issues. create prompts.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
titleNo
actionNolist
numberNo
full_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

D1.9/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are all false and provide no safety profile, so the description must carry the behavioral disclosure burden. It fails to state that creating an issue is a mutating action, that listing/getting are reads, whether authentication is needed, or what side effects occur. No pagination, error, or return behavior is mentioned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short, which is good, but it is under-specified rather than appropriately concise. 'create prompts' is confusing filler that does not earn its place, and the core sentence omits necessary operational detail. It should clearly state the action modes and required inputs.

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?

Even though an output schema exists, the description is too incomplete for an agent to confidently invoke this tool correctly. It does not explain how to choose among list/get/create, what values 'action' accepts, or why 'full_name' is required. The tool appears moderately complex, but the description leaves critical invocation details implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not compensate by explaining any of the five parameters. It never clarifies what 'action' values are valid, what 'full_name' should look like, or how 'number', 'title', and 'body' relate to the listed operations. The description adds essentially no meaning beyond raw parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The phrase 'List/get/create issues' names a specific resource and three actions, so it is not a pure tautology. However, 'create prompts' is cryptic and may be a typo, and the description does not clearly separate the behaviors of listing, getting, and creating. It is understandable at a high level but not precise enough to fully distinguish this tool from github_repo or github_pr.

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 gives no signal about when to use this tool versus alternatives like github_pr or github_repo. There is no mention of required context, such as needing a repository full_name, nor any exclusion criteria. 'create prompts' is not actionable guidance for selecting this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

github_prGitHub PRsD

List/get/create PRs. create prompts.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseNo
bodyNo
headNo
titleNo
actionNolist
numberNo
full_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

D1.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With all annotations set to false, the description carries the full burden of behavioral disclosure. It only repeats the action ('List/get/create') without disclosing side effects, authentication requirements, rate limits, or impact of creating a PR. This is a significant gap 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short but not effectively structured; the fragment 'create prompts' is unclear and seems out of place. It is under-specified rather than concise, failing to deliver essential information in an organized manner.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (7 parameters, no schema descriptions, no annotations, and an output schema that does not compensate), the description is severely incomplete. The agent lacks any information about action values, full_name semantics, or how to construct a request.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain any of the 7 parameters (full_name, action, number, etc.). The agent cannot infer parameter meanings or required values from either source, making correct invocation nearly impossible.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'List/get/create PRs' which clearly identifies the verb and resource, but the appended 'create prompts' is ambiguous and may confuse the agent. It does not differentiate from sibling tools like github_issue or github_repo, so the purpose is clear but not well-scoped.

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. The description does not mention any conditions, exclusions, or references to sibling tools, leaving the agent without direction for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

github_repoGitHub repoB
Read-only

Repo metadata (needs GITHUB_TOKEN).

ParametersJSON Schema
NameRequiredDescriptionDefault
full_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds a crucial prerequisiteβ€”'needs GITHUB_TOKEN'β€”which is exactly the kind of auth requirement that annotations do not convey. This is valuable behavioral context beyond the structured metadata.

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 short phrases and zero filler. It front-loads the core purpose and immediately states the critical prerequisite. Every word earns its place, appropriate for a simple one-parameter tool.

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?

Although the tool is simple and an output schema exists, the complete absence of parameter semantics is a significant gap. The agent needs to know the expected format of 'full_name' to call the tool correctly, and neither the description nor the schema provides it. The auth note helps but does not fill the essential missing input contract.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, and the description does not explain the required 'full_name' parameter. The name itself is ambiguous (e.g., does it need an 'owner/repo' format?), and nothing in the description compensates for the missing schema documentation. The agent cannot determine the correct input format from any available source.

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 states the resource ('Repo metadata') and clearly implies a retrieval action, distinguishing it from siblings like github_issue and github_pr which target different GitHub resources. However, it lacks an explicit verb like 'get' or 'fetch', so it is clear but not maximally explicit.

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?

There is no guidance on when to use this tool instead of alternatives such as github_issue, github_pr, or git_show. The only hint is the tool name itself, which forces the agent to infer selection criteria rather than being told.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_logGit logC
Read-only

Show recent commits for a repository on the host.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the read-only nature is covered. The description adds 'on the host' which is minor. However, it does not disclose behavioral details like whether a valid git repository is required, error handling for non-repo paths, or the format of the returned commit list. With annotations covering the safety profile, the description adds little beyond that.

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 concise sentence, front-loading the core action and resource. There is no wasted wording, and the sentence is immediately understandable. It could be slightly more informative without becoming verbose, but it earns high marks for 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?

While an output schema exists, the description lacks essential context: it doesn't mention that the tool requires a valid git repository path, what happens if the path is invalid, or how count affects the result. It also doesn't hint at parameter semantics (covered above). For a tool with two parameters and no schema descriptions, this is insufficient for confident invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description provides no explanation of the 'path' or 'count' parameters. It doesn't clarify that 'path' points to a repository directory or that 'count' limits the number of commits (with default 10). The description 'recent commits' implies a limit but doesn't map to parameters, leaving the agent to guess. This is a significant gap given zero schema coverage.

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 action (show recent commits) and the resource (repository on the host). It distinguishes itself from siblings like git_status (status), git_diff (changes), and git_branch (branches), though it doesn't explicitly name them. The verb 'show' and noun 'recent commits' make 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 Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus alternatives such as git_show, git_blame, or git_status. There is no mention of use cases, prerequisites (e.g., being inside a git repository), or conditions that would make this tool preferable. The agent must infer its purpose from the name and minimal description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_mergeGit mergeC
Destructive

Merge a branch into the current one.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
no_ffNo
branchYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and readOnlyHint=false, so the agent knows this is a mutating operation. The description adds no extra behavioral contextβ€”it does not mention potential merge conflicts, the need for a clean working tree, or reversibility, which would be valuable beyond the annotation flags.

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, focused sentence with no redundant words, and it front-loads the action. However, it is overly sparse, sacrificing necessary detail for brevity, so it is not maximally effective.

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?

For a mutating git operation with an output schema, the description still lacks essential context: parameter meanings, merge conflict behavior, and prerequisites. An agent would struggle to invoke this correctly without additional information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate by explaining parameters. It does not mention what 'path', 'branch', or 'no_ff' mean, leaving all three parameters undocumented in both schema and description.

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 action ('Merge a branch into the current one') with a specific verb and resource, making the core purpose unambiguous. However, it does not differentiate from sibling git tools like git_rebase or git_checkout, so it lacks explicit sibling distinction.

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?

There is no guidance on when to use this tool versus alternatives such as git_rebase or git_checkout. The description simply states what it does without any context about suitable scenarios, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_rebaseGit rebaseC
Destructive

Rebase onto upstream; abort/continue conflicted rebases.

ParametersJSON Schema
NameRequiredDescriptionDefault
contNo
pathYes
abortNo
upstreamNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, so the destructive nature is known. The description adds the abort/continue behavior, which is beyond what annotations provide. However, it doesn't disclose that rebase rewrites history or that conflicts may arise beyond the phrase 'conflicted rebases'. Since annotations cover the destructive aspect, a 3 is appropriate.

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 concise sentence that front-loads the main action and secondary modes. It is efficient, but slightly under-specified given the tool's complexity. Still, it earns a 4 for being well-structured with no redundancy.

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 4 parameters, 1 required, 0% schema coverage, and a destructive annotation. The description is far too brief to be complete. It omits the required path parameter, does not explain when abort/continue should be used, and lacks details on output or error behavior. An agent would struggle to call this correctly without additional info.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain parameters. It mentions 'upstream' and 'abort/continue' but does not explain the required 'path' parameter, nor does it clarify what 'abort' and 'cont' do beyond the words. The description adds minimal semantic value for a 4-parameter tool with zero schema coverage.

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 action: 'Rebase onto upstream' and mentions the abort/continue functionality. It specifies the resource (git rebase) and is distinguishable from sibling git tools like merge or reset. However, it doesn't explicitly differentiate from alternatives like git_merge or git_reset, so it's not a perfect 5.

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. The description does not mention that rebase should be used for linear history or that merge might be preferred in certain workflows. It provides no exclusions or conditions for when to use abort/continue.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_resetGit resetD
Destructive

Reset modes; --hard requires confirm=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
revNoHEAD
modeNo--mixed
pathYes
confirmNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark destructiveHint=true, so the description should elaborate on destructive behavior. It only adds the confirm=true requirement for --hard, which is a single behavioral detail not in annotations. It doesn't disclose the scope of the reset (e.g., mixed vs hard), reversibility, or impact on working tree/index, leaving significant behavioral gaps for a destructive tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, but it is under-specified for a tool with 4 parameters and destructive behavior. It is a single fragment without clear structure or front-loading of critical information. While it avoids verbosity, it fails to provide necessary content, so it is not appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive tool with 4 parameters, no output schema shown, and zero schema coverage, the description is grossly incomplete. It doesn't explain what reset modes are available, what each parameter does, what the tool returns, or the consequences of using it. An agent cannot reliably invoke this tool based on the description alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate by explaining parameters. It only mentions 'modes' and 'confirm' without describing rev, path, mode values, or how confirm interacts with mode. No parameter is meaningfully explained, so it adds no value beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Reset modes; --hard requires confirm=true.' is vague about what is being reset and to what. It doesn't explicitly state it resets a Git repository's working tree, index, or HEAD to a specified revision. It provides a hint about a constraint but not a clear verb+resource statement, making it hard to distinguish from siblings like git_checkout or git_revert.

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 offers no guidance on when to use git_reset versus alternative tools such as git_checkout or git_revert. It only mentions a constraint for --hard, but gives no context on typical use cases, prerequisites, or scenarios where this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_revertGit revertB
Destructive

Revert a commit by creating an inverse commit.

ParametersJSON Schema
NameRequiredDescriptionDefault
revYes
pathYes
no_commitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true and readOnly=false. The description adds that it creates an inverse commit, which implies a non-destructive-to-history operation. However, it does not disclose potential failures (e.g., merge conflicts), the impact on the working directory, or whether the new commit is automatically committed unless no_commit is set. Some additional context beyond the annotation, but not rich.

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, compact sentence that is immediately informative and front-loaded. There is zero wasted language, and the core action and mechanism are stated directly.

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?

For a destructive operation with two required parameters and no parameter documentation, this description is severely incomplete. It omits what the parameters do, when the operation may fail, and the exact effect on the repository (only vaguely implies a new commit). The presence of an output schema mitigates some return-value ambiguity, but the call-time requirements are still unclear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description provides no parameter explanations. The meaning of 'rev' (commit reference), 'path' (path filter?), and 'no_commit' (suppress automatic commit) are entirely undocumented. The description fails to compensate for the missing schema 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 action (revert), the resource (a commit), and the method (creating an inverse commit). It distinguishes this from sibling git tools like git_reset (moves HEAD) or git_checkout (switches branches). A specific verb and resource with a clear mechanism.

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. There is no mention of prerequisites, such as a clean working tree, or when git_revert is preferred over git_reset or git_rebase. The description is purely functional and provides no decision-making context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_showGit showC
Read-only

Show a commit with stat (oneline). Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
revNoHEAD
pathYes
max_charsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the 'Read-only' note is redundant. The description adds the output format ('stat (oneline)'), which gives some context about behavior, but it does not disclose anything else like pagination, limits, or error handling. With annotations covering the read-only aspect, the description adds limited extra value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, containing only two short sentences. It is front-loaded with the core action. However, its brevity sacrifices essential information about parameters and usage, making it under-specified rather than optimally concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with three parameters (one required) and zero schema description coverage, the description is severely incomplete. It does not explain the meaning of any parameter, does not describe the return value beyond 'stat (oneline)', and lacks any usage context. An agent cannot reliably call this tool without additional information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning the parameters are completely undocumented in the schema. The description mentions no parameters at all, leaving the agent to infer the meaning of 'rev', 'path', and 'max_chars'. This is a critical gap because 'path' is required and its purpose is unclear.

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 action: 'Show a commit with stat (oneline).' It names the resource (commit) and the output format (stat, oneline), which is specific. However, it does not explicitly differentiate from sibling tools like git_log or git_diff, so it doesn't fully distinguish itself.

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. With many git-related sibling tools, the agent receives no hint about when git_show is the appropriate choice over git_log or git_diff. This leaves the selection ambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_stashGit stashB
Destructive

Stash list/push/pop/drop. pop/drop are destructive.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
indexNo
actionNolist
messageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly calls out that pop and drop are destructive, adding specificity beyond the generic destructiveHint annotation. It also implies list and push are non-destructive, which is useful behavioral context, though it does not describe other side effects like working-directory changes.

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 very short and front-loads the core operations, with the destructive warning placed second. It is concise with no filler, though the fragment 'Stash list/push/pop/drop' is slightly telegraphic.

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?

With four parameters, no schema descriptions, and a destructive-capable tool, the description is too sparse to fully guide invocation. It omits how path/index/message are used, what each action does, and any prerequisites or side effects beyond the destructive warning.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the burden of explaining parameters. It only surfaces the valid action values (list/push/pop/drop) but does not explain the meaning of path, index, or message, nor the relationships between action and these parameters.

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 names the Git stash resource and the four supported operations (list/push/pop/drop), which is clear enough for an agent to identify what the tool does. It does not explicitly differentiate this tool from sibling Git tools, but the action list makes the purpose reasonably unambiguous.

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?

There is no guidance about when to use this tool versus alternatives like git_show, git_checkout, or other git tools, nor any conditions for choosing list vs push vs pop/drop. The description implies stash management but does not state any usage context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_statusGit statusA
Read-only

Show git status and current branch for a repository on the host.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description's 'Show' is consistent with that. The description adds minimal extra behavioral context, mainly that the target is a repository on the host and that the current branch is included, but it does not disclose potential output details or edge cases beyond the 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?

The description is a single concise sentence with no redundancy. The core action and resource are front-loaded, and every word contributes to understanding the tool's purpose.

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-only tool with one parameter, an existing output schema, and safe annotations, the description is largely complete. It could be slightly more explicit about path expectations, but given the simplicity and the support from annotations and output schema, it is sufficient.

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 0%, so the description must compensate for the undocumented 'path' parameter. It does clarify that the path refers to a 'repository on the host', which adds useful meaning beyond the schema. However, it does not explain path form, restrictions, or whether it points to the repository root.

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 uses a specific verb ('Show') and a clear resource ('git status and current branch for a repository on the host'). It clearly differentiates this from sibling tools like git_log, git_diff, and git_branch by naming the exact information returned.

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 intended use is implied by the description: call this when you need the current git status and branch of a local repository. However, there is no explicit guidance about when not to use it or which sibling tool to prefer instead, such as git_branch or git_log.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_tagGit tagA
Destructive

List/create/delete tags. list is read-only; create/delete prompt.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
pathYes
actionNolist
messageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that list is read-only while create/delete prompt, adding meaningful behavior beyond the annotations. Annotations already indicate destructiveHint and non-read-only, but the prompt behavior is extra context that helps an agent anticipate 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 extremely concise: one short sentence carries the core behavior and a key safety distinction. Every word earns its place, and the structure is 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?

The output schema likely covers return values, but the parameter semantics are underspecified given the 0% schema description coverage. The description does not clarify the meaning of path/name/message or what 'prompt' entails in practice, leaving an agent to guess at call structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must explain parameters, but it only hints at action values (list/create/delete). It does not explain the roles of path, name, or message, nor why path is required. This is a significant gap for correct invocation.

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 names a specific verb and resource: 'List/create/delete tags.' Combined with the title 'Git tag', it clearly states what the tool does. It is unambiguous and distinguishable from the many sibling Git tools.

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 about when to use this tool versus alternatives, such as git_branch for branch operations or git_commit for commits. The description implies tag-management usage but does not give explicit context, exclusions, or alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_worktree_createGit worktree createA
Destructive

Create an isolated worktree under .worktrees/ for agent work.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
branchYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered. The description adds useful context about isolation and the .worktrees/ directory, but omits behavioral details such as whether the branch must already exist, whether the worktree is created relative to the current checkout, or any possible side effects on existing workspace state.

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 clear, front-loaded sentence with no filler. Every word contributes meaning: 'isolated', the location, and the intended use case are all present.

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 tool is relatively simple, has an output schema, and annotations cover the destructive nature. However, the 0% parameter coverage and the absence of usage guidance leave notable gaps. An agent could likely call it correctly, but may guess about path/branch semantics or about the appropriate workflow context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description does not compensate. It only hints at the path by mentioning .worktrees/, but provides no explanation of what 'path' should be, whether 'branch' is an existing branch or a new branch name, or how the two parameters relate to each other.

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 states a specific verb ('Create'), a precise resource ('an isolated worktree'), and a clear location ('under .worktrees/'). This makes the tool easily distinguishable from siblings like git_worktree_list and git_worktree_remove without opening any schema.

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 phrase 'for agent work' implies use when an isolated worktree is desired, but the description gives no explicit guidance on when to choose this over alternatives like git_checkout, git_branch, or git_worktree_list. No exclusions or alternative conditions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_worktree_listGit worktree listC
Read-only

List worktrees of a repository. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description repeats 'Read-only' which is already declared by readOnlyHint=true in annotations, adding no new behavioral information. It does not disclose any other traits like output size, path interpretation, or whether it operates on the current repository only. Since annotations cover safety, the description adds minimal value beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and front-loaded with the verb and object, which is concise. However, it is too sparse, omitting critical parameter guidance. It earns a middle score because conciseness is good but the content is insufficient for a complete tool spec.

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?

Although an output schema exists (so return format is covered), the description is incomplete because it fails to explain the sole parameter. Given the tool is simple, the missing parameter semantics are a critical gap. The description does not provide enough context for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must explain the 'path' parameter. It does not. There is no mention of what path refers to (e.g., repository path, worktree path) or any format hints. The agent has no additional information beyond the parameter name.

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 uses a specific verb ('List') and resource ('worktrees of a repository'), making the action unambiguous. It clearly distinguishes from sibling tools like git_worktree_create and git_worktree_remove, which are mutations. No ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

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. It does not mention conditions such as 'to inspect worktree state before modifying' or exclusions (e.g., 'not for creating/removing'). The context is implied by the name, but no explicit usage rules are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_worktree_removeGit worktree removeC
Destructive

Remove an agent worktree created by git_worktree_create.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
forceNo
branchYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, so the description need not restate that. But it adds no extra context about what gets destroyed (e.g., branch deletion, effect of force) or any side effects. The description is minimal and adds little beyond the tool name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, which is efficient, but it is under-specified rather than concise. It omits essential behavioral and parameter details, making it closer to a placeholder than a well-structured definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive operation with three parameters and no schema descriptions, the description is severely incomplete. It doesn't mention prerequisites (worktree must exist), the role of force, or what happens to the branch. While an output schema exists, it doesn't cover these operational details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description provides no explanation of the path, branch, or force parameters. It fails to compensate for the schema's lack of documentation, leaving agents without any semantic understanding of how to use the parameters.

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 action (remove) and the specific resource (agent worktree) and ties it to git_worktree_create, making it distinct from generic worktree removal. However, it doesn't explicitly differentiate from sibling tools like git_clean or git_worktree_list, though the agent worktree qualifier helps.

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 phrase 'created by git_worktree_create' implies the tool is intended for worktrees created by that specific tool, providing some usage context. However, there is no explicit guidance on when not to use it or mention of alternatives, leaving the agent to infer the scope.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

head_fileFile headA
Read-only

Return the first N lines of a file.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
linesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, so the read-only nature is already covered. The description adds no further behavioral details (e.g., error handling, size limits, encoding). Given the simplicity of the operation, this is adequate but adds nothing beyond the 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?

A single, front-loaded sentence with zero redundancy. It states the action and the target directly, making it highly efficient.

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?

For a simple read operation with an output schema and readOnlyHint annotation, the description is complete. It covers the core functionality without needing to explain return values (handled by output schema) or safety (handled by annotation). No additional information is required for an agent to call this tool 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?

Schema coverage is 0%, so the description must carry semantic meaning for parameters. It does: 'first N lines' directly maps to the lines parameter and 'file' maps to path, providing clear meaning. However, it does not mention the default value or that lines is optional, but these are present in the schema structure.

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?

States a specific operation (Return) on a specific resource (first N lines of a file), which clearly distinguishes it from tail_file (last lines) and read_file (full file). The verb and object are explicit and 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?

No explicit mention of alternatives or when to use this tool versus tail_file or read_file. The usage is implied by the purpose ('first N lines' indicates a need for the beginning of a file), but there is no direct guidance or exclusionary language.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

host_identityHost identityA
Read-only

Return identity information for the real host running this MCP server.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true and openWorldHint=false, covering the safety profile. The description adds the useful clarification that it targets the 'real host' rather than any remote system. However, it doesn't disclose other potential behaviors like latency or failure modes, which is acceptable given the tool's simplicity and annotation coverage.

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 that states the tool's purpose with zero wasted words. It is front-loaded and immediately comprehensible, with no redundant qualifiers or filler.

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?

This is a zero-parameter, read-only tool with both annotations and an output schema available. The description fully explains what the tool does, and nothing else is needed for an agent to correctly invoke it. The presence of an output schema obviates the need to describe return values in the description.

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 the baseline is 4. The description correctly makes no mention of parameters, and there is nothing to add beyond what the empty schema already conveys.

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 uses a specific verb 'Return' with a clear resource 'identity information' and scope 'for the real host running this MCP server'. It unambiguously differentiates from sibling tools like system_summary or db_status by focusing on host identity. There is no ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use this tool – whenever an agent needs identity information about the host running the MCP server. While it doesn't explicitly name alternatives or exclusions, the purpose is so specific that an agent can infer the appropriate context without confusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

http_fetchFetch URLC
Read-only

Fetch an http(s) URL from the host and return its text. Response size is capped.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
max_charsNo
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds the behavioral detail that 'Response size is capped,' which is useful context for understanding limits. However, it does not disclose the actual cap value, any authentication requirements, or error/redirect behavior. Given the annotations carry the main safety profile, a 3 is appropriate.

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 short sentences with no filler. The core purpose is stated first, and the relevant limitation (response cap) follows immediately. Every sentence contributes useful 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?

For a tool with 0% parameter schema coverage, the description omits crucial details about both configurable parameters (max_chars, timeout_seconds) and how to set them. It also lacks any guidance to differentiate from similar sibling tools. The output schema's existence reduces the need to describe return values, but the parameter and usage gaps leave the description incomplete for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden of explaining the parameters. It fails to mention max_chars or timeout_seconds at all. The statement 'Response size is capped' only vaguely hints that a cap exists without connecting it to the max_chars parameter, and timeout behavior is completely undocumented. This falls far short of compensating for the missing schema descriptions.

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 states a specific verb and resource: 'Fetch an http(s) URL from the host and return its text.' It clearly identifies the tool's primary action and output. However, it does not distinguish itself from siblings like browser_fetch or fetch_text, both of which could plausibly perform similar URL fetches.

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 such as browser_fetch or fetch_text. The description says nothing about scenarios where server-side fetching is preferred, or when a browser-based fetch or local file text extraction would be more appropriate. The phrase 'from the host' hints at one differentiator but does not give actionable selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

interface_listList interfacesB
Read-only

Network interfaces with state and MAC.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds the minor detail that state and MAC are included in results, but does not clarify what 'state' means, whether this reflects the host's interfaces, or any other behavioral nuance. This is acceptable but not rich.

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 six-word fragment with zero fillerβ€”every word contributes. However, it is not a complete sentence and omits the verb, making it terse rather than well-structured. Slightly more polish would make it ideal.

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 parameterless read-only listing tool with an output schema present and safety annotations in place, the description provides the essential content expectation (state and MAC). It does not explain the scope of the listing, but the low complexity and existing structured metadata make this a minor gap rather than a deficiency.

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 the schema leaves nothing unexplained. Per the rubric, 0-parameter tools get a baseline of 4 because there is no parameter burden for the description to carry.

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 identifies the resource (network interfaces) and the returned fields (state and MAC), which gives an agent a concrete idea of what the tool exposes. It lacks an explicit verb, relying on the title for 'list', and does not explicitly differentiate from similar siblings such as port_list or connection_list, though the resource is specific enough to avoid gross ambiguity.

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?

There is no guidance on when to use this tool versus alternatives like port_list, connection_list, or network_check. With over 120 siblings, several of which are network-related, the absence of any selection criteria leaves the agent to guess which listing tool fits the task.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

job_cancelCancel jobA
DestructiveIdempotent

Terminate a running job (TERM, then KILL after 5s).

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=true, so the description does not need to restate destructiveness or idempotency. It adds valuable context beyond annotations by specifying the termination sequence (TERM, then KILL after 5s), which explains the escalation behavior an agent should expect.

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, front-loaded sentence that conveys the action and the key behavioral nuance in under ten words. Every word earns its place with no filler or redundant restatement of the title.

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 one-parameter tool with an output schema and safety annotations, the description covers the essential behavior and signal escalation. It does not mention what happens if the job is already finished or how to locate job_id, but these are minor given the tool's simplicity and the presence of sibling job_* tools.

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 schema provides only a title 'Job Id' with 0% description coverage, and the description does not explicitly define job_id or state where to obtain it. However, the parameter's meaning is self-evident from the tool name and description context, so the combination is minimally adequate but does not fully compensate for the missing schema description.

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 uses a specific, action-oriented verb ('Terminate') with a clear resource ('a running job'), and distinguishes itself from sibling read/status tools by focusing on killing the job rather than inspecting, waiting, or listing it. The TERM-then-KILL detail further confirms the operation.

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 the toolβ€”when a running job needs to be terminated. However, it does not explicitly state when not to use it or mention alternatives like process_kill or job_start as contrasts. The usage context is reasonably clear but relies on inference from the sibling tool names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

job_listList jobsB
Read-only

List background jobs, optionally only running ones.

ParametersJSON Schema
NameRequiredDescriptionDefault
running_onlyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the filtering behavior for running jobs, which is useful. However, it does not disclose output structure, ordering, or pagination, though an output schema likely covers some of this. Overall, it adds some value beyond annotations but not extensive.

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 with no wasted words. It front-loads the main action and includes the optional filter. Perfectly concise.

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 presence of an output schema (which is not shown but indicated), the description does not need to explain return values. The tool is a simple list operation with one optional filter. The description adequately conveys the core behavior. It could mention that it lists all jobs or that results may be limited, but for a basic listing tool this is sufficient.

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 schema property 'running_only' has no description, so schema coverage is 0%. The tool description clarifies the parameter's meaning via 'optionally only running ones'. This provides the necessary semantics for a simple boolean parameter, though it does not mention the parameter by name or elaborate on edge cases.

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 action (list) and resource (background jobs), and adds an optional filter for running ones. It is distinct from siblings like job_status or job_cancel, though it does not explicitly name them. The purpose is unambiguous.

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?

There is no guidance on when to use this tool versus alternatives. It does not mention job_status for individual job details or job_wait for waiting on completion. The description leaves the usage context to the agent to infer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

job_outputJob outputA
Read-only

Read new job output since cursor. Returns new cursor.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
job_idYes
streamNostdout

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as readOnly and not open-world, and the description is consistent with that. It adds useful behavioral context beyond annotations by explaining that the tool returns only new output since the cursor and that it returns a new cursor for continued reading.

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 short sentences with no filler. It front-loads the core action and then states the key return value, making it easy for an agent to parse quickly.

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 core operation is conveyed and the output schema plus readOnly annotations reduce some burden. However, the description lacks usage guidance and does not explain important parameters like stream or limit, leaving meaningful gaps for an agent deciding how to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the burden of explaining parameters. It only loosely clarifies the role of the cursor through 'since cursor' and 'returns new cursor,' while leaving job_id, limit, and stream semantics unexplained.

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 states a specific verb and resource: 'Read new job output since cursor.' This clearly distinguishes the tool from siblings like job_status and job_wait, which address status or waiting rather than reading output. The cursor-based incremental behavior is immediately identifiable.

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 gives no explicit guidance on when to use this tool versus alternatives, nor does it mention exclusions or intended call patterns. The context of polling incremental job output is implied by 'since cursor' but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

job_startStart background jobB

Launch a command in background. Returns job_id; page with job_output, block with job_wait.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo
commandYes
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is not read-only and not destructive, covering the mutation aspect. The description adds that the command runs asynchronously and that results are retrieved via job_output/job_wait, which is useful. However, it does not disclose potential side effects, failure modes, or environment details, leaving the agent with limited behavioral awareness beyond the 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?

The description is two short sentences that are front-loaded with the primary action and then provide the return value and follow-up tools. Every word earns its place, with no redundancy or unnecessary detail.

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 presence of an output schema, the return value is partially covered, but the description omits all parameter semantics and provides minimal guidance on usage context. The tool has three parameters, and without any explanation, an agent cannot reliably construct a valid call. The description is far from complete for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage for all three parameters (command, cwd, timeout_seconds), and the description provides no information about them. An agent cannot infer what these parameters mean or how to set them correctly. This is a significant gap that the description fails to compensate for.

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 states a specific action ('Launch a command in background') with a clear resource and differentiates itself from foreground alternatives by emphasizing background execution. It also names the companion tools (job_output, job_wait) and the return value (job_id), giving a complete sense of what the tool does and how it fits into the workflow.

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 the tool (for background jobs) but does not explicitly state when not to use it or mention alternatives like run_command or terminal_*. The context of 'background' and the presence of sibling tools suggests the use case, but no explicit guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

job_statusJob statusA
Read-only

Show state, pid, exit code and buffer sizes for a job.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is known. The description adds the specific fields shown (state, pid, exit code, buffer sizes) but does not mention any error behavior or prerequisites like the job must exist. It does not contradict the annotations, and the added detail is modest.

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 one short sentence that immediately states the purpose and the exact fields. No filler or redundant information. It is well front-loaded 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?

Given the output schema exists, the return format is covered. However, the description does not provide any context on when to call it in a job lifecycle (e.g., after job_start) or how it relates to job_wait and job_list. For a low-complexity tool this is adequate, but a brief usage hint would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has a single required param job_id with no description and 0% schema coverage. The description only says 'for a job,' which does not clarify that job_id is the identifier returned by job_start or job_list. It fails to compensate for the schema's lack of parameter documentation.

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 shows job status fields: state, pid, exit code, and buffer sizes. This is a specific verb+resource that distinguishes it from siblings like job_list (list all jobs) and job_output (show output). The scope is 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?

There is no explicit guidance on when to use this tool versus alternatives. It is implied that one uses it to inspect a specific job's status, but no exclusions or comparisons are given. Given the large set of job-related tools (job_start, job_wait, job_cancel), a sentence about when to prefer this would have helped.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

job_waitWait for jobA
Read-only

Block until a job exits or timeout. Prefer over polling job_status.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint=true, so no mutation concerns. The description adds the critical behavioral trait that this tool blocks synchronously until exit or timeout, which is essential for an agent to understand invocation behavior (e.g., it may take a long time, not immediately return). It does not specify timeout failure semantics, but the output schema likely covers return values.

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 sentences with zero fluff. The core behavior is front-loaded in the first sentence, and the usage guidance follows immediately. Every word earns its place; nothing repeats the schema or annotations.

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?

For a simple 2-parameter tool with an output schema and read-only annotations, this description covers the essential behavior and gives routing guidance relative to its closest sibling. Missing details like timeout error handling are minor and addressed by the output schema/system semantics. The description is complete enough for an agent to invoke 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?

Schema description coverage is 0%, so the description must compensate. It does so by directly mentioning 'timeout,' giving meaning to timeout_seconds, and 'a job' maps to job_id. The schema provides default and requiredness, so together the parameter meaning is sufficiently clear.

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 states a specific verb ('Block') with a clear resource and condition ('until a job exits or timeout'). It explicitly distinguishes itself from the sibling job_status by saying 'Prefer over polling job_status,' so an agent can confidently identify its role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Prefer over polling job_status' is explicit guidance on when to use this tool instead of an alternative. It names the alternative and gives a clear preference, which is the key routing decision an agent faces. It does not exhaustively cover all siblings, but the central conflict is resolved.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

journal_queryQuery journalA
Read-only

User journal tail, optional service/priority/since filter.

ParametersJSON Schema
NameRequiredDescriptionDefault
linesNo
sinceNo
serviceNo
priorityNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true, so the read-only nature is covered. The description adds the 'tail' behavior and filter dimensions, but does not disclose default line counts or the interpretation of 'since'. No contradiction with annotations.

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, front-loaded fragment with no filler. The noun-phrase 'User journal tail' is efficient but could be clearer as a full sentence, and a bit more explicit detail would not harm conciseness.

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 read-only tool with an output schema, the description covers the core purpose and main filters. However, the ambiguity around the 'since' value format and the omission of the lines parameter are notable gaps for correct 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?

Since schema description coverage is 0%, the description partially compensates by identifying service, priority, and since as filters, and 'tail' implies the lines parameter. However, it does not explain value formats (e.g., since timestamp format) or explicitly mention lines, leaving gaps.

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 names a specific resource ('user journal') and operation ('tail'), and lists the optional filters service/priority/since. This clearly distinguishes it from sibling log-oriented tools like audit_log, docker_logs, and vercel_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?

The description implies use for reading recent user journal entries, but it does not explicitly state when to use this tool over alternatives or when not to use it. No sibling tool is referenced, leaving the agent to infer the context from the resource name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_directoryList host directoryB
Read-only

List an allowed directory on the real host.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo~
max_entriesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, covering the safety profile. The description adds useful context by saying 'allowed directory' and 'real host', implying the tool operates on the actual filesystem rather than a sandbox. However, it doesn't disclose behaviors like sorting, pagination limits, or error handling for non-existent paths, which would be valuable beyond the annotations.

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, front-loaded sentence with no filler. It communicates the core action and constraint efficiently. While it is very brief, it is appropriately concise for a simple read-only operation.

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 low complexity (2 optional params, no nested objects) and the presence of an output schema, the description need not detail return values. However, it omits key context such as what constitutes an 'allowed' directory, whether the listing is recursive or just immediate children, and how the tool handles invalid paths. The description is minimally sufficient but leaves gaps that an agent might need to resolve via experimentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has two parameters (path and max_entries) with defaults but no descriptions, and the schema description coverage is 0%. The description provides no explanation of what 'path' or 'max_entries' mean, nor any format expectations. The tool name implies listing directory contents, but the description fails to clarify that path is the directory to list and max_entries caps the number of returned items. This is a significant gap.

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 action (List) and the resource (an allowed directory on the real host). It differentiates from sibling tools like directory_tree or find_files_tool by emphasizing 'allowed directory' and 'real host', which hints at constraints. However, it doesn't explicitly say what kind of entries it returns (files, dirs, etc.), so it's clear but not fully specific.

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 doesn't mention when to prefer directory_tree or find_files_tool, nor does it state exclusions like 'use find_files_tool for recursive searches'. The agent is left to infer the intended use case from the name and description alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

maps_directionsDirectionsB
Read-only

Directions (google with key, else straight-line km).

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNodriving
originYes
destinationYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint and openWorldHint, and the description adds meaningful behavioral context by disclosing that it uses Google if a key is available, otherwise falls back to straight-line km. This conditional behavior is valuable and goes beyond the structured annotations. However, it does not elaborate on network dependency or response variability.

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 extremely short and front-loaded, with no unnecessary words. The key behavioral distinction is packed into the parenthetical. While it reads more like a fragment than a complete sentence, it is concise and efficient for the information it conveys.

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 has three parameters with zero schema descriptions and no parameter documentation in the description, an agent would likely struggle to invoke it correctly. The description does not explain origin/destination formats, allowed mode values, or when the Google path is used versus the straight-line fallback in practical terms. Output schema exists, so return value structure is less critical, but the missing parameter semantics and usage guidance leave noticeable gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the burden for parameter meaning. Origin and destination are self-explanatory by name, but 'mode' is not described at all beyond its default value, and the description does not clarify accepted formats (e.g., addresses vs coordinates) or how mode affects the outcome. The mention of 'straight-line km' hints at output units but not parameter semantics.

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 title 'Directions' plus the description 'Directions (google with key, else straight-line km)' clearly identifies the tool as computing directions between an origin and destination. The parenthetical also distinguishes it from geocoding by mentioning straight-line km and Google. However, it lacks an explicit verb like 'calculates' or 'returns', which would make the purpose fully unambiguous.

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 gives no guidance on when to use this tool versus alternatives such as maps_geocode or other mapping-related tools. There are no explicit use cases, prerequisites, or conditions that would help an agent decide between this and a sibling tool. The only contextual hint is the fallback behavior, which is about execution, not selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

maps_geocodeGeocodeA
Read-only

Forward geocode (google with key, else nominatim).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description confirms a non-mutating operation. It adds the behavioral detail of provider fallback (Google if key available, otherwise Nominatim), which is useful context beyond annotations. No side effects or rate limits are disclosed, but read-only status is covered.

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, front-loaded sentence with no filler. It states the core action and a key behavioral detail (provider fallback) efficiently. Perfectly sized for a simple tool.

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 (one parameter, read-only, has output schema), the description is mostly adequate. However, it lacks clarification on the query format and any limitations or prerequisites. The presence of an output schema reduces the need to describe returns, but the parameter ambiguity is a notable gap. Overall, it's minimally sufficient but not rich.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must clarify the single 'query' parameter. The description only says 'Forward geocode' and implies the query is a location, but does not specify the expected format (e.g., address, place name) or provide examples. The schema title 'Query' is minimal, and the description adds no additional semantic value.

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 states a specific verb ('Forward geocode') and the resource (geocoding). It clearly distinguishes from the sibling maps_directions by indicating a different operation. The provider fallback ('google with key, else nominatim') adds clarity without ambiguity.

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 guidance on when to use this vs. alternatives like maps_directions. The tool name and title make it clear it's for geocoding, but there's no mention of use cases or exclusions. The provider selection note is about implementation, not usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_forgetMemory forgetB
Destructive

Delete an observation or whole entity. Prompts.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityYes
observationNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false, so the destructive nature is covered. The description adds scope ('observation or whole entity') and mentions prompting, though 'Prompts.' is ambiguous and does not describe what happens during the deletion or whether it is reversible. No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and leads with the action, which is good. The fragment 'Prompts.' is not a complete sentence and its meaning is unclear. The description is concise but under-specified rather than tightly informative.

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 is relatively simple, has destruptive annotations, and has an output schema, the description is mostly adequate for basic invocations. Still, it misses important behavioral details such as whether a confirmation prompt appears, whether deleting an entity also removes all its observations, and what happens with an empty 'observation'. These gaps matter for correct use.

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 coverate is 0%, but the description does add meaning by indicating that either an observation or the whole entity can be deleted, which maps to the optional 'observation' and required 'entity' parameters. However, it does not explain how the two parameters interact, such as what happens when 'observation' is omitted or what format these values should take.

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 states a specific verb ('Delete') and resource ('observation or whole entity'), making the destructive purpose clear. It differentiates itself from sibling memory tools (memory_store, memory_link, memory_recall) by describing deletion rather than storage or recall. However, it does not explicitly name related alternatives or fully define what 'entity' means in context.

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 given about when to use this tool versus alternatives. The verb 'Delete' implies this is for removing memories, but there is no explicit context, prerequisites, or distinction from memory_link or memory_recall. The second sentence 'Prompts.' is too vague to serve as operational guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_recallMemory recallB
Read-only

Substring recall over entities, observations and relations.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
max_resultsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds a behavioral detail: matching is by substring rather than semantic or exact match. This is useful but does not go further, such as explaining ordering, deduplication, or behavior with no results. No contradiction with 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?

The description is a single, tightly worded phrase with no fluff or redundancy. Every token ('substring', 'recall', 'entities', 'observations', 'relations') carries meaning, making it an example of efficient structure.

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 two-parameter tool with an output schema and safety annotations, the description is minimally viable but leaves notable gaps: no usage scenario, no behavior around max_results, and no clarification of what 'entities, observations and relations' refer to in practice. The existing output schema covers return shape, so the missing bits are selection and parameter semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the two parameters. 'Substring recall' implies the query is a substring to search for, which adds some meaning to `query`. However, `max_results` is never addressed, and the description does not clarify expected query format, scope, or limits. The compensation is only partial.

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 states a specific operation ('substring recall') over a specific resource ('entities, observations and relations'), which clearly conveys what the tool does. It also distinguishes itself from generic search tools like web_search and wiki_search by scoping to memory-domain data, and from sibling memory tools by focusing on retrieval rather than store/forget.

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 gives no guidance on when to use this tool versus alternatives. It does not mention memory_store, memory_forget, web_search, or any condition for selection. The agent must infer usage solely from the tool name and the single line of description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_storeMemory storeB

Store one observation on an entity (persistent knowledge graph).

ParametersJSON Schema
NameRequiredDescriptionDefault
entityYes
entity_typeNogeneral
observationYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a mutation (readOnlyHint=false, idempotentHint=false), and the description adds that the store is persistent and that the unit of work is a single observation. However, it does not disclose what happens on duplicate stores, whether entities are auto-created, or whether observations append or replace. Given the simple scope and non-destructive annotations, this is adequate but not rich.

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?

One sentence, no waste, action front-loaded, parenthetical for context. The description is appropriately sized for a simple three-parameter tool.

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 core operation is clear enough to invoke with the required parameters, and an output schema exists so return values are covered. However, with 0% schema coverage, the description should have explained entity_type or at least signaled its optional role. It also lacks any hint about knowledge-graph behavior such as deduplication or entity creation. Functional but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It clarifies 'entity' as the target and 'observation' as the content, but it omits 'entity_type' entirely and provides no additional meaning for any parameter. The optional entity_type parameter remains undocumented.

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 states a specific verb ('Store'), a direct object ('one observation'), and a target ('an entity'), with the parenthetical 'persistent knowledge graph' adding context that distinguishes it from read/delete/link siblings. It is immediately clear what the tool does and how it differs from memory_recall, memory_forget, and memory_link.

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?

There is no explicit guidance about when to use this tool versus its siblings. The agent must infer usage from the name and sibling list; nothing says 'use this when persisting a new fact' or contrasts it with memory_recall for retrieval.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

network_checkCheck TCP portB
Read-only

Test whether a TCP port on a host is reachable from this machine.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostYes
portYes
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description only needs to add behavioral context; it does state that the check originates from this machine and targets TCP. It does not explain timeout behavior or the exact meaning of 'reachable', but output schema likely covers return values, keeping this at an adequate 3.

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 that is front-loaded with the core action, resource, and scope. There is no filler or repetition of the schema.

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 connectivity probe with an output schema and a read-only annotation, the description covers the key input context (host, TCP port, local origin). It is slightly incomplete regarding how timeout_seconds behaves and whether 'reachable' means successful TCP connection, but the schema and output schema would carry most of that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description should compensate by explaining the parameters. It does not; host, port, and timeout_seconds rely entirely on their schema property names. The description adds no semantics beyond restating that a host and TCP port are involved.

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 uses a specific verb ('Test whether') with a clear resource ('a TCP port on a host') and adds a useful scope qualifier ('from this machine'). It is clear on its own, but it does not explicitly differentiate itself from sibling tools like port_check or diagnose, so it misses the last bit of distinction.

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 given about when to choose network_check over alternatives such as port_check, port_owner, or diagnose. The description implies a connectivity-check use case but provides no exclusions or decision criteria, so an agent must guess which sibling is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nine_chat9router chatB

Ask any combo/model. Single-shot completion with usage.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelYes
promptYes
systemNo
max_tokensNo
temperatureNo
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are all false and provide little signal beyond non-readonly and non-idempotent. The description adds that this is a single-shot completion that returns usage info, which is useful context. However, it does not disclose that this likely invokes external model APIs, may incur costs, or that results are non-deterministic β€” leaving the behavioral burden partially unmet.

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 sentences with no filler. The core action is front-loaded and every word contributes. This is appropriately concise for a simple chat tool.

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 six parameters at 0% schema coverage and a large sibling family of nine_* tools, this description is too sparse. It does not explain parameter choices, how 'combo' differs from a plain model, or when to prefer this over streaming/fanout variants. The presence of an output schema mitigates missing return details, but the description is still incomplete for correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only hints that 'model' can be 'any combo/model,' but does not explain the expected format of model identifiers, what prompt/system/temperature/max_tokens/timeout mean, or how to discover available combos. Most parameter semantics are left to inference from names and defaults.

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 states a clear verb+resource: 'Ask any combo/model' with 'single-shot completion.' The phrase 'single-shot' implicitly distinguishes it from nine_chat_stream, and 'any combo/model' hints at the router nature, but it does not explicitly name sibling tools or clarify what 'combo' means. Still, the purpose is largely clear.

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 explicit guidance on when to use this tool versus alternatives like nine_chat_stream, nine_fanout, or nine_combos. The description gives no conditions, exclusions, or recommendations. An agent must infer usage context from the tool name and sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nine_chat_stream9router stream chatC

SSE chat; returns concatenated text.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelYes
promptYes
systemNo
max_tokensNo
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are all false and thus provide no meaningful safety or behavioral signal. The description adds 'SSE' and 'returns concatenated text,' which tells the agent the tool streams and aggregates output, but it omits that this is an external AI call that may incur cost and latency. It also does not document timeout behavior, error handling, or what happens if the stream fails, despite a timeout_seconds parameter.

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 extremely concise, with no filler or repetition. The two phrasal fragments front-load the most important information: streaming via SSE and concatenated text output. However, the brevity borders on under-specification, leaving room for ambiguity about what 'SSE chat' actually executes.

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?

For a tool with 5 parameters, 0% schema coverage, neutral annotations, and a large sibling set including nine_chat, a one-line description is insufficient. It does not explain request execution, timeout behavior, output format beyond concatenation, or how it differs from alternatives. The output schema exists but does not compensate for the missing usage and behavioral guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain any of the five parameters: model, prompt, system, max_tokens, and timeout_seconds. It provides no compensation for the missing schema descriptions. The chat context is a weak hint, but the description itself adds no parameter-level meaning.

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 names a specific resource ('chat') and states two key behaviors: transport via SSE and output form as concatenated text. This makes it reasonably clear that it is a streaming chat tool, and the name/title reinforce the distinction from non-streaming siblings like nine_chat. However, it lacks an explicit action verb, relying on the noun 'chat' and the tool name for the full picture.

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 gives no guidance on when to use this tool versus the many sibling tools, especially nine_chat, nine_fanout, or nine_combos. It does not state conditions, alternatives, or when not to use it. The word 'stream' implies usage for streaming scenarios, but that remains implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nine_combos9router combosC
Read-only

Combos with member models (sina-pro, image, FastImg...).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses no behavior beyond what the readOnlyHint annotation already implies. It doesn't say what the tool computes, returns, or affects. Since annotations already cover the read-only safety profile, the description adds no behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only one sentence, but brevity here is under-specification rather than conciseness. The phrase 'Combos with member models' does not earn its place because it lacks a verb and clear meaning. It is too minimal to support selection or invocation.

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?

Although there are no parameters and an output schema exists, the core operation is still ambiguous. With several similar nine_* sibling tools, an agent has no way to know what a 'combo' is or when to call this tool. The description is not complete enough for confident selection.

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 and an empty schema, so there are no parameter semantics for the description to clarify. The model examples in the description provide mild domain context, but parameter semantics are not applicable; baseline for 0 params is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a noun phrase, 'Combos with member models...', with no verb indicating what the tool does. The title repeats 'combos,' making it nearly tautological. The model examples give a hint of subject matter, but an agent cannot tell whether this lists, creates, or runs combinations.

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?

There is no guidance on when to use this tool versus the many nine_* siblings such as nine_models, nine_chat, or nine_providers. The description does not state a use case, prerequisites, or exclusions, so the agent must guess.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nine_embeddings9router embeddingsC

Embed texts. Shape varies by host.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNo
textsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are all false and provide minimal behavioral signal. The description adds one useful trait: 'Shape varies by host,' which warns the agent that output structure is not consistent. However, it does not disclose whether this is a read operation, if it has side effects, or what 'host' means. With annotations providing little, the description carries some burden but only partially meets it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short, but this is under-specification rather than conciseness. It contains two terse sentences that omit essential details. While it is front-loaded with the core action, it fails to provide enough substance to be considered appropriately sized.

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 an output schema, but the description does not clarify the output format beyond 'shape varies by host,' which is vague. It lacks guidance on input handling, model selection, and expected behavior. Given the minimal description and low parameter coverage, the description is incomplete for an agent to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate by explaining the parameters (model, texts), but it does not. It mentions 'texts' implicitly in 'Embed texts' but gives no format, constraints, or meaning of the model parameter. This is a critical gap for a tool with 2 parameters.

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?

States a specific verb (embed) and resource (texts), clearly indicating this is an embeddings tool. It distinguishes from siblings like nine_chat and nine_image because it is the only embeddings tool, but it does not mention what embeddings are for or how they relate to other nine_* tools.

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. The description only says 'Embed texts' with no context on use cases, prerequisites, or why an agent might choose this over other nine_* tools. The 'Shape varies by host' hint is a behavioral note, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nine_fanout9router fanoutB

Same prompt to N models in parallel (max 6). Judge/ensemble primitive.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelsYes
promptYes
systemNo
max_tokensNo
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are all false and do not disclose read-only, idempotent, or destructive nature. The description does add behavioral context: 'parallel (max 6)' reveals concurrency and a hard limit. It does not disclose potential costs, rate limits, error behavior, or whether results are aggregated, but the output schema may cover return structure.

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 short sentences with no filler, placing the core action and constraint upfront. It is efficient but could have packed more useful information without bloating, such as a note on result shape or model validity.

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?

With five parameters, no schema descriptions, and an output schema present, the description covers the essential parallel-fanout idea but omits guidance on valid models, what happens if more than 6 are requested, how outputs are returned, and meaning of timeout/max_tokens. The existence of related tools like nine_providers and nine_combos suggests more context is needed for correct tool selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only clarifies 'models' as the N in 'N models' and 'prompt' as the shared prompt, which are fairly inferable from the parameter names. System, max_tokens, and timeout_seconds are left entirely undocumented in both schema and description, adding little semantic value.

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 uses a specific verb phrase 'Same prompt to N models in parallel' and identifies the resource as a fanout primitive, which clearly distinguishes it from sibling models like nine_chat. However, it does not explicitly contrast with nine_chat or other nine_* tools, leaving some differentiation to inference.

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 phrase 'Judge/ensemble primitive' hints that the tool is intended for tasks requiring multiple model outputs for comparison or aggregation, but it does not explicitly state when to use it versus alternatives like nine_chat or nine_combos. The usage context is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nine_image9router imageA

Generate images (b64_json). Default auto-picks FastImg member.

ParametersJSON Schema
NameRequiredDescriptionDefault
nNo
sizeNo1024x1024
modelNo
promptYes
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds useful behavioral context by stating the return format is b64_json and that a default model member is auto-picked. Annotations already indicate the operation is not read-only. It does not disclose rate limits, costs, failure behavior, or what happens when the default model cannot be used.

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 short sentences with no filler. Both sentences carry useful information: the core action/output type and the default routing behavior.

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 moderately simple image-generation tool, the description covers the core purpose and output format, and the schema fills in defaults. It is less complete on return envelope details, model selection options, and any caveats about n or size, but it is not misleading and provides a minimal viable contract.

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 schema provides names and defaults for prompt, n, size, model, and timeout_seconds, so the description does not need to repeat them. It does add meaning to the model parameter by explaining that an empty model defaults to auto-picking a FastImg member, but it does not clarify accepted sizes, prompt constraints, or timeout semantics.

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 states the specific action ('Generate images') and the output encoding ('b64_json'), making the tool's purpose unambiguous. The sibling list includes video, chat, TTS, and other modalities, so this tool is clearly the image-generation entry point.

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 when image generation is needed, and 'Default auto-picks FastImg member' tells the agent that model selection can be omitted. However, it does not explicitly contrast with sibling tools like nine_fanout or nine_video, nor does it explain when to override the default model.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nine_models9router modelsB
Read-only

List routable combos + provider models.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description ('List...') is consistent with readOnlyHint=true and openWorldHint=false, so there is no contradiction. However, it adds no behavioral context beyond what the annotations already convey: it does not clarify what kind of data is returned, whether the list is static or reflects live provider availability, or how it relates to the closed-world annotation.

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 six-word sentence with the verb front-loaded and zero filler. It is appropriately brief for a parameterless read-only tool, though the extreme terseness is partly responsible for the ambiguity in the resource terminology.

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?

Structurally the tool is simple β€” no parameters, read-only annotations, and an output schema that presumably documents the return shape, so the description need not explain return values. The real completeness gap is selection: an agent cannot reliably distinguish nine_models from nine_combos and nine_providers based on this description.

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?

With 0 parameters, the schema requires no documentation and the baseline is 4. The description adds marginal value by hinting at the output domain (routable combos + provider models), which is the only semantically relevant content for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and names a resource ('routable combos + provider models'), so it is not a tautology. However, the resource terms are undefined jargon, and with sibling tools named nine_combos and nine_providers, the description does nothing to clarify how nine_models differs from them.

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?

There is no guidance on when to use this tool versus its closely related siblings (nine_combos, nine_providers, nine_usage). Given that an agent must choose among several nine_* listing tools, the absence of any selection criteria or exclusions is a notable gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nine_providers9router providersB
Read-only

Provider health, no secrets.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation already establishes readOnlyHint=true. The description adds the behavioral disclosure 'no secrets', reassuring that the response contains no sensitive data. It does not describe further behavioral details such as response format or rate behavior, but for a zero-parameter read-only tool this is acceptable.

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 extremely short and front-loaded, with no wasted words. 'Provider health' carries the core meaning, though 'no secrets' is somewhat cryptic and could be clearer as a separate safety note.

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, parameterless, read-only tool with an output schema, the description provides sufficient context about what the tool returns. It is slightly thin on usage context and sibling differentiation, but the low complexity lowers the completeness burden.

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 and schema coverage is 100%, so the schema fully captures parameter semantics. The description adds no parameter detail, but none is needed.

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 identifies the resource as 'providers' and the subject as 'health', which is specific and distinguishes it from sibling tools like nine_models or nine_usage. It lacks an explicit verb such as 'list' or 'get', so it is clear but slightly elliptical.

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?

There is no guidance about when to use this tool over siblings like nine_status or nine_models. No alternative tools or selection criteria are mentioned, leaving the agent to infer placement from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nine_status9router statusA
Read-only

Gateway health + version. No key needed.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the agent knows it's read-only. The description adds that no key is needed, which is useful authentication context, and specifies the returned data (health + version). It does not contradict annotations and adds value beyond them.

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 sentences with no fluff. The essential information (what it does and auth requirement) is front-loaded. Every word contributes.

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?

With an output schema present and no parameters, the description is sufficient. It states the purpose, the data returned, and the auth requirement. Nothing essential is missing for an agent to call it 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?

The tool has zero parameters, and schema coverage is 100%. The description does not need to elaborate on parameters. Per the rubric, baseline for 0 params is 4, and the description doesn't detract.

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 'Gateway health + version' clearly states the tool returns health and version info for the gateway. It distinguishes from sibling status tools like db_status or job_status by specifying the gateway resource, and the 'No key needed' note adds access clarity.

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 does not explicitly state when to use this tool versus other status tools (e.g., db_status, job_status). It implies a quick, unauthenticated health check, but provides no exclusions or alternative conditions, leaving the agent to infer usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nine_stt9router STTC

Speech-to-text from base64 audio.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNo
audio_b64Yes
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

All four annotations are false, so they communicate no safety or side-effect profile and the description must carry the full behavioral burden. The description adds only the input encoding detail and says nothing about side effects, external API dependency, latency, quota consumption, or failure behaviorβ€”material for an operation that appears to hit an external 9router service (a nine_usage sibling exists). No contradiction exists, but behavioral disclosure beyond the schema 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?

At six words, 'Speech-to-text from base64 audio' is maximally efficient, front-loads the action, and has no wasted content. For a tool with three parameters it is appropriately sized, though the brevity edges toward under-specification, preventing a perfect score.

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?

An output schema is present, so return values are covered, but operational context is missing: supported audio formats, model-selection behavior, whether calls consume usage or quota (relevant given sister nine_usage), and timeout semantics for a potentially slow external STT call. For an agent to invoke this reliably in varied scenarios, the definition falls short of 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?

With 0% schema description coverage, the description must compensate, and it does clarify the one required parameter, audio_b64, by stating the input is base64 audio. However, model (no valid identifier format or default behavior) and timeout_seconds (no meaning of the 180-second default or timeout outcome) remain entirely opaque. The description partially compensates for the coverage gap but leaves most parameter semantics to the agent's speculation.

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 'Speech-to-text from base64 audio' states a clear verb and resource (converting speech to text from base64-encoded input), making the core function unambiguous. It implicitly distinguishes itself from the sibling nine_tts (text-to-speech) by polarity, but does not explicitly name alternatives or scope details such as languages or supported formats. This is a clear but not fully differentiating description.

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 given on when to choose this tool over its nine_* siblings (nine_chat, nine_image, nine_tts, nine_embedings, etc.). The description contains no use-case context, prerequisites, exclusions, or alternatives. An agent is left to infer all selection criteria from a single terse sentence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nine_tts9router TTSC

Text-to-speech. Shape varies by host.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
modelNo
voiceNoalloy
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations leave all hints false, so the description bears full responsibility for disclosing behavior. It only says 'Shape varies by host', which does not explain side effects, response formaat, failure modes, or what 'host' means in practical terms.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is extremely brief, but the sentence 'Shape varies by host' does not earn its place because it is undefined and ambiguous. There is no meaningful structure or front-loading beyond the tool title/name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With four parameters, host-dependent behavior, and a non-trivial sibling context, the description is near-empty. It does not explain how to invoke the tool correctly, what outputs to expect, or how the 'host' variation manifests, leaving the agent without critical context despite an output schema being present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description adds nothing about the four parameters. An agent cannot infer what 'model', 'voice', or 'timeout_seconds' do beyond their names, and no format or constraints are given for 'text'.

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 identifies a specific function, text-to-speech, which is clearly distinct from siblings like nine_stt (s peech-to-text) and other nine_* tools. However, 'Shape varies by host' is vague and doesn't specify the exact operation such as 'generate an audio stream from provided text'.

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?

There is no guidance on when to use this tool versus alternatives such as nine_chat, nine_image, or nine_video. The only textual hint, 'Shape varies by host', is an opaqque caveat, not actionable usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nine_usage9router usageC
Read-only

Requests, tokens, cost, provider list.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds only a list of data categories (requests, tokens, cost, provider list) without behavioral context such as time window, aggregation level, or whether the provider list is restricted. This is minimal value beyond what annotations and the output schema already provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

At five words, the description is exremely concise and front-loded, but it is a sentence fragment rather than a well-formed description. It is more of a label or tag list than an explanatory sentence, which saps structural clarity even though every word earns its place.

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?

This is a zero-parameter, read-only tool with an output schema, so the overall information burden is low. However, the description does not clarify operational context such as whether this is current usage, historical usage, or per-provider breakdown, and it does not distinguish itself from adjacent nine_* tools, leaving some ambiguity for an agent.

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 and required parameters, so schema description coverage is trivially 100%. Per the rubric, a no-parameter tool receives a baseline of 4, and there is no need for the description to clarify parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a noun phrase listing 'Requests, tokens, cost, provider list', which hints at usage metrics but never states a verb such as 'get' or 'list'. It conveys the general subject area but is vague about the action, and the included 'provider list' could overlap with the sibling nine_providers tool, weakening differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidance or alternatives are provided. The description never addresses when to choose nine_usage over nine_status or nine_providers, and an agent has no basis for selecting this tool based on context. This is a complete absence of usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nine_video9router videoC

Video generation. Speculative on this host; kept for others.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNo
promptYes
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide no safety hints (all false), so the description must carry behavioral disclosure. It only vaguely notes 'Speculative on this host', which suggests reliability concerns but doesn't detail side effects, permissions, or output characteristics. This is insufficient for a generation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short, but brevity is achieved by omitting essential information rather than by efficient structuring. The sentence about being 'speculative' is tangential and doesn't earn its place given the lack of core usage details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the tool is complex (video generation) with three parameters at 0% schema coverage. The description fails to explain what the tool does beyond the basic verb, leaving the agent without necessary context to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description mentions none of the parameters (prompt, model, timeout_seconds). The agent gets no additional meaning beyond the bare property names, making it impossible to understand how to fill them correctly.

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 states 'Video generation' which clearly identifies the verb and resource, distinguishing it from siblings like nine_image or nine_tts. However, it lacks any elaboration on what the tool does beyond that, so it doesn't fully clarify scope or behavior.

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?

There is no guidance on when to use this tool versus alternatives. The phrase 'Speculative on this host; kept for others' hints at environmental limitations but doesn't explain when to invoke it or when to prefer another generation tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

package_infoPackage infoC
Read-only

Show package metadata from native manager.

ParametersJSON Schema
NameRequiredDescriptionDefault
packageYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description is consistent with the readOnlyHint annotation and does not contradict it. However, it adds minimal behavioral context beyond what the annotation already impliesβ€”no details on error handling, output format, or edge cases.

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, concise sentence with no fluff. It is efficiently structured, though brevity comes at the cost of necessary detail.

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?

While an output schema exists to explain return values, the description lacks essential context such as what 'native manager' refers to and what metadata is shown. An agent would struggle to know exactly what information this tool provides and how to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has zero description coverage for the 'package' parameter, and the description does not compensate by explaining what value should be passed (e.g., package name, ID). The parameter remains entirely undocumented.

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 action (show), resource (package metadata), and source (native manager), which distinguishes it from sibling tools like package_install or package_remove. However, 'native manager' is ambiguous without further context, preventing a perfect score.

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?

There is no guidance on when to use this tool versus alternatives such as package_search or package_info. No context is provided about the typical use case or when to prefer it over siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

package_installPackage installA
Destructive

Install a package (apt/dnf/pacman/brew). Developer/full profile only.

ParametersJSON Schema
NameRequiredDescriptionDefault
packageYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already carry the destructiveHint=true and readOnlyHint=false profile, so the safety burden is covered there. The description adds a useful permission/scope restriction ('Developer/full profile only') that the agent cannot derive from the schema, but it does not disclose side effects such as privilege requirements or dependency changes β€” acceptable but not rich.

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 clauses in a single description β€” the core action is front-loaded and the package-manager list and profile restriction each earn their place. Zero 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?

For a one-parameter tool with a destructive-safety annotation and an output schema present, the description covers the essential facts: what it does, on which platforms, and under which profile. Minor gaps (privilege needs, failure behavior on unsupported OSes) are not critical given the low complexity.

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 0%, so the description bears the burden of explaining the package parameter. It adds context that the string should be a package name resolvable by apt/dnf/pacman/brew, which is genuinely helpful. It stops short of describing accepted formats (e.g., version specifiers, distro-specific names), leaving the agent to guess at syntax.

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?

States a specific verb and resource ('Install a package') and adds concrete detail by naming the supported package managers (apt/dnf/pacman/brew). The action is inherently distinct from sibling tools like package_search, package_info, package_remove, and package_update, so an agent can differentiate without opening the schema.

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 context is implied by the verb 'install' and the supported package-manager list, and the 'Developer/full profile only' note gives an access constraint. However, there is no explicit when-not-to-use guidance or mention of alternatives (e.g., using package_update for upgrades or package_remove for uninstalls).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

package_removePackage removeA
Destructive

Remove a package. Developer/full profile only.

ParametersJSON Schema
NameRequiredDescriptionDefault
packageYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description aligns with the destructiveHint annotation by saying 'Remove', and adds a behavioral constraint (developer/full profile only). However, it does not disclose side effects such as dependency removal or whether the action is irreversible.

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 short sentences with no filler: the core action is front-loaded, and the permission note follows. It is appropriately sized for such a simple tool.

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 one-parameter destructive tool, the annotations plus the permission note cover most safety context. Missing details include the exact package identifier format and potential dependency effects, but the description is minimally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema's 'package' property has no description (0% coverage), and the description does not clarify whether it expects a package name, ID, or version spec. The agent must rely on the parameter name 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 uses a specific verb and resource ('Remove a package') that clearly states the tool's function. It is easily distinguished from the sibling package tools (package_install, package_update, package_search, package_info) without requiring schema inspection.

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 addition 'Developer/full profile only' gives a useful permission restriction, but no explicit guidance on when to choose this tool over package_install or package_update. The usage context is implied by the verb 'remove' rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

package_updatePackage update indexA
Destructive

Refresh package index (apt-get update / brew update / ...).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as destructive and non-read-only, so the description does not need to restate that. The description adds the core behavior (refreshing the index) but does not disclose additional context such as network requirements, potential local file modifications, or that it does not perform installs/upgrades.

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, front-loaded sentence with parenthetical examples. Every word earns its place and there is no redundant information.

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 zero-parameter tool with an output schema and a destructive annotation, the description gives enough to know what action will be taken. It could optionally mention that it only refreshes the index and does not install packages, but the core purpose is unambiguous.

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 and the schema coverage is 100%, so there is nothing for the description to add about parameter meaning. Baseline 4 applies because no parameter documentation 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?

The description uses a specific verb ('Refresh') with a clear resource ('package index') and concrete examples (apt-get update / brew update). This distinguishes it from sibling tools like package_install, package_remove, and package_search without ambiguity.

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 examples, suggesting it is the step before searching or installing packages. However, it does not explicitly state when to use this tool versus alternatives, nor does it mention any prerequisites or exclusion conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

port_checkCheck portB
Read-only

TCP connect to host:port with latency.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNo127.0.0.1
portYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds that it measures latency, which is useful behavioral context. However, it does not disclose behavior on failure (e.g., timeout, error handling) or what the output contains, but the output schema presumably covers that. No contradiction with 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?

The description is a single sentence with no wasted words. It front-loads the action and includes the key metric. This is appropriately concise.

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 that an output schema exists, the return values are covered. However, the description lacks any mention of when to use it, timeout behavior, or error semantics. For a simple check tool it is adequate but not complete, especially with many sibling tools that overlap in function.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it does not. It only implies 'host:port' but does not explain the meaning of host (default given in schema) or port format. The description adds minimal value beyond parameter names; with zero coverage, this is a significant gap.

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 states a specific action ('TCP connect') and resource ('host:port'), and mentions the metric 'latency'. It clearly conveys what the tool does, and the action distinguishes it from port_owner (owner lookup) and port_list (list ports). However, it does not explicitly say 'check reachability' or 'test connectivity', so it leaves some inference.

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?

There is no guidance on when to use this tool versus alternatives like network_check, http_fetch, or port_list. The description does not mention any conditions, exclusions, or preferred use cases. An agent would have to infer from the name and siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

port_listList portsA
Read-only

Listening sockets with owner pid/process (/proc on Linux, ss/lsof fallback).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so safety is covered. The description adds implementation context (proc on Linux, ss/lsof fallback) but does not disclose potential limitations (e.g., permission sensitivity) or failure behavior. No contradiction with 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?

A single, front-loaded sentence that conveys the core purpose immediately and adds a parenthetical implementation note. 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?

The description explains what the tool returns (listening sockets with owner info) and its implementation basis. With an output schema present and no parameters, this is sufficient for an agent to call it correctly, though it omits potential permission caveats.

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 the description has no obligation to explain them. Baseline of 4 applies because there are no parameters to elaborate on.

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 identifies the resource (listening sockets) and the included detail (owner pid/process). It is distinct from sibling tools like port_check (specific port) and port_owner (owner of a port), 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 Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives like port_check or port_owner. The description only mentions implementation details (proc/ss/lsof) without explaining selection criteria or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

port_ownerPort ownerB
Read-only

Which process owns a listening port (pid, comm, cmdline, cwd).

ParametersJSON Schema
NameRequiredDescriptionDefault
portYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, covering the safety profile. The description adds that the tool specifically targets listening ports and returns process identity fields, which is useful context. However, it does not disclose potential permission requirements, behavior for non-listening ports, or protocol scope, leaving some behavioral gaps.

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 concise sentence with no filler. It front-loads the core purpose and adds output fields in parentheses, making it efficient. It could be phrased more directly as an imperative, but the current form is clean and readable.

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 one-parameter, read-only tool with an output schema, the description is largely complete. It states the input (a listening port) and the type of output (owning process details). It does not cover error cases or sibling selection, but those are minor given the tool's simplicity.

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 0% description coverage, so the description must compensate. Saying 'listening port' clarifies that the integer parameter refers to a port in a listening state and that the result identifies the owning process. This adds meaning beyond the bare schema, though protocol details (TCP/UDP) are not mentioned.

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 resource (a listening port) and the output fields (pid, comm, cmdline, cwd), making the tool's function understandable. It does not explicitly name or differentiate from sibling tools like port_check or port_list, but the focus on 'owns a listening port' is specific enough to avoid major confusion.

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 usage guidance is provided. The description does not state when to use this tool versus alternatives such as port_check, port_list, or process_list, nor does it mention any exclusions or prerequisites. The only implied usage is that it applies to listening ports.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

process_killKill processB
DestructiveIdempotent

Send a signal to a host process. PID 1 and the MCP server itself are protected.

ParametersJSON Schema
NameRequiredDescriptionDefault
pidYes
signal_nameNoTERM

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructive behavior. The description adds genuine value by disclosing that PID 1 and the MCP server itself are protected, and by framing the operation as a signal send rather than an unconditional kill. It does not contradict 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?

Two concise sentences, front-loaded action, and no filler. Every word adds relevant 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?

For a simple destructive tool with an output schema and strong annotations, the core call is usable. However, missing guidance on signal_name values and sibling tool differentiation leaves an agent making assumptions about a destructive operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the burden, but it does not explain signal_name allowed values or pid semantics beyond what the field names imply. The reader is left without knowing valid signals or whether the signal can be customized.

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's 'Send a signal to a host process' names a specific verb and resource, and the title reinforces the kill intent. It is clear enough to distinguish from list-style siblings like process_list, but it does not explicitly differentiate from terminal_signal or run_command.

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 such as terminal_signal or process_list. The only additional constraint, protected PIDs, is a behavioral safeguard rather than usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

process_listList processesA
Read-only

List host processes (ps sorted by CPU on Linux/macOS, tasklist on Windows), optionally filtered by a substring.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
filterNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the read-only nature is known. The description adds valuable context beyond annotations: OS-specific command mapping (ps sorted by CPU, tasklist) and the filtering capability. It does not disclose return format, but output schema covers that. This adds meaningful behavioral context without contradicting 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?

A single, front-loaded sentence that states the core function, adds OS-specific commands, and notes filtering. No wasted words, and the most critical information comes first. Perfectly concise for the tool's complexity.

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?

An output schema exists, so return values are covered structurally. The description covers the core purpose, OS behavior, sorting, and filtering. The only gap is the limit parameter semantics, which is minor given its intuitive nature and default. Overall, the definition is complete enough for an agent to call this 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 0%, so the description must explain parameters. It explicitly explains the filter parameter ('optionally filtered by a substring'), but does not mention the limit parameter at all. The limit's purpose (capping result count) is only inferable from its name and default. With zero coverage, both parameters should be clarified; only one is.

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 ('List host processes') and the resource, with OS-specific detail (ps/tasklist) and optional filtering. This distinguishes it from siblings like process_kill (which mutates) and system_summary (broader system info). No ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes it clear this is for retrieving a process list, optionally filtered, which implies usage for inspection. However, it does not explicitly name alternatives or exclusion conditions (e.g., 'use process_kill to terminate'). The context is clear but lacks explicit when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_fileRead host fileC
Read-only

Read a text file from an allowed host path.

Default readable roots are the home directory plus /etc and /var/log on Linux/macOS. Configure HOST_MCP_READ_ROOTS to change them.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
max_charsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the tool is known to be read-only. The description adds useful behavioral context about allowed readable roots (home directory, /etc, /var/log) and configurability via HOST_MCP_READ_ROOTS. However, it does not disclose behavior for out-of-root paths, binary files, or what happens when max_chars is exceeded (e.g., truncation). The description adds some value but is not fully transparent.

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 conciseβ€”two sentencesβ€”and front-loads the core purpose in the first sentence. It does not waste words, though it omits parameter details. Given its brevity, it is well-structured but could be slightly improved by including a note about max_chars.

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?

For a tool with 2 parameters and no schema descriptions, the description is incomplete. It fails to explain the 'path' parameter semantics, the 'max_chars' parameter, error handling for non-existent or unreadable files, and the return format (though an output schema exists, it is not provided in the input). It also does not distinguish from similar sibling tools. An agent would struggle to invoke it correctly without additional information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the lack of parameter documentation. It does not explain the 'path' parameter format, how it relates to allowed roots, or the purpose and default of 'max_chars' (default 50000). Without any parameter explanation in the description, an agent cannot reliably know how to set these parameters correctly.

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: 'Read a text file from an allowed host path.' It uses a specific verb (Read) and resource (text file from allowed path). It is clear but does not differentiate from siblings like head_file or tail_file that also read file content, though it implies reading the whole file rather than a portion.

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. It does not mention when to prefer read_file over head_file, tail_file, file_stat, or other file-reading tools. The only contextual note is about allowed roots, which is a restriction rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

redis_getRedis GETC

GET a redis key (needs REDIS_URL or url=).

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes
urlNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description says 'GET' implying a read-only operation, but annotations set readOnlyHint to false, creating a direct contradiction. No other behavioral details (errors, side effects) are disclosed, and annotations don't cover the safety profile.

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, clear sentence that front-loads the verb and resource. It is appropriately concise for a simple tool, though it could include a bit more 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?

The description omits important behavioral context, especially given the annotation contradiction. It doesn't mention error behavior, connection requirements beyond url, or the return value (though an output schema exists). For a tool with no helpful annotations, this is insufficient.

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 description explains the 'url' parameter's purpose as a connection URL, which is beyond the schema (0% coverage). However, 'key' is not described at all, and the schema provides no context. It partially compensates but leaves the key parameter underspecified.

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 states 'GET a redis key' – a specific verb and resource. It's clear and unambiguous. It doesn't explicitly differentiate from siblings because no other redis tool exists, but it does convey the exact operation.

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 provides a precondition: 'needs REDIS_URL or url=' – useful for invoking the tool correctly. However, it doesn't discuss when to use this tool vs alternatives (none exist) or when not to use it, so guidance is limited to a prerequisite.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_commandRun command on hostB

Run a shell command on the real host as the current desktop user.

Bash (/bin/bash -lc) on Linux/macOS, PowerShell on Windows. The server blocks privilege escalation and several obviously destructive system commands. Note: deletion via shell (rm / Remove-Item) is NOT blocked and does NOT prompt; use file_delete for guarded deletes that request approval.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo
commandYes
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description is otherwise very transparent about /bin/bash -lc, PowerShell, privilege-escalation blocking, and unguarded deletion. However, it directly contradicts the annotations' destructiveHint=false by stating that rm and Remove-Item are not blocked and do not prompt. Per the scoring rule, a contradiction forces a score of 1.

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?

Four dense, front-loaded sentences: purpose, shell behavior, restrictions, and the critical deletion caveat. Every sentence earns its place and there is no filler.

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 execution environment and safety caveats well, and the output schema handles return-value expectations. However, the destructiveHint contradiction and complete absence of parameter documentation leave the tool model incomplete and internally inconsistent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain command, cwd, or timeout_seconds beyond what their names imply. The description fails to compensate for the schema's lack of parameter documentation.

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?

States a specific action (run a shell command), a precise resource (the real host as the current desktop user), and the shell variants used. This clearly differentiates it from sibling terminal_* and process_* tools.

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?

Provides clear execution context and one explicit routing rule: use file_delete for guarded deletes instead of shell deletion. It does not fully discuss when to prefer terminal_create or other shell-related siblings, so it stops short of 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_text_toolSearch textB
Read-only

Search contents: literal by default, regex=true for patterns. rg preferred.

ParametersJSON Schema
NameRequiredDescriptionDefault
rootYes
regexNo
patternYes
max_matchesNo
case_sensitiveNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as read-only. The description adds useful behavioral context beyond that: literal matching is the default, regex must be explicitly enabled, and ripgrep is the preferred backend. These are non-obvious operational details that help an agent predict behavior without contradicting the annotations.

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 very short and front-loaded: the core purpose appears first, followed by the key mode toggle and engine preference. No filler exists, though 'rg preferred' is terse and could be clearer for agents unfamiliar with ripgrep shorthand.

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?

With an output schema and read-only annotations present, the description provides a minimally viable invocation: root and pattern are required, literal is the default, regex is available, and limits have defaults. However, it leaves ambiguity around what root should be (directory vs file), search scope/recursiveness, and when to prefer this over file_grep or file_search.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it only clarifies the pattern/regex relationship ('literal by default, regex=true for patterns'). It provides no additional meaning for root, max_matches, or case_sensitive beyond their names and schema defaults.

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 states a specific action ('Search contents') and clearly communicates that the tool performs text search, with literal matching by default and optional regex. It is clear enough to distinguish from a web or wiki search, though it does not explicitly differentiate itself from content-search siblings like file_grep or file_search.

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?

There is no guidance on when to use this tool versus alternatives such as file_grep, file_search, or web_search. 'rg preferred' hints at the underlying engine but does not explain when this tool should be chosen, what prerequisites exist, or when another sibling would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

service_statusUser service statusA
Read-only

Show status of a user-scope service: systemd --user on Linux, launchctl on macOS, sc query on Windows.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
log_linesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, and the description aligns by saying 'Show status.' The platform-specific command names add useful behavioral context beyond the annotation. However, it does not disclose what happens when the service is absent, how log_lines influences output, or the exact response structure, so behavioral transparency is adequate but not rich.

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, dense sentence communicates the core purpose and platform support with no filler. The most important scoping phrase ('user-scope service') is front-loaded, and every word earns its place.

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 tool has an output schema, so return-value documentation is not the description's burden. Read-only behavior is covered by annotations. Still, the description omits the meaning and effect of log_lines, includes no guidance on alternatives, and leaves the agent without enough information to fully understand parameter behavior for a 2-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain either parameter. 'name' is inferable from the tool name, but 'log_lines' remains ambiguous (line count? tail length? max output size?). With zero schema coverage, the description needed to compensate for parameter meaning and does not.

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 status') and the specific resource ('user-scope service'), which distinguishes it from sibling tools like db_status and job_status. The explicit platform mapping (systemd --user, launchctl, sc query) leaves no ambiguity about the tool's scope.

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 phrase 'user-scope service' establishes clear usage context and implicitly excludes system-level services, database status, and job status. However, it does not explicitly name alternatives or state when not to use this tool, so it stops short of full exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

slack_listSlack channelsA
Read-only

List channels (needs SLACK_BOT_TOKEN).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint. The description adds a useful auth-related detail, the need for SLACK_BOT_TOKEN, but does not disclose other behavioral aspects such as whether only public channels are listed or what happens on authentication failure.

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 with no wasted words. It front-loads the core action and immediately communicates the one essential prerequisite.

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 zero-parameter, read-only listing tool with an output schema, the description is nearly sufficient. It provides the key auth requirement, but it does not clarify the exact scope or semantics of the returned channels, such as whether they are public, private, or workspace-wide.

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 properties, so there are no parameters that need semantic explanation. The description adds no parameter details, but none are required, matching the baseline for parameterless tools.

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 uses a specific verb and resource, 'List channels', which clearly identifies the tool's function. It distinguishes itself from the sibling slack_send, which is about sending rather than listing.

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 given for when to use this tool versus alternatives. The only added context is the prerequisite 'needs SLACK_BOT_TOKEN', which is an operational requirement rather than usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

slack_sendSlack sendC
Destructive

Post a message. Prompts.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
channelYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already communicate destructive/side-effect behavior, and the description's 'Post a message' aligns with that. However, it adds little extra behavioral context such as channel visibility, auth requirements, or that posting is irreversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

'Post a message' is concise and front-loaded, but 'Prompts.' is a cryptic fragment that does not earn its place and should be removed or expanded.

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 two-parameter send tool with an output schema and annotations, the core action is clear enough to be minimally viable. Yet the missing parameter semantics and lack of usage guidance leave meaningful gaps for an agent deciding how to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description needed to compensate, but it only says 'Post a message.' It does not explain channel format (ID vs name), text length, or other constraints beyond the schema's basic property names.

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 states a clear action, 'Post a message,' with the resource implied by the tool name slack_send. It distinguishes from sibling send tools like slack_list, though the 'Prompts.' fragment is vague and detracts slightly.

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?

There is no guidance about when to use this tool versus alternatives, or mention of exclusions. An agent must infer from the name and sibling list that slack_send is for sending rather than reading.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

snapshot_createCreate snapshotB
Read-only

Copy a file/dir into a timestamped slot before risky ops.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
labelNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, but the description states it copies a file/dir into a timestamped slot, which creates new persistent data. This directly contradicts the read-only hint and could mislead an agent into thinking the operation has no side effects. Per the rules, a contradiction forces a score of 1.

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, front-loads the action, and gives a terse usage cue. Every word earns its place with no bloat or repetition. It is appropriately concise, aside from a minor typo in 'file/dir'.

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?

Even though the tool is simple (two params, one required) and an output schema exists, the description leaves the label parameter undefined and contradicts the annotations on side effects. This creates a meaningful gap: an agent lacks both parameter semantics and an accurate safety model, so it cannot reliably invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, and the description does not mention 'path' or 'label' at all. The 'label' parameter's purpose is completely undocumented, and the description does not compensate for the schema's lack of detail. With two parameters and zero parameter-level explanation, the agent cannot correctly determine what label controls.

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 uses a specific verb (Copy) and resource (file/dir) and adds a clear usage context ('before risky ops'), which distinguishes it from siblings like snapshot_list and snapshot_restore. The tool's intent is unmistakable despite its brevity.

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 gives a clear context for when to use this tool: before risky operations. It does not explicitly name alternatives or exclusions, but the 'before risky ops' phrase implies the timing and separates this from snapshot listing/restoring tools. Clear context without exclusions merits a 4.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

snapshot_listList snapshotsA
Read-only

List snapshot slots with source and creation time.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, covering the read-only nature. The description adds that it returns source and creation time, which is useful but does not disclose additional traits like sorting, pagination, or scope limits. With annotations covering the core behavior, the description adds modest value beyond them.

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 that is front-loaded with the verb and resource, and includes only essential information. No filler or redundancy.

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 that there are no parameters, the output schema exists, and annotations cover the read-only safety profile, the description fully covers what an agent needs to call it correctly. It states what is listed and what fields are returned.

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 the description does not need to explain any. Baseline for 0-param tools is 4, and the description does not introduce unnecessary param details.

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 uses a specific verb ('List') and resource ('snapshot slots'), and specifies the return fields (source and creation time). It clearly distinguishes from sibling tools like snapshot_create and snapshot_restore, which are write operations.

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 purpose is self-explanatory: listing snapshots. There is no explicit mention of when not to use or alternatives, but the tool's role is unambiguous in context, and no competing list tool exists for snapshots. The clarity of purpose implies usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

snapshot_restoreRestore snapshotB
DestructiveIdempotent

Copy a slot back. Prompts (destructive); overwrite required on clash.

ParametersJSON Schema
NameRequiredDescriptionDefault
destNo
slotYes
overwriteNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and readOnlyHint=false, and the description adds value beyond them: 'Prompts (destructive)' discloses that an interactive confirmation precedes the destructive action, and 'overwrite required on clash' explains conflict-handling behavior at call time. These details are consistent with the annotations, so there is no contradiction.

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 terse sentences with the core action front-loaded and behavioral caveats packed efficiently into the second. There is zero filler; every word carries 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?

For a destructive, three-parameter tool, the description leaves consequential gaps: the meaning of 'slot', the semantics of dest versus 'back', and how this tool relates to restore-like siblings such as file_restore and git_checkout. The output schema and annotations cover return values and the safety profile, but the unresolved jargon and missing routing make the definition incomplete for confident autonomous invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description carries the full burden of explaining parameters. It clarifies overwrite ('required on clash') and implies slot's role as the source being copied back. However, dest is never mentioned, and its default of '' is left ambiguous β€” it is unclear whether 'back' means the original location or a location specified by dest.

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 states a specific verb and resource β€” 'Copy a slot back' β€” and the title 'Restore snapshot' reinforces the operation. It is distinguishable from restore-adjacent siblings like snapshot_create, snapshot_list, and file_restore. However, 'slot' is undefined domain jargon and 'back' doesn't clarify where the content returns to, so it is clear but not fully self-contained.

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 gives no guidance on when to choose this tool over alternatives. Among the siblings there are several restore/version-oriented tools (file_restore, git_checkout, git_reset, git_revert) that are never differentiated. The behavioral notes about prompting and overwrite are operational details, not usage routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

system_snapshotSystem snapshotA
Read-only

Point-in-time cpu/memory/disk/load/temps/battery/gpu/network/uptime.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, covering safety. The description adds the behavioral trait 'point-in-time' to indicate a snapshot rather than continuous data, but does not disclose output format or other behaviors. Given the annotations, the description adds modest context beyond them.

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 key concept ('Point-in-time') and then enumerates all covered metrics. It is extremely concise with no wasted words.

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?

For a zero-parameter, read-only snapshot tool with an output schema present, the description sufficiently conveys what the tool does by listing the metrics it covers. The output schema handles return format details, so nothing essential is missing.

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 the description is not required to explain any. The empty schema with 100% coverage trivially satisfies the schema, and the baseline score of 4 for zero-parameter tools 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 clearly states the tool captures a point-in-time snapshot of system metrics including CPU, memory, disk, load, temperatures, battery, GPU, network, and uptime. It uses a specific verb 'snapshot' and names the resource, and the 'point-in-time' qualifier distinguishes it from ongoing monitoring tools like system_summary.

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 such as system_summary or job_status. There is no mention of appropriate contexts, exclusions, or selection criteria, leaving the agent to infer usage from the name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

system_summarySystem summaryA
Read-only

Get a compact summary of the real host: identity, uptime, disk and memory.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is known. The description adds that it provides a compact summary of the real host, which gives context on scope but doesn't disclose additional behavior like response size or latency. No contradiction with 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?

One sentence, front-loaded with the verb and resource, and lists the included data points efficiently. No wasted words; every element 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?

Given the presence of an output schema and zero parameters, the description is complete for invocation. It could potentially mention that it reflects the actual host environment, but the phrase 'real host' already covers that. It doesn't discuss any limitations, but for a read-only summary tool this 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?

No parameters exist, so the schema is trivial. The description appropriately makes no parameter claims, satisfying the baseline for zero-parameter tools where there is nothing to clarify beyond what the schema already reflects.

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 retrieves a compact summary of the host system, listing the included metrics (identity, uptime, disk, memory). It distinguishes itself from more specific siblings by the 'compact summary' framing, though it doesn't explicitly name alternatives like host_identity or disk_usage, leaving some ambiguity about when this aggregated view is preferred.

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?

There is no explicit guidance on when to use this tool versus more specific tools like host_identity or disk_usage. The 'compact summary' phrasing implies it's for a quick overview, but the description doesn't state this preference or exclusions, leaving the agent to infer the appropriate use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tail_fileFile tailA
Read-only

Return the last N lines of a file.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
linesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description truthfully states the core behavior and does not contradict the readOnlyHint annotation. It adds little behavioral context beyond that already provided by annotations, such as error behavior, line-ending handling, or the default line count, but for a simple read-only tool the annotation covers the main safety profile.

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, clear, front-loaded sentence with no filler. Every word contributes to explaining the tool's purpose and behavior.

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?

For a simple read-only tool with an output schema, a required path, and a lines parameter with a default, the description is sufficient. The schema and annotations cover defaults and safety, so nothing essential is missing for an agent to invoke it 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 0%, so the description must carry meaning for the parameters. It does map 'file' to path and 'N' to lines, which is helpful, but it omits the default value of 50, the required status of path, and any constraints on the lines integer. It compensates partially, not fully.

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 uses a specific verb ('Return') with a clear resource ('last N lines of a file'), which fully communicates what the tool does. It inherently distinguishes itself from sibling tools like head_file and read_file by specifying tail semantics.

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 use case: when you need the tail end of a file. However, it does not explicitly mention alternatives or exclusion conditions, such as 'use head_file for the first N lines' or 'use read_file for full contents', so routing guidance is only implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

terminal_closeClose terminalC
DestructiveIdempotent

Terminate a terminal session and release it.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already carry destructiveHint=true, readOnlyHint=false, and idempotentHint=true, so the safety profile is covered. The description adds the 'release it' resource-lifecycle detail, but does not explain what happens to running processes or output inside the session; still, it does not contradict the annotations.

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 efficient sentence with the core action front-loaded. It is concise and readable, though it spends no effort on the missing parameter or usage 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 one-parameter terminal tool with output schema and strong annotations, this is minimally viable: the agent can infer it should pass a session_id to terminate. However, it lacks explicit guidance on where the session_id comes from and how this differs from terminal_signal/terminal_write, so the context is not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description does not explain session_id at all. The agent is left with only the parameter name to infer that it must provide an existing terminal session identifier, so the description adds no meaning beyond the schema.

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 uses a specific verb ('Terminate') and resource ('terminal session'), and adds 'release it' to convey resource cleanup. It is clear but does not explicitly distinguish terminal_close from sibling terminal_signal, which might also be used to end a session's activity.

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 given about when to close a session versus sending a signal, waiting for output, or listing sessions. The description implies 'when done with the session' but provides no explicit context or exclusions, leaving the agent to infer selection among the terminal_* siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

terminal_createCreate terminal sessionA

Start a persistent shell session (or run a command interactively).

Empty command spawns a login shell kept alive across calls. Use terminal_write to send input, terminal_read for incremental output, terminal_wait to block for a pattern/exit instead of polling.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo
colsNo
rowsNo
commandNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations providing no read/destructive/idempotent hints, the description carries the burden. It discloses that the session is persistent, that an empty command creates a login shell, and that output can be incrementally read and waited on. It could mention cleanup via terminal_close, but the core lifecycle 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?

Three succinct sentences, each earning its place: purpose is front-loaded, empty-command behavior is explained, and follow-up tool usage is directed. No wasted words.

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 how to start and interact with the session, and an output schema exists so return values don't need explanation. However, for a stateful resource it omits cleanup guidance (terminal_close) and doesn't describe the cwd/cols/rows semantics, leaving minor usability gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It only clarifies the 'command' parameter (empty vs non-empty) and says nothing about cwd, cols, or rows, leaving the agent to infer their meaning from names and defaults.

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: 'Start a persistent shell session (or run a command interactively).' It clearly differentiates this from siblings like run_command by emphasizing persistence and cross-call liveness.

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 gives concrete usage context: empty command spawns a login shell kept alive across calls, and it explicitly routes follow-up work to terminal_write, terminal_read, and terminal_wait. It doesn't explicitly contrast with run_command for one-off commands, but the persistence framing makes the intended use clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

terminal_listList terminalsA
Read-only

List live terminal sessions with pid, cwd, age and buffer size.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds the specific fields returned (pid, cwd, age, buffer size), which is useful context beyond the annotation. However, it does not disclose any other behavior such as session limits, ordering, or potential latency, which is acceptable for a simple list operation given the 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?

The description is a single, front-loaded sentence. It states the action first, then the object, then the specific data returned. There is no filler or redundancy, making it highly concise and well-structured.

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?

With an output schema present, the return format is already documented. The tool has no parameters, and the description specifies what information is listed. For a simple read-only listing tool, nothing an agent needs to call it correctly is missing.

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 zero parameters, and the schema coverage is 100% (empty object). Per the calibration baseline for 0 parameters, the description does not need to add parameter info. The baseline of 4 applies, and no additional semantic burden exists.

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 uses a specific verb ('List') and resource ('live terminal sessions'), and explicitly enumerates the returned fields (pid, cwd, age, buffer size). This clearly differentiates it from other terminal tools like terminal_create or terminal_read, which have different actions.

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 purpose is clear, but there is no explicit guidance on when to use this tool versus alternatives. It does not mention that it should be used to get an overview before interacting with specific sessions, nor does it exclude any sibling tools. The usage is implied by the name and action rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

terminal_readRead terminal outputA
Read-only

Read new output from a terminal session since cursor. Returns new cursor.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, covering the read-only nature. The description adds the cursor-based semantics and that it returns the new cursor, which is valuable. However, it does not disclose whether the call is blocking (e.g., waits for output) or how it handles no new output. Given the existence of terminal_wait, this is a notable gap, but not a contradiction. The description adds some behavioral context beyond annotations but leaves key behaviors unspecified.

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 short sentences, front-loaded with the core action and cursor semantics. It is free of filler and effectively communicates the main purpose. The structure is optimal for quick agent comprehension.

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 tool has an output schema (which presumably describes the return value including the new cursor), so return values are covered. However, the parameters are not explained, and the description does not mention any edge cases (e.g., no new output, limit reached). The context is adequate for a simple read tool but incomplete given the undocumented parameters and the presence of a wait sibling that could clarify blocking behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain the parameters. It only implicitly references 'cursor' in the phrase 'since cursor' but does not explain what limit, cursor, or session_id mean. It does not clarify that cursor is a token representing the last read position, that limit caps output size, or that session_id identifies the terminal session. This is insufficient for a tool with three parameters and no schema 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 reads new output from a terminal session since a cursor and returns the new cursor. It specifies the resource (terminal output) and the action (read), and it distinguishes itself from siblings like terminal_write and terminal_wait by focusing on reading output. The cursor-based incremental reading is a clear differentiator.

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: read output after writing or waiting, but it does not explicitly state when to prefer this tool over alternatives like terminal_wait or terminal_list. It gives the context of reading 'new output since cursor' but lacks any explicit exclusions or comparisons to sibling tools. An agent would need to infer that this is the non-blocking read tool, which is not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

terminal_resizeResize terminalB
Read-only

Store terminal dimensions (metadata; no PTY ioctl yet).

ParametersJSON Schema
NameRequiredDescriptionDefault
colsNo
rowsNo
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, covering the safety profile. The description adds useful context by clarifying this is a metadata-only store with no PTY ioctl, which explains why the operation is side-effect-free; however, it does not describe result contents beyond what the existing output schema already provides.

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 8-word sentence with a parenthetical caveat that carries critical scope information. Every word earns its place and the key limitation is 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?

For a simple 3-parameter tool with an output schema and annotations, the description is mostly adequate, but it omits valid value ranges for cols/rows and the trigger context for when dimensions should be stored. These gaps are non-fatal given the tool's simplicity, but a fuller description would include them.

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 0%, so the description must compensate, but it only maps 'terminal dimensions' to cols/rows and says nothing about session_id, which is the required parameter. The parameter names and defaults (80, 24) are self-explanatory, but the description does not fully fill the gap left by the schema.

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 uses a specific verb and resource ('Store terminal dimensions') and the parenthetical 'no PTY ioctl yet' scopes the behavior precisely, preventing an agent from expecting an actual resize effect. It distinguishes this tool from the terminal_* siblings by clarifying it only stores metadata, though it does not explicitly name an alternative.

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?

There is no explicit guidance on when to call this tool versus terminal_create, terminal_write, or terminal_signal, and no when-not-to-use conditions. The 'no PTY ioctl yet' caveat implies a limitation but does not route the agent to an alternative or describe the triggering context (e.g., after a window resize event).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

terminal_signalSignal terminalB
DestructiveIdempotent

Send INT/TERM/KILL (HUP on Unix) to a terminal session.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
signal_nameNoINT

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=true, so the description doesn't need to repeat that. It does add the specific signal names and the Unix HUP note, which is useful. However, it does not disclose potential consequences (e.g., session termination, irreversibility) or any prerequisites beyond what annotations provide. It adds some value but not deep behavioral 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 is a single, compact sentence that front-loads the core action and signals. No filler or redundant wording. It is appropriately sized for a simple tool.

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?

For a tool with two parameters and 0% schema coverage, the description is too thin. It does not explain what session_id refers to or how to obtain it, nor does it enumerate valid signal_name values or mention any prerequisites (e.g., session must be active). Since an output schema exists, return values are not needed, but the invocation requirements are largely undocumented, making the description insufficient for correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It mentions signals (INT/TERM/KILL) which hints at signal_name values, but it does not explicitly map these to the parameter, nor does it explain session_id at all. The description adds minimal meaning beyond the raw schema, leaving the agent to infer parameter semantics.

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 signals), the target (terminal session), and the specific signals (INT/TERM/KILL, HUP on Unix). It distinguishes itself from sibling tools like terminal_write (input) and terminal_close (close), and process_kill (process-level). The verb and resource are specific and unambiguous.

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 given on when to use this tool versus alternatives. It does not mention that it is for terminal sessions only, nor does it contrast with process_kill or other signal-related tools. The only implicit context is the 'terminal session' phrase, but there is no explicit when/when-not guidance or mention of alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

terminal_waitWait on terminalA
Read-only

Block until regex pattern appears in new output, process exits, or timeout.

ParametersJSON Schema
NameRequiredDescriptionDefault
patternNo
wait_exitNo
session_idYes
timeout_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and openWorldHint=false, and the description does not contradict them β€” 'Block' is a read/wait operation with no mutation. The description adds genuine value beyond annotations by disclosing the blocking semantics, the three termination conditions, and that the regex matches only 'new output' (not accumulated history). It stops short of explaining timeout failure behavior, but the safety profile is already covered by 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?

A single tightly worded sentence front-loads the blocking action and lists all three termination conditions with zero wasted words. Every element earns its place; no filler or redundancy.

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 core behavior and, since an output schema exists, return values needn't be explained. However, it leaves ambiguous how pattern and wait_exit interact when both are set (the 'or' phrasing implies any condition suffices but doesn't state priority), what happens on timeout, and what 'new output' precisely means relative to prior reads. Adequate but with notable gaps for a blocking operation.

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?

With schema description coverage at 0%, the description carries the explanatory burden and does clarify three of four parameters: pattern (regex), wait_exit (process exits), and timeout_seconds (timeout). However, session_id is never mentioned, though its purpose is reasonably inferable from the name 'Session Id'. The description compensates for the coverage gap only partially.

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 uses a specific verb ('Block') with a clear resource and the exact conditions that end the wait: regex match on new output, process exit, or timeout. It clearly distinguishes from siblings like terminal_read (polling read), terminal_write (sending input), and job_wait (waiting on jobs, not terminal sessions). Not a tautology; it states precise behavior.

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 β€” you block after running a command when you need to synchronize on output or process completion. However, it does not explicitly differentiate from similar waiting tools like job_wait or accounts_wait, nor does it advise when to wait vs. poll with terminal_read. The context is implied but no exclusions or alternatives are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

terminal_writeWrite to terminalA

Send keystrokes/commands to a terminal session's stdin.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations (all false) provide little behavioral context, so the description carries the burden. It does disclose the mechanism (writing to stdin), but it omits important behavioral details such as whether a trailing newline is needed to execute commands, whether the session must already exist, or any state-changing side effects beyond the write.

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, front-loaded sentence with no filler. Every word contributes to the meaning, and it is appropriately sized for a simple two-parameter write operation.

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 tool is low-complexity and an output schema exists, so the core purpose is covered. Yet the description lacks critical usage context such as session prerequisites, newline behavior, or interaction with terminal_read/waitβ€”details that would help an agent avoid common mistakes. Sibling names hint at the workflow but do not substitute for explicit guidance.

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 0%, but the description partially compensates by mapping 'keystrokes/commands' to the data parameter and 'terminal session' to session_id. It does not explain expected data format, encoding, or that session_id must reference an existing terminal session, leaving gaps that the schema also fails to fill.

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 'Send keystrokes/commands to a terminal session's stdin' clearly identifies the action (send) and the target (stdin of a terminal session). It is specific enough to be distinguished from siblings like terminal_read, terminal_resize, and terminal_signal, and the title 'Write to terminal' reinforces the purpose.

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 usage is implied by the phrase 'terminal session's stdin'β€”an agent can infer it is for writing to an existing interactive session. However, there is no explicit guidance about when to prefer this over alternatives like run_command or how it differs from terminal_signal or terminal_resize.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

thinkThink stepA

Record one reasoning step in a sequential chain.

ParametersJSON Schema
NameRequiredDescriptionDefault
thoughtYes
next_neededNo
thought_numberNo
total_thoughtsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds the 'sequential chain' context, indicating a stateful append operation, which goes slightly beyond the annotations that only show all hints as false. It does not disclose persistence behavior, potential limits, or the exact effect on the chain, so behavioral transparency is acceptable but 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 a single, tightly written sentence with no filler. The core action ('Record one reasoning step') is front-loaded, and every word earns its place.

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 tool is simple and there is an output schema, but the description fails to document the optional parameters or relationship to chain operations. Key details such as how step numbering works or whether next_needed affects control flow are missing, so completeness is only moderate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at 0%, the description must compensate for undocumented parameters, but it only covers the 'thought' content. The purpose of 'next_needed', 'thought_number', and 'total_thoughts' is left entirely to inference from parameter names, which may be ambiguous for an agent.

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 uses a specific verb ('Record') and a clear resource ('one reasoning step') within a 'sequential chain', which is immediately understandable. It naturally distinguishes itself from sibling tools think_list and think_clear, which clearly handle listing and clearing rather than recording.

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 phrase 'sequential chain' implies this tool appends a step, providing a basic usage context. However, there is no explicit guidance on when to choose it over think_list or think_clear, nor any exclusion criteria. The agent must infer from the name and description alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

think_clearThink clearC
Destructive

Clear the thought chain. Prompts.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description essentially restates the clearing action already implied by the tool name and the destructiveHint annotation. It adds no useful behavioral context such as irreversibility, what exactly is cleared, or side effects. The fragment 'Prompts.' provides no additional transparency and does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The useful part is front-loaded in the first sentence, but the stray 'Prompts.' is noise that does not earn its place and creates confusion. For a zero-parameter tool, a single clean sentence would have been sufficient and more effective.

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?

With no parameters and an output schema present, the definition is nearly sufficient for a simple operation. However, it never clarifies what a 'thought chain' includes, whether clearing is irreversible, or how this differs from related memory/reset tools, and the ambiguous 'Prompts.' adds potential confusion.

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 and schema description coverage is 100%, so there are no parameter details missing. The baseline of 4 applies because there is nothing for the description to add in this dimension.

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 states a specific verb and resource: 'Clear the thought chain.' This distinguishes the tool from siblings like think and think_list by the clearing action. However, the appended fragment 'Prompts.' is ambiguous and slightly detracts from clarity.

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 such as think, think_list, memory_forget, or other state-reset operations. There are no conditions, exclusions, or examples given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

think_listThink chainA
Read-only

Return the current thought chain.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the description's 'Return' aligns with those. However, it adds no extra behavioral contextβ€”such as what happens if the chain is empty, whether it returns all or partial data, or any side effects. The bar is lower due to annotations, so a 3 is appropriate.

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 with no filler, front-loading the verb 'Return' and stating the resource directly. It is maximally concise and well-structured.

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?

For a read-only tool with no parameters and an output schema present, the description fully covers what the tool does. The output schema can handle return details, so no further explanation is needed. It is complete for an agent to call 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?

There are zero parameters and 100% schema coverage (trivially, since the schema is an empty object). The description does not need to explain parameters, so the baseline of 4 for a zero-parameter tool 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 uses the specific verb 'Return' with the resource 'current thought chain,' clearly distinguishing it from sibling tools like think (which likely adds) and think_clear (which likely clears). The purpose is 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?

The description implies the tool is for retrieving the thought chain, but it does not explicitly mention alternatives or conditions for when to use it versus think or think_clear. There is no explicit when-not-to-use guidance, though the simple read-only nature makes it fairly obvious.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

time_convertConvert timeB
Read-only

Convert ISO datetime between IANA timezones.

ParametersJSON Schema
NameRequiredDescriptionDefault
to_tzYes
momentYes
from_tzYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations include readOnlyHint=true and openWorldHint=false, indicating a non-mutating operation. The description aligns with this by describing a conversion, which does not alter state. It adds minimal behavioral context beyond the operation itself; it does not mention output format, error handling, or edge cases. Since annotations already cover the read-only nature, a score of 3 is appropriate.

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 with no filler. The core action and target are front-loaded, and every word contributes. It is an exemplary model of brevity.

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 conversion tool with an output schema present and read-only annotations, the description is mostly complete. It covers the essential inputs and purpose. However, it omits explicit examples of valid timezone strings or datetime formats, which could aid correctness. The presence of siblings like time_now and time_zones makes the scope clear, but a short example would enhance 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 description coverage is 0%, so the description must compensate. It implies that 'moment' is an ISO datetime and 'from_tz'/'to_tz' are IANA timezones, which adds meaning beyond parameter names. However, it does not provide format examples, validation rules, or clarify whether the moment must include timezone offset. It gives general roles but lacks specifics, so it only partially compensates for the missing schema descriptions.

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 operation ('Convert ISO datetime') and the specific domain (between IANA timezones). It distinguishes from siblings like time_now (current time) and time_zones (list zones) by focusing on conversion between timezones. It lacks an explicit mention of siblings but the purpose is unambiguous.

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. With siblings like time_now and time_zones available, an agent would benefit from explicit conditions (e.g., 'use time_now for current time, time_zones to list zones'). The description gives no context on preferred scenarios or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

time_nowCurrent timeA
Read-only

Current time in an IANA timezone (default local).

ParametersJSON Schema
NameRequiredDescriptionDefault
timezoneNolocal

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the agent knows this is a safe read operation. The description adds the timezone parameter context but does not disclose additional behavioral traits (e.g., output format, error behavior). No contradiction with 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?

The description is a single, front-loaded sentence with no wasted words. It states the core purpose and parameter semantics efficiently.

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?

For a simple read-only tool with one optional parameter and an output schema, the description covers what it does and the meaning of the parameter. No essential information for calling the tool correctly is missing.

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 schema has zero description coverage for the 'timezone' parameter. The tool description compensates by clarifying it expects an IANA timezone and defaults to 'local', adding meaning beyond the bare schema definition.

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 'Current time in an IANA timezone (default local).' This specifies the verb (get current time) and resource (time) and differentiates from sibling tools like time_convert (conversion) and time_zones (listing zones) by focusing on the current instant.

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 guidance on when to use this tool vs. alternatives is provided. The purpose is self-evident, so usage is implied, but there is no mention of when not to use it or when to prefer time_convert or time_zones.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

time_zonesList timezonesB
Read-only

List IANA zones, optionally filtered.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo
max_resultsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already mark the tool as readOnly and not openWorld, and the description adds the IANA-zone scope and optional filtering. It does not disclose additional behavioral traits like result-size caps, matching semantics, or side effects, but nothing here contradicts the 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?

The description is a single well-ordered sentence: core operation first, optional modifier appended. It contains no filler, no repetition of schema details, and 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 read-only list tool with an output schema and readOnlyHint, the basic call is clear. However, the sparse parameter semantics and lack of usage context mean an agent could call it but may misuse query or max_results. It is minimally viable, not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description needed to explain query and max_results. It only hints at filtering and is silent on max_results, query format, or matching behavior, leaving the agent to rely on parameter names and defaults.

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 uses a clear verb ('List'), a specific resource ('IANA zones'), and notes optional filtering. It is not a pure tautology, but it largely restates the title and doesn't explicitly contrast with sibling time tools like time_now or time_convert.

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?

There is no explicit when-to-use guidance, no exclusions, and no reference to sibling alternatives. The intended use is only implied by the verb 'list' and the readOnlyHint annotation, so an agent receives no help choosing this over time_now or time_convert.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vercel_deploymentsVercel deploymentsB
Read-only

List deployments, optional project name/id filter.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
projectNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description's 'List' action is consistent. However, it adds no behavioral context beyond the literal actionβ€”no mention of pagination, rate limits, or output details. Since annotations cover the safety profile, this is acceptable but not rich.

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 that front-loads the action and the key filter option. No wasted words, and it is appropriately sized for a simple list tool.

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, the output schema exists, and annotations cover read-only safety, the description is mostly adequate. However, it omits explanation of the 'limit' parameter's effect and doesn't mention any pagination behavior, leaving minor gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains the 'project' parameter as a 'project name/id filter', but does not mention the 'limit' parameter at all. With two parameters, only one is semantically clarified, leaving the other undocumented.

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 verb 'List' and the resource 'deployments', with an optional project filter. This distinguishes it from sibling tools like vercel_projects (lists projects) and vercel_redeploy (redeploys), though it doesn't explicitly name them.

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 gives no guidance on when to use this tool versus alternatives such as vercel_inspect or vercel_projects. It implies the use case (listing deployments) but offers no exclusions or comparisons, leaving the agent to infer selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vercel_inspectVercel inspectB
Read-only

Deployment detail: aliases, state, regions, creator.

ParametersJSON Schema
NameRequiredDescriptionDefault
deploymentYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the agent knows this is a safe read operation. The description adds the specific fields returned (aliases, state, regions, creator), which is useful context. However, it does not disclose any additional behavioral aspects such as authentication requirements, network dependencies, or whether it works only for deployments owned by the user. Given the annotations cover the safety profile, a score of 3 is appropriate – the description adds some value but not rich behavioral detail.

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 extremely concise, using only five words to convey the core purpose. There is no redundant phrasing, and the main point is front-loaded. However, the extreme brevity sacrifices necessary detail, so while it earns credit for conciseness, it falls short of being optimally structured because it omits essential usage context.

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?

For a tool with a single parameter, no enums, and an output schema, the description is minimal but incomplete. It does not specify the input format, any prerequisites, or how the tool behaves in edge cases (e.g., invalid deployment ID). The annotations provide read-only safety, but the description lacks enough information for an agent to call it correctly without additional assumptions. The existence of an output schema partially mitigates the need to describe return values, but the input parameter remains ambiguous.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description does not explain what the 'deployment' parameter expects (e.g., ID, URL, name). The phrase 'Deployment detail' implies the parameter is a deployment identifier, but no format or example is provided. With no schema description and no clarification in the text, the parameter semantics are completely underspecified, leaving the agent to guess the correct input.

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 'Deployment detail: aliases, state, regions, creator' clearly states the tool retrieves detailed information about a specific deployment, listing the exact attributes it returns. This distinguishes it from sibling tools like vercel_deployments (list deployments) and vercel_logs (fetch logs), making the purpose unmistakable.

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 given on when to use this tool versus alternatives. The description does not mention related tools or conditions for selection, leaving the agent to infer that it is for a single deployment's details, but without explicit direction. For example, there is no note that this complements vercel_deployments or that it is the right choice for inspecting a specific deployment rather than listing all.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vercel_logsVercel logsB
Read-only

Build/runtime event tail for a deployment.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
deploymentYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, covering the safety profile. The description adds some behavioral context by indicating 'tail' semantics and that it covers build/runtime events, but it does not disclose details like output format, streaming behavior, or potential errors.

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 concise sentence with no filler or redundancy. It is front-loaded and efficient, though slightly under-specified in clarity.

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 read-only log tool with an output schema, the description is minimally sufficient, but it lacks usage guidance and parameter clarification. It gives just enough to understand the core function, not enough for confident invocation in edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description does not compensate by explaining the deployment identifier format or the meaning of the limit parameter. It only indirectly implies that 'deployment' identifies the target deployment.

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 states a specific resource (a deployment) and action (tail build/runtime events), which clearly communicates the tool's purpose as deployment log retrieval. It is distinguishable from siblings like vercel_deployments or vercel_redeploy, though it does not explicitly differentiate itself by name.

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 gives no guidance on when to use this tool versus alternatives such as vercel_inspect or vercel_deployments. There is no mention of prerequisites, alternatives, or conditions where this tool is or is not appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vercel_projectsVercel projectsA
Read-only

List Vercel projects. Auto token (env > stored > CLI login).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as read-only, and the description adds useful operational context about automatic token resolution order ('env > stored > CLI login'). This goes beyond what the annotations and schema provide, though it does not describe output or pagination behavior.

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 short sentences with no filler. The primary purpose is front-loaded, and the auth detail is concise and relevant.

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-only list tool with one optional parameter and an output schema, the description is nearly complete. It covers authentication behavior and purpose, but could be slightly richer by clarifying how it relates to sibling Vercel tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, and the description does not mention the 'limit' parameter at all. While 'limit' is self-explanatory from its name, the description fails to compensate for the lack of schema documentation.

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 uses a specific verb ('List') and resource ('Vercel projects'), clearly indicating what the tool does. It is clear but does not explicitly differentiate from sibling tools like vercel_deployments or vercel_logs, so it is slightly below full differentiation.

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 listing verb and resource name imply basic usage, but the description provides no explicit guidance on when to use this tool versus alternatives such as vercel_deployments or vercel_inspect. The auth note is useful but does not address tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vercel_redeployVercel redeployC
Destructive

Rebuild a deployment. Prompts (creates live deploys).

ParametersJSON Schema
NameRequiredDescriptionDefault
targetNo
deploymentYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, and the description adds a useful behavioral fact: it creates live deploys. However, the phrase 'Prompts' is vague, and the description does not clarify whether production deployments are affected or what happens to the existing deployment.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is short and front-loaded, but the second sentence is ambiguous and appears garbled ('Prompts (creates live deploys)'). It is concise but not clearly well-structured enough to earn a higher score.

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?

For a destructive tool, the description is incomplete: it omits parameter semantics, usage conditions, and the distinction between redeploy and related tools. The presence of an output schema does not compensate for missing input and behavioral context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain the meaning or accepted format of 'deployment' or 'target'. The agent cannot tell whether 'deployment' expects an ID, URL, or name, nor what 'target' controls.

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 states a specific action ('Rebuild') and resource ('a deployment'), making the core purpose clear and distinct from list/inspect/log siblings. The parenthetical 'Prompts (creates live deploys)' is cryptic and prevents a higher score.

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?

There is no guidance about when to use this tool versus alternatives like vercel_deployments, vercel_inspect, or vercel_logs. No prerequisites, conditions, or exclusions are provided; usage is only implied by the verb 'rebuild'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

write_fileWrite host fileA
Idempotent

Write a text file inside an allowed writable host root.

Existing files are not replaced unless overwrite=true. Default writable root is the user's home directory. Configure HOST_MCP_WRITE_ROOTS to change it.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
contentYes
overwriteNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description adds meaningful behavioral detail: existing files are not replaced unless overwrite=true, the default root is the user's home directory, and the writable roots can be configured via HOST_MCP_WRITE_ROOTS. This helps the agent reason about safety and side effects without contradicting the 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 short sentences, each adding distinct value: the core action, the overwrite safety behavior, and the configuration mechanism. It is front-loaded and concise with no redundant wording.

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 relatively simple write tool with an output schema and supporting annotations, the description covers the essential behavior: allowed roots, overwrite semantics, and configuration. It does not cover edge cases like directory creation or error behavior, but the core information needed to invoke the tool correctly is present.

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 0%, so the description must compensate. It does explain the overwrite parameter's effect and gives path context via the writable root, but it does not clarify path format, content encoding, or what happens if the parent directory is missing. Parameter meaning is only partially enhanced.

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 writes a text file to an allowed writable host root, which is a specific verb and resource. It does not explicitly contrast itself with siblings like edit_file or apply_patch, but 'write' plus the root restriction makes the purpose clear enough.

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 gives useful context about writable roots and the overwrite flag, so an agent knows when this tool is applicable. However, it does not provide guidance about when to prefer edit_file or apply_patch instead, nor any explicit when-not-to-use conditions.

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. 146 tool updatesv0.8.0
    • First observedaccounts
    • First observedaccounts_complete
    • First observedaccounts_connect
    • First observedaccounts_remove
    • First observedaccounts_wait
    • First observedapply_patch
    • First observedaudit_log
    • First observedaudit_search
    • First observedbrowser_fetch
    • First observedbrowser_shot
    • First observedcloudflare_account
    • First observedcloudflare_dns
    • First observedcloudflare_dns_create
    • First observedcloudflare_dns_delete
    • First observedcloudflare_purge
    • First observedcloudflare_zones
    • First observedconnection_list
    • First observeddb_query
    • First observeddb_status
    • First observeddb_tables
    • First observeddiagnose
    • First observeddirectory_tree
    • First observeddisk_usage
    • First observeddns_lookup
    • First observeddocker_exec
    • First observeddocker_inspect
    • First observeddocker_logs
    • First observeddocker_ps
    • First observeddocker_restart
    • First observeddocker_rm
    • First observeddocker_start
    • First observeddocker_stop
    • First observeddownload_file
    • First observeddrive_get
    • First observeddrive_list
    • First observededit_file
    • First observedfetch_text
    • First observedfile_copy
    • First observedfile_delete
    • First observedfile_grep
    • First observedfile_move
    • First observedfile_restore
    • First observedfile_search
    • First observedfile_stat
    • First observedfile_version
    • First observedfind_files_tool
    • First observedfuzzy_find_tool
    • First observedgit_blame
    • First observedgit_branch
    • First observedgit_checkout
    • First observedgit_clean
    • First observedgit_commit
    • First observedgit_diff
    • First observedgit_log
    • First observedgit_merge
    • First observedgit_rebase
    • First observedgit_reset
    • First observedgit_revert
    • First observedgit_show
    • First observedgit_stash
    • First observedgit_status
    • First observedgit_tag
    • First observedgit_worktree_create
    • First observedgit_worktree_list
    • First observedgit_worktree_remove
    • First observedgithub_issue
    • First observedgithub_pr
    • First observedgithub_repo
    • First observedhead_file
    • First observedhost_identity
    • First observedhttp_fetch
    • First observedinterface_list
    • First observedjob_cancel
    • First observedjob_list
    • First observedjob_output
    • First observedjob_start
    • First observedjob_status
    • First observedjob_wait
    • First observedjournal_query
    • First observedlist_directory
    • First observedmaps_directions
    • First observedmaps_geocode
    • First observedmemory_forget
    • First observedmemory_link
    • First observedmemory_recall
    • First observedmemory_store
    • First observednetwork_check
    • First observednine_chat
    • First observednine_chat_stream
    • First observednine_combos
    • First observednine_embeddings
    • First observednine_fanout
    • First observednine_image
    • First observednine_models
    • First observednine_providers
    • First observednine_search
    • First observednine_status
    • First observednine_stt
    • First observednine_tts
    • First observednine_usage
    • First observednine_video
    • First observedpackage_info
    • First observedpackage_install
    • First observedpackage_remove
    • First observedpackage_search
    • First observedpackage_update
    • First observedport_check
    • First observedport_list
    • First observedport_owner
    • First observedprocess_kill
    • First observedprocess_list
    • First observedread_file
    • First observedredis_get
    • First observedrun_command
    • First observedsearch_text_tool
    • First observedservice_status
    • First observedslack_list
    • First observedslack_send
    • First observedsnapshot_create
    • First observedsnapshot_list
    • First observedsnapshot_restore
    • First observedsystem_snapshot
    • First observedsystem_summary
    • First observedtail_file
    • First observedterminal_close
    • First observedterminal_create
    • First observedterminal_list
    • First observedterminal_read
    • First observedterminal_resize
    • First observedterminal_signal
    • First observedterminal_wait
    • First observedterminal_write
    • First observedthink
    • First observedthink_clear
    • First observedthink_list
    • First observedtime_convert
    • First observedtime_now
    • First observedtime_zones
    • First observedvercel_deployments
    • First observedvercel_inspect
    • First observedvercel_logs
    • First observedvercel_projects
    • First observedvercel_redeploy
    • First observedweb_search
    • First observedwiki_search
    • First observedwrite_file

TDQS

C2.6/5.0

Scored across 146 tools

Disambiguation2/5

Many tools have overlapping purposes: web_search/wiki_search/nine_search, fetch_text/http_fetch/browser_fetch, find_files_tool/file_search/fuzzy_find_tool, search_text_tool/file_grep, and port_check/network_check are near-duplicates. The boundaries are often subtle and depend on backend or mode, which creates real misselection risk for an agent.

Naming Consistency3/5

The set is mostly snake_case and readable, but conventions are mixed: some names are verb_noun (read_file, edit_file, run_command), some are noun_verb (file_search, terminal_create, web_search), and some are noun_noun (db_status, git_show, docker_ps). Inconsistent prefixes like git_ vs github_ and odd suffixes like find_files_tool or fuzzy_find_tool further break uniformity.

Tool Count1/5

146 tools is an extreme count for a single MCP server, far beyond even a broad host-management scope. Rather than a focused tool set, this is a grab-bag of host operations, git, Docker, databases, AI services, and multiple SaaS integrations that would be better split into several purpose-specific servers.

Completeness3/5

Core host operations are very well covered: files, processes, git, Docker, terminal, jobs, network, snapshots, and packages all have solid lifecycle support. However, several bundled external domains are incompleteβ€”GitHub issues/PRs lack update/merge operations, Cloudflare DNS has create/delete but no update, Slack only sends and lists channels, and Drive only lists and fetches.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers