Skip to main content
Glama

vibatchium

Agent-piloted browser automation that clears Cloudflare. Patched Playwright + multi-session daemon + credential vault + vision clicking + prompt-injection safety. One MCP server, N parallel Chromes, persistent per-session profiles. Plus two renderer-free lanes on a Chrome TLS fingerprint: vb search to find URLs without a search API, vb fetch to read them — both with per-request --proxy, because engines and walls both rate-limit per IP.

Where this fits. Both Anthropic and Google now ship an agent that drives your own signed-in Chrome — Claude in Chrome and Chrome Auto Browse. If that is what you want, use them: they are free, first-party, and better integrated. They are also supervised — visible window, real time, and they hand control back to you at a login wall or a CAPTCHA. vibatchium is for the other half: unattended, headless, N-at-a-time, on a box with no human in front of it, against sites that fight automation. That is the whole of the wedge, and it is worth being precise about which side of it you are on.

pipx install vibatchium             # core: browse / extract / screenshot / N parallel sessions
# want the stealth HTTP lanes (vb fetch, vb search), the credential vault, VLM read, or the REST shim?
pipx install 'vibatchium[all]'      # everything; or pick extras: vibatchium[fetch], [secrets], [llm], [rest]
patchright install chrome
vb setup                    # register MCP + an auto-discoverable skill so agents reach for vb (idempotent)

Core install covers all browsing. vb fetch and vb search (the curl_cffi TLS-fingerprint lane) are the [fetch] extra; vb install reports which optional lanes are available. On a uv venv (no pip), add an extra with uv pip install --python <venv>/bin/python curl_cffi.

Bleeding edge from master: pipx install 'git+https://github.com/trueoriginlabs/vibatchium#egg=vibatchium[all]'

Coding agents (Codex / Cursor / Claude Code): read AGENTS.md first — it has the one-call recipes (explore, research) and the env-discovery traps to skip.

vb explore https://example.com                      # one-call: text-first (screenshot only as a fallback)
vb research --target https://example.com \          # parallel fan-out, N intents
  --intent "pricing model" --intent "customers" --intent "tech stack"

Status: active development, alpha. 1,195 tests green in CI (Linux, Python 3.11–3.13). Apache-2.0 (AGPL only via the opt-in nodriver extra).

Detector scores quoted below (bot.sannysoft, CreepJS, Cloudflare cold-launch) are manual observations, not CI-asserted — no test in the suite gates on them, and they are only as current as the last hand-run. The generated block under Measured scores is the one to trust; it is empty until someone runs it.

Updating

vb update                  # upgrade + bounce the daemon + refresh the agent skill
vb update --version 0.19.0   # or pin a specific version

vb update detects how vibatchium was installed (pipx, uv tool install, a pip-less uv venv, or pip with a PEP-668 --break-system-packages fallback), stops the running daemon so the next command loads the new code, and rewrites the agent skill / docs blocks so a coding agent is actually told about the verbs the new version ships (--no-restart / --no-setup opt out). Manual equivalent:

pipx upgrade vibatchium    # or: uv tool upgrade vibatchium / pip install -U vibatchium
vb shutdown                # bounce the daemon — it serves old code until you do
vb setup                   # refresh the agent skill + docs
vb --version               # confirm

The daemon-restart step is the one people miss: the long-running daemon keeps serving the old version until it's bounced. vb update does it for you; if you upgrade by hand, run vb shutdown (the next vb call auto-respawns the new version). Optional features upgrade via pipx install 'vibatchium[all]' --force.

Running from a git checkout

git pull updates the source; whether it updates what vb actually runs depends on the install, and two of the three ways it can fail are silent:

vb --version && git describe --tags   # do they agree? if not, the install COPIED
                                      # the source — reinstall editable:
                                      #   uv pip install -e '.[all]'
vb status                             # warns when the daemon predates the source
                                      # ("stale_code") — bounce with `vb shutdown`

A version-string compare cannot catch a checkout: git pull changes the code without changing __version__. vb status compares the daemon's boot time against the newest source file instead, and vb update bounces the daemon only when it is provably behind — so it never drops live sessions for nothing.

New cap buckets need a re-register

The MCP server's --caps list is frozen into your agent's config at first registration, so a bucket added by a later release (0.19.0 added search) stays invisible no matter how many times you upgrade. Re-running vb setup reports the drift but deliberately won't overwrite a --caps you set by hand:

vb setup                              # reports any cap drift, changes nothing
vb setup --force --caps lean,search   # apply it — exposes `vb search` as a tool

Restart the agent session afterwards: the MCP tool list is read once, at start.

Related MCP server: @meshbrow/mcp-server

Why vibatchium

Persistent logged-in profiles, credential vaults, CDP-attach, N named sessions — agent-browser and playwright-mcp all ship those now, at download volumes we won't match. A comparison table winning rows nobody contests was noise; it's gone.

What's still ours: stealth patches in core (agent-browser's stealth issue has been open since Jan 2026 and the PR attempting it was closed), prompt-injection scanning on by default for page content (nobody else in this lane ships it — though it does not yet cover the fetch/search lanes), TOTP + IMAP 2FA so an unattended run survives a login challenge, and the combination that only matters together — real stock Chrome + CDP stealth + headless + unattended + N persistent logins, on your own machine.

If you don't need the stealth half, use one of the above. They're bigger, older and better tested than we are.

Real Chrome vs fake Chrome

A wave of "headless browser for AI agents" tools rebuild the browser from scratch (Rust + V8, no Blink/Skia) to hit tiny memory and sub-100ms page loads. The catch is structural: with no rendering engine, they can't produce a real device's fingerprint — they synthesize one. And synthetic fingerprints don't hold still.

vibatchium drives real Google Chrome, so its fingerprints are real — and, more to the point, stable. The single test that separates the two is fingerprint stability across navigations. Run the same canvas + WebGL probe on two pages in one session:

vibatchium (real Chrome)

synthesized-fingerprint engines

canvas hash, page A → page B

identical

reseeded per navigation

WebGL readPixels

real, deterministic pixels

often Math.random()

WebGL renderer

a real ANGLE renderer¹

stub / zeros

¹ Chrome's own software renderer (SwiftShader) by default — still a coherent, deterministic Chrome value, not a stub. A hardware-GPU string (e.g. ANGLE (Intel …)) needs the opt-in --gpu flag.

A real device returns the same fingerprint every page load; a fingerprint keyed off Date.now() does not — and that inconsistency is exactly what lie-detection fingerprinters (CreepJS and friends) flag. Measured: vibatchium's canvas hash and WebGL readback are byte-identical across navigations, and CreepJS reported 0 % stealth-tampering (no synthetic-environment signatures) when last run by hand. That figure is not regression-tested — treat it as an observation, not a guarantee.

This is not a claim of invisibility. The moat is fingerprint authenticity, not hiding that a browser is automated — vibatchium still reads as headless on the headless-specific tells (see Honest limits), and real-GPU WebGL (--gpu) is opt-in. But real, consistent fingerprints pass the consistency tier that synthetic ones fail by construction — and that tier is what stands between you and a login wall.

Multi-session in 10 lines

vb session new work
vb --session work start
vb --session work go https://github.com           # log in by hand once
vb session new banking
vb --session banking start
vb --session banking go https://bank.example.com
vb --session work click @e3 &                     # truly parallel —
vb --session banking fill @e5 hi &                # separate Chromes, no cookie bleed
wait
vb session list

Active-session resolution: --session FLAG$VIBATCHIUM_SESSION env → ~/.config/vibatchium/active-sessiondefault. Cap via VIBATCHIUM_MAX_SESSIONS=8 (default 8).

Multi-agent: shared sessions vs a private daemon

On one shared daemon, sessions give real fingerprint isolation (separate Chromes, no cookie bleed) but share the host: the session count budget, the memory, and the blast radius of an OOM or a daemon bounce. Two models, pick per trust level:

  • Cooperating agents (your own fleet): the shared daemon is right — just give each concurrent agent a unique --session name so stateful flows don't collide on default. vb session lease coordinates a shared name.

  • A private blast radius: a per-agent daemon on its own socket + HOME — separate profiles/config/state, its own session budget, zero contact with the shared daemon. vb daemon start --isolated prints the XDG_RUNTIME_DIR/ HOME to export for subsequent calls; vb mcp --isolated runs the MCP server on its own private daemon directly. vb daemon reap cleans up abandoned ones. (Same UID = same trust domain — this bounds blast radius, not a security boundary between distrusting tenants; for that, separate UIDs/containers.)

Resource governance. The session cap bounds process count, not bytes. On a shared box, set VIBATCHIUM_SESSION_RAM_FLOOR_MB to refuse a new launch when free memory is low (a portable admission belt). For a hard ceiling, run the daemon under a cgroup — systemd-run --user --scope -p MemoryMax=4G vb daemon start puts the daemon and all its Chromes in one cgroup sharing the limit: an aggregate daemon-wide cap (not per-renderer), and a breach OOM-kills inside the scope, which can include the daemon. It's the only non-racy memory bound, so size it for the whole fan-out.

Idle CPU. Parked sessions can't burn cores either: the daemon SIGSTOPs a launched session's renderer processes after VIBATCHIUM_IDLE_FREEZE_AFTER seconds with no verb (default 90) and thaws them on the next call, so an idle WebGL / animation page drops to zero CPU without a teardown (default on; VIBATCHIUM_IDLE_FREEZE=0 disables).

Documentation

  • AGENTS.md — coding-agent contract (Codex / Cursor / Claude Code)

Server modes

Mode

Surface

Auth

vb mcp

stdio JSON-RPC; defaults to the lean 86-verb profile (--caps=full/all for the full surface; --caps=... for a custom bucket set)

n/a (stdio)

vb serve

FastAPI on 127.0.0.1:8000; every verb at POST /v1/<verb>; WebSocket live-view at /v1/stream/<session>

bearer token (~/.cache/vibatchium/rest-token, mode 0600)

REST capability gating: vb serve --caps=core,nav,input,vision restricts the HTTP surface the same way mcp --caps does. Without it, REST grants local-code-equivalent access (eval + secret_* + file-writing verbs all exposed) — safe for localhost dev, not for hosted/multi-tenant.

Stealth tiers — what clears what

Stealth is a ladder, not a boolean. Pick the lowest tier that clears your target (higher tiers cost more setup / a visible browser / a manual login). vibatchium does not claim cold-launch defeat of behavioral walls — those need a real human-driven session, and attach-mode is the honest answer.

Architecture caveat. Every tier below was measured on x86-64 Linux. Patchright has a known open arm64 / Apple-Silicon detection gap, so these results should not be assumed to carry to an ARM host. If you run there, measure before you rely on it.

Tier

How

Clears

Doesn't clear

Standard (default)

headless cold launch, real channel=chrome, de-Headless'd UA

Cloudflare IUAM / managed challenge, bot.sannysoft 31/31, JS-runtime fingerprinting

aggressive Turnstile, DataDome/Kasada, anything behind a login

Hardened

retry --headed; vb humanize on; --backend nodriver (pip install vibatchium[nodriver], AGPL) for the hardest Cloudflare gates

aggressive Cloudflare/Turnstile, GPU/screen tells that headless leaves

behavioral biometrics, DataDome/Kasada sensor-fusion

Attach

vb attach to a Chrome you launched and logged into

DataDome / Kasada / HUMAN behavioral walls, and any authenticated session — your real fingerprint + cookies

nothing here is automated cold; it needs the human login first

Measured scores

vb evals run --update-readme writes measured numbers into the block below, so what we publish is generated rather than asserted. It is empty until someone runs it — an empty block is honest; a number with no run behind it is not.

Run on x86-64 Linux, 25 Aug 2026, Chrome 150, --gpu (real render node). Pass --gpu yourself: headless Chrome falls back to SwiftShader when the GPU path doesn't take, and software GL is itself a detection signal, so numbers measured without it are a floor rather than what a GPU-backed deployment gets.

Target

Backend

Humanize

GPU

Score

Status

Time

sannysoft

patchright

off

real

100

OK

17.78s

creepjs

patchright

off

real

44

OK

7.88s

brotector

patchright

off

real

10

OK

7.13s

sannysoft

nodriver

off

real

100

OK

19.85s

creepjs

nodriver

off

real

44

OK

9.72s

brotector

nodriver

off

real

10

OK

7.73s

Read these honestly — two of the three are bad.

  • sannysoft 100 is the floor everyone in this category clears; it is not a differentiator.

  • creepjs 44 is mediocre. CreepJS is an adversarial lie-detector: it cross-checks main-thread against worker-thread claims and grades confidence, so a middling score means our environment is coherent but not indistinguishable.

  • brotector 10 is poor, and we know exactly why. The signal firing is UA_Override / HighEntropyValues.empty, and our own de-Headless fix causes it. Measured on Chrome 150, headless, same profile, with and without the --user-agent flag we set to strip HeadlessChrome:

    architecture

    bitness

    uaFullVersion

    UA string

    without the flag

    x86

    64

    150.0.7871.114

    says HeadlessChrome

    with the flag

    empty

    empty

    empty

    says Chrome

    Passing an explicit UA makes Chrome stop deriving high-entropy client hints, so we trade a UA-string tell for a UA-CH-emptiness tell. It is not fixed: the obvious repair (Emulation.setUserAgentOverride with userAgentMetadata) is target-scoped and would reintroduce a main-vs-worker mismatch that is a stronger tell than either leak alone. Publishing this rather than dropping the target is the point — a suite that only reports its wins is marketing.

  • nodriver scores identically to patchright on all three. The escalation tier buys nothing measurable on static scoreboards; its case rests on the automation-protocol axis these targets don't probe. An earlier run had nodriver slightly ahead on creepjs (50 vs 44) — but that run silently denied it the GPU while patchright got a real one, so it was scoring from behind. Once both arms get a real renderer the difference disappears.

What these do and don't cover. These are fingerprint scoreboards — the static axis. Through 2026 the major anti-bot vendors moved to session-lifetime behavioural scoring, which none of these targets measure, and which we have not measured against any commercial vendor. Treat a good score here as evidence about environment coherence only.

For the behavioural axis itself, vb oracle run is a self-hosted probe: it drives a page with humanize off then on and grades trajectory curvature, dwell, keystroke cadence and scroll dynamics against a human-plausible band (vb oracle record captures a real-operator baseline; literature defaults until you do). It measures our model of human rather than a named vendor — but it turns "we humanize" into a measured on/off delta, and it's honest about the one axis synthetic input can't reach: CDP input emits no raw-pointer / coalesced events, which only attach-mode against real hardware closes.

Escalation ladder when a wall trips: headless → --headedhumanize on--backend nodriver → attach-mode after a manual login. Patchright's CDP-layer patches apply in all tiers, including attach (connect_over_cdp).

The fetch verb is an orthogonal fast-path, not a tier: once you're past a wall in the browser, vb fetch reuses that session's cookies+proxy to hit JSON/API endpoints at TLS-fingerprint-correct speed — but it runs no JS, so it can't clear a JS challenge itself.

Search — find the URL, not just read it

Reading a walled page is only half a research loop; the other half is discovery, and search engines are anti-bot walled like everything else. vb search runs the SERP over the same curl_cffi lane — no browser, no session, no API key, and no per-session call budget to run out of mid-run.

vb search "playwright stealth detection" -n 5
vb search "cdp leak" --site github.com -n 20
vb search "postmortem" --urls | xargs -I{} vb fetch --no-cookies {}

Engines are tried as a ladder (ddg → ddg-lite → bing) until one answers, because reachability moves: the endpoint serving results now may rate-limit (HTTP 202) on the next call. --json returns an attempts array naming every engine that declined and why, and a reason separating all engines are walled from the web has nothing — different problems, different fixes, and the CLI exits non-zero only for the first.

It never reuses session cookies (a SERP needs no login, and attaching one deanonymises the request), which is why it gets its own search cap instead of riding on fetch. No date filter is exposed on purpose: DuckDuckGo's mislabels article dates badly enough to corrupt a timeline. Engines rate-limit per IP — see proxies, below.

Proxies — per-request egress on both stealth lanes

Egress is the axis most people get wrong, so it gets stated precisely rather than implied. Both curl_cffi lanes take --proxy scheme://[user:pass@]host:port:

vb fetch --no-cookies https://api.example/v1 --proxy http://user:pass@gw:12323
vb search "site reliability postmortem" -n 20 --proxy http://user:pass@gw:12323
vb --session work proxy set http://user:pass@gw:12323    # or per-session, for the browser

Measured, not asserted — same box, same command, only --proxy differing:

egress IP

direct

115.70.50.70

--proxy (authenticated gateway)

212.69.0.85

Four things worth knowing:

  • Unset means direct, and that is enforced. The daemon hands libcurl an explicit empty proxy, which is the only value that stops it reading HTTP(S)_PROXY / ALL_PROXY out of the environment it was spawned with. A long-lived daemon inherits whatever shell first started it, so without this a stray HTTPS_PROXY would silently reroute every request while the response claimed direct egress. (It did, until 0.19.0 — see the changelog.)

  • It matters most for search. Engines rate-limit per IP, so a wide research fan-out from one address is the fastest way to push every query onto the last rung of the engine ladder. The response reports proxied: true|false so you can tell which IP a thin result set came from.

  • The proxy address is SSRF-guarded like the target URL, with --allow-internal to opt in to a proxy on your own LAN. An unguarded proxy reaches internal services and returns their response bodies, not just connection errors.

  • A bad proxy is an error, never a fallback. Silently egressing from the host IP when you asked for a specific one is worse than failing, because the whole point of asking was that the host IP must not be used. Proxy URLs are redacted from the verb log; responses carry the boolean, never the URL.

With a browser session, vb proxy set also wires the WebRTC leak guard — a tunnelled HTTP request still leaks the real IP via STUN without it.

Attach mode — the practical Cloudflare workaround

For DataDome / Kasada / hardened auth that walls cold-launch automation:

google-chrome --remote-debugging-port=9222 \
              --disable-blink-features=AutomationControlled \
              --user-data-dir=/tmp/cdp-profile &
# log into the walled site by hand
vb attach http://localhost:9222
vb go https://target.example.com        # now reads as your real browser

Patchright's CDP-layer stealth still applies over connect_over_cdp — attach mode gets the same protocol-level patches as cold launch, plus your real-browser fingerprint and any cookies from the manual login.

Launch flags are yours on this tier. On cold launch the backend supplies --disable-blink-features=AutomationControlled for you. Attach connects to a Chrome that is already running, so nothing vibatchium does can add a launch flag after the fact — if you started Chrome without it, that tell is present for the whole session. Include it in the command above.

--remote-debugging-port is an open door. It grants full browser control to any process on the machine, and a page you visit can probe localhost to discover it. Use it on a machine you trust, and close Chrome when you're done.

Security model

vibatchium is built to drive real logins from an untrusted agent loop, so the threat model is "a credential must never reach the model, a screenshot, or a log":

  • Encrypted vault. Passwords and TOTP secrets live in an XSalsa20-Poly1305 vault keyed from the OS keyring or VIBATCHIUM_SECRETS_KEY. A resolved secret never appears in logs, HAR captures, the observe cache, or any agent-visible response field (grep-tested in CI).

  • Secrets are never rendered in the clear. fill --use-secret masks the field in the page (-webkit-text-security), applied before the value is written, so every path that turns the viewport into bytes — the screenshot verb, the 5 fps live-view stream, and VLM vision_* calls that ship the frame to a model — captures dots, not the value. The mask fails closed (no write if it can't be confirmed), covers password fields so a show-password toggle can't unmask, and the accessibility snapshot returned by map / diff_map strips masked values so the secret can't leak into the model's context as text either.

  • Live-view is authenticated. The WebSocket requires a per-server token and rejects foreign-Origin connections (the CSWSH class), and driving the page is a separate token from watch-only — a read-only link can be shared without handing over the keyboard. Binds 127.0.0.1 by default (--insecure-public to override).

  • Scraped content is marked untrusted. MCP verbs that return page-derived text carry openWorldHint, so a host can taint the output against prompt injection instead of treating a scraped page as instructions; pure probes are readOnlyHint and mutating verbs (stop, secret_delete, storage_restore) are destructiveHint.

  • REST shim. Without --caps, the bearer token grants every verb including eval, secret_*, and file-writing verbs — local-code-equivalent, so always pass --caps=... in hosted mode. All vibatchium-written files are 0600; directories 0700.

Honest limits

  • 5+ concurrent sessions = 1-2GB RAM. Each persistent-context Chrome is ~200-400MB. Bump cap with VIBATCHIUM_MAX_SESSIONS=8.

  • Vision spend cap is process-wide. N fan-out agents share one daily/lifetime budget.

  • Init scripts don't work on patchright backend. chrome.runtime stays undefined — accepted trade for stealth wins.

  • Login walls (X, LinkedIn) require attach mode. Cold-launch fan-out can't defeat sites requiring authenticated sessions.

  • Synthetic input has a CDP coordinate signature. Every click/type/hover/scroll rides Playwright over CDP Input.dispatchMouseEvent/dispatchKeyEvent (pageX==screenX, no CoalescedEvents). Patchright patches the JS-context leaks, not the Input domain, and humanize on improves trajectory/timing realism but does not change the per-event signature. Behavioral walls that fingerprint it (DataDome/Kasada/HUMAN) want attach-mode against a real headful Chrome you drive — OS-level synthetic input (CDP-Patches) is headful + active-tab only and doesn't fit a headless, N-parallel daemon.

  • fetch is a static-fingerprint lane, not a browser. The curl_cffi fetch verb matches Chrome's JA3/HTTP2 but runs no JavaScript — it clears TLS-fingerprint gates, not DataDome/Kasada/Turnstile JS challenges. Fall back to go for those.

  • Single daemon = single point of failure. No HA built in.

  • Behavioural detection now targets the humanizer directly. Cloudflare's 2026 bot-detection work names mathematically ideal Bézier cursor paths and superhuman click precision as tells. humanize improves on nothing-at-all, but it is a pointer-trajectory model, not a physiological one — and it is off by default, which on a behaviourally-scored site is the louder of the two states.

  • One burned profile can taint every account that shares it. Vendors now link device telemetry across sessions and accounts. Use one profile per account, never share a profile between identities, and don't reuse a profile that has already been challenged.

  • The fetch and search lanes are outside prompt-injection scanning. The scanner covers page-content verbs (text, html, extract, map, …). SERP titles and fetched bodies are third-party text going straight into an agent's context and are not scanned today. Treat them as untrusted input.

Authorized use

vibatchium is built to drive sessions you own, with your credentials, on your machine — your accounts, your employer's, or a client's with their written permission. It is a tool for automating access you already have.

That boundary is not a formality, though the law around it moved in 2026. A US district court had granted a preliminary injunction against an AI agent that accessed password-protected pages through the user's own logged-in account, holding that the user's permission is not the platform's authorization. On 4 August 2026 the Ninth Circuit vacated that injunction and remanded (Amazon.com Services, LLC v. Perplexity AI, Inc., No. 26-1444, published), concluding that the operator had not "accessed" the plaintiff's computers under the CFAA at all — "it was the user who accessed [them], with the help of [the] AI agent." The California CDAFA claim failed for the same reason.

Read that narrowly. It decides who accessed a computer, not whether evading a technical block is access "without authorization"; the panel never reached circumvention. A vacated preliminary injunction on remand is not a merits ruling, and it leaves contract, terms-of-service, trespass and copyright theories entirely untouched. What it does support is the shape of the tool: the browser runs on your machine, under your login, and the reasoning leaned on exactly that — no operator computer ever touched the other side's servers.

Scraping a site's public pages, evading a wall you have no account behind, or automating an account whose terms forbid it remain decisions you are making, and the consequences are yours.

Check the terms of the site you are automating. If you are acting for someone else, get it in writing.

License

Apache-2.0 core. Every default-install extra is permissive too — the fetch lane's curl_cffi is MIT. The only copyleft option is the opt-in nodriver backend (AGPL-3.0) — consult licensing before integrating it commercially. Nothing GPL/AGPL ships in the base install or [all].

Available Tools

86 tools
actD

Observe + execute the resulting plan in one shot.

ParametersJSON Schema
NameRequiredDescriptionDefault
llmNoUse Claude.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
intentYesNatural-language intent.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

D1.7/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only hints at performing actions ('execute') but does not state side effects, permissions, reversibility, or what happens to the session. This is a significant gap for a tool that likely mutates state.

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 (one sentence), but this is under-specification rather than effective conciseness. There is no front-loading of critical information because none is provided. It is not appropriately sized for a tool with four parameters and a complex behavior.

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 that combines observation and execution, with no output schema and no annotations, the description is grossly incomplete. It does not explain how the plan is derived, what the output looks like, or how it interacts with sessions and leases. An agent cannot call this correctly based on the description alone.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning to the parameters (intent, llm, lease, session); it does not explain their roles or relationships beyond what the schema already documents.

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 'Observe + execute the resulting plan in one shot' is abstract and does not specify a concrete resource or action. It implies a meta-operation combining observation and execution, but it is unclear what 'observe' and 'execute' refer to, and it does not differentiate from siblings like observe, click, or fill. The purpose is too vague to guide an agent.

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?

There is no guidance on when to use this tool instead of alternatives. It does not mention conditions, prerequisites, or exclusions, leaving the agent without any basis to choose between 'act' and the many other tools for observation or action.

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

attachA

Attach to an existing Chrome via CDP (use after manual login on a Cloudflare-walled site).

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
cdp_urlNoe.g. http://localhost:9222
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full responsibility. It only states the action and use case, but does not disclose behavioral traits such as whether it modifies the session, requires specific permissions, or has side effects. The description is terse and leaves the behavioral contract largely opaque.

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 purpose. It is efficient and avoids redundancy, though it might be slightly too brief to fully inform the agent. Still, it demonstrates appropriate 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?

The description provides the essential use case but leaves out details like prerequisites for CDP connectivity (e.g., Chrome must be running with remote debugging) and what to do after attaching. Given the moderate complexity and absence of output schema, it is minimally adequate but not thorough.

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

Parameters3/5

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

Schema coverage is 100%, so all parameters (lease, cdp_url, session) are already documented with descriptions. The tool description adds no extra meaning about parameters, staying at the baseline of 3. It neither compensates nor repeats, which is acceptable given full schema coverage.

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

Purpose5/5

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

The description states a clear action 'Attach to an existing Chrome via CDP', distinguishing it from siblings like 'start' (which likely launches a new browser). It also provides a specific use case ('after manual login on a Cloudflare-walled site'), making the purpose unambiguous.

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

Usage Guidelines4/5

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

It explicitly says 'use after manual login on a Cloudflare-walled site', giving a clear context where this tool is preferred. It doesn't explicitly mention alternative tools, but the context implies it's for attaching to a pre-existing session rather than starting fresh. Some guidance on when not to use it would improve it.

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

attrB
Read-only

Get an HTML attribute value from an element.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesAttribute name (href, class, etc.).
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
targetYes@eN / @text: / @label: / CSS.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

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=true, so the description carries a low burden. The description consistently indicates a non-destructive read operation, aligning with the annotations. It adds no additional behavioral context (e.g., what happens if the attribute is missing, or whether it returns null), but 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?

The description is a single, focused sentence with minimal word count. It is front-loaded with the core action and resource, and every word contributes to meaning. This is an exemplary level of conciseness for a simple getter tool.

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 straightforward read-only attribute retrieval with a fully documented schema and safety annotations, the description covers the core need. It does not explain the return format, but given that the tool is simple and an output schema is absent, this is acceptable. The missing usage guidance is a minor gap but does not render it incomplete for basic invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters are documented in the input schema. The description itself adds no extra meaning beyond what the schema provides; it just restates the tool's purpose. Per the baseline rule, when schema coverage is high, a score of 3 is appropriate.

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 (Get) and resource (HTML attribute value from an element), which is specific. However, it does not explicitly distinguish itself from sibling tools like text, value, or html, which also retrieve element properties. The name 'attr' adds some clarity but the description alone doesn't differentiate from similar retrieval 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 on when to use this tool versus alternatives like 'text' or 'value'. The description only states what it does, not when it is the right choice. There is no mention of exclusions or alternative tools, leaving the agent to infer usage from the name and context.

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

backC

Browser back.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Browser back.' only states the action without describing any side effects (e.g., history stack behavior, session impact, or state changes). It does not go beyond the bare action, leaving behavioral expectations underspecified.

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 minimal words, fitting the simple action. There is no wasted text. However, it lacks any structural elements like front-loading key constraints, though for such a short description that is not a significant drawback.

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 2 optional parameters with full schema coverage, but the description provides no context about navigation history behavior, session implications, or expected outcomes. There is no output schema, so the agent is left without understanding return values or side effects. For a simple action, this might barely suffice, but it leaves gaps for an agent needing to make informed calls.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already fully documents both parameters (lease and session). The description adds nothing about parameters or their semantics. With full schema coverage, the baseline of 3 is appropriate; no extra meaning is provided.

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 'Browser back.' clearly indicates a navigation action (going back in browser history) with a specific verb and resource. It distinguishes implicitly from siblings like 'forward' and 'reload' via its verb, but does not explicitly name them. The purpose is clear, but slightly terse.

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?

There is no guidance on when to use this tool versus alternatives. It does not mention conditions for use, exclusions, or contexts where other navigation tools would be more appropriate. The description provides zero usage direction.

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

candidatesA
Read-only

List EVERY element a target resolves to, so an ambiguous locator can be disambiguated instead of failing strict mode. Returns {target, count, candidates:[{index, tag, role, name, text, bbox}], truncated}. Act on one with click/fill/type/hover passing index=N.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
limitNoCap how many matches to describe.
targetYes@eN / @text: / @label: / CSS whose matches to enumerate.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already establish `readOnlyHint: true` and `openWorldHint: true`, so the description need not repeat that. It adds valuable behavior details: the return structure includes a `truncated` flag, indicating results may be limited, and it clarifies that the tool returns a comprehensive list. 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 sentences with zero fluff. The first sentence front-loads the purpose and return shape; the second explains how to act on results. Every word earns its place, making it easy to parse for an agent.

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 moderate complexity (4 params, no nested objects, no output schema), the description thoroughly covers the return structure (`target`, `count`, `candidates` with fields, `truncated`) and how to consume it. It also mentions the `lease` token context. Nothing essential is missing 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?

Schema coverage is 100% (all params have descriptions), but the description adds significant semantic value beyond the schema: it explains the `target` syntax variants (`@eN`, `@text:`, `@label:`, CSS) and gives practical guidance for the `session` parameter on shared daemons (use a unique name). This goes beyond what the schema descriptions provide.

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 ('List'), a concrete resource ('every element a target resolves to'), and the intended purpose ('disambiguate an ambiguous locator instead of failing strict mode'). This clearly differentiates it from siblings like 'find' or 'count' by focusing on enumeration for disambiguation.

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?

It explicitly describes when to use the tool: when a locator is ambiguous and would otherwise fail strict mode. It also instructs how to act on results with `index=N`, implying the follow‑up workflow. It doesn't mention alternatives or when not to use it, but the context is clear enough.

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

checkC

Check a checkbox / radio.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
targetYes@eN or selector.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

C2.9/5.0
Behavior2/5

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

Annotations are absent, so the description carries the full burden of behavioral disclosure. It only states the action without describing side effects, state changes, prerequisites, or failure cases. For example, it does not specify whether the target must already be visible or enabled, what happens if the target is not a checkbox/radio, or any permission or session dependencies. The minimal text does not meaningfully reveal behavior beyond the basic intent.

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, taut-but-concise sentence with no filler or repetition. It gets straight to the point and is appropriately sized for the simple action the tool performs. It does not waste words, though a slightly longer version could add clarity without becoming verbose.

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

Completeness2/5

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

Given the simple tool (no output schema, no annotations, 100% schema coverage), the description is thin on operational details. The agent cannot tell whether the tool can handle already-checked controls, what 'checking' does to a radio that is already checked, or how it differs from a generic click beyond the label. The absence of usage guidance and behavioral nuances makes it incomplete for correct invocation without assumptions.

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

Parameters3/5

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

The input schema has 100% coverage with each parameter well described ('target' as '@eN or selector', 'session' guidance, and 'lease' context). The description adds no parameter-specific meaning (it only mentions the target type globally). According to the rules, with high schema coverage, the baseline is 3, which is appropriate.

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 'Check a checkbox / radio' clearly states the specific action (check) and the resource types (checkbox/radio). It distinguishes itself from the sibling 'uncheck' by implying a positive action, and from generic actions like 'click' by naming the element types. It does not explicitly contrast with alternatives, but the verb-resource pairing is specific enough for an agent to understand the tool's 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?

The description provides no guidance on when to use this tool versus alternatives. It does not mention that it is for checkbox/radio inputs only, nor does it advise avoiding it for other elements, nor does it reference the sibling tools (e.g., 'uncheck', 'click', 'toggle' not present). The agent is left to infer the preconditions and scope from the schema and name alone.

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

cleanA
Destructive

Housekeeping — reclaim disk from stale profile dirs, superseded Chrome cache dirs, leftover Chrome lock files, regenerable caches, and the daemon log. DRY-RUN by default; pass apply=true to actually delete. Never touches the default/active/running sessions. Returns a per-category {count, bytes} report.

ParametersJSON Schema
NameRequiredDescriptionDefault
keepNoSession names to never prune.
logsNoInclude daemon-log truncation (default true).
applyNoActually delete (default false = dry-run report).
cacheNoInclude regenerable caches (default true).
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
locksNoInclude leftover Chrome lock files (default true).
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.
profilesNoInclude stale profile dirs (default true).
older_thanNoPrune profiles idle ≥ this many seconds (default 14d).
cache_mirrorNoInclude superseded Chrome cache dirs — caches whose profile is gone, or which the profile no longer uses (default true).
log_keep_bytesNoTruncate daemon.log to its last N bytes.

TDQS

A4.3/5.0
Behavior5/5

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

Annotations only mark destructiveHint=true, so the description carries the safety burden. It adds critical context: dry-run by default, apply=true required to actually delete, never touches default/active/running sessions, and returns a per-category {count, bytes} report. This is strong behavioral disclosure 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.

Conciseness5/5

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

Two sentences with no filler: the first front-loads purpose and categories, the second covers safety and return format. Every clause earns its place.

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?

Despite having 11 parameters and no output schema, the description covers the essential invocation context: what gets cleaned, default dry-run behavior, safety guarantees, and the return report shape. Parameter details are fully covered by the schema, so nothing critical is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline of 3 applies. The description reinforces the apply semantics and category scope but does not add per-parameter meaning beyond what the schema already provides.

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

Purpose5/5

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

The description states a specific housekeeping purpose with concrete resource categories: stale profile dirs, superseded Chrome cache dirs, leftover Chrome lock files, regenerable caches, and the daemon log. This clearly distinguishes it from sibling session/profile deletion tools.

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

Usage Guidelines3/5

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

The description implies usage via 'Housekeeping' and explains the dry-run default, but it does not explicitly say when to prefer this tool over alternatives like profile_delete or vision_clear_cache. It gives no explicit when-not-to-use guidance beyond never touching active sessions.

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

clickC

Click an @eN ref or CSS selector.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexNoAct on the Nth match (0-based, from `candidates`) when the target is ambiguous.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
targetYes@eN ref or selector.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.
timeout_msNoTimeout in ms.
auto_dismiss_bannersNoOn 'intercepted' failure, try dismiss_banners once and retry.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure, yet it discloses nothing beyond the literal click action. Side effects (e.g., waiting for navigation, 'intercepted' failures, ambiguity resolution via the index parameter) are left entirely to the schema, which is a significant gap for an interaction tool.

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?

A single efficient sentence with zero waste, front-loading the verb and target form. It is appropriately terse, though it perhaps errs on the side of being too spare.

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 is an interactive tool with 6 parameters, no annotations, and no output schema, yet the description provides none of the behavioral context an agent needs: what happens after a click, how 'intercepted' failures and retries work, or how target ambiguity is resolved via index. Incomplete 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.

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description merely restates what the target parameter already says ('@eN ref or selector'), adding no new 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 states a specific verb ('Click') and resource (an @eN ref or CSS selector), which clearly identifies the operation. It does not differentiate from sibling tools like dblclick, check, or uncheck, but the name plus target-form hints make 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 in the description on when to use this tool versus alternatives like dblclick, check, or hover. The session parameter hints at multi-step sequencing ('go→click→fill'), but the description body itself provides no explicit when-to-use or when-not-to-use context.

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

contentC

Replace the page HTML wholesale via page.set_content.

ParametersJSON Schema
NameRequiredDescriptionDefault
htmlYesNew HTML body.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must carry the burden of behavioral disclosure. It states that the page HTML is replaced 'wholesale', which implies a destructive, full-page overwrite, but it does not mention side effects such as clearing JavaScript state, form data, or event listeners. It also omits any mention of potential error conditions or the effect on the current session. The description is minimal and leaves significant behavioral aspects 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 a single, concise sentence that front-loads the core action and resource. It contains no filler and is immediately informative. This is an optimal length for a simple tool, earning a top score for conciseness and structure.

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 three parameters (one required) and no output schema, so the description should compensate by explaining usage context. Instead, it provides only a one-line summary. It does not mention the significance of the 'session' parameter for multi-step work on shared daemons, nor does it clarify that the change is immediate and irreversible. The description is incomplete for an agent to understand the full context, especially regarding parameter interplay and side effects.

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 covers all parameters with descriptions, so the baseline is 3. The tool description does not add any extra meaning to the parameters; it does not clarify how 'html' interacts with 'lease' or 'session', nor does it emphasize the importance of unique session names on shared daemons (which the schema already notes). It adds no value beyond the schema, so a score of 3 is appropriate.

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 ('Replace the page HTML wholesale') and the resource (page HTML), and even names the underlying method (page.set_content). This makes it distinct from retrieval tools like 'html' or 'extract' in the sibling list. However, it does not explicitly differentiate from partial-update tools like 'fill' or 'type', relying on the word 'wholesale' to imply that. Still, 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?

The description offers no guidance on when to use this tool versus alternatives. It does not mention that this is for full replacements only, or when to prefer partial updates via 'fill' or 'type'. There is no mention of prerequisites, session handling, or contexts where it should be avoided. The agent is left to infer usage from the verb alone.

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

countB
Read-only

Count matching elements for a selector or @eN ref.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
targetYes@eN or selector.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations declare readOnlyHint: true, which is consistent with the description's 'Count' operation. The description adds little beyond that: it clarifies input forms but does not disclose the return type (e.g., integer) or behavior when no matches are found. Since annotations already cover safety, a baseline 3 is appropriate; the description adds minimal context.

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

Conciseness5/5

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

One sentence, front-loaded with the action, and no redundant words. Every phrase earns its place, and the description is appropriately short for a simple operation.

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 no output schema, the description should at minimum reveal what the return value is (a count of matching elements) and ideally when to prefer it over sibling tools. It only hints at the input. The absence of any usage context or return semantics makes this incomplete for an agent deciding between 'count' and 'find'.

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

Parameters3/5

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

The input schema already provides descriptions for all three parameters (100% coverage), so the tool description does not need to repeat them. The phrase 'for a selector or @eN ref' restates the 'target' parameter, but adds no new semantic detail. Baseline 3 is correct when the schema carries the documentation burden.

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 ('Count') and resource ('matching elements'), and specifies the input types (selector or @eN ref). It does not explicitly differentiate from sibling tools like 'find' or 'candidates', but the action of counting is distinct enough. A clear purpose but with room to 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 alternatives. It doesn't mention that 'find' returns elements rather than a count, or suggest 'count' when only a number is needed. The usage context is left entirely to the agent's inference, which is insufficient given the large set of sibling tools.

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

dblclickB

Double-click an @eN ref or CSS selector.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexNoAct on the Nth match (0-based, from `candidates`).
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
targetYes@eN ref or selector.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.
timeout_msNoTimeout in ms.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, leaving the description the sole behavior source, but it only says 'Double-click,' offering no details about side effects (e.g., moving the mouse, waiting for visibility) or the result. It does not disclose whether the tool focuses the element first, whether it dispatches events, or whether it has side effects like toggling state or triggering both click and dblclick signals.

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 short sentence with no filler or redundant metadata, making it easy to parse. It front-loads the specific action and keeps the whole thing free of cumbersome 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?

Given a sufficiently parameter-rich schema (100%) and no output schema, the description is a straightforward tool description that will let a model invoke it. However, the context is still minimal—there's no reference on how failures are reported, how it handles hidden elements, or why it should be chosen over click, so a small but meaningful completeness gap remains.

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?

Parameter descriptions in the schema provide 100% coverage of the index, lease, session, target, and timeout_ms, so the description's job for parameters is light. It only adds a redundant note that the target can be '@eN ref or CSS selector,' the exact phrasing already in the target property.

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, 'double-click,' and a resource type, '@eN ref or CSS selector,' making the action comprehensible. It doesn't explicitly contrast with tools like 'click' or 'hover' in the sibling list, so it's clear on its own but not as differentiated as a description that names the 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?

The description offers no when-to-use or when-not-to-use guidance, and no reference to related tools such as 'click', 'hover', or 'press'. There is also no mention if it should be used with a specific session or selectors or if it plays a specialized role among the sibling tools.

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

detect_formsA
Read-only

Structured map of every on the page (plus a formless-controls group for SPAs) — against our real authenticated Chrome DOM. Each field carries a ready-to-use locator string (pipe straight into fill/click), plus type, name, label, required, options and checked/filled state. A free-text field's typed value is withheld unless values=true, and even then it's redacted when a type/name/autocomplete heuristic flags it as a password/credential/payment secret (best-effort — don't pass values=true on untrusted pages). Returns {forms, count}.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
targetNoOptional @eN / @text: / CSS root to scope the walk to a subtree.
valuesNoInclude non-sensitive free-text field values (still redacts secrets).
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.
max_charsNoCap each label/value length.
max_formsNoCap number of forms.
max_fieldsNoCap fields per form.
max_optionsNoCap options per <select>.

TDQS

A4.6/5.0
Behavior5/5

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

With only readOnlyHint and openWorldHint in the annotations, the description carries the behavioral burden and does it well. It discloses the SPA-specific formless-controls group, the value-withholding behavior unless values=true, secret redaction heuristics, the best-effort quality, and the security warning about untrusted pages, which goes far beyond the schema and 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 about 90 words across two sentences, front-loads the primary purpose, and each clause earns its place: the core return shape, the SPA extra, the field attributes, the value/redaction caveat, and the expected output shape. There is no fluff 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?

Given there is no output schema, the description compensates by naming the return contract ({forms, count}) and the important per-field attributes. With all 8 parameters well-documented in the schema and 0 required, the only minor gap is a slightly more detailed shape of the form group under a formless-controls entry, but that is a small omission.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds meaningful semantics on top: it explains that a free-text field's typed value is withheld unless values=true, describes the secret-redaction heuristic, and frames the output locators as ready for fill/click. This goes beyond trivial restatement of the schema.

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

Purpose5/5

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

The description names a specific verb and resource: it builds a structured map of every form on the page, including a formless-controls group for SPAs. It clearly distinguishes itself from siblings like extract, extract_fields, or candidates by emphasizing ready-to-use locators for fill/click and by mentioning the real authenticated Chrome DOM.

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 strong usage direction: it presents locators as directly consumable by fill/click, and warns about when not to use values=true. It stops short of explicitly naming alternative tools or saying 'use X instead', so it lacks a formal when-not statement, but the context is largely clear.

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

diff_mapC

Diff current snapshot vs the previous one.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It only says the tool compares snapshots, but it does not disclose whether the operation is read-only, what happens if no previous snapshot exists, or any side effects on the session. The information is minimal and leaves important behavior unknown.

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 directly states the tool's action. It is free of redundant information and skims the clause name of the tool, but it leans toward under-specification because it omits any behavioral or output details. The form is efficient, though length is short of the needed depth.

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 a simple schema, but there is no explanation of what the diff result looks like (no output schema) or the relationship between target session and the snapshots being compared. The lease/session parameters are documented, but their impact on the mapping is unclear. The description does not cover the essential contextual gap, leaving an agent uncertain about return structure and operational assumptions.

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

Parameters3/5

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

Schema coverage is 100%, so the lease and session parameters are well documented in the input schema. The description adds no further meaning, not even clarifying how lease or session relate to the snapshots being diffed. This is a baseline 3, as the schema already handles the parameter descriptions and the description does not detract or add.

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 ('diff') on a defined resource ('current snapshot vs the previous one'). It distinguishes the tool from sibling tools like map and map_compact, which generate snapshots rather than compare them, though the term 'snapshot' is not elaborated.

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, such as verify_map or expect. The description does not specify prerequisites, like the need for an existing snapshot or typical scenarios (e.g., comparing state before and after an action). Usage is only implied by the verb 'diff'.

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

dismiss_bannersB

Heuristically dismiss cookie/consent/newsletter banners.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
preferNoaccept|reject (default reject).
dry_runNoReport candidates without clicking.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.
max_clicksNoMax banners to dismiss.

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It mentions 'heuristically' but does not disclose that the tool likely clicks elements on the page, could make mistakes, or that dry_run is available to preview behavior. The description gives no insight into side effects, reliability, or edge cases, which is expected for an action-oriented heuristic tool.

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

Conciseness5/5

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

The description is a single, focused sentence with no filler. It states the core purpose immediately and does not waste words.

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

Completeness2/5

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

For a tool that performs heuristic interactions with a page, the behavior is under-described. There is no mention of what happens when it works or fails, no side effects, no return value, and no guidance on how reliable the heuristics are. The rich parameter descriptions do not compensate for the lack of behavioral 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?

Schema coverage is 100%, and each parameter already carries a detailed description in the schema. The tool description itself adds no additional parameter context beyond what the schema provides, so the value is purely at baseline level.

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 (dismiss) and the target (cookie/consent/newsletter banners), with the modifier 'heuristically' indicating an automated approach. No sibling tool has a similar purpose, so it is easily distinguished.

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 (to automatically dismiss banners) but does not explicitly state when not to use it or provide alternatives. For example, it doesn't note that it might misfire and that a manual click could be preferred. This is implied usage, not explicit guidance.

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

evalA

Evaluate a JS expression in the page (isolated context per Patchright default — window.X = ... mutations are NOT visible to page JS; use eval_handle to retain references).

ParametersJSON Schema
NameRequiredDescriptionDefault
exprYesJS expression.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.
timeout_msNoGive up after this long — a busy page starves isolated-world eval too.

TDQS

A4/5.0
Behavior4/5

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

The description adds a key behavioral nuance beyond the `openWorldHint` annotation: the JS runs in an isolated world so `window.X = ...` mutations are NOT visible to page JS. This is exactly the practical behavior an agent must know before calling eval. It also mentions that `eval_handle` is the alternative to retain references, which is actionable and not deductible from 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.

Conciseness4/5

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

The description is a single sentence and front-loaded with the action, while still adding the critical isolated-world caveat and forwarding to `eval_handle`. It is a little dense with the semicolon-clause, but every piece earns its place. Nothing is fluffy or redundant.

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

Completeness3/5

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

For a tool with four parameters and a strong schema, the description covers the most important evaluation-context trap. However, it does not state what the caller should expect as a return value or how async expressions are handled, which agents often need to know when using an eval tool; leaves some usage ambiguity.

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

Parameters3/5

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

The input schema has 100% description coverage for all four parameters, so the description does not need to repeat parameter meanings. The description adds no extra intel about `expr`, `lease`, `session`, or `timeout_ms`, so it does not improve on what the schema now gives; the baseline of 3 applies.

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

Purpose5/5

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

The description states a specific verb and resource: it 'evaluate[s] a JS expression in the page.' It further clarifies the scope by noting the isolated context and the boundary on `window.X` mutations, and it differentiates itself from `eval_handle` by telling the caller when to use that sibling instead. An agent can then distinguish `eval` from the many other page-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?

It explicitly provides an alternative: 'use eval_handle to retain references', which tells the agent when `eval` is insufficient. It also implies this tool is for cases where references are NOT retained. However, it does not define broader conditions (e.g., when it is better than `wait_fn` or extracting text) or list exclusions beyond the reference case.

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

expectA

ONE-CALL verification gate. Assert the page reached an expected state — composes element-state / page-text / URL checks plus a native challenge-wall check into a single {passed, failures[]} verdict. Use after an action to confirm it landed (or that you got soft-blocked) instead of stitching wait/text/url/screenshot calls. Every check is optional.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
stateNoExpected element state (default 'visible'): visible|hidden|attached|detached.
targetNoElement to assert — @eN / @text: / @label: / CSS.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.
screenshotNoauto = capture only on failure (evidence); always; never.auto
timeout_msNoPer-wait budget.
allow_walledNoIf false (default), a detected Cloudflare/DataDome challenge wall is a failure.
url_containsNoCurrent URL must contain this substring.
text_containsNoPage text must contain this substring.

TDQS

A4.4/5.0
Behavior4/5

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

The description discloses the composite nature and the challenge-wall check, and it mentions the return verdict shape. With only openWorldHint as an annotation, it adds meaningful behavioral context (e.g., it composes waits and checks, not just reads state). It doesn't go into side effects like timeout waits or screenshots, but those are already captured in the schema params, so this is adequate.

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

Conciseness5/5

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

Three dense sentences with zero fluff. The purpose and usage are front-loaded, and the return format is stated compactly. Every sentence earns its place, and the description is immediately scannable.

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 absence of an output schema, the description adequately explains the return format ({passed, failures[]}) and provides usage context. It covers the main use case (post-action verification) and the soft-blocked case. Minor gaps remain (e.g., no explicit mention of default timeout or screenshot auto behavior), but those are covered by the parameter schema, so the overall picture is complete.

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

Parameters3/5

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

Schema coverage is 100%, and the description does not add substantive meaning beyond what the input schema provides. It mentions that every check is optional, but that is already implied by all parameters being optional in the schema. No additional syntax or interplay details are explained.

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 precise verb ('Assert') with a specific resource ('the page reached an expected state') and lists the composed checks (element-state, page-text, URL, challenge-wall). It clearly distinguishes itself from sibling tools like is_state (single state check) and verify_url (URL only) by framing itself as a composite one-call gate.

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?

Explicitly tells when to use it ('Use after an action to confirm it landed') and what to avoid ('instead of stitching wait/text/url/screenshot calls'). It even handles the soft-blocked case, making the decision boundary crisp for the agent.

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

exploreA

USE THIS WHEN WebFetch/WebSearch/curl GOT BLOCKED — a 403, a Cloudflare/DataDome "Just a moment..." challenge, a login/paywall, or an empty "JavaScript is required" shell: don't report failure, use this — patchright clears most such walls cold. ONE-CALL 'look at this URL', TEXT-FIRST. Does verify_url → auto-start session if needed (headless) → go → extract text. It does NOT screenshot by default: read and navigate with the returned text/selectors, and a screenshot is captured only as a FALLBACK when the page yields no usable text (canvas/image/blank SPA). This is the 80% case of 'just show me what's on this page' — use it instead of separate start/go/text calls unless you need multi-step interaction. Pass screenshot='always' to force a screenshot, 'never' to suppress even the fallback; when one is captured it comes back as a viewable image, not base64 text. Without an explicit session it runs on an OFF-BUDGET transient ephemeral session (0.7.0) — it never competes with persistent sessions for a slot and is auto-deleted afterward, so it won't touch your 'default' session.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesTarget URL — required.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
intentNoOptional natural-language description (reserved for future).
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.
full_pageNoFull-page vs viewport screenshot, when one is captured.
keep_openNoLeave session open for follow-up calls.
screenshotNoScreenshot policy. 'auto' (default): capture ONLY if the page returns no usable text (or is challenge/login walled). 'always' (or true): force a screenshot. 'never' (or false): suppress even the fallback. When captured it is returned as a viewable image block, not base64 text.auto
skip_verifyNoSkip DNS pre-check (trusted URLs only).
min_text_charsNoAuto-mode fallback threshold: capture a screenshot if the page's extracted text is shorter than this.

TDQS

A4.9/5.0
Behavior5/5

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

Annotations are minimal (openWorldHint only), so the description carries full burden. It discloses the internal pipeline (verify_url → auto-start → go → extract text), absence of default screenshot, fallback condition, ephemeral session behavior with auto-deletion, and that screenshots return as viewable images not base64. This goes well beyond the flag hints.

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 lengthy (~200 words) and front-loaded with the critical usage trigger. Some redundancy with schema exists (e.g., screenshot policy also in parameter description), but the extra context on session behavior and fallback logic justifies the length. The structure is coherent, moving from when-to-use to workflow to parameter nuances.

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 tool's complexity (9 params, one required) and rich behavior, the description covers all essential aspects: triggers, workflow, screenshot policy, session handling, and output format (viewable image). No output schema exists, so the statement about return format is necessary and provided. Nothing critical for an agent 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.

Parameters5/5

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

While schema coverage is 100%, the description adds substantial meaning: it explains the interplay of screenshot and min_text_chars (auto fallback threshold), clarifies ephemeral vs persistent session semantics, and notes that keeping the session open won't affect 'default'. These are not evident from schema alone.

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

Purpose5/5

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

The description opens with a precise trigger condition ('USE THIS WHEN WebFetch/WebSearch/curl GOT BLOCKED') and names the resource (URL) with a clear verb ('look at this URL'). It explicitly contrasts with sibling tools like WebFetch/WebSearch/curl and separate start/go/text calls, making the distinction unmistakable.

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?

It gives explicit when-to-use ('when WebFetch/WebSearch/curl got blocked') and when-not-to-use ('unless you need multi-step interaction' to use separate calls), and recommends it as the 80% case for just showing a page. It also details parameter-driven usage (screenshot='always', 'never', session naming) with practical guidance.

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

extractA
Read-only

Clean, LLM-ready Markdown of the page (or a target subtree) — boilerplate (nav/footer/aside/scripts) stripped, headings/links/lists/code preserved. A drop-in for Crawl4AI/Firecrawl-style scraping on the AUTHENTICATED pages those stateless tools can't reach. Returns markdown TEXT (never a base64 screenshot), capped by max_chars. mode: markdown (default) | links (deduped {url,text}, absolute post-hydration URLs) | assets ({url,type,rel?}, data: dropped) | main (main-content only via density scorer).

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoOutput mode (default markdown).
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
targetNoOptional @eN / @text: / @label: / CSS to scope extraction to a subtree (honored by markdown/links/assets; mode=main is whole-page and rejects it).
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.
max_charsNoCap the returned markdown length (truncates beyond it).
max_linksNomode=links: cap the number of links.
max_assetsNomode=assets: cap the number of assets.

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the readOnlyHint and openWorldHint annotations, the description discloses substantial behavioral detail: boilerplate stripping preserves headings/links/lists/code, output is always markdown text (never a base64 screenshot), results are capped by max_chars, links are deduped and absolute, data: URIs are dropped, and mode=main ignores target subtrees and rejects them. This gives the agent precise expectations for every mode 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?

The description is compact and efficient, using four sentences to cover purpose, use case, return guarantees, and an exhaustive inline mode reference. It front-loads the core value proposition and immediately supplies the key differentiator (authenticated scraping), with no filler or repetition.

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 seven parameters, no output schema, and no openWorld or readOnly annotations (beyond the ones present), the description fully explains return behavior, mode variations, target scoping, and constraints. It covers all the details an agent needs to choose mode, set limits, and correctly invoke the tool in multi-step workflows, leaving no critical gap.

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

Parameters5/5

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

Although schema coverage is 100%, the description adds meaningful semantics to nearly every parameter: it explains what each mode returns, how target scoping is honored or rejected in main mode, how session names should be made unique to avoid collisions, and how lease tokens are threaded per-call and never read from server env. This is far beyond the schema's one-line 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?

Description states a specific action: extracting clean, LLM-ready Markdown from a page or subtree, with boilerplate stripped. It clearly differentiates from siblings like text, html, content, and extract_fields by emphasizing markdown output, subtree targeting, and its role as a drop-in for authenticated-page scraping. The four modes (markdown, links, assets, main) further define exactly what the tool produces.

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 strong usage signal: use it for automated scraping of authenticated pages that stateless tools like Crawl4AI/Firecrawl cannot reach, and to get markdown rather than screenshots. It stops short of explicitly contrasting with internal siblings (e.g., telling when to use text or html instead), so it provides clear context but not exhaustive alternatives.

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

extract_fieldsA
Read-only

Declarative STRUCTURED extract: pass a {name: selector} map and get back ONE JSON object of values in a single call — against our real authenticated Chrome DOM (a login-walled / SPA page stateless scrapers can't reach). Grammar: name[]=array, sel@attr=attribute, sel@html=innerHTML, bare=text. Optional target scopes selectors to a subtree. Returns {fields, matched, misses, errors} — misses/errors let you fix a selector without re-reading the page. Reads text/attr/innerHTML only, never input values.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
fieldsYesMap of field name → CSS selector (with optional @attr / @html / name[] array suffix).
targetNoOptional @eN / @text: / @label: / CSS root to scope all selectors to a subtree.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.
node_capNoCap nodes read per array field.
max_charsNoCap each field value's length.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already carry readOnlyHint=true and openWorldHint=true, so the safety profile is set. The description adds value by specifying exactly what is read ('Reads text/attr/innerHTML only, never input values') and disclosing the return shape {fields, matched, misses, errors} with the misses/errors iterative-fix mechanism. No contradiction with the annotations — the read-only claim aligns with readOnlyHint=true.

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 with the core purpose. Each sentence earns its place: purpose, grammar, target scoping, return shape, and read-only disclosure. It's dense but not bloated; could trim minor redundancy but overall efficient.

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

Completeness4/5

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

No output schema exists, so the description correctly takes on the burden of explaining the return shape {fields, matched, misses, errors}, which it does. It covers the field grammar, target scoping, and read-only scope. The remaining parameters (lease, session, node_cap, max_chars) are fully covered by the schema's 100% description coverage. Fairly complete for a complex 6-param tool.

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

Parameters4/5

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

Schema coverage is 100%, so the schema documents all six parameters. The description goes beyond the schema by explaining the selector grammar — name[]=array, sel@attr=attribute, sel@html=innerHTML, bare=text — giving semantic meaning to the suffixes the schema only lists. This is genuine additive value for the key fields parameter.

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: 'Declarative STRUCTURED extract' that takes a {name: selector} map and returns 'ONE JSON object of values in a single call'. It distinguishes itself from siblings like extract, text, html, and attr by framing this as a batch structured extraction against the authenticated Chrome DOM that stateless scrapers can't reach.

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 context on when to use: against the real authenticated Chrome DOM that stateless scrapers can't reach, and for pulling multiple fields in one call. It notes misses/errors let you fix a selector without re-reading the page, and that it never reads input values (an implicit exclusion for value reads). However, it doesn't explicitly name sibling alternatives or give hard 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.

fillB

Clear an input and fill it with text. With use_secret, value comes from the encrypted vault.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoText to fill (or use use_secret).
indexNoFill the Nth match (0-based, from `candidates`) when the target is ambiguous.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
targetYes@eN ref or selector.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.
timeout_msNoTimeout in ms.
use_secretNoVault reference 'site:key' (or 'site:totp').

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It clearly states the destructive side-effect ('Clear an input and fill it with text') and explains that `use_secret` pulls from the encrypted vault. However, it does not disclose requirements like target editability, failure behavior, or whether it replaces existing text beyond clearing, leaving room for more transparency.

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

Conciseness5/5

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

Two sentences, zero fluff. Core behavior is front-loaded, and the `use_secret` variant is mentioned immediately. 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?

Given the tool has 7 parameters and no annotations or output schema, the description is thin. The schema covers parameter semantics, but the agent gets no guidance on its distinct role among the many sibling tools (e.g., `type`, `press`). The description is sufficient for the case a minimal call but lacks context needed to route the agent to the correct tool for the job.

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

Parameters3/5

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

Schema coverage is 100%, so all parameters are documented in the schema. The description adds minimal value beyond the schema, merely restating that `use_secret` supplies the value. Baseline 3 is appropriate because the schema handles the heavy lifting and the description adds the clearing implication.

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 specific verb and resource: 'Clear an input and fill it with text.' This clearly distinguishes it from tools like type or select by emphasizing the clearing step. However, it does not explicitly name a sibling or explain when fill is preferred over type, so it earns a 4 rather than 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 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 fill versus alternatives like type, select, or check. The mention of `use_secret` is parameter-specific, not usage direction. There is no mention of prerequisites, when not to use it, or which sibling would be better for a given scenario.

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

findC
Read-only

Locate elements by semantic strategy (text/label/placeholder/role/testid/xpath/alt/title/css).

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYestext|label|placeholder|role|testid|xpath|alt|title|css
nameNoAccessible name (role kind only).
exactNoExact match.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
queryYesSearch query.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already establish readOnlyHint=true and openWorldHint=true, so the safety profile is covered. However, the description adds no behavioral disclosure beyond those annotations—there is no mention of return values, scoping (e.g., shared vs. default session behavior), pagination, or what happens when nothing matches. It adds only a list of selector kinds, which is more purpose than 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 that front-loads the tool's purpose and the supported selector kinds. Every word contributes value; there is no filler, and it remains scannable and information-dense without being overly terse.

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

Completeness2/5

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

The tool has no output schema, and the description fails to explain what a successful 'locate' operation returns (an element reference? a locator token?), which is needed for downstream chaining with click/fill/expect. While the schema covers parameters and annotations cover safety, the description is not complete enough for an agent to confidently use the result of this tool; combined with the absent usage guidance, this is a notable gap.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the parameters thoroughly, including the enum-like values for kind and the nuanced behavior of lease and session. The description's mention of semantic strategies (text/label/placeholder/role/...) adds a lightweight overview but no new meaning beyond what the schema already provides, so the baseline 3 is appropriate.

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 ('locate') on a clear resource ('elements') and enumerates the supported semantic strategies, making the tool's function recognizable at a glance. It does not explicitly contrast itself with sibling tools like vision_find or candidates, so it stops short of full differentiation, but the description is unambiguous about WHAT it 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?

The description gives no guidance on when to use find versus alternatives such as vision_find, observe, or candidates, nor does it state any exclusions or prerequisites. It merely restates the tool's own mechanism (semantic strategy) without providing context on when this tool is the right choice among the many sibling locator and inspection tools.

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

focusA

Focus an element (without clicking).

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
targetYes@eN ref or selector.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.
timeout_msNoTimeout in ms.

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations present, the description must carry all behavioral disclosure. It states only the core action and the absence of clicking, but does not mention side effects such as potential scroll-into-view, focus events firing, or behavior when the element is not visible. This is a minimal disclosure; agents are left to infer behavioral consequences.

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. The verb and scope are front-loaded, and the clarifying parenthetical adds key information without verbosity.

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

Completeness3/5

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

For a simple low-level interaction tool, the description conveys the primary operation. However, it omits any context about typical usage patterns, side effects, or what the tool returns (if anything). Given the lack of annotations and output schema, slightly more detail could be expected, but the core call is already actionable.

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

Parameters3/5

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

Schema description coverage is 100%, and the description itself adds no extra parameter meaning. It does not elaborate on target formats, session handling, or timeout semantics, which are already covered by the schema. Baseline 3 is appropriate when the schema does the explanatory work.

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

Purpose5/5

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

Description clearly states the action (focus) on a specific resource (an element), and the parenthetical 'without clicking' distinguishes it from sibling click and interaction tools. Even without naming a sibling, the exclusion of clicking makes the scope 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 phrase '(without clicking)' implies a usage scenario: use this when you need to focus without triggering a click. However, it does not explicitly say when to prefer this over hover, click, or other alternatives, nor does it provide any context about prerequisites or typical use cases.

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

forwardD

Browser forward.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

D1.7/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states 'Browser forward.' without explaining what action occurs (e.g., history navigation), whether it affects the current session, or any side effects. The agent is left without information on what to expect.

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, but this is under-specification rather than effective conciseness. It lacks essential details about the tool's purpose, making the single sentence unhelpful. It does not front-load any key information because there is no informative content.

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 that this is a browser navigation tool with no output schema and no annotations, the description is severely incomplete. An agent cannot infer when to use it, what it does beyond a vague 'forward', or what the expected result is. The tool likely requires explanation of history navigation and session 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?

Schema description coverage is 100%, meaning both 'lease' and 'session' are documented in the input schema. According to calibration guidance, the baseline is 3 when schema coverage is high. The description adds no additional meaning beyond what the schema already provides, but it does not contradict or confuse parameter usage.

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 'Browser forward.' is essentially a restatement of the tool name with the word 'browser' added. It does not specify what 'forward' means (e.g., navigate to next page in history) nor does it distinguish from siblings like 'back' or 'go'. This is a tautology, providing no additional clarity to the agent.

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?

There is no guidance on when to use this tool versus alternatives such as 'back', 'reload', or 'go'. The description does not mention any context, preconditions, or scenarios where forward is appropriate. No exclusions or alternatives are indicated.

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

frameB

Switch active frame by name or URL substring (omit both to clear).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoURL substring.
nameNoFrame name.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden. It reveals the 'omit both to clear' behavior but does not disclose side effects (e.g., how subsequent operations are affected), what happens if no matching frame is found, or whether this operation requires any session/lease handling. The behavioral disclosure 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.

Conciseness5/5

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

The description is a single, tightly worded sentence with no redundancy. The main action and the edge case of clearing are front-loaded. It earns its place with zero waste.

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 state-switching tool, the description covers the core function but misses details like what happens when both name and url are specified (which takes precedence) or the behavior when no frame matches. With a simple schema and no output schema, a bit more completeness could be expected, but it is adequate for a basic switch 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?

Schema description coverage is 100%, so the baseline is 3. The tool description matches the 'name' and 'url' parameters but adds no additional semantics, such as precedence when both are provided or how they interact. The lease and session parameters are not mentioned in the description, though the schema fully documents them.

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 'Switch', the resource 'active frame', and the method 'by name or URL substring'. It also notes the clearing capability, which distinguishes it from the 'frames' listing tool. The purpose is immediately clear 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 any conditions for use, exclusions, or refer to sibling tools like 'frames' or 'page_switch'. The description simply states the operation without contextual routing.

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

framesA

List all live frames with name + url + depth + active flag.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. The verb 'List' implies a read-only operation, and the output fields are stated, but no additional behavioral context is given (e.g., session dependence, lease handling, or side effects). It is adequate for a simple list tool 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, front-loaded sentence that states the action, resource, and output fields with zero wasted words. It is appropriately sized for the tool's simplicity.

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

Completeness4/5

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

The description covers the return contents (name, url, depth, active flag) despite the lack of an output schema. It does not mention return format or error conditions, but for a straightforward list operation with well-documented optional parameters, it is nearly complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters (lease and session) with useful detail. The description adds no parameter-specific meaning, but the baseline of 3 applies because the schema handles the 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 uses a specific verb and resource ('List all live frames') and enumerates the output fields (name, url, depth, active flag). It clearly distinguishes itself from the sibling 'frame' tool by targeting all live frames rather than a single frame.

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 usage when you need to enumerate frames, but it provides no explicit guidance on when to use this tool versus the 'frame' sibling or other navigation tools. There are no stated 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.

goA

Navigate to a URL in the stealth browser, then pair with extract/text/html/map. Reach for this (or explore) when WebFetch/curl was blocked — a 403, a Cloudflare/DataDome "Just a moment..." challenge, a login/paywall, or a JavaScript-only page that returns no usable HTML — or when the page needs a real browser.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesTarget URL.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.
timeout_msNoTimeout in ms.
wait_untilNoload|domcontentloaded|networkidle|commit

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden. It does communicate the key intended workflow: navigate, then extract via extract/text/html/map. However, it does not say anything about side effects, session persistence, failure modes, or what the tool actually returns after navigation, which leaves clear 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 first sentence is front-loaded with the core verb, resource, and companion tools, while the second lists concrete trigger cases. The second sentence is a bit long, but each item earns its place and the description avoids filler.

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 navigation command, the description covers the main use cases and is sufficiently open-ended for an agent to know when to invoke it. It lacks an explicit statement of return behavior or output semantics, but no output schema exists, and the surrounding sibling-tool context covers the broader workflow.

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 already covers all 5 parameters, and the description adds no parameter-specific details. Baseline 3 is appropriate because the schema is doing the explanatory work; the description's role is broader usage guidance rather than parameter enrichment.

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 navigates to a URL in a stealth browser and that it pairs with extract/text/html/map. It names several triggers and mentions explore as a co-option, but it does not sharply distinguish go from explore or other browsing siblings, so it is not a full 5.

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 description is explicit about when to reach for this tool: when WebFetch/curl is blocked by 403s, Cloudflare/DataDome challenges, login/paywalls, or JavaScript-only pages, and when a real browser is needed. It names the alternative class (WebFetch/curl) and the behavioral conditions, leaving little ambiguity about context.

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

highlightB

Briefly outline an @eN ref or selector for visual debugging.

ParametersJSON Schema
NameRequiredDescriptionDefault
msNoHighlight duration ms.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
targetYes@eN or selector.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. 'Briefly outline' suggests a temporary visual effect, but it does not state whether the page is modified, how long the outline lasts, whether it requires the element to be visible, or what side effects occur.

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 action, the target, and the purpose efficiently.

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 no annotations and no output schema, the description is too thin. It omits usage guidance, behavioral details, and any sense of what the agent should expect after calling it, leaving the agent to infer important context from the parameter schema alone.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all four parameters. The description adds no extra parameter meaning beyond restating that target is an '@eN ref or selector', which is already in 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 states a specific verb ('outline') and resource ('an @eN ref or selector') and gives the purpose ('visual debugging'). It is clear what the tool operates on, but it does not differentiate itself from visual siblings like screenshot_annotate or observe.

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 visual debugging' implies when the tool is useful, but there is no explicit guidance on when to choose highlight over alternatives, nor any when-not-to-use or exclusion criteria.

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

hoverC

Hover over an element.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexNoHover the Nth match (0-based, from `candidates`).
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
targetYes@eN ref or selector.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure, but it only states the action. It does not mention side effects, prerequisites (e.g., element visibility), what happens on failure, or interactions with lease/session parameters.

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 waste. It is concise, though it borders on under-specification rather than being genuinely informative.

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 is minimal and does not cover expected behavior, edge cases, or return expectations. It omits details about waiting, failure handling, or how index/session options affect the action, leaving the agent without critical contextual information.

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 adds no parameter-specific meaning, but the schema already documents all four parameters with high coverage (100%). Since the schema handles parameter semantics, the baseline of 3 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 clearly states the action ('Hover') and the target ('an element'), which distinguishes it from sibling tools like click, focus, or check. It is not a tautology and is not misleading, though it lacks specificity about the kind of element or 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?

There is no guidance on when to use hover versus alternatives such as click or focus. The description provides no contextual cues or exclusions, leaving the decision entirely to the agent's inference.

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

htmlB
Read-only

Get HTML (whole page or a target — @eN, @text:Foo, @label:Email, CSS, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
targetNoOptional @eN / @text: / @label: / CSS.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

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=true, so the safety profile is covered. The description does not contradict these and adds minimal behavior detail beyond noting target selection options. It does not describe output format or any potential side effects, but for a read-only tool that is acceptable given 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 communicates the core functionality and gives target examples compactly. Perfectly concise for a tool of this simplicity.

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 read-only tool with three optional parameters and a full parameter schema, the description covers what is needed. It implies the return value (HTML) and provides target syntax guidance. It does not mention output encoding or pagination, but such details are likely irrelevant for a one-shot HTML fetch, and the tool is simple enough that this is not a significant gap.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all three parameters. The description adds concrete examples ('@text:Foo', '@label:Email') that slightly illustrate the target syntax, but largely repeats the schema's target description. Since the baseline for full schema coverage is 3, this is appropriate; it does not significantly compensate for anything missing.

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 retrieves HTML, either the whole page or a targeted element via @eN, @text:Foo, @label:Email, or CSS selectors. It is specific about what it returns, but it does not explicitly differentiate from siblings like 'text' or 'extract', though the examples imply HTML output.

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. With many sibling content-retrieval tools (text, extract, extract_fields), the description does not mention exclusions or direct users to pick it specifically for HTML needs. Usage context is only implied by the verb 'Get HTML'.

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

humanize_offB

Disable humanize for current session.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are present, so the description bears full responsibility for disclosing behavior. It states that humanize is disabled for the current session but does not explain side effects, reversibility, or any state changes that might affect other tools. The description is minimal and leaves the agent without details on persistence or prerequisites.

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, succinct sentence that directly states the action. There is no fluff or redundant phrasing, and the key information is front-loaded. It is an exemplar of conciseness 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?

For a simple toggle tool, the description is adequate in stating the core operation, but it omits any interaction with the 'session' parameter (even though the schema covers it) and does not describe expected outcomes or edge cases. Given no output schema and no annotations, a bit more context about the impact would improve completeness, but it is not critically incomplete.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents both 'lease' and 'session' parameters. The description adds no additional parameter semantics, but the high coverage means the baseline of 3 is appropriate; no bonus 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 clearly states the action (disable) and the resource (humanize for current session). It is concise and unambiguous, though it does not explicitly differentiate from siblings like humanize_on or humanize_status; the opposite relationship is implied by the name and 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?

The description provides no guidance on when to use this tool versus alternatives. It does not mention humanize_on, humanize_status, or any conditions for enabling vs disabling. The agent must infer appropriate usage from the tool name alone, which is insufficient for a clear selection.

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

humanize_onA

Enable humanlike mouse (Bezier paths, gaussian dwell, sin scroll) for current session.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden of behavior disclosure. It reveals actual behavioral traits (Bezier paths, gaussian dwell, sine scrolling) and the session scoping. It does not disclose persistence or reversibility details, but for a simple toggle the effect is reasonably aired.

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

Conciseness5/5

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

Single sentence is front-loaded with the action and scope, with specific details cleanly parenthesized. No wasted words; efficiently structured.

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

Completeness4/5

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

For a simple, zero-required-argument toggle with no output and no annotations, the description provides enough to know the purpose, scope, and a few implementation details. It could mention how it interacts with the 'mouse' tool or how to disable it, but these are minor 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?

The schema has 100% coverage for both optional parameters ('lease' and 'session'), including usage guidance for stateful steps. The description itself adds no parameter-specific meaning, leaving the burden to the schema, which is acceptable.

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 ('Enable'), a resource ('humanlike mouse'), and concrete behavioral modifiers (Bezier paths, gaussian dwell, sin scroll). It clearly distinguishes this from the sibling tools 'humanize_off' and 'humanize_status' by specifying the enabling action.

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 usage context ('for current session') but gives no explicit guidance about when to avoid it or which sibling to use instead. It does not mention that 'humanize_off' should be used to disable the mode or that 'humanize_status' could verify state, so the guidance remains implicit.

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

humanize_statusA

Report whether humanize is on for current session.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of revealing behavior. The use of 'Report' implies a read-only operation with no side effects, which is a key behavioral trait. It does not mention any side effects or required preconditions, but for a simple status query 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 a single, concise sentence that directly conveys the tool's purpose. There is no unnecessary detail or redundancy, 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 straightforward status-check tool, the description is complete. It tells the user exactly what the tool does (report humanize status) and for which scope (current session). No additional context is required to use the tool correctly.

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

Parameters3/5

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

The tool description does not add any additional meaning to the parameters beyond the schema. The schema already describes both optional parameters (lease and session) with clear explanations. Since schema coverage is 100%, the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's function: reporting whether humanize mode is on for the current session. It uses the specific verb 'Report' and identifies both the resource (humanize) and the scope (current session), making it easy to distinguish from siblings like humanize_on and humanize_off.

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 alternatives. While it is implicitly a status check before enabling or disabling humanize mode, it lacks direct guidance on when to prefer it over humanize_on or humanize_off. The context is clear but the guidance is not provided.

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

is_stateC

Check element state (visible/enabled/checked/...).

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
stateYesvisible|hidden|enabled|disabled|checked|editable
targetYes@eN or selector.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must convey behavioral traits. It does not disclose side effects (likely read-only), return format (presumably boolean), behavior on failure (throws vs. returns false), or whether it waits for a condition. The phrase 'Check element state' is minimal and leaves critical runtime semantics unspecified.

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

Conciseness4/5

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

The description is a single sentence, front-loading the purpose with an enumeration of states. It is concise and wastes no words. However, it could be slightly more informative without losing 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?

No output schema exists, so the description should explain the return value, but it does not. It also does not address how the four parameters cooperate or propose examples. The complexity is moderate (4 params), and the description is too thin to be complete.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are already documented. The tool description adds no additional meaning beyond the schema, such as how 'state' interacts with 'target' or typical usage patterns. Baseline score of 3 is appropriate since the schema carries the burden.

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 ('Check') and resource ('element state') with a list of example states. Distinguishes itself from sibling tools like 'check' (which likely toggles a checkbox) by focusing on state verification. Clear purpose, though it doesn't explicitly contrast with any sibling.

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?

Provides no guidance on when to use this tool versus alternatives. No mention of how it fits into workflows (e.g., assertions, wait conditions) or when not to use it. The description only states its function, leaving usage entirely to inference.

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

keysB

Press a key combination (e.g. 'Control+a', 'Enter').

ParametersJSON Schema
NameRequiredDescriptionDefault
keysYesKey combo.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description is the sole source of behavioral insight, but it provides only the action 'Press a key combination' and no extra information about side effects, focus requirements, key-form limitations, or error behavior. It is a thin translation of the tool's name.

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 immediately states the purpose, then provides illustrative examples, earning its place and keeping the text attention-efficient.

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

Completeness3/5

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

For a simple tool with one required and two optional parameters, the core action is stated enough, but it lacks guidance on when to choose this over the many sibling input tools (press, type, click). The existence of the 'session' and 'lease' parameters implies multi-session complexity that the description doesn't explain. It's adequate but leaves gaps.

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

Parameters4/5

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

The description adds concrete key-string syntax examples ('Control+A', 'Enter') that are more detailed than the schema's terse 'Key combo'. This helps the agent pass valid values for 'keys', though it does not clarify the optional 'lease' or 'session' beyond their 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 verb 'press' and the resource 'key combination', with substantive examples ('Control+a', 'Enter'). However, it does not explicitly differentiate this from sibling tools like 'press' or 'type', so it lacks a clear distinguishing statement but remains 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 or how to route between similar tools. The description only explains the action without any 'when' / 'when-not' context, leaving the agent without decision-support.

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

mapB
Read-only

Snapshot actionable elements and assign @eN refs (uses Playwright aria_snapshot mode='ai').

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNoLimit snapshot depth.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
indentNoPreserve YAML indent.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

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 and openWorldHint=true, so the safety profile is covered. The description adds the Playwright mode detail, which is minor. No behavioral contradictions, but nothing else is disclosed about default behavior or side effects.

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

Conciseness4/5

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

A single concise sentence that front-loads the tool's purpose and key detail (Playwright mode). No fluff, though it could benefit from a brief usage note.

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?

No output schema is provided, so the description should explain what the snapshot returns or how @eN refs are used, but it doesn't. It also lacks guidance on when to use snapshotting in a multi-step workflow, making it adequate but not complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no parameter-specific meaning beyond what the schema provides, earning the baseline of 3.

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 ('snapshot') and resource ('actionable elements') with a clear outcome (assign @eN refs) and implementation detail (Playwright aria_snapshot mode='ai'). This distinguishes it from siblings like map_compact, though it doesn't 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 on when to use this tool versus alternatives (e.g., explore, observe, map_compact). The description only states what it does, leaving the agent to infer context.

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

map_compactA
Read-only

One-line-per-element rendering of the snapshot (token-efficient): @eN role "name" [state…], preserving state ([checked]/[disabled]/[expanded]/[level=N]). interactive=only actionable roles; bbox=append real bounding_box() coords (bbox=x,y,w,h) — genuine layout geometry.

ParametersJSON Schema
NameRequiredDescriptionDefault
bboxNoAppend real-Chrome bounding-box coords per element.
depthNoLimit snapshot depth.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.
interactiveNoOnly actionable roles (button/link/textbox/checkbox/…).

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, and the description adds valuable behavioral detail about output format, state preservation, and the meaning of `bbox` as real Chrome geometry. It does not contradict annotations and goes 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.

Conciseness4/5

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

The description is a single dense sentence that front-loads the purpose and format, with no filler. It is efficient given the technical content, though slightly terse for a first-time reader.

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?

With no output schema, the description provides a format template and explains both flags' effects, which is sufficient for a read-only mapping tool. Minor gaps like empty-snapshot behavior or edge cases could be added but are not critical.

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 covers all parameters at 100%, but the description enriches understanding of `interactive` and `bbox` with concrete examples and clarifies the output format. This adds value beyond the schema, exceeding the baseline for high 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 tool renders a token-efficient snapshot with a specific per-element format, which distinguishes it from the generic `map` sibling. However, it does not explicitly name the alternative tool, 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 token-efficiency hint implies a use case, and the `interactive`/`bbox` flags suggest conditional outputs, but there is no explicit guidance on when to choose this over `map` or `diff_map`, nor mention of scenarios where it should be avoided or prerequisites.

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

mouseC

Mouse control at pixel coordinates.

ParametersJSON Schema
NameRequiredDescriptionDefault
xNo
yNo
dxNo
dyNo
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
stepsNoMove steps.
actionYesclick|dblclick|move|down|up|wheel
buttonNoleft|right|middle
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full transparent burden. It only says 'Mouse control at pixel coordinates' but does not disclose that it moves the actual cursor, that down/up actions are stateful, that steps controls animation speed, or that the tool might affect a shared display. Critical behavioral context is absent.

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 a single concise sentence with no wasted words, but it is under-specified rather than appropriately sized. It is front-loaded with the core purpose but lacks structural detail. Conciseness is good but at the expense of usefulness.

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 has 9 parameters, no output schema, and no annotations. The description does not explain the supported actions, coordinate conventions, button states, or session handling. Given the tool's complexity, the description is far too minimal to allow correct invocation without external 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 56% (5 of 9 params have descriptions), yet the tool's description adds nothing about parameters. The undisclosed params x, y, dx, dy are ambiguous (absolute vs delta? coordinate origin?). The description does not compensate for the gaps in the schema, leaving an agent to guess their 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 description states a clear verb and resource: 'Mouse control at pixel coordinates.' This defines the tool's purpose precisely enough to distinguish it as low-level mouse manipulation, though it does not explicitly contrast with sibling actions like click, dblclick, or hover. It is specific about coordinates but leaves the range of actions implicit in the action parameter.

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 click, dblclick, hover, or scroll. The description does not mention that this is a low-level primitive or recommend conditions for its use. An agent would have to infer from the parameter names that it might be used for raw input, but that is not stated.

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

observeB

Plan a verb + target for an intent without executing.

ParametersJSON Schema
NameRequiredDescriptionDefault
llmNoUse Claude (needs ANTHROPIC_API_KEY).
forceNoBypass cache.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
intentYesNatural-language intent.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

B3.2/5.0
Behavior3/5

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

The description adds the key behavior that the tool plans without executing, which is important safety context. However, with only openWorldHint as an annotation, the description does not disclose caching behavior, the optional LLM dependency, or what happens to lease/session state, leaving part of the behavioral burden on the schema descriptions.

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, focused on the core purpose and key limitation. It is appropriately sized and the main idea is 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?

With no output schema and only a bare description, an agent cannot tell what shape the planned 'verb + target' takes, how to consume the return value, or how to chain observe into a later execution step. The description gives the gist but leaves critical operational details undocumented.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description only mentions 'intent' generically and adds no additional detail about llm, force, lease, or session; all parameter semantics are already in 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 states a specific verb ('plan') and a clear resource ('verb + target for an intent'), and the phrase 'without executing' distinguishes it from execution-focused siblings like click or type. It does not explicitly call out a sibling that does the same thing, so it does not fully achieve the 5-level 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 explicit guidance on when to use this tool versus alternatives, no excluded scenarios, and no condition such as 'use this before act' or 'instead of explore'. The 'without executing' clause implies a planning use-case, but that is not enough actionable guidance for an agent selecting among many similar planning/observation tools.

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

page_closeA

Close the current tab; the next tab becomes active.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the key side effect (next tab becomes active), which is helpful, but does not mention that closing is irreversible, what happens if only one tab exists, or whether the action is destructive. It also doesn't clarify that it operates within the context of a specified session.

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 that states the action and its immediate effect with no wasted words. It is efficiently structured and front-loaded.

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

Completeness3/5

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

The description is minimal and adequate for a simple close operation, but it omits edge cases (e.g., closing the last tab), the return value, and the relationship to the session parameter. Given the large set of sibling tools and the optional session parameter, the description could be more explicit about scope, making it moderately 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?

The schema already documents both parameters (lease and session) with detailed descriptions and 100% coverage. The description adds no additional parameter semantics, so the baseline of 3 applies.

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

Purpose5/5

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

The description states a specific action ('close') on a specific resource ('the current tab'), and notes the immediate consequence (next tab becomes active). This clearly distinguishes it from siblings like page_new (create tab) and page_switch (switch active tab).

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 it (when you want to close a tab) but provides no explicit guidance on when not to use it or which alternative tools (e.g., session_close for closing an entire session, page_switch for changing active tab) to prefer. It lacks exclusions or comparative context.

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

page_newA

Open a new tab and switch to it.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden. It clearly discloses the two main effects (open and switch), but does not mention side effects like session handling, whether the previous tab remains active, or any permission/lease requirements. It is minimally adequate but lacks depth.

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, short sentence that is front-loaded with the core action and effect. There is zero wasted wording and the structure is optimally concise for the stated 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?

The description covers the tool's basic function, but given the absence of annotations and output schema, it lacks detail about return values, session side effects, or how the new tab integrates with existing sessions. The 100% schema coverage compensates for parameters, but not for broader behavioral 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?

Schema description coverage is 100%, so both parameters (`lease` and `session`) are fully documented in the schema. The description itself adds no parameter-level meaning, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description states a specific action ('Open a new tab') and an immediate effect ('switch to it'), which clearly distinguishes it from siblings like `page_switch` (which only switches) and `page_close`. The verb and resource are direct 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?

The description gives no guidance about when to prefer this tool over alternatives such as `page_switch`, `go`, or `attach`. It does not mention any conditions, exclusions, or use cases beyond the bare operation, leaving the agent to infer when it is appropriate.

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

pagesC

List all open browser tabs.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing behavior. It only says 'List all open browser tabs' without clarifying scope (e.g., does it include all sessions or just the default? does it return an empty list or error?), any side effects, or whether it respects leasing. The ambiguity around 'all' versus the optional session parameter is a significant gap.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the action. There is zero waste, and it gets straight to the point. Perfect for a simple list operation.

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?

There is no output schema, so the description should explain what the returned list contains (e.g., array of tab objects with titles/URLs). It also doesn't address the behavior across sessions or whether leasing affects the result. For a tool with optional session scoping, the missing details about scope and return format make it incomplete.

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

Parameters3/5

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

Schema description coverage is 100%, and both 'lease' and 'session' have clear descriptions. The tool description adds nothing about parameters, which is acceptable since the schema already explains them. Baseline of 3 is appropriate when the schema does the heavy lifting.

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 (List) and resource (all open browser tabs), making the core purpose clear. However, it doesn't explicitly differentiate from sibling tools like 'frames' or 'content', though the concept of listing tabs is distinct enough that an agent would likely understand its role without extra clarification.

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 such as page_new or page_switch. The schema's note about using a unique session name for stateful work gives some context, but that's parameter-level advice, not tool-selection guidance. An agent has to infer that 'pages' is the right call for getting an overview of open tabs.

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

page_switchC

Switch to tab by index.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexYesTab index.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations present, the description carries the full burden of behavioral disclosure, but it only states the action. It does not mention side effects (e.g., changing the active tab), behavior when the index is out of range, or any impact of the lease or session parameters. Minimal behavioral detail is disclosed.

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 and is front-loaded with the core action. It avoids filler and repetition, though it is slightly sparse; however, for such a simple action the length is 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?

Although the schema describes all parameters, the tool is part of a large set of page/session tools and has lease and session conditions that an agent must understand to call it correctly. The description lacks operational context, and with no output schema or annotations, the agent is left without guidance on when or how to use this effectively among many similar 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 parameter describing coverage is 100%, so the schema fully documents index, lease, and session. The description itself adds no parameter-level meaning beyond what the schema already provides, so the baseline of 3 is appropriate.

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

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, 'Switch to tab by index', which is clear and unambiguous. It distinguishes this from navigation tools (go/back/forward) by specifying index-based tab selection, though it does not explicitly name alternative siblings.

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 sibling tools like 'pages', 'page_new', 'page_close', or 'session_switch'. There is no mention of criteria such as having a tab index available or handling multiple sessions, leaving the agent to infer appropriate use from the tool name alone.

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

pdfC

Save the current page as PDF.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesOutput path.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
formatNoLetter|A4|...
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

C2.9/5.0
Behavior2/5

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

There are no annotations, so the description carries the full behavioral burden. It only states that the current page is saved as a PDF, without disclosing side effects, file overwriting behavior, required permissions, or return status.

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?

A single sentence with no filler, stated in a direct and front-loaded fashion. It is terse but appropriate for such a simple 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?

With complete schema coverage and a clear one-line purpose, an agent can invoke the tool minimally. However, with no output schema and no behavioral or usage context, some important aspects of a successful call are left unstated.

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

Parameters3/5

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

Schema coverage is 100% and parameter descriptions already cover all fields. The main description adds no extra meaning beyond implying path is the output destination.

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?

'Save the current page as PDF' names a specific verb, resource, and output format. It is clear and distinct from sibling tools like screenshot, 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 on when to use this tool versus screenshots or other exports. No prerequisites are mentioned, and the optional session/lease parameters are left unexplained in the description.

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

pressA

Press a key on a specific element (e.g. Enter on @e3).

ParametersJSON Schema
NameRequiredDescriptionDefault
keysYesKey combination.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
targetYes@eN ref or selector.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of disclosure. It states the core action (press a key on an element) but does not reveal potential side effects, prerequisites (e.g., element focus requirements), failure behavior, or whether it simulates a real user input. This is minimal but not misleading.

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 that includes a useful example. It is front-loaded with the action and avoids any filler, making it immediately actionable and easy to parse.

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 operation with well-described parameters and no output schema, the description is largely sufficient. An agent can correctly call it with target and keys. The only gaps are behavioral nuances (e.g., whether the element must be in view or interactive), but these 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.

Parameters3/5

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

The schema provides 100% parameter coverage, so the baseline is 3. The description adds a small illustrative example (Enter on @e3) that improves understanding of the target and keys parameters, but it does not provide additional semantics beyond the schema's own 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 uses a specific verb 'press' with a resource 'a specific element' and provides a concrete example (Enter on @e3). This clearly distinguishes it from sibling tools like 'type' (typing text) and 'keys' (likely global key presses), making the purpose unambiguous.

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

Usage Guidelines3/5

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

The description does not explicitly mention when to use this tool over alternatives like 'keys' or 'type'. It implies usage when you need to send a key press to a specific element, but it lacks explicit conditions, exclusions, or references to other tools, leaving the agent to 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.

profile_deleteB

Delete a profile directory (alias of session_delete).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProfile name.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the destructive action ('delete') without any details on consequences, reversibility, permissions, or effects on associated sessions. It neither warns about permanent deletion nor explains what happens to dependent data, leaving the agent blind to important safety considerations.

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, compact sentence that is front-loaded with the core action and resource. There is no redundant filler, and the alias clarification is brief. However, it might be slightly too terse given the lack of supplementary context, but it earns high marks for efficiency and structure.

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 is a destructive operation with three parameters, no output schema, and no annotations, yet the description provides only the core action. It omits critical context such as success/failure behavior, prerequisites (e.g., whether the session must be released), and potential side effects. The description is inadequate for an agent to safely invoke this tool without additional external knowledge.

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

Parameters3/5

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

Schema description coverage is 100%, meaning all parameters are already documented in the input schema. The description adds no additional insight into the parameters or how they interact beyond what the schema states, so the baseline of 3 applies. It does not clarify the lease token semantics or session targeting beyond the schema's own explanations.

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 ('Delete') and resource ('profile directory'), and explicitly identifies itself as an alias of 'session_delete', which distinguishes it from other session/profile management tools. The agent immediately understands what the tool does and that it is equivalent to another available tool.

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 provides no explicit guidance on when to use this tool versus alternatives beyond noting it is an alias of session_delete. This implies either tool can be used interchangeably, but there is no discussion of specific scenarios or exclusions. The presence of the alias hint gives some direction but fails to clarify when to prefer profile_delete over other sibling tools like session_close or session_delete.

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

profile_listB

List all profiles and the active one (alias of session_list).

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

B3.2/5.0
Behavior2/5

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

The description only says 'List' which implies read-only, but it does not disclose effects of the optional 'session' and 'lease' parameters on the result, nor does it state any permissions, side effects, or observable behavior such as whether it returns a grouped list. With no annotations, the description carries the full burden of behavioral disclosure and is insufficient.

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 immediately states the action and result, followed by an alias note. There is no redundant phrasing and every word 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?

The description does not define 'active one' or what the output looks like, and it never references the optional 'session' or 'lease' parameters, the tool has no output schema and no annotations, leaving the agent to infer details from the parameter schemas alone. This is incomplete for a tool that lists all profiles and indicates an active one.

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 full descriptions for both parameters, so the baseline is 3. The description itself does not mention the parameters, so it adds no extra meaning beyond already structured data; it does not clarify how 'session' or 'lease' would alter the listing output.

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 exact action ('List all profiles') and result ('the active one'), and explicitly notes it is an alias of session_list, giving agents confidence in the behavior. This clearly distinguishes it from profile_use, profile_new, and similar siblings.

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 call this tool instead of session_list or any other listing tool. The alias note hints that they can be used interchangeably, but there is no explanation of scenarios like checking the active profile before using profile_use, so an agent cannot make a justified choice.

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

profile_newB

Create a new named profile (alias of session_new).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProfile name.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden. It does not disclose side effects, permissions, or behavior if the profile already exists, leaving transparency minimal for a state-changing operation.

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 concise sentence with no extraneous detail, front-loading the core action and resource.

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

Completeness2/5

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

No output schema is present, and the description does not mention return value or side effects. It could be more complete with a note on what it returns or what happens if the name already exists.

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

Parameters3/5

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

The input schema already includes descriptive text for all three parameters, and the tool description adds no extra parameter semantics, so the baseline of 3 applies.

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

Purpose5/5

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

States a specific verb 'Create' and a clear resource 'named profile', and clarifies it is an alias of session_new, effectively distinguishing it from related profile/session 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 explicit guidance on when to use this tool over session_new or other profile/session tools. The alias mention gives some hint of interchangeability, but lacks prerequisites or conditions.

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

profile_useB

Set the active profile (alias of session_use).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProfile name.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full behavioral disclosure. It states only the action ('Set the active profile') without describing whether it modifies global, per-session, or per-profile state or whether it has side effects on already-created sessions. It does not disclose the implications of changing the active 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, direct sentence with no filler. The parenthetical 'alias of session_use' demonstrates useful context without exploding length, front-loading the core action and important alias relationship.

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 minimal complexity and full schema coverage, the description is mostly sufficient to call the tool. However, it lacks the semantic context of what an 'active profile' affects—session targeting, default behavior, or interaction with session_use—making it incomplete for an agent without prior knowledge.

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?

Input schema covers 100% of parameter descriptions (name, lease, session), so a baseline of 3 applies. The description adds no explanation of the parameters beyond what the schema already provides, such as the meaning of 'lease' or session targeting.

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 clear verb-resource pair ('Set the active profile') and explicitly marks it as an alias of session_use, which helps differentiate it from profile_list, profile_new, etc. It does not fully explain the broader semantics of 'active profile', so it is slightly below 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 Guidelines2/5

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

The description only states that it is an alias of session_use, but gives no guidance on when to use this tool over session_use or other profile tools. There is no mention of prerequisites, alternatives, or when it is appropriate to call it, leaving the agent without selection context.

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

reloadB

Reload current page.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full behavioral burden and does state the core operation. However, it does not disclose whether reload waits for page load, whether it may discard unsaved state, or how it behaves when the session is leased. It is adequate for a simple action 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 sentence with no filler words. It front-loads the action and resource immediately and earns its place entirely.

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 no-required-parameter tool with a fully documented schema, this description is sufficient. The agent knows the target and the two optional parameters are covered; since there is no output schema, no return-value explanation is needed.

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

Parameters3/5

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

Schema description coverage is 100%, so both optional parameters are already fully explained in the schema. The tool description adds no parameter-level information, so the baseline of 3 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 states a specific action ('Reload') and the exact resource ('current page'), making the tool's purpose immediately obvious. It does not explicitly contrast with siblings like 'back' or 'forward', but the action is distinct enough that the agent can tell it apart.

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 rather than alternatives such as 'go', 'back', or 'forward'. The description relies entirely on the tool name and the user's intuition; no explicit when/when-not or sibling differentiation is provided.

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

screenshotA

Capture a screenshot. With no path it returns a viewable image (not base64 text); with a path it saves the PNG and returns the path. With tiles=true it slices a full-page capture into fixed-height tiles written to DISK (returns their paths + count, never base64) — for layout-heavy pages a vision-capable caller then reads tile-by-tile. Prefer reading the page text/selectors first — only screenshot when you actually need the pixels.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoOutput file path.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
tilesNoSlice a full-page capture into fixed-height PNG tiles written to disk (0600); returns {tiles:[paths], count}. Implies full_page.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.
tile_dirNoDirectory for tile files (default: alongside path, else the screenshots cache).
full_pageNoFull page (not just viewport).
max_tilesNoCap the number of tiles (top of page first). Bounds output/disk, not decode memory. If omitted, defaults to VIBATCHIUM_MAX_TILES (60); when a tall page is capped the result carries truncated=true + total_tiles.
tile_heightNoTile height in px when tiles=true.
max_screenshot_pxNoCap the CAPTURED height (px) of a full-page/tiles shot — bounds the decode itself (the real memory driver on tall/infinite-scroll pages), not just tile count. Default VIBATCHIUM_MAX_SCREENSHOT_PX (30000); 0 disables. A taller page is captured to the top N px and the result carries height_truncated=true + captured_height_px + total_height_px.

TDQS

A5/5.0
Behavior5/5

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

Discloses detailed behavioral traits beyond the openWorldHint annotation: return formats per mode (image vs path vs tiles path/count), never-base64 guarantee, truncation markers (truncated, height_truncated, captured/total heights), and lease token threading (never read from server env). This is far richer than the bare 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?

Though about 200 words, every sentence serves a purpose. It front-loads the core purpose, branches into modes, and integrates usage guidance and truncation semantics without wasted words. Structure is logical and scannable.

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 9 optional parameters and no output schema, the description covers all scenarios: image vs file vs tiles, disk output, truncation behavior, session uniqueness on shared daemons, and lease handling. Nothing an agent needs to call correctly is missing.

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

Parameters5/5

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

Even with 100% schema coverage, the description adds critical meaning: tiles implies full_page, max_tiles bounds output/disk not decode memory, max_screenshot_px bounds decode itself, and defaults come from environment variables (VIBATCHIUM_MAX_TILES, VIBATCHIUM_MAX_SCREENSHOT_PX). This goes well beyond the schema's per-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?

States 'Capture a screenshot' clearly as a verb+resource, then further specifies three modes (no path returns image, path saves PNG, tiles=true slices into tiles). It distinguishes itself from text-reading siblings by explicitly saying 'only screenshot when you actually need the pixels'.

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?

Provides explicit usage direction: 'Prefer reading the page text/selectors first — only screenshot when you actually need the pixels.' Also advises using tiles for layout-heavy pages so a vision-capable caller reads tile-by-tile, leaving no ambiguity about when to choose this tool over alternatives.

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

screenshot_annotateB

Screenshot with @eN bounding-box overlays (vision-LLM friendly).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesOutput PNG path.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.
full_pageNoCapture full page.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states that the tool takes a screenshot with bounding-box overlays. It does not mention side effects (e.g., whether the page is modified), authentication requirements, rate limits, or what the output file actually contains beyond 'overlays'. For a tool that saves to a path, details about the file format or how overlays are rendered are missing. This is a significant gap given zero 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?

The description is a single sentence, highly concise, and front-loads the core purpose. Every word contributes: 'Screenshot' sets the action, 'with @eN bounding-box overlays' adds the distinguishing feature, and 'vision-LLM friendly' signals the intended use case. No fluff or repetition. It is an exemplary concise description.

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 moderate complexity (4 params, including session and lease), but the description provides only the bare essence. It lacks context on when to use this instead of plain 'screenshot' or vision tools, and it does not describe the nature of the @eN overlays or their format. There is no output schema, so the description should clarify what the agent can expect from the call, but it does not. 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.

Parameters3/5

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

The input schema covers 100% of parameters with descriptive text (path, lease, session, full_page). The description adds no additional parameter meaning beyond what the schema already provides. Per the calibration rule, when schema_coverage is high (80%+), the baseline is 3, and there is no extra value from the description to raise it.

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 core function: 'Screenshot with @eN bounding-box overlays (vision-LLM friendly).' It specifies a verb ('Screenshot'), a resource (bounding-box overlays), and a distinguishing feature (vision-LLM friendly) that separates it from the plain 'screenshot' sibling. The purpose is unambiguous and 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?

The description gives no explicit guidance on when to use this tool versus alternatives. It does not mention plain 'screenshot', vision tools, or any exclusions. The parenthetical 'vision-LLM friendly' hints at a use case (preparing images for vision models) but does not state when to prefer it over other tools or when not to use it. This leaves an agent without clear direction.

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

scrollC

Scroll the page or a target element into view.

ParametersJSON Schema
NameRequiredDescriptionDefault
dxNoHorizontal pixels.
dyNoVertical pixels.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
targetNoOptional @eN/selector to scroll into view.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure, but it only states a high-level action. It does not disclose that scrolling may require a lease token, session behavior, or any side effects (e.g., whether scrolling affects the DOM or triggers events). This is a material gap given the complex parameter set.

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, compact sentence with no filler. It front-loads the core purpose, making it quick to parse. It could benefit from a second sentence on usage, but as a concise statement it is well-structured.

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 optional parameters, no required fields, no output schema, and no annotations, the description is too thin. It fails to explain the purpose of lease/session parameters, when to use target vs. dx/dy, or any potential side effects. An agent would need to infer substantial context from parameter names alone, which is inadequate.

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 documents all 5 parameters with descriptions (100% coverage), so the description does not need to repeat them. The tool description adds only the notion of 'scroll into view' which maps to the target parameter, but it doesn't clarify the relationship between dx/dy and target. Since schema already covers parameter meaning, the baseline of 3 is appropriate.

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 'scroll' and the resource (page or target element), distinguishing it from navigation siblings like go/back/forward. It is specific enough to understand the primary action, though it doesn't mention the scroll mechanics (pixel offsets vs. into-view), so it loses a point for incompleteness.

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 (e.g., go, reload, or click for in-element scrolling). There are no exclusions or conditions mentioned, leaving the agent to infer usage purely from the name and schema.

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

selectB

Pick option(s) on a ; choose by value/label/index.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexNoZero-based option index.
labelNoOption visible label.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
valueNoOption value attribute.
targetYes@eN or selector for the <select>.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does not mention side effects (e.g., triggering change events), error behavior (e.g., option not found), or handling of multiple matches. It simply states the action without adding 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 extremely concise, with every word contributing to the purpose. It is front-loaded with 'Pick option(s) on a <select>' immediately. It avoids redundancy and is easy to scan.

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

Completeness2/5

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

Given the tool's complexity (6 parameters, including optional lease and session), the one-line description is insufficient. It fails to explain precedence of selection criteria, behavior for multiple selects, error handling, or any edge cases. The schema covers parameter details, but the description adds no additional operational 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?

Schema coverage is 100%, so each parameter is already described. The description adds the note that selection can be by value, label, or index, which is helpful, but it does not clarify precedence or interaction between these parameters. It adds minimal value beyond the schema.

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

Purpose5/5

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

The description clearly identifies the specific action (picking options) on a specific element (<select>), and distinguishes it from sibling tools like check/uncheck or click, which are for other element types. Mention of value/label/index makes the selection mechanism 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 no guidance on when to use this tool versus alternatives, nor does it explain prerequisites or exclusions. It merely states what it does, leaving the agent to infer that it's for select elements. No mention of when not to use it or how it differs from click or other tools.

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

session_closeB

Stop Chrome for one session (profile dir preserved).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoSession name.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

B3.2/5.0
Behavior3/5

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

The description discloses a valuable behavioral trait: it stops Chrome while preserving the profile directory, which is not evident from the tool name or schema. With no annotations provided, this adds transparency beyond the basic action. However, it omits other potential behaviors such as lease token handling or effects on session state.

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

Conciseness4/5

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

The description is a single, short sentence that communicates the core action and the key preservation caveat. It is front-loaded and free of filler. It misses the opportunity to add de-emphasized sibling context, but for a tool this small it 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?

The description is minimally sufficient for a simple close/session utility with three documented optional parameters and no output schema. It confirms the primary behavior and a key safety property. However, it would benefit from a note about interaction with leased sessions or the fact that the browser is stopped, and no alternative assignment is provided.

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

Parameters3/5

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

Schema description coverage is 100% and the schema provides clear descriptions for all three parameters, including session selection and lease hints. The tool description itself does not add parameter semantics, but it is not required when the schema already fully documents them. Baseline 3 is appropriate.

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 the specific verb 'Stop' with the resource 'Chrome' and the scope 'for one session', which clearly identifies the tool's action. The parenthetical 'profile dir preserved' adds important scope distinction. It does not explicitly contrast with sibling tools like 'stop' or 'session_close_all', but 'for one session' provides enough 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 guidance on when to use this tool versus its siblings. The description does not mention scenarios for using session_close instead of 'stop' or 'session_close_all', and no exclusions or prerequisites are provided.

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

session_close_allC

Stop Chrome for every running session.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It fails to mention that stopping all sessions is destructive, may affect other agents sharing the daemon, or what happens to leased sessions. It also doesn't state whether the action is reversible or returns any status.

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 filler. It communicates the core action and scope efficiently.

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 this is a destructive, global action, the description is inadequate. It lacks any mention of return value, safety warnings, impact on other sessions/agents, or how leased sessions are handled. The parameter mismatch is not addressed, making the tool confusing to invoke 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 coverage is 100%, so parameters are documented. However, the description adds no value beyond the schema. The presence of a 'session' parameter suggesting a specific target contradicts the 'every session' scope, creating confusion that the description does not resolve.

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 ('Stop') and resource (Chrome) with a specific scope ('every running session'). It distinguishes itself from session_close which likely targets a single session, though it doesn't explicitly name the 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?

No guidance is provided on when to use this tool versus session_close. The description does not mention any conditions, prerequisites, or exclusions. An agent would have to infer usage 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.

session_deleteA
Destructive

Delete a session's profile dir on disk (not active/default).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSession name.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

A3.5/5.0
Behavior4/5

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

The annotations already flag destructiveHint, and the description reinforces and extends that by stating that the profile directory itself is deleted from disk and that active/default sessions are not the target. This meaningfully describes the destructive effect 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?

The description is one compact sentence with no filler. It states the action, the resource, and an important qualifier efficiently.

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 destructive tool, it would help to state whether the session must be closed first or whether deletion is irreversible, beyond 'on disk.' The annotations and detailed parameter schema cover a fair amount, but the description stays minimal and leaves some preconditions to inference.

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

Parameters3/5

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

Schema description coverage is 100% and the tool description itself adds little detail about the parameters. The description's 'not active/default' phrase hints at target selection, but the meaning of name, lease, and session is otherwise fully carried by the input schema, so the baseline of 3 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 uses a specific verb ('Delete') and a specific resource ('a session's profile dir on disk'), and clarifies that active/default sessions are not targeted. It does not explicitly differentiate from sibling tools like session_close or profile_delete, but the on-disk profile deletion semantics separate it clearly 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?

The description gives a negative constraint ('not active/default') but provides no explicit guidance on when to use this tool versus session_close, profile_delete, or other session-management siblings. The 'session' parameter description contains usage advice, but that is parameter-level rather than tool-selection guidance.

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

session_leaseA

Acquire/renew an exclusive advisory lease on a running session (0.7.0). Returns a token; present it as the lease arg on subsequent calls so other clients get a 'busy' error instead of clobbering the shared page.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoSession name (default: current session).
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
ownerNoHolder label shown in the busy message.
stealNoTake over a lease held by someone else.
ttl_sNoLease seconds (default 60, max 3600).
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It explains that the tool returns a token, that this token must be presented as the 'lease' arg on subsequent calls, and that it causes other clients to receive a 'busy' error. It also describes the lease as 'advisory', giving insight into its non-enforced nature. This adds valuable context beyond the schema.

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 concise sentences that front-load the core action and then provide the essential behavioral context. No word is wasted, and the key use case is immediately clear.

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

Completeness4/5

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

Given the tool's complexity (6 parameters, no output schema, no annotations) and the high schema coverage, the description is sufficiently complete for an agent to call it correctly. It covers the primary behavior (token return, usage, and effect on others) and leaves parameter details to the schema. It could mention edge cases like behavior on renewal or failure, but these are not essential.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds meaning to the 'lease' parameter by explaining its role as the returned token to present on subsequent calls, which helps the agent understand its semantics better. It does not elaborate on other parameters, but they are already well-described in the schema.

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

Purpose5/5

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

The description states a specific action ('Acquire/renew an exclusive advisory lease on a running session') with a clear resource and purpose. It distinguishes itself from siblings like session_lease_info and session_release by focusing on acquiring/renewing the lease rather than querying or releasing it.

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 explains when to use the tool (to obtain an exclusive lease token so other clients get a 'busy' error and cannot clobber the shared page). It gives clear context for use, though it does not explicitly mention alternatives or when not to use it, leaving some inference to the agent.

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

session_lease_infoB

Report the lease state for a session (never returns the token).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoSession name.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It reveals only that it 'never returns the token', which is a safety trait, but it does not state whether the operation is read-only, side-effect-free, or any error/response behavior beyond that. For a tool that presumably queries state, more transparency is needed.

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 primary action and safety constraint. There is no wasted wording, and the 'never returns the token' caveat is placed right after the purpose, which is especially relevant for an agent deciding whether to call this 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?

With no output schema, the description should clarify what the tool returns (e.g., whether it returns a boolean, status text, or structured lease info). It also omits behavior for missing sessions or invalid parameters. While the schema offers some guidance on session naming, the description is too thin to fully prepare an agent for invoking the tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters 'name', 'lease', and 'session' are already fully documented. The description itself adds no parameter-specific meaning beyond the schema. Since the schema covers all parameters, the baseline of 3 applies.

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

Purpose5/5

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

The description clearly states the action ('Report the lease state') and the target resource ('for a session'). It explicitly adds 'never returns the token', which distinguishes it from sibling tools like session_lease and session_release that likely return tokens. This makes 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 Guidelines3/5

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

The description implies usage for checking lease state but does not explicitly say when to use it vs. alternatives. It does not mention 'use this before acquiring a lease' or 'use this to verify lease status'. However, the sibling context suggests it is a read-only counterpart to lease/release, which is implicit. No exclusions or alternatives are stated, so it meets only the minimum viable.

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

session_listB
Read-only

List every on-disk session + which are currently running.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

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 read-only nature. The description adds that it lists on-disk sessions and their running status, which is useful behavioral context. It does not mention output format, pagination, or any caveats, but for a simple read-only list this is adequate.

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

Conciseness5/5

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

The description is a single concise sentence that front-loads the purpose and includes the key distinction between on-disk sessions and currently running ones. Every word earns its place with no filler.

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 low complexity (no required params, no output schema, annotations cover read-only behavior), the description is sufficient. It explains what is listed (on-disk sessions and running status) without needing to describe return format in detail, as that is not provided structurally. Could hint at output shape, but it is not a critical gap.

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

Parameters3/5

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

Schema description coverage is 100%, and both optional parameters ('lease' and 'session') are already well documented in the schema with detailed descriptions. The tool description adds no additional parameter semantics, so the baseline score of 3 applies.

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

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 'every on-disk session' plus running status. It is specific and unambiguous, and while it does not explicitly name sibling tools, its role as a listing operation is distinct from the create/use/switch/close session siblings.

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, nor any context about prerequisites or typical scenarios. It only states what it does, leaving the agent to infer usage from the tool name and siblings.

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

session_newA

Create a new on-disk session/profile dir (does NOT launch Chrome).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSession name.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states that the action creates an on-disk directory and explicitly clarifies it does not launch Chrome, which is valuable non-obvious behavior. However, it does not disclose other aspects like idempotency (what happens if the session already exists), whether the session becomes active, or any side effects on the current session state. The description is honest but sparse on 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.

Conciseness5/5

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

Single sentence with zero waste. The primary action is front-loaded, and the key clarification ('does NOT launch Chrome') is appended efficiently. Every word earns its place.

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?

This is a simple create operation with no output schema and full parameter documentation. The description clarifies the on-disk nature and the non-launch behavior, which covers the main ambiguity. Minor gaps remain, such as whether the created session becomes active or how to subsequently use it, but these can be inferred from sibling tools and the schema. Overall, sufficient 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.

Parameters3/5

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

The input schema has 100% description coverage, with all three parameters documented. The description itself adds no parameter-specific information beyond the schema. Notable, the schema's session parameter already contains detailed guidance about using unique names for stateful work, so the description does not need to compensate. A baseline score of 3 is appropriate given the schema handles 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 states a specific action ('Create'), a specific resource ('on-disk session/profile dir'), and adds a critical distinction ('does NOT launch Chrome') that differentiates it from the start tool and other launch-related siblings. This is precise 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?

The description implicitly tells the agent this tool is for creating a session directory, not for launching a browser. However, it does not explicitly mention when to use it versus alternative session tools like session_use or session_switch, nor does it state conditions for when not to use it beyond the 'does NOT launch Chrome' note. Some guidance is implied but not fully articulated.

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

session_releaseA

Release a session lease — present the token via the lease arg, or force=true to break it (operator override).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoSession name (default: current session).
forceNoBreak the lease without the token.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure, and it explains the critical nuance: `lease` presents a token for normal release, while `force` breaks the lease without the token as an operator override. This communicates the safety-relevant difference between a normal and a forceful release. It does not detail side effects of a forced break, but the most important behavioral distinction 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?

The description is a single, well-structured sentence that front-loads the operation and compactly distinguishes the normal path from the force path. There is no filler or repetitive 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 lease-release operation, the description combined with a fully documented schema gives an agent enough to decide and invoke correctly. It does not mention return values or failure behavior, but with no output schema and a straightforward operation, this is a minor gap rather than a serious omission.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters are already well documented in the schema. The tool description references `lease` and `force` and adds the 'operator override' framing, but it does not add substantial new meaning for `name` or `session` beyond what the schema provides.

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 explicitly identifies a specific operation, 'Release a session lease,' and distinguishes it from sibling lease-related tools by covering both the normal token-based release and the force override. This makes it clear that `session_release` is about releasing a lease rather than creating or inspecting one.

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 clear mechanics for how to perform the release but does not explicitly state when to use it versus alternatives like `session_close` or `session_lease`, nor when not to use `force=true`. The intended usage is mostly implied: release the lease when done with the session and only use force as an operator override.

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

session_switchC

Alias for session_use.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSession name.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

C2/5.0
Behavior1/5

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

With no annotations available, the description carries the full burden of disclosing behavior, but it does not. It only states that it is an alias, without explaining side effects, state changes, permissions, or return behavior. The description adds no behavioral information beyond the very existence of the alias.

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 concise effective copy. The single sentence 'Alias for session_use' avoids all relevant information about what the tool does or when to use it. It is not a case where every word earns its place; it is a case where vital content is missing.

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?

Considering that the tool has no output schema and three parameters are fully covered, the remaining gap is the purpose and behavior. The description is entirely dependent on the agent knowing 'session_use', so the agent cannot decide to call this tool almost nothing is conveyed about its role. This is incomplete for a tool in a larger session-management family.

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

Parameters3/5

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

Schema description coverage is 100%, so each parameter already has its own meaning in the schema. The description does not add or clarify parameter semantics, but it also does not need to because the schema fully documents them. Baseline 3 applies as the description adds no value over 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 'Alias for session_use' does not state what the tool does itself; it merely points to another tool. It lacks a specific verb and resource of its own, relying on the agent to already know session_use. This is not a tautology, but it is a vague cross-reference rather than a self-contained purpose statement.

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 'session_use' or other session-related tools. The description provides no context about conditions that favor this alias over the primary tool. This leaves the agent to guess which one to invoke.

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

session_useB

Set the active session (persisted to active-session file).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSession name.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It reveals that the change is persisted to a file, which is useful context. However, it does not mention side effects, whether the operation overwrites an existing session, or how it interacts with leases. For a state-changing tool, this is minimal but not misleading.

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 core action ('Set the active session') and includes the key persistence note. Every word earns its place with no fluff or repetition.

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 that changes persistent state and has multiple related siblings, the description is underspecified. It does not explain what happens after setting the session, potential return values, or error conditions. The schema covers parameter details, but the overall behavior and selection context are missing, leaving an agent without enough information to confidently invoke the tool.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already provides meaningful descriptions for all parameters, including the note about using a unique session name on a shared daemon. The tool description adds nothing about parameters beyond what the schema covers, so the baseline of 3 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 states a specific verb and resource ('Set the active session') and adds the persistence detail. However, it does not distinguish it from the sibling tool 'session_switch', which also deals with session switching. The agent might be unsure which one to pick based solely on this 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?

The description provides no guidance on when to use this tool versus alternatives like session_switch or session_new. It does not mention any prerequisites, conditions, or exclusion criteria. An agent receives no help in choosing between session_use and its closely related siblings.

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

set_log_verbsA

Toggle the daemon's per-verb DEBUG audit log at runtime. Useful for non-trivial runs where you want a full call trail; the toggle's response returns the daemon-log path to tail.

ParametersJSON Schema
NameRequiredDescriptionDefault
onYesTrue to enable, false to disable.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that the toggle is at runtime and that the response returns the daemon-log path to tail, which is useful. However, it does not explicitly mention that the operation modifies daemon state (beyond 'toggle'), nor any side effects like performance impact or persistence. It is functional but not deeply transparent about behavioral consequences.

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

Conciseness5/5

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

The description is two sentences, front-loading the core purpose first, then a use case and response hint. Every clause adds value; there is no fluff or repetition of schema info.

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 tool with one required boolean parameter and optional session/lease, the description explains the purpose, when to use it, and what the response will include (daemon-log path). It does not detail return structure or error cases, but given the output schema is absent and the tool is simple, this is sufficiently complete. A minor gap is not mentioning the effect of the 'lease' parameter, but the schema covers that.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters (on, lease, session) with their semantics. The description adds no parameter-specific detail beyond implying the 'on' flag controls the toggle. Thus baseline 3 applies; the description does not need to compensate.

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 toggles the daemon's per-verb DEBUG audit log at runtime – a specific verb (toggle) on a specific resource (daemon's per-verb DEBUG audit log). It also mentions a use case ('useful for non-trivial runs'), which helps distinguish it from unrelated siblings like humanize_on or click. No sibling covers logging, so it stands apart.

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

Usage Guidelines4/5

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

The description provides a clear usage context: 'Useful for non-trivial runs where you want a full call trail.' This tells when to use the tool. It doesn't explicitly state when not to use it or name alternatives, but given the unique purpose among siblings, that is less critical. The guidance is adequate though not exhaustive.

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

startB

Start a browser session (cold-launch real Chrome).

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
backendNoStealth backend: patchright (default) | nodriver | auto. nodriver needs `pip install vibatchium[nodriver]`.
profileNoPersistent profile dir (default: cache dir).
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.
headlessNoHeadless mode — the MCP default. UA is de-Headless'd automatically; headed clears residual GPU/screen tells and is worth a retry on hard walls.
ephemeralNoDelete this session's profile dir on close — for one-shot work that shouldn't leave login state on disk. Prevents profile bloat from per-run sessions.

TDQS

B3.3/5.0
Behavior2/5

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

Annotations are absent, so the description carries the full burden of behavioral disclosure. It states 'cold-launch real Chrome' which indicates a real process launch, but it does not disclose side effects like profile directory creation, resource usage, or what happens if a session already exists. For a mutation tool with no annotation support, this is a significant gap.

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

Conciseness5/5

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

The description is a single, concise sentence that captures the core purpose without any extraneous content. It is front-loaded with the primary action and efficiently conveys the essence of the 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 start operation, the description is adequate but lacks explicit details about session conflict handling, return values, or error conditions. Given there is no output schema, the description could benefit from mentioning what happens if a session already exists or how to confirm success. It meets the minimum bar but leaves gaps.

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

Parameters3/5

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

Schema description coverage is 100% across all 6 parameters, each with detailed descriptions. The tool description itself adds no additional parameter semantics beyond the schema, so the baseline of 3 is appropriate. The description does not need to duplicate schema information.

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: 'Start a browser session' and adds specificity with 'cold-launch real Chrome', which differentiates it from warm-start or in-process operations. It is not a tautology and gives a distinct operational profile that separates it from sibling tools like session_new.

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 session_new or session_use. The description implies this is the entry point to launch a browser, but it does not explicitly state when it should be called, when it shouldn't, or mention available alternatives. Only implied context exists.

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

statusB
Read-only

Daemon + session status.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

B3.2/5.0
Behavior3/5

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

The readOnlyHint annotation already signals safety, and the description confirms the resource scope (daemon + session) but adds little else. It doesn't disclose what the status output includes, whether it reflects lease states, or any side effects (though none expected). This is minimal but not contradictory.

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—a single noun phrase. It's front-loaded and contains no filler. While it's under-specified, it's not verbose. It earns a 4 for efficiency, though it could be slightly more descriptive.

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 status tool with no output schema, the description is adequate but incomplete. It doesn't state what information is returned (e.g., daemon health, session state), nor does it mention behavior with leased sessions. Given the tool's simplicity, this is a minimal gap, so a 3 is fair.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters (lease and session) are fully documented in the schema. The description adds no parameter detail, leaving the schema to carry the semantics. Baseline 3 is appropriate since the schema does the work.

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 (daemon and session) and the operation (status). It's distinct from sibling tools like start/stop which are actions, and status is the only one in its group. However, it doesn't elaborate on what 'status' includes, 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 given on when to use this tool versus alternatives. The description doesn't mention when a status check is appropriate, nor does it contrast with other tools. An agent must infer that status is for checking daemon/session state, but there's no explicit instruction.

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

stopB
Destructive

Stop the browser session.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

B3.1/5.0
Behavior3/5

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

The annotations already flag destructiveHint=true, so the destructive nature is known. The description adds a small amount of context by specifying the affected target, the browser session, but does not disclose other behavioral consequences such as whether page state is lost or whether the stop is reversible.

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, direct sentence with no filler or redundancy. It is concise and gets straight to the point, though the brevity leaves other dimensions underspecified.

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 is too terse to be fully complete for a state-changing operation. It does not explain what 'stop' implies for the browser session, nor how it differs from close-oriented siblings, and it relies entirely on the annotations and schema for 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?

Schema description coverage is 100%, and the input schema already fully explains the optional 'lease' and 'session' parameters, including guidance about unique names for multi-agent environments. The description itself adds no additional parameter detail, so it earns the schema-covered baseline.

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 clear action, 'Stop', and a specific resource, 'browser session', so an agent can understand the basic operation. It does not distinguish it from siblings like session_close or session_close_all, but for a simple top-level stop command it is sufficiently 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?

The description provides no guidance about when to use this tool versus sibling tools like session_close, session_close_all, or clean. It does not mention whether 'stop' is the right choice for ending the entire browser versus closing a tab or session, so an agent has to infer the usage.

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

textA
Read-only

Get inner text (whole page or a target — @eN, @text:Foo, @label:Email, CSS, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
targetNoOptional @eN / @text: / @label: / CSS.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

A4/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, and the description is consistent with them. It adds useful behavioral detail by explaining that it can operate on the whole page or a specific target and enumerates supported target specifiers, which helps the agent understand scope.

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 core operation, the two main usage scopes, and the target syntax variants. There is no tax and no filler; every element earns its place.

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 getter with zero required parameters and no output schema, the description covers the essential user-visible behavior. The schema documents session and lease, and the description covers target. It is complete 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.

Parameters3/5

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

Schema coverage is 100% and already documents each parameter. The description largely repeats the target parameter's format with slightly more examples ('@text:Foo', '@label:Email', 'etc.'), but adds no fundamentally new semantics for session or lease.

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 ('Get inner text') and explicitly lists accepted target formats. This distinguishes it from siblings like html or title, and the 'whole page' alternative adds scope. An agent can tell the purpose immediately.

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 states what the tool does and how targets are specified but gives no guidance about when to prefer this tool over alternatives such as 'content' or 'extract'. There are no exclusions or explicit routing to siblings, leaving the choice to inference.

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

titleA

Get current page title.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, but it only states the action. It implies a read-only, non-destructive operation but does not explicitly confirm it, nor does it mention edge cases like no loaded page or frame context. For a trivial getter, 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?

A single, front-loaded sentence with zero filler. Every word earns its place, and the content is immediately actionable.

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 and the absence of an output schema, the description is sufficiently complete. An agent knows it retrieves the current page's title without needing additional detail. The optional session/lease parameters are covered in the schema, so no gaps remain 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?

The schema covers both parameters (lease and session) with detailed descriptions, achieving 100% coverage. The tool description adds no parameter information, but the schema already does the heavy lifting, so a baseline of 3 is appropriate.

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

Purpose5/5

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

The description 'Get current page title' is a precise verb+resource statement. It clearly tells the agent exactly what the tool does and distinguishes it from siblings like 'url' (URL) and 'text' (page text). No ambiguity.

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-evident in the context of browser automation, making the intended use obvious without explicit guidance. While it doesn't name alternatives or exclusions, the sibling set and the phrase 'current page' provide clear context for when to invoke it.

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

typeB

Type text (key-by-key) into an element.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to type.
indexNoType into the Nth match (0-based, from `candidates`).
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
targetYes@eN ref or selector.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.
delay_msNoPer-keystroke delay (ms).

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations provided, the description must carry behavioral context. 'Key-by-key' adds meaningful insight into the mechanics of the action, but it does not disclose other important traits such as mutability, prerequisites, focus/visibility requirements, failure behavior, or permission needs. It is more than a tautology but still 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, front-loaded sentence: 'Type text (key-by-key) into an element.' It is direct and wastes no words, while still adding the meaningful 'key-by-key' 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?

Given the tool has six parameters, no output schema, and no annotations, the description is minimally adequate but lacks guidance on when to prefer it over siblings or how it relates to other keystroke tools like 'fill' or 'press'. It is complete enough for a simple call but not fully contextual.

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

Parameters3/5

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

Schema description coverage is 100%, so all parameters already have semantic explanations. The description does not add any extra detail about parameters beyond the schema, which matches the baseline for full schema coverage. It does not harm, but it also doesn't add 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 clearly states the verb 'type' and the resource 'text into an element,' and adds the specific behavior 'key-by-key,' which distinguishes it from a bulk-fill operation. It does not explicitly name a different sibling, but the phrasing signals the unique behavior among tools like 'fill' or 'keys'.

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 such as 'fill,' 'press,' 'keys,' or 'click.' It neither states preferred use cases, exclusions, nor alternative selection, leaving the agent to infer based on tool names alone.

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

uncheckB

Uncheck a checkbox.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
targetYes@eN or selector.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states only 'uncheck a checkbox' with no indication of idempotency, error behavior for non-checkbox elements, or side effects. This is a significant gap for a mutating action, leaving the agent without expectations about state changes or failure modes.

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

Conciseness5/5

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

The description is a single, clear sentence with no superfluous words. It is front-loaded with the exact action and object, achieving maximum clarity per word. This is an example of effective conciseness, not under-specification.

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 the schema covers parameters fully. However, there is no output schema and no behavioral detail about the action's effects or prerequisites. For a mutating action on UI elements, an agent would benefit from knowing idempotency or typical use cases. The description is adequate for a simple action but leaves some gap regarding expected outcomes.

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

Parameters3/5

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

The input schema provides full coverage (100%) with descriptions for all parameters: target, lease, and session. The description itself adds nothing beyond the schema. Since the schema already documents each parameter, a baseline of 3 is appropriate; the description does not enhance the 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 description clearly states the verb 'uncheck' and the resource 'a checkbox', making the core action unambiguous. It distinguishes itself from the sibling 'check' by inversion, though it does not explicitly name the sibling or explain the difference. The name itself conveys the inverse operation, so an agent can infer 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 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 'check' or 'click'. No mention of preconditions, such as whether the element must already be checked, or scenarios where this is appropriate. An agent is left to infer usage solely from the verb, which is minimal guidance.

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

uploadC

Set files on an input[type=file] target.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYes
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
targetYes@eN or selector.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing behavior, but it only says 'set files' — implying action on a file input. It does not disclose whether this triggers file chooser events, whether paths or base64 are expected, whether it waits, or any side effects. There is no contradiction with annotations because none were provided.

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

Conciseness4/5

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

The description is a single short sentence, front-loaded with the verb and target, containing no filler word. It earns its place for the information it does provide, though it could have carried more behavioral or parameter detail without hurting 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?

The description plus schema are sufficient to understand the basic call: set a list of file strings on a selector-targeted file input. However, there is no output schema and no annotations, leaving important practical details unseen, such as how file strings are interpreted and whether multi-file support is available. For a 4-parameter tool, this feels adequate but with a visible gap.

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

Parameters3/5

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

Schema coverage is 75%, so the baseline is 3: the description mostly reinforces the schema's target and files parameters but adds little meaning. The 'files' parameter remains ambiguous in both the schema and description — it does not clarify whether strings are paths, URLs, or base64 data. Thus the description does not fill the semantic 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 states a specific action (setting files) on a specific resource (an input[type=file]), which clearly differentiates it from siblings like click, fill, and type that act on other element types. It is still short of 5 because it does not explicitly name the sibling alternatives it should be chosen over.

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, when not to, or how it relates to the file-input-related capabilities of siblings like fill or type. The usage context must be inferred from the tool name and schema, so the guidance is effectively absent.

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

urlA
Read-only

Get current URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

A3.8/5.0
Behavior3/5

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

The readOnlyHint annotation already communicates that this is a read-only operation. The description adds no further behavioral details, such as side effects or navigation behavior, but it does not contradict 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.

Conciseness5/5

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

The description is a single, concise sentence with no extraneous words. It is front-loaded and immediately clear.

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 fully documented optional parameters and no output schema, the description is sufficient. It lacks an explicit return-type statement but the intended result is obvious from the name and description.

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

Parameters3/5

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

The input schema covers both parameters with detailed descriptions, so the description does not need to add parameter semantics. The description itself does not mention the optional 'lease' and 'session' parameters, but schema coverage is complete.

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 'Get current URL' uses a clear verb and resource, directly stating the tool's function. It distinguishes itself from sibling tools like 'title' and 'text' by explicitly naming the URL as the target.

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 when the current page URL is needed, but it does not explicitly contrast with alternatives such as 'title' or 'html'. There is no stated when-to-use or when-not-to-use guidance beyond the simple purpose.

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

valueB

Get the current value of an input/textarea/select.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
targetYes@eN / @text: / @label: / CSS.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description must carry behavioral disclosure. It implies a read-only operation ('Get') but does not explicitly state that it mutates nothing or describe edge cases (e.g., unsupported elements). It adds minimal transparency beyond the obvious action.

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 no filler. It front-loads the primary action and resource. It is appropriately concise for a simple tool, though it sacrifices instructive 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?

For a tool with three parameters, no output schema, and no annotations, the description is too sparse. It does not explain the return value, when to use it vs. siblings like 'fill' or 'text', or any behavioral caveats. An agent would need to infer too much from the schema alone.

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

Parameters3/5

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

The input schema provides full descriptions for all three parameters (target, lease, session), including the session usage note. The tool description adds nothing beyond the schema, so the baseline of 3 applies.

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

Purpose5/5

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

The description states a specific verb ('Get') and resource ('current value of an input/textarea/select'), clearly distinguishing it from sibling tools like 'text' (page text) or 'attr' (attribute). The scope is unambiguous and immediately actionable.

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 exclusions, prerequisites, or context where 'value' is preferred over 'text' or 'attr'. The description does not help an agent decide which sibling to call.

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

verify_urlA

Fast pre-check (DNS, optional HTTP HEAD) for a URL before go commits to a 30s navigation timeout. Catches typos and dead domains in ~50ms instead of 30s.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesTarget URL to verify.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.
check_httpNoAlso do HTTP HEAD (default false).
timeout_msNoPer-stage timeout in ms.

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the transparency burden. It discloses the mechanics (DNS, optional HTTP HEAD) and speed (≈50ms), but it does not describe the return value, failure behavior (e.g., does an invalid URL throw or return a flag), or whether there are any side effects beyond the network checks.

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 compact two-sentence summary with no filler. It front-loads the purpose and immediately offers the most important usage direction, saving tokens while conveying the essential value.

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 with one required parameter, but there is no output schema and the description does not specify what the result indicates (e.g., success/failure status) or how the agent should respond to an invalid URL. This is a significant gap for an agent to correctly interpret the tool's result.

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 covers all parameters at 100%, so the baseline is 3. The description mirrors the check_http behavior but does not add new meaning for individual parameters beyond what the schema states; it only contextualizes the timeout by comparing to the 30s navigation.

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 action: a fast pre-check for a URL, specifically performing DNS and optional HTTP HEAD, with the goal of catching typos and dead domains. It also explicitly frames it as a precursor to 'go', which distinguishes it from the navigating tool.

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

Usage Guidelines4/5

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

The description provides clear context: use this before 'go' to avoid a 30s navigation timeout. It implies the tool is for early validation, though it does not explicitly state when not to use it or name alternatives beyond 'go'.

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

vision_budgetC

Report today + lifetime vision spend vs VIBATCHIUM_VISION_MAX_*_USD caps. reset='today'|'lifetime'|'all' clears the spend log.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
resetNotoday | lifetime | all
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the burden of disclosing side effects. It states that reset clears the spend log, which is a side effect, but it does not mention other behaviors such as whether the report modifies any state, requires permissions, or has rate limits. The side-effect disclosure is incomplete.

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

Conciseness4/5

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

The description is concise, comprising two sentences that convey the main purpose and the reset behavior. It is well-structured and avoids unnecessary detail, though it could be slightly more organized by separating the report and reset actions.

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 simple report tool, but it lacks information about the output format or content of the report (no output schema is provided). It also does not mention error conditions or edge cases, such as what happens if no session is found or if the reset value is invalid. This leaves some gaps for an agent.

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

Parameters3/5

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

The schema descriptions already cover all three parameters (lease, reset, session) with details. The tool description adds a small clarification about reset's effect (clears the spend log), but it doesn't enhance understanding of the other parameters. Given 100% schema coverage, the baseline is 3, and the added info is marginal.

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 function: reporting today and lifetime vision spend against caps. The verb 'Report' and resource 'vision spend vs caps' are specific enough to distinguish it from other vision-related tools, though it could be more explicit about its role in the overall workflow.

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 guidance on when to use this tool instead of alternatives like vision_stats or vision_clear_cache. It mentions the reset parameter for clearing the log but offers no context about typical use cases or scenarios where this tool is preferred.

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

vision_clear_cacheA

Drop the on-disk vision coords cache.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden and contributes a regeneration hint by calling the resource a 'cache' (implying it can be rebuilt). It also scopes the effect to 'on-disk', but it never says whether active sessions are affected, whether the lease/session params matter, or what the actual side effects are.

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 short imperative sentence with no wasted words. The core verb and object are 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?

For a simple mutation tool with an optional session and a lease mechanism, the description covers the core purpose but leaves the invocation context unnamed: it does not say when to clear the cache, how it interacts with session/lease params, or what the operational impact is. Adequate but gappy.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3 even though the description mentions no parameters. The description adds nothing about the optional 'lease' or 'session' parameters, but the schema already documents them 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 'Drop the on-disk vision coords cache' uses a specific verb ('Drop') and a precise resource ('on-disk vision coords cache'). It differentiates this tool from the many vision-related siblings (vision_click, vision_find, vision_stats, vision_budget) because none of them concern clearing a cache.

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, why the cache might need clearing, or when to use it versus any alternative. The description is a bare imperative with no situational context, so an agent must infer when to call it.

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

vision_clickA

Find a UI element by verbal description (via Claude vision) and click it. Fallback for canvas/Flutter/Unity pages where AX-tree fails. Requires [llm] extra.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
buttonNoleft | right | middle (default left).
intentYesVerbal description of the element.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.
max_per_minuteNoRate limit.
min_confidenceNoMinimum confidence (0..1).

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description must carry the behavioral burden. It discloses the LLM dependency and the fallback scenario, but does not explain what happens on failure (e.g., if the element isn't found or confidence is low), nor does it note that clicking is a mutating action. It provides adequate but not rich 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 two sentences with no wasted words. It front-loads the core purpose, then adds fallback context and a requirement. Every sentence earns its place, making it easy to scan.

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 lacks mention of return values or behavior when the click fails or confidence is below threshold, which an agent might need to know. Since there is no output schema, the description should cover these aspects. It is adequate for a simple click tool but leaves some gaps.

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

Parameters3/5

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

The input schema has 100% coverage with detailed descriptions for all parameters. The tool description does not add extra meaning beyond what the schema provides—it only restates the 'intent' parameter's purpose. Baseline 3 applies because the schema does the heavy lifting.

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 (find and click) and the resource (UI element), and specifies the mechanism (via Claude vision). It distinguishes itself from siblings like 'click' by noting it's a fallback for AX-tree failures, making it specific and non-confusable.

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

Usage Guidelines4/5

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

The description explicitly mentions it is a fallback for canvas/Flutter/Unity pages where the AX-tree fails, which gives clear context for when to use it. However, it does not explicitly name alternatives like 'click' for normal pages, so the exclusion 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.

vision_findA
Read-only

Return coords + confidence for a described element (no click).

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
intentYesDescription.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.
min_confidenceNoMinimum confidence.

TDQS

A3.8/5.0
Behavior3/5

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

The readOnlyHint annotation already covers the read-only nature. The description adds the 'no click' detail and mentions it returns coords+confidence, but does not discuss error handling, edge cases, or response format. With annotations present, 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?

The description is a single sentence that is front-loaded with the key output (coords + confidence) and the critical caveat (no click). Every word earns its place; no redundancy.

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

Completeness4/5

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

For a simple locate-only tool with no output schema, the description provides enough to understand the function and output (coords + confidence). However, it does not specify behavior when the element is not found or clarify the expected detail level of the 'intent' description. These are minor gaps given the tool's simplicity.

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

Parameters3/5

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

Schema description coverage is 100%, so all parameters are described in the schema. The tool description adds no extra meaning beyond what the schema already provides, such as clarifying the 'intent' parameter format. Baseline 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb ('Return'), a clear resource (coords + confidence for a described element), and explicitly notes 'no click', distinguishing it from vision_click. 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 'no click' phrasing implies the tool is for locating elements without interaction, but it does not explicitly name alternatives like vision_click or provide a when-to-use rule. Usage context is implied, not explicitly stated.

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

vision_statsB

Return cumulative vision API usage (calls, cache_hits, tokens, cost_usd) for session.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.

TDQS

B3.4/5.0
Behavior3/5

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

The description carries the full behavioral burden because no annotations are provided, yet it only states it 'Return(s) cumulative... usage.' The word 'Return' implies a non-destructive, read-only action, and 'cumulative' implies an aggregate view, but the description does not explicitly say the call consumes no vision API budget, whether results reset per session, or the shape of the returned data. This is adequate but thin.

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 names the resource ('vision API usage'), the aggregation ('cumulative'), and the exact fields. There is no fluff or repetitive text, and the sentence is highly scannable.

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

Completeness4/5

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

Given the simple shape (0 required parameters, no output schema), the description covers the semantics of the resource and the fields returned. A slightly stronger context would be an explicit note that this is about the current session and correlates with vision_budget, but the existing session hint in the schema plus the description keeps it mostly complete.

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

Parameters3/5

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

Schema coverage is 100%, and both 'session' and 'lease' have rich descriptions already (session name guidance and unique-name advice, lease token threading note). The description adds only the session-scoped value of the returned fields and does not further explain parameters, so it stays the baseline 3 with schema doing the heavy lifting.

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 and resource ('Return cumulative vision API usage') and lists the exact fields returned (calls, cache_hits, tokens, cost_usd) plus the session scope. This clearly separates it from vision_click/vision_find/vision_type, but it never mentions the closest sibling, vision_budget, so it doesn't fully differentiate against the budget/usage related tool.

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 a sibling such as vision_budget, vision_clear_cache, or vision_find. An agent gets no explicit 'use when' or 'use instead of' hint beyond the bare role of returning usage stats, leaving the selection to inference.

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

vision_typeB

vision_click the described field, then type the given text.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to type.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
intentYesDescription of the input.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.
min_confidenceNo

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the transparency burden; it discloses the two main side effects (clicking and typing) but does not mention focus requirements, whether text replaces or appends, or failure behavior.

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 concise sentence with action and object; front-loaded enough. Slight awkwardness from 'vision_click' but no padding.

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 two required parameters and overall behavior, but lacks context about optional parameters (e.g., min_confidence), expected output, or when the visual field resolution may fail. Adequate but not complete.

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

Parameters3/5

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

Schema descriptions cover 80% of parameters, but the critical 'intent' field is only described as 'Description of the input,' which is circular and does not clarify that it is the visual description of the field to click. 'text' is self-explanatory; 'min_confidence' has no 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 states a clear combined action: click a field identified by description, then type provided text. It distinguishes from vision_click (click only) and type (type into already focused element), though the phrase 'vision_click' is awkward and could be clearer.

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 prefer this tool over alternatives like vision_click, type, or fill. The action is described, but conditions, prerequisites, and exclusions are omitted.

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

wait_fnB

Wait until a JS expression returns truthy.

ParametersJSON Schema
NameRequiredDescriptionDefault
exprYesJS expression.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.
timeout_msNoTimeout in ms.

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It only states the polling condition, but does not specify timeout behavior (e.g., whether it throws, returns false, or blocks indefinitely), return value, or side effects. This is a critical gap for a blocking operation like a wait.

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, direct sentence with no filler or redundancy. It is front-loaded with the core action and condition, and every word contributes to meaning. This is appropriately concise for the tool's 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?

With no output schema and no annotations, the description fails to explain return values, timeout semantics, or the session interaction implied by the session parameter. For a tool that can block for up to 30 seconds, missing timeout behavior and return type makes it incomplete 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?

Schema coverage is 100% for parameters, giving a baseline of 3. The description adds the critical clarification that the expression must 'return truthy', which is not explicit in the schema's 'JS expression' description. This additional semantic depth elevates the score above baseline.

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

Purpose5/5

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

The description 'Wait until a JS expression returns truthy' states a clear verb (wait), resource (JS expression), and condition (returns truthy). It distinguishes itself from sibling wait tools like wait_selector and wait_url by focusing specifically on an arbitrary JS expression, making its 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?

The description provides no guidance on when to use this tool versus sibling waits (e.g., wait_selector, wait_url, wait_load). There is no mention of custom conditions or exclusions, leaving the agent to infer that this is for JS expressions, but no explicit when/when-not guidance is given.

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

wait_loadB

Wait for a page load state (load/domcontentloaded/networkidle).

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
stateNoload|domcontentloaded|networkidle
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.
timeout_msNoTimeout in ms.

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description should carry the full behavioral disclosure burden. It only names the supported load-state values and does not disclose what happens on timeout, whether the call can fail, what the return value means, or if the wait is event-driven or polling-based.

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 directly names the operation, the resource, and the accepted values, earning its place without redundant 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 wait utility, the description is minimally sufficient, but with no annotations and no output schema, it leaves return semantics and timeout-failure behavior ambiguous. An agent can invoke the tool, but it cannot know what success or timeout will look like from the provided definition.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already explains state, session, lease, and timeout_ms in detail, including the unique-session guidance. The description adds no parameter meaning beyond the schema, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description names a specific operation (wait) and resource (page load state) and lists the three accepted states. This makes it easy to distinguish from sibling wait tools such as wait_selector, wait_url, and wait_fn, which target different conditions.

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 about when to use this tool versus the many wait-related siblings, nor does it mention typical workflows like navigating before waiting. It does not provide examples, exclusions, or routing to alternatives such as wait_selector or wait_url.

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

wait_refC

Wait until an @eN ref reaches a state.

ParametersJSON Schema
NameRequiredDescriptionDefault
refYes@eN ref from the last snapshot.
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
stateNovisible|hidden|attached|detached
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.
timeout_msNoTimeout in ms.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'wait... reaches a state' and does not disclose that the call blocks, how long it may poll, what happens on timeout, whether errors are raised, or whether the lease/session context affects behavior. A mutation/blocking tool without annotation coverage needs substantially more.

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 sentence is short, clear, and waste-free, containing the verb, the target resource, and the expected outcome. It would score higher if the same economy had been used to include key behavioral caveats, but as pure conciseness, it is well-formed.

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 five parameters, no annotations, and no output schema, so the description must carry contextual weight. It does not mention what happens when the state is never reached, what return value indicates the outcome, how polling works, or when presenting a lease is relevant. Given the timeout and session parameters, an agent cannot fully reason about the call from the description alone.

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

Parameters3/5

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

Schema description coverage is 100%, and every parameter (ref, lease, state, session, timeout_ms) already has a meaningful schema-level description. The prose adds no parameter semantics beyond saying '@eN ref' and 'reaches a state,' which is baseline for fully documented schemas.

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 concrete operation: wait until an @eN ref reaches a state. This is enough to distinguish it from sibling waiters like wait_selector, wait_url, and wait_load at a glance, and it correctly points at the ref-based workflow. It stops short of a 5 because it does not name the possible states or directly contrast itself with is_state, which checks the same kind of condition.

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 such as is_state, wait_selector, or wait_url. There is no mention of prerequisites (e.g., last snapshot), no suggested wait strategy, and no indication of when a ref-based wait is preferable. The description leaves all usage decisions to the agent.

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

wait_selectorB

Wait until a CSS selector reaches a state.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
stateNovisible|hidden|attached|detached
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.
selectorYesCSS selector.
timeout_msNoTimeout in ms.

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavior such as timeout handling, return values, or error conditions, but it only states the action. It does not mention what happens when the state is not reached within the timeout, whether it throws, or what it returns, leaving the agent to guess.

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 front-loads the action and avoids redundancy with the schema, making it efficient for an agent 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?

While the schema fully documents parameters, the description lacks context on expected outcomes (e.g., does it return a boolean, does it throw on timeout) and assumes the agent knows the semantics of the state values. For a wait tool with several parameters and no output schema, this is a noticeable gap, but it is not dangerously incomplete.

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

Parameters3/5

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

The input schema already provides descriptions for all five parameters, including state values, session, lease, timeout, and selector, so the description adds no additional parameter guidance. Per calibration, with 100% schema coverage, a baseline of 3 is appropriate, and the description does not enhance beyond that.

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 clear verb-resource pair: waiting for a CSS selector to reach a state. This distinguishes it from sibling wait_* tools (wait_url, wait_load, wait_fn) by specifying the target is a CSS selector's state. The single sentence is precise 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?

The description provides no guidance on when to use this tool versus the many other wait_* alternatives, nor does it mention scenarios where it is preferred or disallowed. The agent must infer usage purely from the name and schema, which is insufficient for choosing correctly among siblings.

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

wait_urlB

Wait until the URL matches a glob/regex.

ParametersJSON Schema
NameRequiredDescriptionDefault
leaseNoOptional lease token to present if the target session is leased (0.7.0). Threaded per-call; never read from the server's env.
patternYesURL pattern.
sessionNoOptional session name to target (omit for the shared 'default'). On a daemon shared with other agents, pass a UNIQUE name for stateful multi-step work (go→click→fill) so you don't collide on 'default'.
timeout_msNoTimeout in ms.

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It only says 'Wait until the URL matches a glob/regex' but does not mention timeout behavior (though the schema has a timeout_ms), what happens on timeout, whether it polls continuously, what it returns on success/failure, or how the pattern is interpreted (glob vs regex). This is a significant gap for a blocking tool.

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

Conciseness5/5

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

The description is a single sentence with no filler. It front-loads the verb and resource, making it instantly readable. Every word earns its place, achieving excellent 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?

The tool has 4 parameters, no output schema, and no annotations. The description is far too brief to be complete. It omits return behavior, failure handling, pattern syntax specifics, and how it interacts with sessions/leases. An agent would need to infer or test to use it correctly, which is inadequate 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.

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description adds a small clarification that 'pattern' is a glob/regex, which is not fully captured in the schema's vague 'URL pattern'. However, it does not elaborate on lease, session, or timeout parameters, which the schema already describes adequately. Overall, the description provides minimal extra value beyond the schema.

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

Purpose5/5

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

The description states a clear verb 'Wait' and a specific resource 'URL' with a condition 'matches a glob/regex'. This distinguishes it from sibling wait tools like wait_selector (for selectors), wait_load (for load events), and wait_fn (for custom functions), 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 provided on when to use this tool versus alternatives. For example, it does not mention that wait_selector should be used for element presence or that wait_load is for page load events. The description simply states what it does without any when/when-not context.

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. 86 tool updatesv0.1.0
    • First observedact
    • First observedattach
    • First observedattr
    • First observedback
    • First observedcandidates
    • First observedcheck
    • First observedclean
    • First observedclick
    • First observedcontent
    • First observedcount
    • First observeddblclick
    • First observeddetect_forms
    • First observeddiff_map
    • First observeddismiss_banners
    • First observedeval
    • First observedexpect
    • First observedexplore
    • First observedextract
    • First observedextract_fields
    • First observedfill
    • First observedfind
    • First observedfocus
    • First observedforward
    • First observedframe
    • First observedframes
    • First observedgo
    • First observedhighlight
    • First observedhover
    • First observedhtml
    • First observedhumanize_off
    • First observedhumanize_on
    • First observedhumanize_status
    • First observedis_state
    • First observedkeys
    • First observedmap
    • First observedmap_compact
    • First observedmouse
    • First observedobserve
    • First observedpage_close
    • First observedpage_new
    • First observedpage_switch
    • First observedpages
    • First observedpdf
    • First observedpress
    • First observedprofile_delete
    • First observedprofile_list
    • First observedprofile_new
    • First observedprofile_use
    • First observedreload
    • First observedscreenshot
    • First observedscreenshot_annotate
    • First observedscroll
    • First observedselect
    • First observedsession_close
    • First observedsession_close_all
    • First observedsession_delete
    • First observedsession_lease
    • First observedsession_lease_info
    • First observedsession_list
    • First observedsession_new
    • First observedsession_release
    • First observedsession_switch
    • First observedsession_use
    • First observedset_log_verbs
    • First observedstart
    • First observedstatus
    • First observedstop
    • First observedtext
    • First observedtitle
    • First observedtype
    • First observeduncheck
    • First observedupload
    • First observedurl
    • First observedvalue
    • First observedverify_url
    • First observedvision_budget
    • First observedvision_clear_cache
    • First observedvision_click
    • First observedvision_find
    • First observedvision_stats
    • First observedvision_type
    • First observedwait_fn
    • First observedwait_load
    • First observedwait_ref
    • First observedwait_selector
    • First observedwait_url

TDQS

C2.7/5.0

Scored across 86 tools

Disambiguation3/5

Most tools target distinct browser actions, but there are several exact aliases (session_use/session_switch, profile_*/session_*) and overlapping locator/interaction families (find/map/candidates, text/html/extract, click/vision_click) that create real selection ambiguity. The descriptions help, but the boundaries between waits, actions, and extraction modes are not always obvious.

Naming Consistency3/5

The set predominantly uses imperative snake_case verbs, but it mixes bare noun/state names like url, title, text, html, and status with verb_noun composites like verify_url, extract_fields, wait_selector, and set_log_verbs. The alias families (profile_*, session_*, vision_*) are internally consistent, but the overall pattern is uneven.

Tool Count1/5

86 tools is an extreme count by any agent-facing standard, far beyond the 50+ threshold for extreme mismatch. The count is inflated by aliases, near-duplicate action variants, and overlapping wait/vision/locator families that could be consolidated without losing capability.

Completeness4/5

The browser automation lifecycle is very thoroughly covered: sessions, navigation, extraction, interaction, waits, frames, tabs, screenshots, forms, and vision fallbacks are all present. Minor gaps exist around standard browser primitives like cookie/localStorage management and network request interception, but they are non-fatal for the advertised stealth-scraping use case.

Maintenance

ActivityActive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    F
    maintenance
    An MCP server that provides LLMs with stealth browser automation capabilities via CloakBrowser to bypass bot detection services like Cloudflare and reCAPTCHA. It supports full page interaction, content extraction, and human-like behavior through 30 specialized tools.
    20
    40 PyPI
    13
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for Meshbrow that gives AI agents full browser automation capabilities with stealth anti-detection, enabling natural language control of browser sessions, data extraction, and multi-browser fleets.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Stealth Chrome MCP server for AI agents providing 77 tools, perfect bot detection scores, proxy pools, encrypted sessions, and live human handoff via Cloudflare tunnel.
    MIT