Skip to main content
Glama
escapeWu

chrome-agent-bridge

by escapeWu

Chrome Agent Bridge

Project overview

Chrome Agent Bridge connects MCP-compatible Agents to the user's existing Google Chrome session. It runs locally as a Chrome extension, Native Messaging host, and stdio MCP server; it does not launch a remote browser or send browser state through a hosted bridge.

The project provides:

  • semantic page snapshots and atomic click, fill, key, and select actions;

  • tab navigation, screenshots, and lifecycle monitoring;

  • sanitized network monitoring plus an explicit unrestricted Raw CDP channel;

  • script collection, debugging, source-map, performance, and opt-in deep-network analysis;

  • local JavaScript, binary, protocol, and WebAssembly analysis that does not require Chrome.

The user approves the unpacked extension once in Chrome. Local Agents then authenticate with a long-lived token stored under ~/.chrome-agent-bridge/. ChatGPT OAuth and the official ChatGPT Chrome extension are not required.

This is a clean-room, MIT-licensed implementation. It does not contain or redistribute OpenAI's proprietary Chrome extension, browser client, native host, or authentication code.

Related MCP server: antigravity-browser-bridge

Architecture

Agent → MCP server → authenticated loopback RPC → Native Messaging host
      → Chrome extension → tabs / scripting / screenshots / sanitized network tools / Raw CDP

The browser MCP surface has two levels. The default tools list, navigate, watch, snapshot, screenshot, act on semantic element refs, and monitor sanitized request lifecycle metadata. The explicit Raw CDP tools attach to one tab and forward arbitrary CDP methods, params, results, target sessions, and events without field sanitization. A sanitized network projection can reuse the same Raw attachment when an Agent needs Raw commands without exposing Raw network events to its context.

Version 0.8 also provides clean-room local JavaScript, binary, protocol, source-map, and WASM analysis plus high-level script, debugger, profiler, trace, and opt-in deep-network projections over the existing Raw connection. These additions require no proxy, second browser, privileged service, ADB, Frida, native reverse-engineering suite, WABT, or Binaryen. See the analysis tool catalog.

Raw CDP is equivalent to granting the local bearer token full developer control of an attached tab. Depending on the commands sent, it can execute JavaScript, read or modify page content, inspect cookies and storage, capture request or response bodies, intercept traffic, and control child targets. Do not expose the loopback service or token to another user or machine.

Reference projects and specifications

  • OpenClaw Browser plugin — informed the semantic snapshot → ref → act → snapshot contract, interactive-role coverage, and actionability checks. OpenClaw is MIT-licensed, but it is not bundled, forked, or required at runtime.

  • JSHookMCP — its public tool catalog was reviewed to identify useful analysis capabilities that could run without its browser, proxy, daemon, ADB, Frida, or native reverse-engineering services. The selected capabilities were independently reimplemented from public language and protocol specifications. JSHookMCP is AGPL-licensed; none of its source code is copied or bundled here.

  • Model Context Protocol TypeScript SDK — provides the MCP server transport and tool registration API used by the local Agent bridge.

  • Chrome Extensions and the Chrome DevTools Protocol — define the public browser, Native Messaging, debugger, page, network, runtime, and profiler contracts used by the implementation.

The locally installed production ChatGPT Chrome extension was used only to understand externally observable capability boundaries. It was not treated as source code or a reusable implementation. Detailed provenance and clean-room boundaries are recorded in docs/clean-room-browser-capabilities.md and THIRD_PARTY_NOTICES.md.

Requirements

  • Node.js 18 or newer

  • Google Chrome on macOS or Linux

  • An MCP-compatible agent

Windows native-host installation is not implemented in the initial release.

Install

For an Agent-executable checklist, MCP configuration, verification steps, upgrades, and recovery guidance, see Install Chrome Agent Bridge for an Agent.

Install the released extension ZIP

  1. Download chrome-agent-bridge-extension-vX.Y.Z.zip from GitHub Releases.

  2. Extract the ZIP to a permanent local directory.

  3. Open chrome://extensions, enable Developer mode, choose Load unpacked, and select the extracted directory.

The release manifest carries a public development key, so every unpacked release uses the stable extension ID hkedmoboloodflgcaidimhddljdnndcd. The ZIP is not directly installable: Chrome requires it to be extracted before Load unpacked.

Install the local Agent bridge

git clone https://github.com/escapeWu/chrome-agent-bridge.git
cd chrome-agent-bridge
npm ci
npm run install-host

Reload the extension on chrome://extensions. The extension and native host reconnect automatically. For a custom development build with a different ID, pass --extension-id ID explicitly.

Install the paired Agent Skill

Installing only the Extension ZIP and MCP server is incomplete for Agent use. Also install skills/chrome-agent-control so the Agent follows the required connection, tab-scoping, network-listening, Raw CDP, cleanup, and confirmation workflows.

The Codex plugin bundle installs the MCP registration and Skill together. When configuring mcp/server.mjs as a standalone MCP server, install the Skill separately. See the exact Agent checklist in docs/agent-installation.md.

Pairing token

Click the extension toolbar icon to open its local pairing window. The window shows a masked, long-lived authentication token with controls to reveal, copy, or renew it. Renew requires two clicks and invalidates the previous token immediately.

The token is generated by the native host and stored only in ~/.chrome-agent-bridge/auth.json with user-only permissions. It is not stored in Chrome Sync, the extension package, Git, or GitHub Releases. Local agents discover it automatically. A separately configured local agent can receive the copied value through CHROME_AGENT_BRIDGE_TOKEN.

Agent quick start

Agents can use this section as an installation and connection checklist:

  1. Verify Node.js 18+ and Google Chrome are installed.

  2. Run npm ci and npm run install-host in the repository root. The released extension ID is built in.

  3. Ask the user to download and extract the Extension ZIP, then load its extracted directory from chrome://extensions with Developer mode enabled. This is the only required user-visible approval step.

  4. Ask the user to reload Chrome Agent Bridge after source, manifest, or native-host installation changes.

  5. Add mcp/server.mjs to the Agent's MCP configuration using an absolute filesystem path, or install this repository as a Codex plugin. Copy the ready-to-use configuration from docs/agent-installation.md.

  6. Install and enable the paired chrome-agent-control Skill. Do not treat MCP configuration alone as a complete Agent installation.

  7. Call browser_status, then browser_list_tabs. Do not begin browser actions until the bridge reports connected.

For page interaction, take browser_snapshot, act once with browser_act using a returned ref and that snapshot's snapshotId, then take a new snapshot and verify. Refs are deliberately short-lived and invalidated after an action or navigation. A high-level click performs its full CDP mouse sequence atomically inside the extension; do not split mouseMoved, mousePressed, and mouseReleased across Raw MCP calls. For tab monitoring, call browser_watch_events with the previous cursor and, when useful, a specific tabId. Start sanitized request monitoring before the intended UI action, page through browser_network_poll, and always finish with browser_network_stop. When Raw commands and a safe network summary are both required, attach Raw with captureEvents=false and pass its session ID to browser_network_start as rawSessionId; this shares one Chrome debugger attachment. Do not fall back to Resource Timing or page-level fetch/XHR hooks merely because the page's performance buffer is full.

Raw and network sessions hold their tab under an idle lease (default 5 minutes, configurable per session with leaseTtlMs). Valid calls renew it, and in-flight commands or waiting long polls keep it. An expired, idle lease is taken over only when another request needs the tab, so a task that exits without detaching no longer blocks others indefinitely. A debugger_target_busy error names the current holder, its expiry, and a retry delay. browser_debugger_sessions lists holders, browser_debugger_renew extends a lease, and browser_debugger_recover releases a stuck attachment, guarded by expectedSessionId and, for a live lease, confirmed=true. Page actions pass snapshotId with a ref, and pass debuggerSessionId when the task holds a lease on the tab; they never borrow another task's attachment.

Never submit forms, purchase, publish, delete, send messages, or change permissions without the user's explicit approval. The high-level fill tool rejects password fields, but Raw CDP bypasses those high-level guardrails and may expose cookies, storage, credentials, and private page content.

Connect an MCP agent

Use an absolute path when configuring a standalone MCP client:

{
  "mcpServers": {
    "chrome-agent-bridge": {
      "command": "node",
      "args": ["/absolute/path/to/chrome-agent-bridge/mcp/server.mjs"]
    }
  }
}

The local Agent reads ~/.chrome-agent-bridge/auth.json automatically. Set CHROME_AGENT_BRIDGE_TOKEN only when configuring a separate local process with a token copied from the extension popup.

URL (Streamable HTTP) transport

mcp/server.mjs is the local stdio entry. mcp/http-server.mjs exposes the identical tool surface over Streamable HTTP so a client that cannot spawn a local process (another machine, a container, a hosted client) can connect with a URL instead.

Start it with:

npm run start:http

Variable

Default

Purpose

CHROME_AGENT_BRIDGE_MCP_HOST

127.0.0.1

Bind address(es), comma separated; 0.0.0.0 or :: binds all

CHROME_AGENT_BRIDGE_MCP_PORT

43118

Bind port

CHROME_AGENT_BRIDGE_MCP_PATH

/mcp

Endpoint path

CHROME_AGENT_BRIDGE_MCP_TOKEN

unset

Optional fixed token that replaces the shared one (see below)

Every MCP request must send Authorization: Bearer <token>; /health is the only unauthenticated endpoint.

One token. By default the URL entry accepts exactly the bridge token shown in the extension popup (auth.json), and uses the same one for its own call to the native host. It reads the file on every request, so Renew in the popup takes effect at once for MCP clients and the internal leg alike, with no restart and no second copy to keep in sync. Clients holding the previous token get 401 and must be given the new one. Setting CHROME_AGENT_BRIDGE_MCP_TOKEN pins a separate client-facing token instead; it does not follow Renew. The URL entry is stateless and serves one fresh server per request. Multiple addresses share one port:

CHROME_AGENT_BRIDGE_MCP_HOST=127.0.0.1,192.0.2.10 npm run start:http

Call a tool from the shell without an MCP client:

export CHROME_AGENT_BRIDGE_MCP_URL=http://127.0.0.1:43118/mcp
export CHROME_AGENT_BRIDGE_MCP_TOKEN=cab_...
npm run mcp:call -- browser_status
npm run mcp:call -- browser_list_tabs
npm run mcp:call -- tools/list

Run as a systemd user service

npm run install-mcp-http -- --host 127.0.0.1,192.0.2.10 --port 43118

The installer writes the listen address to a private ~/.chrome-agent-bridge/mcp-http.env (mode 0600) and, unlike earlier versions, no token (pass --token only to pin a separate one), generates ~/.config/systemd/user/chrome-agent-bridge-mcp.service with Restart=always, enables it, and turns on linger so it starts at boot. Preview without writing with --dry-run. Remove it with npm run uninstall-mcp-http (add --purge to also delete the env file). The token is never written into this repository.

Client configuration:

{
  "mcpServers": {
    "chrome-agent-bridge": {
      "transport": "streamable-http",
      "url": "http://192.0.2.10:43118/mcp",
      "headers": { "Authorization": "Bearer cab_..." }
    }
  }
}

When binding a non-loopback address, the token is the only access control; restrict the address to a trusted network and rotate the token from the extension popup if it leaks.

Multiple browsers

One MCP entry can drive several Chrome profiles or --user-data-dir instances on the same machine. Each browser registers itself as ~/.chrome-agent-bridge/instances/<instanceId>.json when its extension connects. The ID is generated once per profile and stored in chrome.storage.local; the display name defaults to Chrome-xxxx and can be edited in the extension popup.

browser_list_instances        → [{ instanceId: "inst_3f9a…", label: "Work", reachable, tabCount }, …]
browser_list_tabs  { browser: "Work" }
browser_snapshot   { browser: "inst_3f9a…", tabId }
browser_cdp_attach { browser: "Work", tabId }  → sessionId "inst_3f9a…~raw_…"
browser_cdp_send   { sessionId, … }            → no browser needed; the session names it

A browser is chosen in this order: the tool's browser argument (instance ID or label), the instance in a prefixed sessionId, CHROME_AGENT_BRIDGE_INSTANCE, then the only connected browser. With several browsers and no selector the call fails with browser_ambiguous instead of guessing, so an action never lands in the wrong signed-in account. With one browser nothing needs to be configured.

To add a Chrome started with its own --user-data-dir, install the native host manifest there too (repeat the flag for each directory), then load the extension in that Chrome:

npm run install-host -- --user-data-dir ~/chrome-work --user-data-dir ~/chrome-test
npm run uninstall-host -- --user-data-dir ~/chrome-work

Several profiles inside one Chrome share a manifest and need no extra flag. Hosts use ephemeral ports by default. For predictable ports, give each host a range (CHROME_AGENT_BRIDGE_PORT_RANGE=42360-42379 or "portRange": [42360, 42379] in network.json); each host takes the first free port. A copied profile directory carries the same ID; the second browser detects the clash and generates a new identity.

For a browser on another machine, run npm run start:http there: one URL then reaches every browser on that machine through the same browser argument. Without it, a remote client sees a single endpoint (see below).

Optional LAN access

The native host binds 127.0.0.1 by default. An operator can additionally bind one or more explicit local addresses so a client on another machine (or a container/host pair) can reach the same authenticated RPC endpoint. The bearer token is still required for every request.

Configure bind addresses with any of these mechanisms:

  1. A network.json file in the bridge directory (no reinstall required):

{ "bindHosts": ["127.0.0.1", "192.0.2.10"] }
  1. The installer, which bakes the value into the private launcher:

npm run install-host -- --bind-hosts 127.0.0.1,192.0.2.10
  1. CHROME_AGENT_BRIDGE_BIND_HOSTS in the host process environment (highest priority).

Every bind address shares one port. The native host records the reachable set in runtime.json as hosts, keeping host as the loopback address when available. Binding 0.0.0.0 or :: is expanded to the machine's concrete addresses.

By default the port is ephemeral and changes on every host restart. Set a fixed port so a client on another machine can reach the bridge without copying runtime.json:

{ "bindHosts": ["127.0.0.1", "192.0.2.10"], "port": 42359 }

CHROME_AGENT_BRIDGE_PORT overrides the file. npm run install-host -- --bind-hosts 127.0.0.1,192.0.2.10 bakes only the hosts into the launcher; add the port to network.json or the launcher environment.

A client selects a non-loopback address with CHROME_AGENT_BRIDGE_CONNECT_HOST. The client trusts an address only when the native host declared it in runtime.json; a hand-edited runtime file cannot silently redirect a client, and any address carrying a scheme, path, port, or credentials is rejected.

A client with no runtime.json at all can pin the endpoint explicitly. This requires all three values, so nothing is guessed:

export CHROME_AGENT_BRIDGE_CONNECT_HOST=192.0.2.10
export CHROME_AGENT_BRIDGE_PORT=42359
export CHROME_AGENT_BRIDGE_TOKEN=cab_...   # from the extension popup

Security note: binding a non-loopback address makes the full browser-control RPC reachable on that interface. Raw CDP can read cookies, storage, request and response bodies, and credentials for the attached tab. Restrict the address to a trusted LAN or tunnel, keep the token private, and prefer a firewall or SSH tunnel over a public or untrusted network.

The repository is also a Codex plugin: .codex-plugin/plugin.json registers the MCP server and the chrome-agent-control skill.

Standalone MCP clients must install the paired Skill separately. The Extension ZIP contains only the Chrome extension, and an MCP configuration exposes tools without teaching the Agent the required workflow. Follow Install Chrome Agent Bridge for an Agent.

Tools

The server exposes 97 tools: 20 browser primitives and 77 analysis tools grouped into three batches. The full names, prerequisites, exclusions, and recommended call chains are in docs/analysis-tools.md.

Browser primitives:

  • browser_list_instances

  • browser_status

  • browser_list_tabs

  • browser_open_tab

  • browser_activate_tab

  • browser_close_tab

  • browser_navigate

  • browser_snapshot

  • browser_screenshot

  • browser_act

  • browser_click

  • browser_fill

  • browser_watch_events

  • browser_network_start

  • browser_network_poll

  • browser_network_stop

  • browser_cdp_attach

  • browser_cdp_send

  • browser_cdp_events

  • browser_cdp_detach

  • browser_debugger_sessions

  • browser_debugger_renew

  • browser_debugger_recover

Prefer browser_snapshot → browser_act(ref, snapshotId) → browser_snapshot. browser_click and browser_fill remain selector-based compatibility tools.

Analysis groups:

  • Local JavaScript inspection, deobfuscation, AST transforms, and bounded crypto test vectors

  • Local binary, Protobuf, HTTP/2, gRPC, protocol inference, and WASM inspection

  • Raw-backed script collection, source maps, debugger, coverage, CPU/heap profiling, tracing, exceptions, and explicitly sensitive deep-network inspection

Local analysis does not require Chrome. Raw-backed analysis starts from browser_cdp_attach({captureEvents:true}) and must end with browser_cdp_detach; detaching also clears that session's MCP-side analysis cache.

Security model

  • Native Messaging only accepts the extension ID placed in the installed host manifest.

  • The installer generates a private launcher containing absolute Node.js and host paths, so Chrome does not depend on the terminal's PATH.

  • The native host binds 127.0.0.1 by default and optionally an explicit operator-configured address list, and requires a long-lived random bearer token for every RPC request. A non-loopback bind is never implicit.

  • The token is stored in ~/.chrome-agent-bridge/auth.json with user-only permissions. It has no automatic expiry and remains valid until the user selects Renew in the extension popup.

  • Runtime connection data is stored separately in ~/.chrome-agent-bridge/runtime.json; it does not contain the token. It records the reachable hosts list so a client can only target an operator-declared address.

  • Renewing the token atomically replaces the local credential and immediately rejects the previous token.

  • Password inputs are rejected by browser_fill; Raw CDP commands are not restricted by that check.

  • Browser-internal URLs cannot be inspected or scripted.

  • The default high-level tools do not read cookies, saved passwords, local storage, or session storage. Raw CDP can access data exposed by Chrome's CDP implementation.

  • Network monitoring uses Chrome's user-visible debugger permission and attaches only to the selected tab for the lifetime of a network session.

  • Network events contain lifecycle metadata only. Userinfo, URL fragments, headers, request bodies, response bodies, security details, and raw CDP request IDs are not returned. Query strings are removed by default and preserved only with explicit urlMode="full" because they may contain tokens or signatures.

  • Network sessions have bounded event and byte buffers, monotonically increasing cursors, tab isolation, and explicit stop/detach behavior.

  • Raw CDP accepts any method and JSON params and returns original results and events, including sensitive fields. Per-session event storage is caller-bounded up to 64 MiB and 1,000 events; individual events and poll pages are capped at 2.5 MB, and command results at 3 MB, below the 4 MiB Native Messaging envelope.

  • Set captureEvents=false when Raw is needed for commands but original events are not required. A sanitized network session can reuse that Raw attachment through rawSessionId; stopping the projection leaves Raw attached, while detaching Raw terminates its active projection.

  • Raw-backed analysis retains bounded scripts, debugger values, and request metadata only in the MCP process for the attached session. browser_cdp_detach clears that in-memory state. Trace, heap, and confirmed HAR exports are private local artifacts under ~/.chrome-agent-bridge/artifacts/ and remain until removed.

  • network_export_har and network_extract_auth require explicit confirmed=true. The latter returns live secrets; never include them in logs, commits, or normal Agent summaries.

  • Agents should require user confirmation before submitting, purchasing, publishing, deleting, sending, or changing permissions.

The clean-room capability analysis and migration boundaries are documented in docs/clean-room-browser-capabilities.md.

This is an early developer release. Review the requested tab and action before allowing an agent to operate a signed-in site.

Development

npm test
npm run check
npm run build:extension

Validate the Codex plugin and Skill with the corresponding Codex creator validators before publishing changes.

Releasing

Releases are built and published by GitHub Actions; nothing is built locally.

  1. Open Actions → Release extension ZIP → Run workflow, keep branch main, and set bump to patch, minor, major, or an explicit X.Y.Z.

  2. The run tests the code, updates the version in package.json, package-lock.json, extension/manifest.json, and .codex-plugin/plugin.json, commits Release vX.Y.Z to main, tags it, builds the allowlisted Extension ZIP, and attaches it with SHA256SUMS.txt to a new GitHub Release.

Source code reads its version from package.json (lib/version.mjs), so those four files are the only places a version lives. Locally, node scripts/bump-version.mjs <patch|minor|major|X.Y.Z> makes the same edits. Pushing a vX.Y.Z tag whose versions already match, or running the workflow with tag set to an existing tag, also publishes that tag.

The bump run pushes straight to main; if branch protection later requires pull requests, allow github-actions[bot] to bypass it or the push step will fail.

Uninstall the native host

npm run uninstall-host

Then remove the unpacked extension from chrome://extensions.

License

MIT

Available Tools

100 tools
analysis_ast_matchMatch JavaScript ASTC

Find AST nodes by Acorn node type and optional property filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes
filterNo
nodeTypeYes
maxResultsNo

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 full behavioral burden. It implies a read-only 'Find' operation and specifies the Acorn parser, but does not disclose output shape, traversal behavior, failure modes, or how filters are applied. Too sparse for a tool with no safety annotations.

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

Conciseness5/5

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

A single, front-loaded sentence that states the core purpose without filler or redundancy. Every word contributes to understanding the tool's function.

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

Completeness2/5

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

The description omits return format and important behavioral caveats (e.g., whether code is parsed statically, how matches are represented, maxResult behavior). Given no output schema and no annotations, this brevity leaves too much unsaid for a 4-parameter tool in a complex analysis domain.

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 0%, but the description adds meaning for two key parameters: 'Acorn node type' clarifies nodeType, and 'optional property filters' clarifies filter. Code and maxResults remain inferred from their names, which is acceptable, but not all parameters are explicitly explained.

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 ('Find'), names the resource ('AST nodes'), and specifies the matching criteria ('Acorn node type and optional property filters'). This clearly differentiates from transformation tools like ast_transform_preview, 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 is provided about when to use this tool versus sibling analysis tools like analysis_data_flow or ast_transform_preview. It lacks any explicit or implicit usage context, leaving the agent to infer applicability.

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

analysis_data_flowAnalyze JavaScript data flowC

Produce a bounded intra-file source, assignment, sink, and shallow taint-path projection.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes

TDQS

C2.7/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 reveals that the analysis is intra-file and bounded, but does not explain what 'bounded' means (e.g., limits on code size, iteration depth) or what 'shallow taint-path' entails. There is no mention of read-only behavior, performance implications, or output format.

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 with no superfluous words, front-loading the verb and core output. Every term adds technical specificity, but the density of jargon makes it less readable than ideal. Still, it is concise and well-structured for an expert audience.

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 data-flow analysis tool with no output schema and no annotations, the description is too sparse. It does not explain the return value, the nature of source/assignment/sink, or constraints like 'bounded' and 'shallow.' The agent would likely need to invoke the tool blindly to understand its behavior.

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

Parameters2/5

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

The schema has one parameter 'code' with no description, and the tool description does not mention it. Since schema coverage is 0%, the description should compensate, but it adds no meaning to the parameter. The parameter name 'code' is self-explanatory, so a score of 2 reflects the lack of explicit semantic 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 uses a specific verb 'produce' and identifies the resource as a 'bounded intra-file source, assignment, sink, and shallow taint-path projection.' This conveys a focused data-flow analysis action and distinguishes it from sibling tools like analysis_ast_match or understand_code. However, the heavy jargon and vague terms 'bounded' and 'shallow' prevent a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as analysis_security_scan or js_deobfuscate_pipeline. The intended use is only implied by the name and the term 'data flow.' No explicit exclusions or alternative recommendations are given.

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

analysis_decode_string_arrayDecode JavaScript string arraysC

Replace statically resolvable literal array member accesses with their literal values.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes

TDQS

C2.8/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 mentions the limitation 'statically resolvable' and implies a code transformation, but it does not disclose whether the input is mutated, what the output format is (modified code vs. diff), side effects, or error cases. This is insufficient for a transformation 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, front-loaded sentence with no filler or repetition. Every word carries meaning, and it is appropriately terse for a simple tool.

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

Completeness2/5

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

Given the simple schema (one parameter) but no output schema, the description is incomplete: it does not state what the tool returns, how the input is interpreted, or any prerequisites. An agent would struggle to invoke it effectively without additional context.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for explaining the 'code' parameter. It does not mention that the parameter should be JavaScript source code, how it is processed, or any format expectations. While the parameter name 'code' is somewhat self-evident, the description adds no semantic value 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 clearly states a specific transformation ('Replace statically resolvable literal array member accesses with their literal values') with a concrete verb and resource, distinguishing it from broader deobfuscation or analysis tools. It lacks a mention of 'string arrays' or JavaScript, but the core purpose is unambiguous.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, nor any exclusions. The description implies usage for static analysis but does not specify contexts, prerequisites, or why one would choose it over similar tools like js_deobfuscate_pipeline or analysis_data_flow.

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

analysis_deflat_control_flowDeflat JavaScript control flowB

Conservatively restore a canonical while(true)+switch dispatcher when its static order can be proven.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes

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 full responsibility. 'Conservatively' and the proof condition give some insight, but it fails to disclose what happens when the static order cannot be proven, whether the input is mutated or a new value returned, and what the output format is. This is a significant gap for a transformation 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, well-structured sentence that leads with the action and includes a necessary condition. Every word is meaningful, with no redundancy or filler.

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 complex deobfuscation tool with no output schema or annotations. The description omits the return value, error behavior, and how the result should be used, making it difficult for an agent to understand the full invocation lifecycle.

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 describes 'code' only as a string, but the description adds meaning by implying it should contain a while(true)+switch dispatcher to restore. This partially compensates for 0% schema coverage, though it does not specify the expected scope of the code or return behavior.

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 a specific action ('restore') and a specific resource ('canonical while(true)+switch dispatcher'), with an explicit condition ('when its static order can be proven'). This distinguishes it from generic analysis siblings like analysis_data_flow or detect_obfuscation.

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

Usage Guidelines3/5

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

Usage is implied through the condition 'when its static order can be proven', but there is no explicit guidance on when to use this tool versus alternatives like js_deobfuscate_pipeline or analysis_ast_match. It provides some context but no exclusions or comparisons.

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

analysis_security_scanScan JavaScript security risksA

Run a deterministic static heuristic scan for dynamic code, injection sinks, weak randomness, hard-coded credentials, and related risks.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and adds useful behavioral traits: 'deterministic', 'static', and 'heuristic', which signal that it does not execute code and produces repeatable results. It also lists specific risk categories. However, it does not explicitly state whether the scan is read-only or describe the return format, leaving some ambiguity.

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

Conciseness5/5

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

A single, dense sentence that front-loads the core action ('Run a deterministic static heuristic scan') and enumerates specific risk categories. No filler or redundancy; every word earns its place.

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

Completeness3/5

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

The tool is simple (one parameter) but has no annotations and no output schema. The description explains what the tool scans for but does not mention what it returns (e.g., a report, list of findings, severity scores). For a security scan, return-value information is important, so the description is not fully 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 provides only the parameter name 'code' with length constraints (0% description coverage). The description implicitly indicates that 'code' is the JavaScript to be scanned, but adds no details about expected format, encoding, or how the scan uses the parameter beyond the obvious. It meets the baseline but does not compensate much for the schema's lack of description.

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

Purpose5/5

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

The description uses a specific verb ('Run') and resource ('static heuristic scan for dynamic code, injection sinks, weak randomness, hard-coded credentials, and related risks'), clearly distinguishing it from sibling tools like detect_obfuscation or detect_crypto, which target narrower concerns. The scope is explicit and actionable.

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

Usage Guidelines3/5

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

The description implies usage as a broad security scan for JavaScript code, but it does not explicitly state when to use it versus alternatives, nor does it mention exclusions or complementary tools. The context is clear but lacks direct guidance.

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

ast_transform_applyApply AST transformsB

Apply inline transforms or a previously saved transform chain to supplied JavaScript.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes
chainNameNo
transformsNo

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It only says 'apply', providing no details on output format, side effects, reversibility, or required permissions. 'Apply' suggests mutation but unclear if it returns transformed code or modifies state.

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

Conciseness5/5

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

Single sentence, front-loaded with the verb, no redundant words. Every part earns its place.

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

Completeness2/5

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

Given the tool has 3 parameters, no annotations, and no output schema, the description is too sparse. It omits return behavior, error conditions, and how the two modes interact. For a transformation tool, more context is needed for correct invocation.

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

Parameters2/5

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

Schema coverage is 0%, so the description must compensate. It hints at two modes (inline transforms vs saved chain), which correspond to the 'transforms' and 'chainName' parameters, but does not explain the code parameter explicitly or the valid transform values. Lacks detail needed to correctly invoke.

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 ('Apply') with a clear resource (transforms/transform chain) and target (JavaScript). It distinguishes from siblings like ast_transform_preview (preview) and ast_transform_chain (save/manage chains) by focusing on actual application.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives like ast_transform_preview or js_deobfuscate_pipeline. The description implies usage (supply code and a transform), but does not state conditions or exclusions.

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

ast_transform_chainSave AST transform chainB

Create an in-memory named transform chain for this MCP process.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
transformsYes
descriptionNo

TDQS

B3/5.0
Behavior3/5

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

No annotations exist, so the description must carry behavioral disclosure. It does add that the chain is 'in-memory' and scoped to 'this MCP process', which clarifies lifecycle and volatility. However, it omits behaviors like overwriting an existing name, return value, or side effects.

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

Conciseness5/5

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

The description is one short, front-loaded sentence with no filler. It gets the core action and scope across quickly, meriting high conciseness despite being 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?

For a creation tool with no annotations or output schema, the description lacks several contextual details: duplicate name behavior, how the chain is referenced later, relation to apply/preview siblings, and return value. The enum schema helps, but the narrative context is incomplete.

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

Parameters2/5

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

Schema description coverage is 0%, so the description needed to explain parameters. 'Named' hints at the name parameter and 'chain' implies the ordered nature of transforms, but the transforms enum values and the optional description field are left entirely to the schema.

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

Purpose4/5

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

The description uses a specific verb ('Create') and resource ('in-memory named transform chain'), and clarifies the process-local scope. It is clear about the action, though it does not explicitly differentiate from sibling tools like ast_transform_preview/apply.

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 ast_transform_apply or ast_transform_preview. There are no exclusions or context statements beyond the basic creation act.

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

ast_transform_previewPreview AST transformsA

Preview supported deterministic JavaScript transforms and return a bounded line diff.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes
transformsYes

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description discloses two behavioral traits: transforms are deterministic and the diff is bounded. It also implies a non-destructive preview operation. However, it does not detail error handling or behavior with invalid transforms, so it earns a 4 rather than a 5.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It states the action, scope, and return type 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?

The tool has only two parameters, but the description omits important context such as how the diff is formatted, whether transforms are applied in order, or any prerequisites. It covers the core preview behavior but leaves room for ambiguity.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It does not explain that 'code' is JavaScript source or what 'transforms' actually does beyond the name. The schema's enum helps, but the description adds no parameter meaning.

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

Purpose5/5

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

The description uses the specific verb 'Preview' and clearly identifies the resource ('supported deterministic JavaScript transforms') and the output ('bounded line diff'). This distinguishes it from sibling tools like ast_transform_apply (which applies) and ast_transform_chain (which chains).

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 a pre-application preview use case but provides no explicit guidance on when to use this instead of ast_transform_apply, ast_transform_chain, or transform_workbench. No exclusions or alternatives are mentioned.

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

binary_decodeDecode binary payloadB

Decode between base64, hex, UTF-8, and JSON representations.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes
inputEncodingNobase64
outputEncodingNoutf8

TDQS

B3.4/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 for behavioral disclosure. It only states the conversion function and omits details about error handling, return format, edge cases, or the effect of the maxLength constraint. This leaves the agent uncertain about what happens with malformed input or how JSON output is structured.

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 conveys the core functionality without wasted words. It is appropriately front-loaded and easy to parse.

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

Completeness2/5

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

The tool has 3 parameters, no annotations, and no output schema, yet the description is extremely brief. It does not explain what the tool returns, how JSON output is handled, or any behavioral nuances such as handling of invalid base64/hex input. Given the potential complexity of decoding/conversion, this is 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 schema has zero description coverage for parameters, and the description only lists the supported formats without explicitly mapping them to inputEncoding/outputEncoding. The parameter names and enums are self-explanatory, and the description adds marginal context, but it does not compensate for the complete lack of schema descriptions.

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

Purpose5/5

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

The description clearly states the tool decodes between base64, hex, UTF-8, and JSON representations, providing a specific verb and resource. It distinguishes itself from siblings like binary_encode and binary_entropy_analysis by focusing on decoding/conversion rather than encoding or analysis.

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

Usage Guidelines3/5

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

Usage is implied: use when needing to convert a binary payload between the listed encodings. However, there is no explicit guidance on when to prefer this over binary_encode or other sibling tools, and no exclusions or prerequisites are mentioned.

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

binary_detect_formatDetect binary formatA

Detect common binary formats from magic bytes, text signatures, and entropy.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes
inputEncodingNobase64

TDQS

A3.5/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 burden of behavioral disclosure. It describes the detection method (magic bytes, text signatures, entropy), which is useful, but omits output format, limitations, and side-effect information, making it moderate but incomplete.

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

Conciseness5/5

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

A single 11-word sentence with no fluff. It states the core purpose immediately and every word contributes to meaning.

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 should explain return values and usage context, but it only states the detection approach. It lacks information on output format, supported formats, and input requirements, making it incomplete for a tool with a single required parameter and no output schema.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not mention parameters. The names 'data' and 'inputEncoding' are somewhat self-explanatory, and the enum for inputEncoding is provided in the schema, but the description adds no semantics beyond 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 uses a specific verb ('Detect') and specifies the resource ('common binary formats') and method ('magic bytes, text signatures, and entropy'). This clearly differentiates from sibling tools like binary_entropy_analysis or proto_auto_detect.

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

Usage Guidelines3/5

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

No guidance is provided on when to use this tool versus alternatives like proto_auto_detect or binary_entropy_analysis. The usage is only implied for detecting binary formats, with no explicit context or exclusions.

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

binary_encodeEncode binary payloadB

Encode UTF-8, hex, base64, or JSON input into base64, hex, or UTF-8.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
inputEncodingNoutf8
outputEncodingNobase64

TDQS

B3/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 of behavioral disclosure. It states the core transformation (convert between encodings) but omits details about how the data parameter should be supplied for JSON input, the structure of the return value, or error handling. 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 concise sentence that front-loads the action and enumerates the relevant formats. Every word contributes useful information; there is no fluff.

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 no annotations, and the description is too sparse to fully inform an agent. It does not specify what the output looks like, how to handle JSON input, or any defaults beyond those in the schema. For a tool with a generic 'data' parameter, this is insufficient.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It restates the enum values for inputEncoding and outputEncoding, which the schema already provides, but it does not clarify the 'data' parameter's expected type or how to pass JSON content. The ambiguity around the 'data' parameter is a significant gap.

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

Purpose4/5

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

The description uses a specific verb ('Encode') and names the resource (binary payload) and the input/output formats, clearly conveying the conversion purpose. It does not explicitly differentiate from sibling tools like binary_decode, so it loses the point for sibling distinction.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives such as binary_decode or other encoding tools. It neither states explicit use cases nor exclusions.

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

binary_entropy_analysisAnalyze binary entropyB

Calculate Shannon entropy and byte-frequency distribution for a bounded payload.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes
inputEncodingNobase64

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 burden. It discloses the core behavior (entropy and byte-frequency calculation) and the 'bounded payload' constraint, but it does not describe output format, memory/performance considerations, or any edge-case behavior beyond the obvious read-only calculation.

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 front-loads the main purpose. Every word earns its place; there is no verbosity or repetition.

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 conceptually simple, but with no output schema, the return value (e.g., entropy value, byte-frequency table) is unspecified. The description covers the primary function but omits details that would help an agent anticipate the result, making it partially incomplete for a tool with no structured output definition.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for the parameters. It does not mention 'data' or 'inputEncoding'. The schema provides enums and a default for inputEncoding, which offers some semantics, but the description adds no parameter-specific meaning and fails to bridge the low 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 uses a specific verb ('Calculate') and identifies a concrete resource ('Shannon entropy and byte-frequency distribution') with a scope qualifier ('bounded payload'). This clearly distinguishes it from sibling tools like binary_detect_format or proto_auto_detect.

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 exclusions, prerequisites, or any comparison to sibling tools such as binary_detect_format or binary_decode. Usage context is only implied by the tool's name.

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

blackbox_addAdd debugger blackbox patternsC

Append regular-expression patterns and update Debugger.setBlackboxPatterns.

ParametersJSON Schema
NameRequiredDescriptionDefault
patternsYes
sessionIdYes
targetSessionIdNo

TDQS

C2.8/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 states 'Append' and 'update', but does not clarify whether existing blackbox patterns are preserved or overwritten, what session scope is affected, or whether the operation has side effects beyond the CDP call. The brevity leaves ambiguity despite the explicit mention of Debugger.setBlackboxPatterns.

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 that is efficiently worded and directly states the core action. It is not overly verbose, though it could benefit from a second sentence clarifying behavior or parameters.

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 and no output schema, the description is too sparse. It does not cover session-related nuances, whether the operation is additive or replacing, or what the result/return value is. The lack of any behavioral or parameter detail makes the tool hard to invoke correctly without external knowledge.

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

Parameters1/5

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

The schema has 0% description coverage, with no per-parameter documentation. The description mentions 'patterns' but does not explain sessionId or targetSessionId, leaving the distinction between the two session-related parameters entirely opaque. No additional meaning is conveyed beyond what the raw schema types imply.

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 'Append' and names the resource 'debugger blackbox patterns', and it explicitly ties the operation to the CDP method Debugger.setBlackboxPatterns. This clearly distinguishes it from siblings like blackbox_list (listing) and blackbox_add_common (adding common patterns).

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 prerequisites (e.g., a debugger session must be active), nor does it reference sibling tools like blackbox_add_common or blackbox_list, which could clarify the intended use case.

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

blackbox_add_commonAdd common debugger blackboxesD

Blackbox common framework and dependency script patterns.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYes
targetSessionIdNo

TDQS

D1.3/5.0
Behavior1/5

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

There are no annotations provided, so the description carries full responsibility for behavioral disclosure. It does not state side effects, session requirements, or any operational details. The tool could modify debugger state, but this is never mentioned.

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

Conciseness2/5

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

The description is extremely short, but this is under-specification rather than concise elegance. It is a fragment with no structure or front-loaded information that would help an agent.

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

Completeness1/5

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

With no annotations, no output schema, and a vague description, the tool is completely underspecified. There is not enough information to understand its purpose, behavior, or parameters.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning to the parameters 'sessionId' and 'targetSessionId'. No examples, constraints, or relationships are described.

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 'Blackbox common framework and dependency script patterns' is a noun phrase without a clear verb. It hints at adding blackbox patterns but does not explicitly state the action or scope. It does not differentiate from the sibling tool 'blackbox_add'.

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

Usage Guidelines1/5

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

No guidance is given on when to use this tool versus alternatives like 'blackbox_add' or other debugger tools. There is no mention of prerequisites, use cases, or exclusions.

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

blackbox_listList debugger blackboxesB

List blackbox patterns maintained for a Raw session.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYes

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 burden of disclosing behavior. 'List' implies a read-only operation, but the description doesn't state whether an active session is required, whether results are paginated, or what the return format looks like. It adds minimal behavioral context beyond the verb.

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 efficiently conveys the core purpose without redundancy.

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

Completeness2/5

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

The tool is simple, but with no output schema and sparse annotations, the description should clarify what the list contains, how it is returned, or any preconditions (e.g., active session). It merely states the resource and scope, leaving the agent to guess at behavior and return structure.

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

Parameters2/5

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

Schema coverage is 0% and the only parameter, sessionId, is not explained in the description. The phrase 'for a Raw session' loosely connects to sessionId, but it lacks detail about the expected format, semantics, or how it relates to other session tools.

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

Purpose5/5

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

The description clearly states the action ('List'), the resource ('blackbox patterns'), and the scope ('maintained for a Raw session'). It distinguishes from sibling tools like blackbox_add and blackbox_add_common, which add patterns rather than listing them.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. While 'maintained for a Raw session' hints at a session context, it does not mention prerequisites, exclusions, or why one would choose this over other debugger tools.

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

breakpointManage debugger breakpointsC

Add, remove, or list source breakpoints and manage exception, XHR, or event-listener breakpoints.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo
stateNo
actionYes
removeNo
scriptIdNo
urlRegexNo
conditionNo
eventNameNo
sessionIdYes
lineNumberNo
targetNameNo
breakpointIdNo
columnNumberNo
targetSessionIdNo

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 bears full responsibility for disclosing side effects and behavioral traits. It merely states the operations without noting that breakpoints affect debugger state, whether a session must be active, or what the response contains. This is insufficient for a mutation tool.

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

Conciseness5/5

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

The description is a single, focused sentence that is front-loaded and contains no redundant information. It efficiently communicates the core purpose without wasting words.

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

Completeness1/5

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

Given the tool's complexity (14 parameters, no output schema, no annotations), the description is severely underspecified. It does not cover parameter semantics, return values, error conditions, or usage prerequisites, leaving the agent with significant gaps in understanding.

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

Parameters2/5

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

Schema description coverage is 0% with 14 parameters. The description makes no effort to explain parameter meanings, usage, or dependencies. It only loosely references breakpoint types (exception, XHR, event) that align with action enum values, providing minimal added value over the bare schema.

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

Purpose5/5

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

The description clearly states the tool adds, removes, or lists source breakpoints and manages exception, XHR, or event-listener breakpoints. It uses a specific verb+resource structure and distinguishes this tool from siblings, none of which handle breakpoint management.

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. The description only lists actions without mentioning prerequisites, context, or exclusions. An agent must infer usage from the name alone.

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

browser_actAct on page elementB

Perform one atomic high-level action. Prefer a ref plus snapshotId from the latest browser_snapshot. Clicks run a complete CDP mouse sequence inside one request; press supports common navigation keys; select is for native controls.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNoRequired for press, for example ArrowDown, Enter, Escape, Tab, or a single character.
refNoShort-lived ref from the latest browser_snapshot on the same tab.
kindYes
tabIdYes
valueNoRequired for fill; accepted as one value for select.
valuesNoValues or labels for native select.
browserNoWhich connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.
selectorNoCompatibility fallback when no snapshot ref is available.
confirmedNoSet true only after explicit user confirmation for a potentially submitting click.
snapshotIdNoRequired with ref: the snapshotId returned by the browser_snapshot that produced the ref.
debuggerSessionIdNoRaw or network session ID this task holds on the tab. Required when the tab has a live debugger lease; omit otherwise.

TDQS

B3.1/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, and it does add useful behavior: clicks execute a complete CDP mouse sequence within one request, press handles navigation keys, select targets native controls. But it omits safety-critical behavior the schema hints at — that 'confirmed' gates potentially submitting clicks and that refs are short-lived — and says nothing about error behavior or whether actions wait for navigation.

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

Conciseness4/5

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

Three tightly packed sentences, front-loaded with the core action and then the highest-value usage hint (ref + snapshotId) before the per-kind notes. No filler, though the opening abstraction costs a little clarity for the space it occupies.

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 an 11-parameter mutating tool with no annotations and no output schema, the description is only partially complete: it never explains the confirmed-gate semantics for submitting clicks, what happens on failure, or what the call returns. The high schema coverage (82%) offsets some of this, but the behavioral and safety context is thin.

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 82%, so the baseline is 3. The description reinforces the ref+snapshotId pairing and kind-specific intent (press keys, select for native controls), but much of this duplicates schema text such as the key example list, and the fill/value requirement and the confirmed flag's meaning are left to the schema.

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

Purpose3/5

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

The description opens with a vague abstraction ('Perform one atomic high-level action') and never states plainly that this clicks/fills/presses/selects a page element, though the follow-up clauses about CDP mouse sequences, navigation keys, and native <select> controls do clarify the domain. It also fails to distinguish itself from the sibling tools browser_click and browser_fill, which appear to overlap directly, leaving an agent unsure which entry point to choose.

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 'Prefer a ref plus snapshotId from the latest browser_snapshot' line is genuine workflow guidance implying browser_snapshot must run first, and the schema adds a selector fallback. However, there is no tool-level when-to-use/when-not guidance, and with browser_click and browser_fill as siblings the omission of any routing rule is a real gap.

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

browser_activate_tabActivate Chrome tabC

Activate a Chrome tab and focus its window.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYes
browserNoWhich connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.

TDQS

C2.7/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 hints at a focus-changing side effect, but says nothing about what happens if tabId is stale/nonexistent, whether the call is idempotent, whether it requires the browser to be attached, or whether activating steals OS-level focus. One clause is not enough for a mutation-style browser 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?

A single front-loaded sentence with no filler or repeated schema content. It is appropriately terse, though arguably so terse that required context is omitted rather than merely compressed.

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 browser-mutating tool with no annotations, no output schema, and an undocumented required parameter, this definition is incomplete. It omits the connected-browser prerequisite, the origin of tabId, and the failure behavior, leaving meaningful gaps for an agent to guess at.

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

Parameters2/5

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

Schema coverage is 50%: the browser parameter is documented in the schema (instanceId/label from browser_list_instances), but tabId — the required parameter — has no description anywhere. The description does not explain where a tabId comes from (browser_list_tabs / browser_open_tab) or what values are valid.

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 (activate) and resource (Chrome tab) plus the side effect of focusing the window, which cleanly separates it from browser_open_tab, browser_close_tab, and browser_list_tabs. It does not name those siblings explicitly, so it stops short of a 5.

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

Usage Guidelines2/5

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

No when-to-use guidance, no statement of the precondition that a browser must be connected, and no routing advice versus browser_open_tab (which also results in an active tab) or browser_navigate. The agent must infer the calling context entirely.

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

browser_cdp_attachAttach Raw CDPA

Attach an unrestricted Chrome DevTools Protocol session to one tab. Set captureEvents=false when only commands plus a sanitized network projection are needed; captured Raw events may expose credentials and private data. The session holds the tab under an idle lease that any valid call renews; always detach. If the tab is busy, the error names the holder.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYes
browserNoWhich connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.
maxBytesNo
maxEventsNo
leaseTtlMsNoIdle period after which another task may take over the attachment (default 300000). Any valid call renews it.
ownerLabelNoDiagnostic label shown to other tasks that find the tab busy; not an identity.
captureEventsNo

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and largely meets it: it warns that raw captured events may expose credentials and private data, explains the idle-lease model that any valid call renews, mandates detaching, and states that a busy tab produces an error naming the holder. It does not disclose return shape or whether elevated permissions are required, but the safety and concurrency behavior is unusually well covered.

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?

Four tight sentences, front-loaded with the core action and then layered safety, lease, and error behavior. Nearly every sentence earns its place; the density is high but not padded.

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, and the description still covers safety, concurrency, lifecycle, and the busy-error case adequately for a 7-parameter tool. The remaining shortfall is the undocumented maxBytes/maxEvents bounds and no pointer to the follow-up command 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?

Schema coverage is only 43%, so the description must compensate. It adds real meaning for captureEvents (sanitized projection, credential exposure) and the lease renewal behavior. But maxBytes and maxEvents have no description in either place, leaving a genuine gap the description does not fill.

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 and resource: 'Attach an unrestricted Chrome DevTools Protocol session to one tab.' It is clearly distinguishable from browser_cdp_send, browser_cdp_events, and browser_cdp_detach by being the attachment step. However, it never names a sibling, so the differentiation is inferred rather than explicit.

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

Usage Guidelines4/5

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

Gives concrete when-to-use guidance: set captureEvents=false when only commands plus a sanitized network projection are needed. It also prescribes lifecycle behavior ('always detach') and explains the busy-tab outcome. It stops short of naming alternatives like browser_cdp_detach or browser_cdp_send as the follow-up path.

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

browser_cdp_detachDetach Raw CDPB

Detach an unrestricted CDP session from its tab and release child-target routing state.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYes

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 disclosing side effects and safety profile. It does mention 'release child-target routing state', which is useful internal behavior, but it does not explain the impact on the tab (e.g., whether it stays open), what happens to the session, or whether the operation is reversible. This leaves significant ambiguity.

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 redundant words or filler. It front-loads the main action ('Detach') and clearly states the primary resource and additional state. This is an efficient and well-structured 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?

For a mutating cleanup operation with no annotations and no output schema, the description is too brief. It does not mention the return value (e.g., success/failure), side effects on the tab, or any prerequisites (e.g., session must exist). Given its role as a counterpoint to browser_cdp_attach, more detail is needed to use it safely and correctly.

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

Parameters2/5

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

The input schema has one required parameter (sessionId) with string constraints, but the description does not reference this parameter at all. Schema description coverage is 0%, and the description does not compensate by explaining how to obtain or use the sessionId. The parameter name is self-explanatory, but the description adds no 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 uses a specific verb ('Detach') and clearly identifies the resource ('CDP session') and the scope ('from its tab and release child-target routing state'). This distinguishes it from the sibling tools like browser_cdp_attach, browser_cdp_send, and browser_cdp_events, making its function immediately 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 states what the tool does but provides no guidance on when to use it, what prerequisites must be met, or what alternatives exist. It does not mention that this should be used after finishing a CDP session or in conjunction with browser_cdp_attach. The context is implied but not explicit.

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

browser_cdp_eventsPoll Raw CDP eventsA

Read original CDP event methods, source targets, and params without field sanitization. Results may contain secrets or private browsing data.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
sessionIdYes
timeoutMsNo
afterCursorNo

TDQS

A3.7/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 warns that results may contain secrets or private browsing data, which is a critical transparency element. It also clearly states the lack of field sanitization, but does not mention pagination behavior or whether polling is incremental. Overall, it provides valuable context beyond the bare 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, with the first stating the core function and the second providing a critical safety caveat. Every word earns its place, and it is front-loaded with the main action. No unnecessary details are included.

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

Completeness2/5

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

Given the lack of annotations, output schema, and parameter descriptions, the description is incomplete. It does not explain the return format, how polling works (e.g., cursor semantics), or that sessionId is required. The tool has four parameters, and the description offers no guidance on how to use them or what to expect in response, leaving significant gaps for an AI agent.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate by explaining parameters, but it does not. The parameter names are somewhat self-explanatory (limit, timeoutMs), but 'afterCursor' and the required 'sessionId' are not explained in context. The description adds no parameter-level information, making it difficult for an agent to understand how to correctly set these fields.

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

Purpose5/5

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

The description clearly states the tool reads original CDP event methods, source targets, and params without field sanitization, specifying both the verb and resource. The phrase 'without field sanitization' differentiates it from sanitized alternatives like browser_watch_events. This is a specific and unambiguous purpose.

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

Usage Guidelines3/5

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

The description implies usage for accessing raw CDP events, but it does not explicitly state when to use this tool over siblings like browser_watch_events or browser_network_poll. It also does not mention exclusions or prerequisites beyond the required sessionId in the schema. The guidance is inferred rather than explicit.

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

browser_cdp_sendSend Raw CDP commandA

Send any CDP method and JSON params without a method allowlist or response sanitization. Use targetSessionId for a child target previously attached within this Raw CDP session.

ParametersJSON Schema
NameRequiredDescriptionDefault
methodYes
paramsNo
sessionIdYes
targetSessionIdNo

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly discloses two behavioral traits: there is no method allowlist (any CDP method can be sent) and no response sanitization (raw responses returned). It also clarifies a prerequisite: targetSessionId references a child target previously attached within this Raw CDP session. This goes beyond the schema and gives important transparency for an unrestricted command 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 two sentences, immediately stating the core function and the one non-obvious parameter usage. There is no filler, and every word adds value. It is front-loaded with the primary purpose, making it easy for an agent to quickly understand the 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?

The description is largely complete for a raw low-level CDP tool. It explains the unrestricted nature, the child-target parameter, and the session context. There is no output schema, so the description does not detail return values, but 'no response sanitization' implies the raw CDP response is returned. Given the complexity and the sibling tools (e.g., browser_cdp_attach), the description provides enough context for an agent to invoke it correctly, though it could briefly mention the source of sessionId.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It adds meaning for targetSessionId ('use for a child target previously attached') and implies params is JSON via 'JSON params'. However, sessionId and method are not explained beyond their names and the tool title. The description does not fully elucidate all four parameters, so it only partially compensates for the lack of schema descriptions.

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

Purpose5/5

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

The description clearly states the tool's function: 'Send any CDP method and JSON params'. It specifies the verb (send) and resource (CDP command), and explicitly differentiates itself from sibling tools by noting there is 'no method allowlist or response sanitization', marking it as the raw/low-level option in the browser_* family.

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 about when to use the tool: for raw CDP commands that bypass normal restrictions, and specifically instructs to use targetSessionId for child targets attached within the current Raw CDP session. It does not explicitly list alternatives or say when not to use it, but the 'without a method allowlist or response sanitization' phrasing implies it is for cases outside the curated sibling tools.

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

browser_clickClick page elementA

Compatibility selector-based click. New workflows should use browser_snapshot refs with browser_act.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYes
browserNoWhich connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.
selectorYes
confirmedNoSet true only after the user explicitly confirms a potentially submitting click.
debuggerSessionIdNoRaw or network session ID this task holds on the tab. Required when the tab has a live debugger lease; omit otherwise.

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 carries the full behavioral burden. It usefully discloses the tool's compatibility/legacy status and the preferred alternative, but says nothing about click side effects — navigation, form submission, waiting for load, or failure modes — which matter for a mutating interaction.

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 tight sentences, zero filler, with the compatibility caveat and the preferred alternative front-loaded. Nothing could be cut without losing routing 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?

For a mutating click tool with no annotations and no output schema, the description covers tool selection well but is thin on what the click actually does (submission, navigation, confirmation requirements) and on restart/error behavior. The schema's 'confirmed' field partially compensates, keeping this at minimum-viable rather than inadequate.

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

Parameters2/5

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

At 60% schema coverage, tabId and selector are undocumented in both schema and description, and the description adds no parameter semantics at all. It does not explain that 'confirmed' gates potentially submitting clicks or how browser/debuggerSessionId selection interacts with this call.

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

Purpose4/5

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

The phrase 'Compatibility selector-based click' gives a specific verb (click) and mechanism (CSS/selector targeting), and explicitly contrasts itself with browser_act's ref-based approach. It does not spell out the resource scope (a page element in a given tab), but an agent can identify the action without opening the schema.

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

Usage Guidelines4/5

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

Explicitly routes new workflows to 'browser_snapshot refs with browser_act', which is a clear when-not-this / use-that statement. It does not state the condition under which this tool is still the right choice (e.g., only selectors available, no snapshot refs), leaving that 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.

browser_close_tabClose bridge-created Chrome tabB

Close a tab only when it was created by Chrome Agent Bridge in the current extension session.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYes
browserNoWhich connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden and does disclose one meaningful behavioral constraint (session-scoped, bridge-created tabs only). However it omits what happens on a violation (error vs. no-op), whether the close is irreversible, and any permission requirements, leaving notable gaps for a destructive operation.

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 front-loaded sentence with the verb first and the guard condition second; nothing is wasted. It is terse to the point of omitting necessary behavioral detail, but as structure it is clean.

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

Completeness3/5

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

Given no annotations, no output schema, and only 50% parameter coverage, the definition is only minimally complete. It establishes scope but leaves failure modes, return behavior, and the tabId parameter unaddressed, so an agent can select it but not confidently invoke it in edge cases.

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

Parameters2/5

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

Schema coverage is only 50%: browser is documented in the schema but tabId has no description anywhere, and the description adds no parameter meaning at all. The tool's central identifier (tabId) is therefore unexplained in both places, which the description should have compensated for.

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 (Close) and resource (a tab) plus the eligibility condition (bridge-created in the current extension session), which separates it from generic tab tools. It does not name a sibling alternative or otherwise contrast with browser_list_tabs/browser_activate_tab, so it falls short of a 5.

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

Usage Guidelines4/5

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

Provides a clear precondition for use: only close tabs created by Chrome Agent Bridge in the current session, which implicitly tells the agent when NOT to use it. No explicit alternative is named for the case where the tab was user-created, so it is clear context without full when/when-not routing.

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

browser_debugger_recoverRecover debugger attachmentA

Release a tab's debugger attachment left by another session. Pass the occupant's sessionId as expectedSessionId; the call fails if the holder changed. An expired, idle lease is released directly; a live one requires confirmed=true after explicit user approval. Detaching does not undo navigation, evaluation, or storage changes the holder made.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYes
browserNoWhich connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.
confirmedNoSet true only after the user explicitly approves ending a live session.
expectedSessionIdYes

TDQS

A4.5/5.0
Behavior5/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 and does so well: it discloses optimistic-concurrency failure behavior (fails if the holder changed), lease-state-dependent branching, the user-approval requirement for live sessions, and the important side-effect boundary that detaching does not undo navigation, evaluation, or storage changes the holder made.

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

Conciseness5/5

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

Three sentences, each carrying distinct load: purpose, invocation contract, lease branching, and side-effect scope. The most decision-relevant fact (what identifier to pass and what happens if it is stale) is front-loaded.

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

Completeness4/5

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

For an unannotated mutation tool with no output schema and only two required parameters, the description covers purpose, preconditions, failure mode, and postconditions well. The one gap is that no return value or success/failure signal is described, though the tool's failure semantics are at least stated.

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 50%: browser and confirmed are documented in the schema, while tabId and expectedSessionId are not. The description compensates by defining expectedSessionId as the occupant's sessionId (the identity the CAS check runs against) and reinforcing the semantics of confirmed, which is more than the schema states.

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 and resource — releasing a tab's debugger attachment — and narrows the scope to a lease 'left by another session,' which separates it from the sibling browser_cdp_detach. It stops short of naming that sibling explicitly, so an agent must infer which detach path applies.

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?

Gives an explicit when-to-use rule plus the required precondition: pass the occupant's sessionId as expectedSessionId, and the call fails if the holder changed. It also branches the usage path — idle/expired lease releases directly, live lease needs confirmed=true after explicit user approval — so the agent knows exactly which arguments each case demands.

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

browser_debugger_renewRenew debugger leaseA

Renew the idle lease of a Raw CDP or network session this task holds, optionally changing its length. Use during long pauses between calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYes
leaseTtlMsNo

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, and it is thin. It does not state the default lease length, what happens when a lease lapses (does the session die?), whether the session must be currently valid, or what errors surface on an invalid sessionId. The only real disclosure is that the lease can be extended rather than reset.

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

Conciseness5/5

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

Two short sentences, action first and usage guidance second, with zero filler. Nothing here could be cut without losing information.

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

Completeness3/5

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

For a simple two-parameter tool with no annotations and no output schema, the description covers purpose and usage adequately but omits lease mechanics (default duration, expiry consequences, recovery path) that an agent needs to call it safely. It is minimally viable rather than 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 0%, and the description mentions only one parameter indirectly ('optionally changing its length'), which usefully communicates that leaseTtlMs is optional and represents duration. sessionId is left unexplained beyond 'this task holds', and units/defaults for the TTL are only inferable from the parameter name and schema bounds.

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 (Renew) and resource (idle lease of a Raw CDP or network session), and scopes it to a session 'this task holds', which an agent can distinguish from the session-listing and lifecycle siblings. It stops short of naming the adjacent tools (e.g. browser_debugger_recover or browser_debugger_sessions) that could be confused with 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?

'Use during long pauses between calls' is a concrete usage trigger, not an implied one. However, it gives no exclusion condition and does not point to the alternative to use when the lease has already expired, which is the main decision boundary an agent faces here.

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

browser_debugger_sessionsList debugger sessionsA

List the Raw CDP and network sessions holding tab debugger attachments in one browser, with owner label, lease expiry, in-flight commands, and network projections. Read-only; it does not renew any lease.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdNoLimit to one tab.
browserNoWhich connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the safety burden and does so: it declares the operation read-only and explicitly states it does not renew any lease, a key behavioral trait given the sibling renew/recover tools. It also previews the returned fields, though it omits any limits, pagination, or permission requirements.

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?

Two tight sentences, front-loaded with the purpose before the read-only caveat. The enumerated output fields make the first sentence dense but nothing is wasted.

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, 2-parameter listing tool with no output schema, the description compensates by describing the projected return fields and the non-renewing behavior. The main remaining gap is pagination/volume behavior, which is minor here.

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 tabId and browser are already fully documented, including browser's guidance to use browser_list_instances. The description only loosely echoes this via 'in one browser' and 'tab debugger attachments', adding little 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?

States a specific verb (List) and resource (Raw CDP and network sessions holding tab debugger attachments), and enumerates what it surfaces: owner label, lease expiry, in-flight commands, and network projections. This clearly distinguishes it from mutating siblings like browser_debugger_renew, though it never names those siblings explicitly.

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

Usage Guidelines3/5

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

Usage is only implied by the purpose ('List ... sessions'). The caveat 'it does not renew any lease' hints at a boundary with browser_debugger_renew, but there is no explicit when-to-use / when-not guidance or named alternative, leaving the agent to infer selection.

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

browser_fillFill page fieldB

Compatibility selector-based fill. New workflows should use browser_snapshot refs with browser_act.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYes
valueYes
browserNoWhich connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.
selectorYes
debuggerSessionIdNoRaw or network session ID this task holds on the tab. Required when the tab has a live debugger lease; omit otherwise.

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 disclosure burden, yet it says nothing about side effects, whether input/change events fire, whether the tab must be active, or what happens on failure. The only behavioral signal is the compatibility/deprecation framing, which is context but not 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?

Two short sentences, front-loaded with the compatibility caveat and the alternative, with no filler. The tradeoff is under-specification rather than verbosity, so it is efficient but thin.

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 5-parameter mutation tool with no annotations, no output schema, and only 40% schema coverage, the description omits permissions, return/error behavior, and most parameter meaning. The deprecation note is useful but insufficient to call this tool correctly from the description alone.

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 only 40%, with tabId, selector, and value undocumented, so the description must compensate and does not. 'selector-based fill' marginally maps to the selector/value params but adds no format, syntax, or required-parameter meaning.

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

Purpose4/5

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

The description names the mechanism ('selector-based fill') and its status ('compatibility'), which combined with the title 'Fill page field' tells an agent this writes a value into a form field identified by a CSS selector. It also implicitly distinguishes itself from the newer ref-based approach, though the phrase 'selector-based fill' is a fragment that never states the resource (a page/form field) explicitly.

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 gives an explicit routing instruction: 'New workflows should use browser_snapshot refs with browser_act.' That names the preferred alternative and the condition (new vs. existing/compatibility workflows) that selects it. It stops short of stating when this tool is the correct choice beyond 'legacy compatibility'.

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

browser_list_instancesList connected browsersA

List every Chrome (profile or user-data-dir) connected to this machine's bridge, with its instanceId, label, reachability, and tab count. Call this first when more than one browser may be connected, then pass instanceId or label as browser to browser tools.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full burden. It discloses the returned fields and the source of the data (machine bridge), which is helpful, but does not explicitly confirm the operation is read-only, nor mention any auth, permission, or failure/empty-case behavior. Adequate but with clear gaps for a no-annotation tool.

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

Conciseness5/5

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

Two sentences, zero filler, with the enumeration of returned fields front-loaded and the call-first guidance following. Every clause 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?

There is no output schema and no input parameters, so the description must carry the whole load. It compensates by listing the fields each instance exposes, but could go further on safety/error behavior and explicit read-only status.

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

Parameters4/5

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

The tool takes zero parameters, so baseline is 4. The description still adds value by naming the keys returned (instanceId, label) that are later consumed as the `browser` argument elsewhere, which is meaningful cross-tool context despite no input to document.

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 ("List every Chrome ... connected to this machine's bridge") and enumerates what each entry contains (instanceId, label, reachability, tab count). This distinguishes it from siblings like browser_list_tabs (tabs within one browser) and browser_status, letting an agent pick it without opening a schema.

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 gives an explicit trigger ("Call this first when more than one browser may be connected") and explains the downstream payoff (passing instanceId or label as `browser` to browser tools). It does not name a concrete alternative tool or state when-not-to-use, so it falls short of a 5.

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

browser_list_tabsList Chrome tabsA

List current scriptable Chrome tabs. Use before selecting a tab ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
browserNoWhich connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.

TDQS

A3.5/5.0
Behavior2/5

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

No annotations, so the description must carry behavioral disclosure. 'List' implies read-only and 'scriptable' scopes the result, but the description omits return format, pagination, permissions, and what makes a tab scriptable—significant gaps for a no-annotation tool.

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

Conciseness5/5

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

Two short sentences with the core purpose first and the usage hint second; no filler or repetition. Every sentence earns its place.

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

Completeness3/5

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

For a simple one-param list tool with no output schema and no annotations, the description establishes what it does and when to use it, but does not say what the returned list contains. That leaves an agent guessing about the fields needed to select a tab ID.

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 single optional 'browser' parameter is fully documented in the schema. The description adds no parameter meaning 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.

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 ('scriptable Chrome tabs'), and the scope qualifier 'scriptable' separates it from a generic tab dump. However, it never names or distinguishes from sibling tools like browser_list_instances, so an agent must infer the resource boundary from the name alone.

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?

'Use before selecting a tab ID' gives a clear precondition for this tool. It stops short of naming which tools consume the tab ID or when not to use it, so no alternatives or exclusions are stated.

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

browser_navigateNavigate Chrome tabB

Navigate an existing tab to an HTTP, HTTPS, file, or about:blank URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
tabIdYes
browserNoWhich connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.

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. It doesn't disclose what happens if the URL is already loaded, whether navigation is blocking, whether history is affected, or any error behavior for a mutation-like operation on an existing tab.

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 is precise and contains no wasted 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 3-parameter tool with no annotations and no output schema, the description is too sparse. It omits required behavior around tab existence, multiple-browser resolution, and navigation side effects that an agent would need.

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 only 33%; tabId has no schema description, but the description implies the target is an existing tab. The browser parameter is partly covered by the schema description referencing browser_list_instances, and the url formats are listed in the description, adding some value.

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

Purpose4/5

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

States a specific verb (navigate) and resource (existing tab) with accepted URL schemes. It is differentiable from browser_open_tab, though the description does not explicitly name that sibling to clarify the distinction.

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

Usage Guidelines3/5

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

The word 'existing tab' implies the tab must already be open, hinting that browser_open_tab is the alternative for new tabs, but this is never stated. No explicit when-to-use or when-not-to-use guidance is provided.

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

browser_network_pollPoll network eventsB

Read sanitized request, response, completion, failure, and WebSocket lifecycle metadata after a cursor. Completion and failure events include method, status when known, and durationMs.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
sessionIdYes
timeoutMsNo
afterCursorNo

TDQS

B3/5.0
Behavior3/5

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

Without annotations, the description carries the burden. It discloses that data is sanitized and provides details about completion/failure events (method, status, durationMs). However, it omits behaviors like cursor semantics, pagination limits, or whether reading is non-destructive.

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

Conciseness5/5

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

Two sentences with no filler. The first sentence front-loads the core action and event types, the second adds relevant detail about the completion/failure event fields. Every sentence earns its place.

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

Completeness2/5

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

The tool has 4 parameters, no output schema, and no annotations, yet the description is only two sentences. It lacks essential context for a polling tool: what the response structure looks like, how cursors work, how to handle empty results, and how it relates to the broader network event workflow.

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

Parameters2/5

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

Schema coverage is 0% and the description does not compensate. 'after a cursor' loosely maps to the afterCursor parameter, but limit, timeoutMs, and sessionId are not explained; the connection to the schema is minimal.

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 reads network metadata events after a cursor, specifying the event types (request, response, completion, failure, WebSocket lifecycle). It distinguishes itself via the 'after a cursor' polling pattern, though it doesn't explicitly contrast with sibling tools like browser_watch_events.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as watch_events or network_stop. It implies sequential polling with 'after a cursor' but lacks explicit context or exclusions.

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

browser_network_startStart network monitoringA

Start a tab-scoped, metadata-only Chrome network monitor. Pass rawSessionId to reuse that Raw CDP attachment instead of attaching a second debugger. Headers and bodies are never returned. Without rawSessionId the monitor holds the tab under an idle lease; always stop it.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYes
browserNoWhich connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.
urlModeNoorigin_path
maxBytesNo
maxEventsNo
leaseTtlMsNoIdle period after which another task may take over the attachment (default 300000). Any valid call renews it.
ownerLabelNoDiagnostic label shown to other tasks that find the tab busy; not an identity.
urlIncludesNo
rawSessionIdNo
resourceTypesNo

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the burden well: it discloses that this is metadata-only (headers/bodies never returned), that a rawSessionId lets you reuse an existing Raw CDP attachment instead of double-attaching, that a tab idle lease is acquired, and that the monitor must always be stopped. Missing: any note on rate limits, permissions, or the retention window of collected events.

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 tightly-packed sentences, front-loaded with the core 'start a tab-scoped monitor' purpose, followed by the rawSessionId optimization and the resource-lifetime warning. 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?

For a 10-parameter tool with no annotations, no output schema, and 30% schema coverage, the description covers the key behavioral points (metadata-only, lease behavior, stop required) but is silent on the seven undocumented parameters and the lifecycle relationship with browser_network_stop. Slightly short of complete.

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

Parameters3/5

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

Schema description coverage is 30%, so the schema leaves 7 of 10 parameters undocumented. The description only clarifies rawSessionId semantics; it does not explain urlMode, maxBytes, maxEvents, resourceTypes, urlIncludes, or the tabId/browser pairing. It partially compensates but leaves notable gaps.

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

Purpose5/5

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

States a specific verb and resource ('Start a tab-scoped, metadata-only Chrome network monitor'). The 'tab-scoped' and 'metadata-only' qualifiers distinguish it precisely from siblings like network_intercept and browser_network_poll.

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 the rawSessionId reuse hint and the 'always stop it' directive, but never explicitly states when to choose this tool over siblings such as network_intercept, network_export_har, or browser_network_poll. There is no 'use this when...' guidance.

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

browser_network_stopStop network monitoringA

Stop a network monitor and release its resources. It detaches Chrome only when the monitor owns the attachment; a reused Raw session remains attached.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYes

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses resource release and the conditional detachment of Chrome, which is critical side-effect behavior. It doesn't cover idempotency or error scenarios, but for a stop operation this is above-average 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 with no redundancy. The first states the action, the second clarifies a boundary condition. Every phrase serves a purpose.

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

Completeness4/5

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

For a stop operation, the description covers the core action and a meaningful side effect. It doesn't mention prerequisites or return values, but the sibling tools imply the usage flow and the complexity is low. The description is reasonably complete for its context.

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

Parameters2/5

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

The schema has a single required parameter, sessionId, with no description (coverage 0%). The description never mentions sessionId or clarifies what it refers to. It relies entirely on the tool name and title to infer that sessionId identifies the network monitor, adding no meaning 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 uses a specific verb ('Stop') and resource ('a network monitor') and adds a precise behavioral caveat about Chrome detachment. It clearly distinguishes from siblings like browser_network_start and browser_network_poll by indicating this is the teardown operation.

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

Usage Guidelines3/5

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

No explicit when-to-use guidance or alternative tools are mentioned. The ownership caveat ('detaches Chrome only when the monitor owns the attachment; a reused Raw session remains attached') gives some context for a specific condition, but it doesn't tell the agent when to prefer this over network_poll or cdp_detach. Usage 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.

browser_open_tabOpen Chrome tabC

Open an HTTP, HTTPS, file, or about:blank URL in Chrome.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
activeNo
browserNoWhich connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.

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. It notes the accepted URL schemes but says nothing about whether a new tab is created, whether it becomes focused, how the 'active' flag behaves, or what happens on a malformed URL — significant gaps for a browser-mutating tool.

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

Conciseness5/5

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

A single front-loaded sentence with zero filler. Nothing to trim and the core action leads.

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 annotations, no output schema, and only 33% schema coverage, the definition leaves too much unspecified. It doesn't cover the 'active' parameter's effect or the new-tab lifecycle, which an agent needs to invoke it confidently.

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 33%; the 'browser' param is documented in the schema, but 'url' and 'active' are not. The description partially compensates by enumerating valid URL schemes (HTTP, HTTPS, file, about:blank), but adds no meaning for 'active'.

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 ('Open') and resource ('tab') plus the accepted URL schemes, which is clear. However, it never distinguishes itself from the close sibling browser_navigate, so an agent can't tell from the text alone which one to reach for.

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 when-to-use guidance and no mention of alternatives. With browser_navigate, browser_activate_tab, and browser_close_tab in the sibling set, the description should say when a new tab (vs. navigating the current one) is appropriate, but it does not.

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

browser_screenshotScreenshot pageC

Capture the visible viewport of a Chrome tab. This activates the tab.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYes
browserNoWhich connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.

TDQS

C2.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 full burden. It usefully discloses a side effect ('This activates the tab'), which an agent should know before calling it. But it says nothing about what is returned (image data, file path, base64?) or any permission/tab-state requirements, so the behavioral picture 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?

Two tight, front-loaded sentences with no filler. Brevity is appropriate, though the terseness contributes to the missing information elsewhere.

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, no annotations, and 50% parameter coverage, the description should at minimum explain the return format (image vs. path) and clarify tabId. It does neither, leaving real gaps an agent must guess at.

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

Parameters2/5

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

Schema coverage is only 50%: the 'browser' parameter is documented in the schema, but 'tabId' has no description anywhere. The description mentions no parameters at all, so it does not compensate for the undocumented required parameter. This is below the baseline 3 reserved for adequate 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?

States a specific verb and resource ('Capture the visible viewport of a Chrome tab'), so the action is unambiguous. However it never distinguishes itself from the sibling browser_snapshot, which an agent could easily confuse with a viewport screenshot.

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 prefer this over browser_snapshot or other capture tools, and no prerequisites stated. The only contextual note is the side effect that it activates the tab, which is behavioral rather than usage guidance.

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

browser_snapshotSnapshot pageA

Read visible page text plus semantic interactive elements with short-lived refs. Use a ref with browser_act, then take a fresh snapshot after every action.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYes
browserNoWhich connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.
maxCharsNo

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 carries the full behavioral burden. It usefully discloses that refs are short-lived and must be refreshed after each action, but says nothing about output shape, tab-state requirements, or what maxChars truncation does to the returned content.

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 tightly written sentences with zero filler; the core capability is front-loaded ahead of the workflow instruction.

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 and no annotations mean the description must cover more ground. It handles the ref lifecycle well but omits parameter guidance and return-format expectations, which is a meaningful gap for a 3-param read tool.

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

Parameters2/5

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

Schema coverage is only 33%, yet the description mentions none of the three parameters (tabId, browser, maxChars). It does not compensate for the undocumented tabId and maxChars, leaving parameter meaning entirely to the thin 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?

States a specific verb and resource: read visible page text plus semantic interactive elements. This implicitly distinguishes it from browser_screenshot (visual capture), but it never names a sibling or explicitly contrasts scope, so it stops short of full differentiation.

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

Usage Guidelines4/5

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

Provides clear workflow context: use a ref with browser_act, then take a fresh snapshot after every action. That tells the agent when this tool fits into the act-observe loop, though it names no exclusions or alternative read tools.

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

browser_statusBrowser statusC

Check whether the Chrome extension and native host are connected.

ParametersJSON Schema
NameRequiredDescriptionDefault
browserNoWhich connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.

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 behavioral burden. It implies a read-only diagnostic but never states it explicitly, does not describe what constitutes 'connected', what happens when a browser is not connected, or what the result looks like. For a status tool whose entire value is the returned health signal, this is a notable 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?

A single, front-loaded sentence with zero filler. Nothing is wasted, and the core purpose is the first thing the agent reads.

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 and no annotations, yet the description does not say what a status check returns (boolean, per-component statuses, error conditions) or how it relates to the broader browser workflow. For a diagnostic entry point, the agent lacks enough to interpret the 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 description coverage is 100% and the single optional 'browser' parameter is fully documented in the schema (instanceId/label, required when multiple browsers are connected). The description adds nothing beyond the schema, so the baseline 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 ('Check whether') and a specific resource (Chrome extension and native host connection), so an agent immediately understands this is a connectivity/diagnostic check. It does not distinguish itself from siblings like browser_list_instances or browser_cdp_attach, but the purpose itself is unambiguous.

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

Usage Guidelines2/5

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

There is no guidance on when to call this versus other browser tools, no mention of prerequisites (e.g., when a status check is needed before attaching CDP or listing instances), and no exclusions. The agent must infer usage context from the name alone.

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

browser_watch_eventsWatch Chrome tab eventsB

Long-poll tab created, updated, removed, and activated events after a cursor.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdNoReturn only events for this tab.
browserNoWhich connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.
timeoutMsNo
afterSequenceNo

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 full burden. It discloses long-polling behavior, the event types, and cursor-based sequencing, which is useful. However, it omits timeout behavior, return shape, authentication requirements, and what happens when no events occur, leaving significant behavioral gaps for a no-annotation 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 front-loaded sentence with no wasted words. It efficiently communicates the polling mechanism, event types, and cursor semantics in one compact statement.

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

Completeness2/5

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

Given no annotations, no output schema, and only 50% schema description coverage, the description should carry more context. It does not explain timeout behavior, return format, or when to prefer this tool over related event or polling tools, making it insufficiently complete for the tool's complexity.

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

Parameters3/5

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

Schema description coverage is 50%: tabId and browser are documented in the schema, but timeoutMs and afterSequence are not. The description partially compensates by implying the afterSequence param through 'after a cursor', but it adds nothing about timeoutMs and does not elaborate on filtering or browser selection.

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 action (long-poll) and resource (tab events), enumerating created, updated, removed, and activated events after a cursor. It clearly distinguishes this tool from generic event watchers by restricting to tab lifecycle events, though it does not explicitly contrast with siblings like browser_cdp_events.

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 states what the tool does but provides no guidance on when to use it versus alternatives such as browser_cdp_events or browser_network_poll. There are no preconditions, exclusions, or alternative-selection hints.

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

collect_codeCollect page JavaScriptC

Enable Debugger on an existing Raw session, collect script metadata, and optionally fetch bounded script sources into the local MCP process.

ParametersJSON Schema
NameRequiredDescriptionDefault
waitMsNo
sessionIdYes
maxScriptsNo
urlIncludesNo
includeSourceNo
maxSourceBytesNo
targetSessionIdNo

TDQS

C2.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 core actions: enabling the debugger on a session, collecting metadata, and optionally fetching sources into the local MCP process. However, it omits important behavioral details such as potential side effects on the session state (e.g., whether it pauses or alters execution), reversibility, or any required session prerequisites beyond being 'Raw.'

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

Conciseness4/5

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

The description is a single sentence, concise and front-loaded with the primary action ('Enable Debugger'). It avoids unnecessary fluff. However, it compresses multiple steps into one sentence, which slightly hurts readability but remains efficient.

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 (7 parameters, no output schema, no annotations), the description is incomplete. It does not explain return values, session prerequisites, side effects, or how it fits with sibling debugging tools. It introduces the term 'Raw session' without definition, leaving the agent without sufficient context to invoke the tool optimally.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for parameter explanations. It vaguely references 'optionally fetch bounded script sources,' which hints at includeSource and maxSourceBytes, but it does not clarify the meaning or purpose of waitMs, maxScripts, urlIncludes, or targetSessionId. The description adds minimal value beyond the parameter names.

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

Purpose4/5

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

The description clearly states the tool's function: enabling the debugger, collecting script metadata, and optionally fetching script sources. It uses specific verbs and identifies the resource (page JavaScript on a Raw session). However, it does not explicitly distinguish itself from related sibling tools like debugger_lifecycle or sourcemap_fetch_and_parse.

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 over alternatives. It does not mention exclusions, prerequisites, or alternative tools for related tasks (e.g., debugger_session, sourcemap_fetch_and_parse). The only implied context is 'existing Raw session,' but no when-to-use or when-not-to-use guidance is given.

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

console_get_exceptionsGet page exceptionsC

Enable Runtime, consume Raw exception events, and return bounded unsanitized exception details.

ParametersJSON Schema
NameRequiredDescriptionDefault
clearNo
sessionIdYes
timeoutMsNo
targetSessionIdNo

TDQS

C2.9/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 disclosing side effects. It states that it 'enables Runtime' and 'consumes' exception events, which hints at state-changing behavior (turning on a domain, potentially clearing an event queue). It also mentions 'bounded' and 'unsanitized', giving some detail about the output. However, it does not explicitly state that the 'clear' parameter may wipe stored exceptions, or what 'bounded' means in practice (e.g., count or timeout).

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 12 words, making it efficient. It avoids fluff and gets to the point. However, the brevity causes some vagueness; phrases like 'bounded unsanitized' are compressed and not immediately understandable.

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 4 parameters, no schema descriptions, no annotations, and no output schema, the description is notably incomplete. It does not explain the return format, the effect of each parameter, or the implications of enabling the Runtime domain (e.g., does it need to be disabled later?). It gives only a surface-level summary, which is insufficient for an agent to invoke the tool correctly in diverse scenarios.

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

Parameters2/5

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

The schema has 0% description coverage, so the tool description must compensate. It uses words like 'consume' (relating to 'clear' maybe), 'bounded' (possibly 'timeoutMs' or a limit), and 'unsanitized' (implying raw output), but it does not explicitly map any of the four parameters ('clear', 'sessionId', 'timeoutMs', 'targetSessionId') to their roles. The description provides only weak hints, leaving the agent to guess the meaning of 'targetSessionId' and the effect of 'clear'.

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

Purpose4/5

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

The description clearly states the tool's purpose: enabling the Runtime domain, consuming raw exception events, and returning exception details. It uses a specific verb ('enable', 'consume', 'return') tied to a resource (Runtime, exception events), and it distinguishes itself from sibling tools like browser_cdp_send or debugger_get_paused_state by focusing on console exceptions. However, the phrase 'bounded unsanitized exception details' is somewhat vague.

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 explicit guidance on when to use this tool versus alternatives. It does not mention any prerequisites, such as needing an active browser session or CDP connection, nor does it exclude scenarios where other tools (e.g., network_poll, debugger_wait_for_paused) would be more appropriate. The only implicit hint is that it is for retrieving runtime exceptions, but that is not enough.

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

crypto_compareCompare crypto implementationsA

Run two supplied implementations against identical inputs in separate bounded Workers and compare outputs.

ParametersJSON Schema
NameRequiredDescriptionDefault
code1Yes
code2Yes
timeoutMsNo
testInputsYes
functionNameYes

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the full transparency burden. It discloses that executions happen in 'separate bounded Workers', which implies isolation and resource limits. However, it does not mention failure modes, return format, or security implications beyond that. It adds some value but leaves many behavioral aspects unclear.

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 core action and quickly conveys key details (inputs, worker isolation, comparison). Every word earns its place, with no redundancy or tangential information.

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

Completeness2/5

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

This is a code-execution tool with 5 parameters, no output schema, and no annotations. The description covers the high-level purpose but omits critical contextual details such as the return value format, how functionName is invoked, input encoding requirements, and error handling. It is insufficient for a tool that runs user-supplied code in a potentially security-sensitive manner.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions 'two supplied implementations' (mapping to code1 and code2) and 'identical inputs' (mapping to testInputs), but does not explain functionName or timeoutMs. The description adds minimal meaning beyond the schema's field names, providing only partial guidance.

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 a specific action ('Run two supplied implementations against identical inputs'), identifies the resource ('two supplied implementations'), and the output ('compare outputs'). This distinguishes the tool from siblings like crypto_test_harness, which likely tests a single implementation.

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

Usage Guidelines3/5

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

The description implies usage context (comparing two implementations in separate Workers), but it does not explicitly state when to choose this tool over alternatives such as crypto_test_harness or provide any exclusions. The usage is clear from the action, but no explicit guidance is given.

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

crypto_test_harnessTest extracted crypto functionA

Run a supplied function against deterministic string inputs in a bounded Worker and vm context. This is defense in depth, not a security sandbox.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes
timeoutMsNo
testInputsYes
functionNameYes

TDQS

A3.8/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 disclosing behavioral traits. It usefully notes that execution happens 'in a bounded Worker and vm context' and explicitly warns that it is 'defense in depth, not a security sandbox.' This adds valuable context beyond the schema, though it does not cover failure modes or output behavior.

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

Conciseness5/5

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

The description is two sentences with no fluff. The first sentence front-loads the primary action, and the second provides a crucial security caveat. Every word contributes to understanding, making it highly concise and well-structured.

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

Completeness3/5

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

The tool has 4 parameters and no output schema, so the description should explain return values and usage nuances. It covers the purpose and the execution context but omits what happens to the function's output, how to construct the code, and any relationship to crypto extraction. The schema fills structural gaps but the description leaves some contextual questions unanswered.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for parameter understanding. It only touches on testInputs via 'deterministic string inputs' and leaves code, functionName, and timeoutMs unexplained. The parameter names are somewhat self-explanatory, but the description adds little 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 states the tool's function: 'Run a supplied function against deterministic string inputs in a bounded Worker and vm context.' The verb 'Run' and the resource 'supplied function' are specific, and the mention of 'deterministic string inputs' and 'bounded Worker and vm context' distinguishes it from sibling tools like crypto_compare, which focuses on comparison rather than execution.

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 test a supplied function with deterministic inputs) but does not explicitly mention alternatives or exclusions. There is no guidance on how it relates to sibling tools such as crypto_compare or js_deobfuscate_pipeline, 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.

debugger_capture_hitCapture debugger hitA

Wait for a pause and capture the call stack plus optional bounded top-frame scope variables.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYes
timeoutMsNo
scopeDepthNo
includeScopesNo
targetSessionIdNo

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the burden. It discloses key behaviors: it blocks waiting for a pause, captures the call stack, and optionally limits scope variables to the top frame with bounding. However, it does not disclose timeout behavior, whether it resumes execution, or what happens if no pause occurs, leaving gaps in 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?

A single sentence that is front-loaded with the core action ('Wait for a pause and capture...') and includes essential qualifiers ('optional bounded top-frame') without any fluff. Every word adds meaning.

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

Completeness3/5

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

Given the tool's moderate complexity (5 parameters, no output schema, no annotations), the description provides the core purpose but omits details on return format, error handling, and prerequisite session state. It is adequate for understanding the main function but not fully complete for robust usage.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It partially maps to parameters: 'optional bounded top-frame scope variables' hints at includeScopes and scopeDepth, and 'wait' implies timeoutMs, but it does not explain sessionId or targetSessionId, and does not provide concrete parameter-level descriptions.

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

Purpose5/5

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

The description states a specific verb ('wait' and 'capture') and resource ('call stack plus optional bounded top-frame scope variables'), which clearly distinguishes this from sibling tools like debugger_wait_for_paused (only waits) or get_call_stack (only captures stack).

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

Usage Guidelines3/5

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

The description implies usage when a pause is expected and both stack and scope variables are needed, but it does not mention alternatives or explicitly state when not to use this tool, leaving the agent to infer context from sibling tool names.

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

debugger_disassembleDisassemble debugger scriptB

Try CDP WASM disassembly for a script and fall back to bounded source-line projection.

ParametersJSON Schema
NameRequiredDescriptionDefault
scriptIdNo
sessionIdYes
callFrameIdNo
targetSessionIdNo
includeSourceFallbackNo

TDQS

B3.3/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. It discloses the fallback behavior and the bounded nature of the projection, which is useful. However, it does not mention side effects, permissions, rate limits, or return format, leaving gaps.

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 conveys the core action and fallback strategy without wordiness. It is front-loaded and every word adds value.

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 (5 parameters, no output schema, no annotations), the description is too sparse. It does not explain the meaning of parameters, the output format, or when to use this over similar debugger/sourcemap tools, making it incomplete for reliable invocation.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain any of the five parameters (scriptId, sessionId, callFrameId, targetSessionId, includeSourceFallback). It only vaguely references 'script' and 'source-line projection', which is insufficient for an agent to correctly set parameters.

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

Purpose5/5

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

The description clearly states the tool's purpose: disassembling a script using CDP WASM disassembly with a fallback to source-line projection. The verb 'disassemble' is specific, and the mention of fallback distinguishes it from sibling tools like wasm_inspect.

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 explicit guidance on when to use this tool versus alternatives, nor does it mention exclusions or prerequisites. The usage context is only implied by the action (disassemble a script) without reference to sibling tools.

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

debugger_evaluateEvaluate in debuggerB

Evaluate an expression globally or on one paused call frame. This executes code in the selected page target.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYes
expressionYes
callFrameIdNo
awaitPromiseNo
returnByValueNo
targetSessionIdNo

TDQS

B3.3/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 disclosing behavior. It states 'executes code' which hints at side effects, but does not warn about potential consequences of executing arbitrary expressions, permission requirements, or promise resolution behavior. This is a significant gap for a code execution 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 extremely concise, with two sentences that convey the core purpose without any filler. It is front-loaded and easy to parse.

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

Completeness2/5

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

Given the tool has 6 parameters, no annotations, and no output schema, the description is far too sparse. It barely covers the basic function and leaves out crucial information about parameter usage, behavior, and return values. It under-specifies a potentially complex debugger operation.

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

Parameters2/5

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

Schema coverage is 0%, so the description must compensate. It only adds meaning for 'expression' and the distinction between global and call-frame evaluation (callFrameId). It does not explain sessionId, awaitPromise, returnByValue, or targetSessionId, leaving most parameters undefined.

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: evaluating an expression either globally or on a paused call frame. It uses a specific verb ('Evaluate') and resource ('expression') and distinguishes itself from other debugger tools like get_object_properties or get_scope_variables_enhanced by focusing on general expression evaluation.

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 (in debugger contexts, globally or when paused) but does not explicitly state when to prefer alternatives or provide exclusions. It lacks guidance on when to use this instead of related tools like get_object_properties.

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

debugger_get_paused_stateGet paused debugger stateA

Return the locally cached pause reason and frames without waiting for new events.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYes
targetSessionIdNo

TDQS

A3.7/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 transparency burden. It discloses that data is locally cached (potentially stale) and that the call is non-blocking. While it doesn't address edge cases like when no paused state exists, the key non-blocking and cached behaviors are clearly communicated.

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

Conciseness5/5

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

The description is a single concise sentence (13 words) with the verb front-loaded. Every word adds value, and there is no redundancy or filler.

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

Completeness2/5

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

Given no annotations, no output schema, and no parameter documentation, the description leaves significant gaps. The agent understands the tool's purpose but lacks guidance on parameter usage, error scenarios, or the structure of returned frames, making confident invocation difficult.

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

Parameters1/5

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

The input schema has 0% description coverage, and the tool description mentions no parameters. It fails to explain the meaning of sessionId or targetSessionId or how they affect the returned data, leaving the agent without necessary 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 uses a specific verb 'Return' and clearly identifies the resource: 'locally cached pause reason and frames'. The qualifier 'without waiting for new events' distinguishes this from blocking pause-wait tools like debugger_wait_for_paused, making the purpose unambiguous.

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

Usage Guidelines4/5

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

The phrase 'without waiting for new events' gives clear context for when to use this tool: when you need immediate, cached state without blocking. Though it does not explicitly name alternative tools, the contrast with waiting is evident and effectively implies the usage context.

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

debugger_lifecycleManage debugger lifecycleB

Enable or disable the Debugger domain on an existing Raw CDP session.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
sessionIdYes
targetSessionIdNo

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 carries the full burden of behavioral disclosure. It only states the action (enable/disable) without revealing side effects such as impact on existing breakpoints, session state, or reversibility. This is a significant gap for a tool that modifies a debugging domain.

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 redundant words. It is appropriately concise for a relatively simple toggle action.

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

Completeness2/5

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

Given the lack of annotations, output schema, and parameter explanations, the description is minimally sufficient but incomplete. It omits details such as what happens if the session is invalid, whether enabling affects performance, and how it relates to other debugger lifecycle operations. The tool is simple, but more context would be needed for safe usage.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain any of the three parameters. It fails to clarify the purpose of targetSessionId or how the action and sessionId map to the described behavior, leaving the agent to guess from the bare schema.

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

Purpose5/5

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

The description uses a specific verb ('Enable or disable') and a clear resource ('Debugger domain on an existing Raw CDP session'), making it distinct from sibling debugger tools like debugger_pause or browser_cdp_send. It answers what the tool does precisely.

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 clearly states the prerequisite of an existing Raw CDP session, implying use after attaching a session (e.g., via browser_cdp_attach). However, it does not explicitly mention alternatives or when not to use this tool, leaving the guidance slightly less explicit than ideal.

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

debugger_pausePause debuggerC

Request a pause at the next JavaScript statement.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYes
targetSessionIdNo

TDQS

C2.8/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 behavioral disclosure burden. It reveals that the pause occurs at the next JavaScript statement and that it is a request, but it does not mention prerequisites like an active session, side effects, or whether the tool blocks or resolves.

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 one short, grammatically clear sentence front-loaded with the action. No word is wasted, though it sacrifices information that would be necessary for full usability.

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 debugger control tool with two parameters and no annotations or output schema, the description is under-specified. It fails to explain parameter roles, required session context, or interaction with other debugger tools, making it incomplete for reliable invocation.

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

Parameters1/5

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

Schema description coverage is 0% and the description does not mention either sessionId or targetSessionId. An agent cannot infer what session these parameters refer to or how targetSessionId differs from sessionId.

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 'Request a pause' and identifies the exact resource/action: the next JavaScript statement. It clearly differentiates from sibling tools like debugger_resume, debugger_step, and debugger_run_to_location by focusing on pausing.

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 debugger_step or debugger_run_to_location. The description simply states the action, leaving the agent to infer when pausing is appropriate.

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

debugger_resumeResume debuggerC

Resume a paused JavaScript debugger.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYes
targetSessionIdNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description bears full responsibility for disclosing behavior. It fails to mention what happens if the debugger is not paused, whether the operation is reversible, or any side effects on execution state. This is a significant gap for a state-changing 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 direct sentence with no filler words. It is front-loaded and easy to parse, earning full marks for structural efficiency.

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 debugger control tool with no annotations and two unannotated parameters, this description is too minimal. It lacks information about when to use the tool, what the parameters mean, and what outcome to expect, making it insufficient for reliable invocation.

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

Parameters1/5

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

Schema description coverage is 0% for both parameters. The description does not explain the meaning of 'sessionId' or the ambiguous 'targetSessionId', leaving the agent to guess. Parameter names alone are insufficient, especially for 'targetSessionId'.

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

Purpose4/5

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

The description uses a clear verb ('Resume') and specific resource ('paused JavaScript debugger'), making the core action unambiguous. However, it does not explicitly differentiate itself from sibling tools like debugger_step or debugger_run_to_location, which also advance debugger state.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool vs. alternatives (e.g., 'Use when paused, not for stepping'). The description implies use on a paused debugger but does not state prerequisites or alternative scenarios.

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

debugger_run_to_locationRun to source locationB

Set a breakpoint at a script location and resume execution.

ParametersJSON Schema
NameRequiredDescriptionDefault
scriptIdYes
sessionIdYes
lineNumberYes
columnNumberNo
targetSessionIdNo

TDQS

B3.1/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 disclosing behavioral traits. It only states the high-level action and does not mention whether the breakpoint is temporary or persistent, whether the debugger must already be paused, or what happens if the location is unreachable. This is a significant gap for a mutation-like debugging 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, concise sentence that gets straight to the point. It contains no filler and effectively communicates the core action without unnecessary detail.

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

Completeness2/5

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

For a tool with five parameters, no annotations, and no output schema, the description is too sparse. It omits critical context such as breakpoint lifecycle, required debugger state, parameter specifics, and relationship to sibling tools. The description is not sufficient for an agent to confidently invoke the tool without additional information.

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

Parameters2/5

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

The schema has 0% description coverage and the description does not compensate by explaining parameters. It vaguely references a 'script location' which maps loosely to scriptId and lineNumber, but it does not explain sessionId, columnNumber, or targetSessionId. Given five parameters, the description adds minimal meaning beyond the schema's field names.

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

Purpose5/5

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

The description 'Set a breakpoint at a script location and resume execution' clearly states the tool's specific action: it combines setting a breakpoint with resuming execution to reach a source location. This distinguishes it from sibling tools like debugger_resume (which only resumes) and breakpoint (which only sets a breakpoint).

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 explicit guidance on when to use this tool versus alternatives such as breakpoint, debugger_step, or debugger_resume. It only implies usage by describing the action, but there are no stated prerequisites, exclusions, or alternative recommendations.

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

debugger_sessionManage debugger session metadataB

Save, list, load, or export in-memory debugger metadata for one Raw session. Loading never silently recreates breakpoints.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
actionYes
sessionIdYes
targetSessionIdNo

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 burden of behavioral disclosure. It discloses one important behavior: 'Loading never silently recreates breakpoints,' which is valuable context. However, it does not mention other side effects, permission requirements, or what happens on save/export, leaving significant gaps in transparency.

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

Conciseness5/5

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

The description is just two sentences, front-loaded with the core action list. Every word earns its place, and the additional behavioral caveat is relevant and non-redundant.

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 annotations, no output schema, and 0% schema coverage. The description is too brief to fill these gaps: it does not explain return values, side effects beyond the loading caveat, or the purpose of optional parameters. This is a moderately complex tool that needs a richer description.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It names the actions (save, list, load, export) which map to the 'action' enum, but does not explain the meaning of 'name' or 'targetSessionId', nor how they relate to the session. This leaves half the parameters ambiguous.

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: 'Save, list, load, or export in-memory debugger metadata for one Raw session.' It uses specific verbs and a specific resource, distinguishing it from sibling debugger tools like pause/step/evaluate, which operate on execution state rather than session metadata.

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 prerequisites, exclusions, or when a different debugger tool might be more appropriate. The only caveat ('Loading never silently recreates breakpoints') is a behavioral note, not usage guidance.

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

debugger_stepStep debuggerA

Step into, over, or out from a paused JavaScript frame.

ParametersJSON Schema
NameRequiredDescriptionDefault
directionYes
sessionIdYes
targetSessionIdNo

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action and precondition, but does not mention that stepping advances execution, may have side effects, or what happens if the session is not paused. No error conditions or state changes are disclosed.

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

Conciseness5/5

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

The description is a single, concise sentence of 8 words that front-loads the essential action. Every word earns its place with no redundant information.

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

Completeness2/5

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

The tool has no output schema and no annotations, yet the description does not explain return values, failure modes, or the purpose of the optional targetSessionId parameter. This is insufficient for an agent to use it confidently in a debugging flow.

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

Parameters2/5

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

The schema description coverage is 0%. The description loosely maps to the 'direction' parameter by listing into/over/out, but it does not explain sessionId or the optional targetSessionId. It fails to compensate for the lack of parameter documentation.

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

Purpose5/5

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

The description clearly specifies the action (step) with the exact directions (into, over, out) and the target (paused JavaScript frame). This distinguishes it from sibling tools like debugger_resume and debugger_run_to_location.

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

Usage Guidelines4/5

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

The phrase 'from a paused JavaScript frame' clearly indicates the required context for using this tool. However, it does not explicitly mention when not to use it or name alternatives such as resume or run-to-location, though these are implied by sibling names.

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

debugger_wait_for_pausedWait for debugger pauseB

Poll Raw CDP events until Debugger.paused is observed or timeout expires.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYes
timeoutMsNo
targetSessionIdNo

TDQS

B3/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 transparency. It discloses the polling mechanism and timeout behavior, but fails to mention return values, whether the session must already be attached, or any side effects on event consumption. This leaves significant ambiguity for a tool with no annotation support.

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 that directly states the tool's purpose and termination conditions. It is front-loaded and avoids unnecessary words, earning a high score for conciseness.

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

Completeness1/5

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

For a tool with three parameters and no output schema, the description is severely underspecified. It omits parameter semantics, return value, prerequisites (e.g., an attached CDP session), and relationship to sibling tools, making it inadequate for reliable invocation.

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

Parameters1/5

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

The input schema has 0% description coverage, and the tool description does not mention any parameters (sessionId, timeoutMs, targetSessionId). The agent receives no explanation of what each parameter means or how they relate to the polling behavior, so the description adds no semantic value.

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

Purpose5/5

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

The description clearly states the tool's function: it polls raw CDP events until Debugger.paused is observed or timeout expires. The specific verb 'poll' and the target event distinguish it from sibling tools like debugger_pause (which triggers a pause) and debugger_get_paused_state (which reads current state).

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

Usage Guidelines3/5

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

The description implies usage when the agent needs to block until a pause event occurs, but it does not explicitly mention when to use this over siblings or any prerequisites. No exclusions or alternative tool references are provided, so guidance is only implicit.

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

detect_cryptoDetect cryptographyB

Identify common cryptographic algorithms and operations referenced by supplied JavaScript.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes

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. It only states the tool 'identifies' crypto, but does not disclose the output format, limitations (e.g., only common algorithms), whether it's static analysis, or any other behavioral characteristics.

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 efficiently conveys the core purpose.

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 sparse. It does not explain the return value or provide any contextual detail about what the tool produces, making it incomplete for an agent to fully understand the tool's behavior.

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 only parameter 'code' has no schema description. The description adds that the code should be JavaScript, which helps clarify the expected input. However, it doesn't elaborate on how the code should be provided (e.g., path vs. string) beyond the schema's 'string' type.

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

Purpose5/5

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

The description uses the specific verb 'Identify' and clearly names the resource: common cryptographic algorithms and operations in supplied JavaScript. This distinguishes it well from sibling tools like crypto_test_harness or detect_obfuscation.

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 omits any context about use cases, prerequisites, or references to sibling tools.

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

detect_obfuscationDetect JavaScript obfuscationA

Score supplied JavaScript for common obfuscation signals using local deterministic heuristics.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes

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 carries the full burden of behavioral disclosure. It does add useful context: 'local deterministic heuristics' implies no network calls and reproducible results, and 'common obfuscation signals' sets expectations of coverage. However, it omits key behavioral traits such as the exact output format (e.g., a numeric score, boolean, structured report), error handling on invalid input, and any side effects. This leaves uncertainty about what the tool actually returns and how to interpret the 'score'.

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 ('Score supplied JavaScript') and then efficiently specifies the scope and method. It contains no filler, redundant phrases, or unnecessary details. Every word contributes to understanding the tool's function, making it exceptionally well-structured for a quick read.

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

Completeness3/5

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

The tool is relatively simple (one parameter, no output schema, no annotations), so a compact description can be adequate. The description covers the input type (JavaScript), the operation (scoring obfuscation signals), and the methodology (local deterministic heuristics). However, it lacks information about the return value structure, which is critical for an agent to interpret results. Without an output schema, this omission leaves the tool's behavior incomplete from the agent's perspective. Given the simplicity, a brief note on the output format would make it fully complete.

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

Parameters4/5

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

The input schema provides only a 'code' string with length constraints and zero description coverage. The description compensates by specifying that the parameter is 'supplied JavaScript', clarifying that the input is raw JavaScript code rather than a path or other representation. It also indicates the parameter is intended for 'scoring', implying the input is the code to analyze. This is a meaningful semantic addition, though it does not elaborate on formatting or other constraints beyond what the schema states.

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 primary function: 'Score supplied JavaScript for common obfuscation signals' — a specific verb (score), resource (JavaScript), and purpose (obfuscation detection). It distinguishes itself from siblings like js_deobfuscate_pipeline or analysis_deflat_control_flow by focusing on heuristic scoring rather than transformation or deep structural analysis. The addition of 'using local deterministic heuristics' further clarifies the approach, 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 implies usage for scoring JavaScript obfuscation signals but provides no explicit guidance on when to choose this tool over alternatives. It does not mention exclusions or indicate whether this is a preliminary triage step versus a deeper analysis tool. The phrase 'local deterministic heuristics' hints at a lightweight, offline check, but this is not explicitly contrasted with sibling tools like js_deobfuscate_pipeline or analysis_security_scan.

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

extract_function_treeExtract function dependency treeC

Find a named function in collected scripts and recursively project statically named call dependencies.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxDepthNo
collectionIdYes
functionNameYes

TDQS

C2.9/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 mentions 'recursively project' but does not explain what happens with cyclic dependencies, the output format, whether recursion respects a depth limit (maxDepth), or what 'statically named' implies (e.g., dynamic calls are ignored). This lack of behavioral detail could lead to incorrect expectations.

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

Conciseness5/5

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

The description is a single, well-structured sentence that immediately states the action, subject, and scope. There is no redundant or filler content, making it highly concise.

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

Completeness2/5

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

For a tool that recursively computes a dependency tree, the description is minimal. It lacks information on the return value/tree structure, how depth is controlled, behavior on missing functions, and the distinction between static and dynamic calls. Given the absence of an output schema and annotations, this is insufficient for reliable use by an agent.

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

Parameters1/5

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

Schema coverage is 0% and the description adds no parameter-level meaning. It does not define 'collectionId', explicitly tie 'functionName' to the searched script, or explain that 'maxDepth' controls recursion depth. The schema itself has no property descriptions, so the agent is left without any parameter semantics.

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

Purpose5/5

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

The description clearly states a specific action ('Find a named function') on a specific resource ('collected scripts') and the recursive projection of statically named call dependencies. This is distinct from sibling tools like 'search_in_scripts' or 'understand_code', and the phrasing immediately conveys the tool's core purpose.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention use cases, exclusions, or mention sibling tools. For an AI agent selecting among many analysis-focused siblings, this is a clear gap.

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

get_call_stackGet debugger call stackC

Return the most recently captured Debugger.paused call stack for a Raw session.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYes
targetSessionIdNo

TDQS

C2.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 the full burden. It discloses that the call stack is 'most recently captured' but does not reveal what happens if no pause has occurred, whether the operation is read-only, or what the return structure looks like. This is a significant gap for a debugger 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?

The description is a single, focused sentence that is front-loaded with the core action. It is appropriately concise, though it sacrifices useful detail for brevity.

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

Completeness2/5

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

With no output schema and no annotations, the description must clarify the tool's behavior and return value. It only states the return type (call stack) and the source (recent pause) but omits important context like error conditions, session prerequisites, and what 'Raw session' means. This is insufficient for a tool with two parameters.

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

Parameters1/5

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

Schema description coverage is 0%, yet the description provides no explanation of 'sessionId' or 'targetSessionId'. The term 'Raw session' is not tied to any parameter intention. The description adds no value beyond the schema properties themselves.

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 ('Return') and the resource ('most recently captured Debugger.paused call stack'), with a specific scope ('for a Raw session'). This distinguishes it from broader tools like debugger_get_paused_state, though it does not explicitly name alternatives.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus alternatives. The phrase 'most recently captured' implies a prerequisite (a prior pause event), but it does not state that prerequisite explicitly or mention any conditions for valid usage.

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

get_object_propertiesGet remote object propertiesB

Read properties for a Runtime remote object ID in the selected Raw target.

ParametersJSON Schema
NameRequiredDescriptionDefault
objectIdYes
sessionIdYes
ownPropertiesNo
generatePreviewNo
targetSessionIdNo
accessorPropertiesOnlyNo

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations available, the description carries full responsibility for disclosing behavior. It indicates the operation is a read ('Read properties') but does not mention any prerequisites (e.g., active debugger session), error conditions, or whether the operation has side effects. The 'selected Raw target' phrase is ambiguous and not elaborated.

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 that states the core purpose without extraneous words. It is front-loaded with the action verb and successfully conveys the essential function in minimal space.

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 6 parameters, no annotations, and no output schema, so the description must carry significant explanatory weight. It only provides a high-level purpose, leaving the meaning of 'selected Raw target' ambiguous and failing to specify input requirements, return behavior, or any constraints. This is insufficient for reliable tool invocation.

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

Parameters1/5

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

The schema covers 6 parameters, but the description provides no explanation for any of them except an implicit reference to objectId. Terms like ownProperties, generatePreview, accessorPropertiesOnly, sessionId, and targetSessionId are left undefined, and with 0% schema description coverage, the description fails 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 identifies the action (read properties), the target (Runtime remote object ID), and the context (selected Raw target). This differentiates it from sibling tools like get_scope_variables_enhanced which deal with scope variables rather than direct object IDs.

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

Usage Guidelines3/5

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

The description implies usage when you have a remote object ID and need its properties, but it does not explicitly state when to prefer this tool over alternatives such as debugger_evaluate or get_scope_variables_enhanced. No exclusions or alternative tool references are provided.

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

get_scope_variables_enhancedExpand scope variablesC

Recursively expand a bounded Runtime object graph from an object ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNo
objectIdYes
sessionIdYes
maxPropertiesNo
targetSessionIdNo

TDQS

C2.7/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 transparency burden. It discloses 'recursively' and 'bounded' but fails to explain the nature of these bounds (e.g., depth, maxProperties), what happens when they are exceeded, whether the operation is read-only, or the structure of the returned graph. This adds minimal behavioral context beyond what parameter names suggest.

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-formed sentence with no extraneous words. It is front-loaded with the action verb and economically conveys the core purpose. Every word earns its place, making it appropriately concise.

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

Completeness2/5

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

Given a tool with 5 parameters, no annotations, and no output schema, the one-sentence summary is insufficient. It omits essential context such as the return value shape, how depth and maxProperties interact, the role of targetSessionId, and any error conditions. The description is too sparse to be considered complete for a tool of this complexity.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must compensate by explaining parameters. It only references 'object ID', which maps to objectId, but depth, maxProperties, sessionId, and targetSessionId are entirely unaddressed. The description fails to clarify their meaning, leaving most parameters ambiguous and the tool difficult to invoke correctly.

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

Purpose4/5

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

The description uses a specific verb 'recursively expand' and identifies the resource as a 'bounded Runtime object graph' from an object ID, which clearly conveys the action. The title 'Expand scope variables' reinforces this purpose. It does not explicitly distinguish from siblings like get_object_properties, but the recursive and bounded nature implies a more thorough introspection, setting it apart from simpler 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?

The description provides no guidance on when to use this tool versus alternatives such as get_object_properties or debugger_evaluate. It does not mention exclusions, prerequisites, or preferred contexts. The name 'enhanced' hints at a superset capability, but no explicit direction is given.

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

grpc_frame_buildBuild gRPC framesC

Build deterministic gRPC or gRPC-Web length-prefixed messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
messagesYes
outputEncodingNobase64

TDQS

C2.9/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 adds 'deterministic' which implies consistent output, but it does not reveal side effects, error behavior, compression handling, or what happens with invalid input. The schema shows fields like compressed and isTrailer, but the description does not explain their impact on the output.

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 immediately states the core functionality. It avoids redundancy and is appropriately sized for the tool's apparent simplicity.

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

Completeness2/5

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

Given the absence of annotations, output schema, and parameter descriptions, the description is under-specified. It does not explain the structure of the messages array, how payload encoding works, or how outputEncoding affects the result. An agent would need additional context to invoke this tool correctly for varied use cases.

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

Parameters1/5

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

The description has 0% schema coverage and does not mention any parameters. It does not clarify the purpose of 'messages', 'outputEncoding', or the payload fields. The schema defines types and defaults, but the description adds no semantic value to help an agent select or fill parameters correctly.

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

Purpose5/5

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

The description clearly states the tool builds deterministic gRPC or gRPC-Web length-prefixed messages. It uses a specific verb ('build') and resource ('length-prefixed messages'), and it distinguishes itself from the sibling tool 'grpc_frame_parse' by focusing on construction rather than parsing.

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 grpc_frame_parse or binary_encode. It does not mention exclusions, prerequisites, or scenarios where this tool is preferred, leaving the user to infer usage from the name alone.

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

grpc_frame_parseParse gRPC framesB

Split gRPC or gRPC-Web length-prefixed messages and trailer frames.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes
strictNo
encodingNobase64

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. It states the core action ('Split') but does not disclose what the output format is (e.g., a list of frames, decoded messages), how errors are handled, whether splitting is lossless, or what the 'strict' flag does. For a parser tool, this is a significant gap in behavioral context.

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

Conciseness3/5

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

The description is one short, front-loaded sentence with no waste. However, it is under-specified for a tool with three parameters and no output schema. Conciseness is good, but the brevity comes at the expense of necessary details, making it merely adequate rather than excellent.

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

Completeness2/5

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

Given no output schema, no annotations, and moderate complexity (gRPC framing includes length prefixes and trailers), the description is incomplete. It does not explain return values, the length-prefix format, endianness, or how trailing frames are represented. The tool may be simple, but the description should at least cover the basic output contract.

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

Parameters2/5

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

Schema description coverage is 0%, and the description adds no explanation for the parameters (data, strict, encoding). The schema provides only types and an enum, leaving the agent to infer from names. The description does not clarify what 'strict' means or how 'encoding' affects input interpretation, which is essential for correct invocation.

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

Purpose5/5

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

The description uses a specific verb ('Split') and clearly identifies the resource ('gRPC or gRPC-Web length-prefixed messages and trailer frames'). It distinguishes clearly from siblings like grpc_frame_build (which builds frames) and http2_frame_parse (which handles HTTP/2 frames, not gRPC framing). Scope is explicit.

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

Usage Guidelines3/5

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

The description implies usage when you have gRPC or gRPC-Web wire-format data to split, but it does not explicitly state when to use it over alternatives, nor does it mention exclusions or prerequisites. There is no reference to related tools (e.g., grpc_frame_build for the reverse operation). Guidance is only implied by the name and phrasing.

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

http2_frame_parseParse HTTP/2 framesB

Parse one or more raw HTTP/2 frames from hex, including common frame payloads.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputHexYes

TDQS

B3.1/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 says 'parse' and 'including common frame payloads,' but does not explain output format, error behavior, supported frame types, or whether any transformation is applied. This is minimal added transparency 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 a single, front-loaded sentence with no filler. Every word contributes to the core purpose, and it is appropriately sized for a simple one-parameter tool.

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

Completeness2/5

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

Given there is no output schema, no annotations, and a complex binary protocol being parsed, the description is too sparse. It does not enumerate supported HTTP/2 frame types, how results are structured, or how multiple frames are delineated in the input, leaving major gaps for an agent to invoke it correctly.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for the single inputHex parameter. It adds 'from hex,' but does not clarify accepted hex formatting (e.g., whitespace, 0x prefixes, uppercase/lowercase), payload constraints, or examples, leaving significant ambiguity.

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 parses raw HTTP/2 frames from hex, with a specific verb ('parse') and resource ('HTTP/2 frames'). It also notes coverage of common frame payloads, which distinguishes it from siblings like grpc_frame_parse and network_http2_fingerprint.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. The description implies its purpose but does not mention related tools such as grpc_frame_parse for gRPC frames or proto_dissect_http for HTTP, leaving the agent without decision context.

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

js_deobfuscate_pipelineRun JavaScript deobfuscation pipelineB

Run conservative constant folding, dead-branch removal, string-array decoding, and optional control-flow deflattening.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes
aggressiveNo

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the transparency burden. It discloses that the pipeline is 'conservative' and that control-flow deflattening is 'optional,' which adds some behavioral insight, but it omits details about return behavior, side effects, 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, front-loaded sentence with no filler. Every word adds meaning, efficiently stating the tool's purpose and key behavioral attributes.

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

Completeness3/5

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

The description covers the core purpose and partially hints at parameter behavior, but lacks usage guidelines, explicit parameter mapping, and return-value details. Given there is no output schema, the description alone doesn't fully support an agent in predicting the tool's behavior in all contexts.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must elaborate on parameters. 'Optional control-flow deflattening' obliquely suggests the aggressive parameter but does not explicitly name it or explain how it affects the pipeline. The code parameter is not described beyond the schema's type and constraints.

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 lists specific operations (constant folding, dead-branch removal, string-array decoding, control-flow deflattening) and clearly differentiates this pipeline from sibling tools that focus on individual steps.

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 pipeline versus the individual analysis tools, and no mention of alternatives or exclusion criteria. The 'optional' qualifier hints at parameter behavior but does not provide usage direction.

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

js_solve_constraintsSolve JavaScript constant constraintsB

Fold safe literal binary expressions and prune literal boolean branches without executing supplied code.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes
maxIterationsNo

TDQS

B3.1/5.0
Behavior3/5

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

The description explicitly states 'without executing supplied code,' which is a key safety trait and adds behavioral context beyond the bare operation. However, with no annotations, it fails to mention return format, edge cases, or the meaning of maxIterations, leaving significant gaps in expected 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, focused sentence that front-loads the action and avoids any redundancy. Every word contributes to the core purpose, making it highly concise without being vague.

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 is too sparse to be complete. It lacks when-to-use guidance, parameter semantics, and any mention of the return value or expected output, making it insufficient for an agent to confidently invoke the tool in a complex context.

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

Parameters1/5

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

Schema description coverage is 0%, so the description carries the full burden for explaining parameters. It references 'supplied code' but never explains the purpose of code or maxIterations, their formats, or how they affect execution. This is a critical gap for a two-parameter tool.

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 gives a specific verb+resource: 'Fold safe literal binary expressions and prune literal boolean branches.' This clearly states what the tool does and differentiates it from sibling tools like general AST transforms or deobfuscation pipelines by focusing on constant constraint solving without execution.

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 js_deobfuscate_pipeline or ast_transform_chain. The description only states the operation, leaving the agent to infer appropriate use cases without explicit exclusions or comparisons.

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

network_export_harExport raw network HARA

Write captured unsanitized requests, headers, and post data to a private local HAR artifact. Requires explicit confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmedNo
sessionIdYes
timeoutMsNo
targetSessionIdNo

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 carries the full burden and does disclose key traits: it writes unsanitized data, targets a private local artifact, and requires explicit confirmation. However, it omits details about prerequisites, persistence, or how the artifact is accessed/retrieved, so behavioral transparency is only partially addressed.

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

Conciseness5/5

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

Two concise sentences, front-loaded with the action and purpose. Every word earns its place and there is no redundancy.

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

Completeness2/5

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

Despite having 4 parameters and no output schema, the description does not mention return values, retrieval of the artifact, or session prerequisites. For a tool that writes a file, the lack of info about how the result is communicated is a significant gap.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only hints at the confirmation requirement. It does not explain sessionId, timeoutMs, or targetSessionId, leaving the agent to guess their roles. The 'Requires explicit confirmation' note adds some meaning to the `confirmed` parameter but does not compensate for the other three undocumented parameters.

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

Purpose5/5

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

The description clearly states a specific verb ('Write') and resource ('captured unsanitized requests... to a private local HAR artifact'), distinguishing it from related network tools. It unambiguously identifies the core function of exporting a HAR file.

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 after network capture ('captured') but does not explicitly state when to choose this tool over alternatives like network_get_response_body or network_intercept. No exclusions or alternative conditions are given.

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

network_extract_authExtract raw authentication materialB

Extract authentication headers and associated cookies from captured Raw events. Requires explicit confirmation and returns secrets.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmedNo
sessionIdYes
timeoutMsNo
targetSessionIdNo

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 carries the full burden. It discloses key traits: 'Requires explicit confirmation and returns secrets.' However, it does not mention side effects, failure modes, or whether the operation is read-only, leaving some ambiguity for a security-sensitive 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 two concise, action-fronted sentences with no filler. Each sentence earns its place: the first defines scope, the second adds critical behavioral and return information.

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

Completeness2/5

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

For a tool with 4 parameters, no annotations, no output schema, and a security-sensitive purpose, the description is insufficiently complete. It covers purpose and one behavioral trait but leaves parameter semantics, output format, error handling, and usage context underspecified, increasing the risk of misuse.

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

Parameters2/5

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

Schema description coverage is 0%, and the description adds minimal parameter meaning. 'Requires explicit confirmation' hints at the 'confirmed' boolean, but the required 'sessionId', 'targetSessionId', and 'timeoutMs' are completely unexplained, making correct invocation difficult.

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 a specific verb 'Extract' with a precise resource: 'authentication headers and associated cookies' from 'captured Raw events'. This differentiates it from sibling tools like network_get_response_body or browser_network_poll.

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

Usage Guidelines2/5

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

No explicit guidance is given on when to use this tool versus alternatives. There are no exclusions, triggers, or references to sibling tools. The only implication is that it is used for extracting auth material, but no decision framework is provided.

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

network_get_response_bodyGet raw response bodyA

Read one response body by its original CDP requestId. The result is unsanitized and may contain secrets or private data.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestIdYes
sessionIdYes
targetSessionIdNo

TDQS

A3.6/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 transparency burden. It adds critical context that the result is unsanitized and may contain secrets, which is valuable for handling. However, it omits other behavioral details like permissions, error conditions, or resource implications.

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

Conciseness5/5

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

Two short sentences, front-loaded with the core action and scope. The second sentence adds a crucial safety warning. No filler or redundancy.

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

Completeness3/5

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

Given no output schema and no annotations, the description covers the core purpose and sensitive data but misses parameter semantics for sessionId/targetSessionId and does not describe the return format or potential errors. It is minimally viable but has clear gaps.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It clarifies that requestId is a 'CDP requestId', but does not explain sessionId or targetSessionId beyond raw schema constraints. This leaves two parameters underdocumented.

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 'Read one response body by its original CDP requestId' – a specific verb, resource, and scope. This distinguishes it from sibling tools like network_get_stats or network_intercept, which handle different network operations.

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

Usage Guidelines3/5

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

Usage is implied: when you have a CDP requestId and need the raw response body. However, it does not explicitly state when not to use this tool or mention alternatives (e.g., network_export_har for broader captures), leaving the agent to infer.

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

network_get_statsGet raw network statisticsC

Consume unsanitized Raw Network events and summarize counts, status, types, bytes, failures, and duration.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYes
timeoutMsNo
targetSessionIdNo

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 burden of disclosing behavior. 'Consume' hints that events may be consumed/destroyed, but this is ambiguous and not explicitly stated. There is no mention of whether the operation is read-only, whether it clears the event buffer, or what other side effects occur. The return summary is mentioned but not described in detail.

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

Conciseness4/5

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

The description is a single sentence and is reasonably concise. It front-loads the action and resource. However, the term 'Consume' is slightly jargon-heavy, and a bit more structure (e.g., separating purpose and input) could improve clarity, but it 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?

Without annotations or output schema, the description needs to provide context about usage, parameters, return format, and relation to sibling tools. It only explains the summary operation, leaving out crucial context such as how this links to browser_network_start/poll, what sessionId refers to, and whether events are removed after processing. The complexity of the tool (3 params, one required) is not adequately addressed.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning to any of the three parameters (sessionId, timeoutMs, targetSessionId). It does not explain what each parameter does, how they relate to the raw network events, or provide examples. Given zero coverage, this is a critical gap.

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

Purpose4/5

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

The description states a clear verb ('Consume' and 'summarize') and a specific resource: 'unsanitized Raw Network events'. It also lists the summarized aspects (counts, status, types, bytes, failures, duration), which distinguishes it from sibling tools like network_get_response_body or network_export_har. However, it does not explicitly name alternatives, so it isn't 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 Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives is provided. The phrase 'Consume unsanitized Raw Network events' implies it operates on events from a capture session, but there is no mention of prerequisites (e.g., needing browser_network_start) or when to prefer this over network_export_har or network_get_response_body.

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

network_http2_fingerprintFingerprint HTTP/2 prefaceA

Calculate an Akamai-style deterministic fingerprint from captured HTTP/2 preface frames.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputHexYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It does disclose that the fingerprint is deterministic and the style is Akamai, which is useful. However, it does not describe the output format, behavior on invalid input, or the exact structure of the 'preface frames' input.

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. Every token contributes to understanding what the tool does.

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

Completeness3/5

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

For a single-parameter calculation tool, the description covers the core purpose and input source, but it lacks information about the output shape, any constraints beyond the schema's maxLength, and edge-case behavior. Since there is no output schema, the description should have clarified the return value.

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

Parameters3/5

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

Schema description coverage is 0%. The description adds meaning by linking inputHex to 'captured HTTP/2 preface frames', but it does not specify the exact encoding (e.g., whether it is plain hex of the raw bytes) or whether it includes the connection preface and initial frames. It partially compensates but leaves ambiguity.

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

Purpose5/5

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

The description uses the specific verb 'Calculate' and clearly identifies the output as an 'Akamai-style deterministic fingerprint' and the input as 'captured HTTP/2 preface frames'. This strongly distinguishes it from sibling tools like http2_frame_parse or proto_fingerprint.

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

Usage Guidelines4/5

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

The description clearly implies the use case: use when you have HTTP/2 preface frames and need an Akamai-style fingerprint. It gives clear context but does not explicitly compare to alternatives or state when not to use it, so it lacks exclusions.

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

network_interceptManage Fetch interceptionB

Enable, poll, continue, fail, fulfill, list, or disable explicit CDP Fetch interception. Paused requests remain blocked until handled or interception is disabled.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo
actionYes
methodNo
headersNo
patternsNo
requestIdNo
sessionIdYes
timeoutMsNo
bodyBase64No
errorReasonNo
responseCodeNo
postDataBase64No
responseHeadersNo
targetSessionIdNo
handleAuthRequestsNo

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 carries the full burden. It discloses a critical behavioral fact: 'Paused requests remain blocked until handled or interception is disabled.' But it omits other important aspects such as session prerequisites, lifecycle, or cleanup, limiting transparency.

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

Conciseness5/5

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

The description is two sentences with no fluff. The first sentence enumerates all possible actions, and the second provides a crucial caveat. Every word adds value.

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 15 parameters, no output schema, and no annotations, this description is insufficient. It provides the action scope and one warning, but fails to explain how actions interact, what inputs are needed, or what responses look like.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain any parameter semantics. The action list vaguely relates to the 'action' parameter, but the many other parameters (patterns, requestId, headers, etc.) are completely unexplained, making the tool very difficult to invoke correctly.

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

Purpose5/5

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

The description clearly states the tool manages CDP Fetch interception with a specific list of verbs (enable, poll, continue, fail, fulfill, list, disable) and the resource 'explicit CDP Fetch interception'. This distinguishes it from higher-level network tools like browser_network_start/poll/stop.

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 by identifying it as 'explicit CDP Fetch interception' and warns about paused requests remaining blocked. However, it does not explicitly state when to use this tool versus alternatives or provide exclusion criteria, so usage guidance is only implicit.

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

performance_coverageRecord code coverageB

Start or stop precise JavaScript coverage and optional CSS rule usage tracking.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
sessionIdYes
includeCssNo
targetSessionIdNo

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits on its own. It mentions start/stop and optional CSS tracking, but fails to explain session lifecycle, what happens to existing coverage data, whether results are returned on stop, or the required session context. Significant behavioral gaps remain.

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 direct and front-loaded with the verb. It contains no filler and efficiently conveys the core action, earning a high 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?

Given four parameters, no output schema, and no annotations, the description is too brief to be complete. It does not explain return values, session semantics, or how parameters like sessionId and targetSessionId are used, leaving the agent under-informed for correct invocation.

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

Parameters2/5

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

Schema coverage is 0%, so the description must compensate. It hints at the 'includeCss' parameter via 'optional CSS rule usage tracking' and the 'action' parameter via 'Start or stop', but does not mention the required 'sessionId' or 'targetSessionId' parameters, leaving their purposes unclear.

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 tool's function with specific verbs ('Start or stop') and a specific resource ('precise JavaScript coverage and optional CSS rule usage tracking'). It distinguishes this from sibling performance tools by focusing on coverage recording rather than metrics, heap snapshots, or tracing.

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 performance_trace or profiler_cpu. It implies usage for coverage recording but does not state context, prerequisites, or exclusions, leaving the agent without clear selection criteria.

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

performance_get_metricsGet page performance metricsC

Return the selected target's CDP Performance.getMetrics values.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYes
targetSessionIdNo

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 burden of disclosing behavioral traits. It indicates a read-only return of metrics but fails to disclose any side effects, required target state (e.g., attached session), or the shape of the returned data. This is minimal transparency for a tool with no annotation support.

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, which is good for structure. However, it is under-specified for a tool with two parameters and no annotations, so the brevity works against completeness.

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

Completeness2/5

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

Given the tool has 2 parameters, no annotations, and no output schema, the description is not complete enough for an agent to use it confidently. It lacks parameter explanations, usage context, and expected output details, leaving significant gaps.

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

Parameters2/5

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

Schema coverage is 0%, so the description must compensate by explaining parameters. It does not explicitly define 'sessionId' or 'targetSessionId', though the phrase 'selected target's' loosely suggests the targetSessionId. This is insufficient to understand how to correctly invoke the tool.

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 'Return' and the specific resource 'selected target's CDP Performance.getMetrics values', making the primary function understandable. However, it does not differentiate from sibling performance tools like performance_coverage or performance_trace, which also return performance-related data.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description only states what it returns, with no mention of use cases, prerequisites, or comparisons to related tools such as performance_coverage or performance_trace.

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

performance_take_heap_snapshotTake bounded heap snapshotB

Capture HeapProfiler snapshot chunks from Raw events and write a private local artifact. Fails rather than returning an incomplete snapshot when the Raw buffer truncates.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYes
targetSessionIdNo
captureNumericValueNo

TDQS

B3.3/5.0
Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure and does well by revealing two important traits: it writes a private local artifact and it fails rather than returning an incomplete snapshot on buffer truncation. It does not cover authorization, runtime impact, or artifact lifecycle, but the provided details are meaningful and non-obvious.

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

Conciseness5/5

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

Two concise sentences deliver the core behavior and a critical failure mode with no filler. Front-loaded purpose and immediate follow-up on failure handling make it 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?

The tool has three parameters, no output schema, and no annotations, so the description must compensate. It explains the core purpose and failure behavior but omits parameter semantics, return value/artifact details, and usage context. This is insufficient for an agent to confidently invoke the tool.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain any of the three parameters (sessionId, targetSessionId, captureNumericValue). The agent cannot infer the role of these parameters from the description, making correct invocation difficult.

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 ('Capture') and a clear resource ('HeapProfiler snapshot chunks from Raw events') plus outcome ('write a private local artifact'). It distinguishes itself from sibling profiling tools like profiler_cpu and profiler_heap_sampling by focusing on snapshot chunks and the local artifact.

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 state when to use this tool versus alternatives such as profiler_heap_sampling, performance_trace, or performance_get_metrics. There is no mention of prerequisites, exclusions, or a preferred context beyond the inherent implication of the name.

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

performance_traceRecord performance traceA

Start or stop CDP Tracing and write bounded events to a private local artifact.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
sessionIdYes
timeoutMsNo
categoriesNo
targetSessionIdNo

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are present, so the description carries the full burden. It discloses that it writes bounded events to a private local artifact and that it starts or stops tracing, but lacks details on session requirements, whether traces are exclusive, performance impact, or how the artifact is accessed.

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, front-loading the verb and resource. No wasted words, and it captures the essential 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?

Given 5 parameters, no annotations, and no output schema, the one-sentence description is insufficient. It does not explain how to manage the start/stop state, what 'bounded' means, or how to retrieve the artifact, leaving significant gaps for an agent.

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

Parameters2/5

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

With 0% schema description coverage, the description should compensate but does not. It provides no meaning for timeoutMs, categories, targetSessionId, or sessionId beyond their names. Only the action parameter's start/stop semantics are implicitly covered.

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

Purpose5/5

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

The description clearly states a specific action (start or stop CDP Tracing) and the output (write bounded events to a private local artifact). This distinguishes it from sibling performance tools like performance_get_metrics or performance_coverage.

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 CDP tracing sessions through its start/stop wording, but no explicit guidance is given for when to use this tool versus alternatives. There are no exclusions or context about the tracing lifecycle.

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

profiler_cpuRecord CPU profileB

Start or stop the CDP CPU profiler and return the profile plus bounded hotspots.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
sessionIdYes
targetSessionIdNo

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 must carry the behavioral burden. It discloses that it starts/stops and returns data but omits statefulness (e.g., whether starting a new profile stops the previous one), side effects, or performance impact. 'Bounded hotspots' is also under-explained.

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

Conciseness5/5

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

One sentence that is direct, front-loaded, and free of filler. Every word contributes to describing the tool's purpose and output.

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 or annotations, the description is insufficient for a tool with 3 parameters. It doesn't define the profile return format or 'bounded hotspots', nor does it differentiate from sibling performance tools. A more thorough explanation is needed.

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

Parameters1/5

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

Schema coverage is 0% and the description names no parameters. sessionId and targetSessionId are completely unexplained, and the action enum's lifecycle is not clarified. The description adds no meaning beyond the bare schema.

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

Purpose5/5

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

The description clearly states the tool starts or stops the CDP CPU profiler and returns the profile plus bounded hotspots. The verb 'start'/'stop' is explicit, and 'CPU profiler' distinguishes it from sibling performance tools like heap sampling or trace.

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 (start or stop the profiler) but provides no explicit when/when-not guidance or alternatives. It does not mention prerequisites like an active session or exclusion scenarios, leaving usage partially inferred.

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

profiler_heap_samplingRecord heap allocation samplingC

Start or stop CDP HeapProfiler allocation sampling.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
sessionIdYes
targetSessionIdNo
samplingIntervalNo

TDQS

C2.8/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 but only discloses the core action (start/stop). It omits side effects, sampling impact, whether a session must already be attached, or what happens if started twice, leaving significant behavioral ambiguity.

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

Conciseness5/5

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

The description is a single concise sentence with no filler, front-loaded with the verb and resource. It is maximally brief while still stating the primary purpose.

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 four parameters, no output schema, no annotations, and no behavioral details, a one-line description is grossly insufficient for an agent to correctly invoke and interpret the tool in context.

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

Parameters1/5

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

Schema description coverage is 0% and the description does not explain any of the four parameters. The agent receives no help understanding sessionId, action, targetSessionId, or samplingInterval beyond raw schema types.

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

Purpose5/5

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

The description clearly states the specific action ('Start or stop') and the exact resource ('CDP HeapProfiler allocation sampling'), distinguishing it from sibling tools like performance_take_heap_snapshot or profiler_cpu.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description implies start/stop for sampling but does not mention exclusions, preconditions, or comparison with related profiling tools.

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

proto_auto_detectDetect protocolB

Classify bounded hex payload samples as HTTP, HTTP/2, TLS, DNS, SSH, WebSocket, or unknown.

ParametersJSON Schema
NameRequiredDescriptionDefault
samplesHexYes

TDQS

B3.3/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 behavior disclosure. It does not mention whether the operation is read-only, what happens with malformed or oversized inputs, or any side effects. The term 'bounded' hints at input limits but lacks specifics.

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 redundant content. It is front-loaded with the action and resource, and every word contributes to the meaning.

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

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, so the description should explain return values. While it lists classification categories, it does not specify whether the output is per sample, the format, or error behavior. For a simple tool this is a notable gap.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It refers to 'bounded hex payload samples,' which roughly maps to the samplesHex parameter, but it does not add details about hex encoding (e.g., 0x prefix, delimiters) or what 'bounded' means (e.g., max string length). The description mostly restates the parameter name.

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

Purpose5/5

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

The description uses a specific verb ('classify') and identifies a clear resource ('bounded hex payload samples') with enumerated output categories (HTTP, HTTP/2, TLS, DNS, SSH, WebSocket, or unknown). This clearly distinguishes it from sibling tools like binary_detect_format, which focuses on binary format detection.

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

Usage Guidelines3/5

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

The description implies when to use the tool (when you have hex payload samples to classify) and enumerates the target protocols, which serves as implicit selection criteria. However, it does not explicitly mention alternatives or when not to use it, so guidance is only implied.

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

protobuf_decode_rawDecode raw ProtobufB

Recursively decode schema-less Protobuf wire fields from base64 input.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxDepthNo
maxFieldsNo
dataBase64Yes

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 disclosure burden. It reveals the recursive nature of the decoding and the schema-less operation, which are meaningful behavioral traits. However, it does not mention output format, error behavior, or the resource limits implied by maxDepth and maxFields, leaving significant transparency gaps.

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, front-loaded sentence with no wasted words. However, it is under-specified for a tool with three parameters, no output schema, and no annotations. The brevity comes at the cost of necessary detail, making it not fully appropriately sized.

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

Completeness2/5

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

Given the absence of an output schema, annotations, and parameter descriptions, the one-sentence description is far from complete. It does not clarify what the decoded result looks like, how maxDepth/maxFields constrain recursion, or any limits/fallbacks. More context is needed for an agent to invoke this tool correctly and interpret its result.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It only hints at dataBase64 via 'base64 input' but does not explain the purpose or effect of maxDepth or maxFields. Two of three parameters are left completely undocumented, providing minimal semantic value beyond the schema itself.

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 ('decode'), a clear resource ('schema-less Protobuf wire fields'), and specifies the input format ('base64'). 'Schema-less' distinguishes it from schema-based proto tools like proto_export_schema or proto_infer_fields, making the purpose unmistakable.

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

Usage Guidelines3/5

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

The description implies usage when you have base64-encoded protobuf data without a schema, but it does not explicitly state when to use this over alternatives like proto_auto_detect or proto_infer_fields. No when-not-to-use or exclusion list is provided, leaving guidelines implied rather than explicit.

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

proto_dissect_dnsDissect DNS payloadA

Parse an RFC 1035-style DNS payload from hex, including compressed names and common addresses.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadHexYes

TDQS

A4.1/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. It does disclose meaningful behaviors (hex input, compressed name support, common address handling), but it omits output format, error behavior, and edge-case limits, leaving significant gaps for a parsing 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?

A single, front-loaded sentence delivers the core action, input format, and notable features without any filler or redundancy. 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?

DNS parsing is complex, and the description is brief. It covers input and special features (compressed names/common addresses) but lacks information about the return structure or failure modes, and no output schema exists to fill that gap.

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

Parameters4/5

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

The schema has zero description for the only parameter, so the description compensates by clarifying that payloadHex must be a hex string and that it represents a DNS payload. This is essential semantic information absent from 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 uses a specific verb ('Parse') and clearly identifies the resource ('RFC 1035-style DNS payload') and input format ('from hex'). It also distinguishes this tool from sibling dissectors like proto_dissect_http by focusing on DNS and mentioning compressed names and addresses.

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

Usage Guidelines4/5

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

The description clearly implies when to use the tool: when a hex-encoded DNS payload needs parsing. It does not explicitly mention alternatives or exclusions, but the narrow scope and unique sibling context make the intended usage obvious enough.

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

proto_dissect_httpDissect HTTP/1 payloadB

Parse an HTTP/1 request or response start line, headers, and bounded body representations.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadYes
encodingNoutf8

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 of behavioral disclosure. It mentions 'bounded body representations' as a nuance, but does not explain what 'bounded' means, how the output is structured, or failure behavior. The read-only nature is implied but not explicit.

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

Conciseness5/5

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

A single, front-loaded sentence with no wasted words. Every word contributes to the purpose, achieving high conciseness and clarity.

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

Completeness3/5

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

The tool has no output schema and no annotations, so the description should cover return values and encoding usage. It identifies the parsed components but does not describe the output shape or the role of the encoding parameter, making it partially incomplete for a simple parse tool.

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

Parameters2/5

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

Schema description coverage is 0% and the description does not mention either parameter. The schema provides basics (payload string, encoding enum with default), but the description adds no semantics about how the encoding applies or what payload format is expected, leaving the agent to infer solely from 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 uses a specific verb ('Parse') and clearly identifies the resource (HTTP/1 payload) and the exact components handled (start line, headers, bounded body). This effectively distinguishes it from sibling tools like proto_dissect_dns and http2_frame_parse.

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 HTTP/1 payloads but does not explicitly state when to choose this over alternatives (e.g., http2_frame_parse for HTTP/2) or any exclusions. No when/when-not guidance is provided.

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

proto_export_schemaExport protocol schemaC

Export inferred fields as a compact proto-like schema for review.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
fieldsYes

TDQS

C2.8/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 does not state whether the tool is read-only, whether it modifies state, or what side effects (if any) exist. 'Export' suggests a non-mutating operation, but this is left implicit.

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

Conciseness5/5

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

The description is a single, compact sentence that conveys the core purpose without wasted words. Every word contributes to the meaning, and it is appropriately brief 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 annotations, no output schema, and no parameter descriptions, the description is insufficient for an agent to fully understand invocation requirements or expected results. It does not describe the output format or return value, which is a significant gap for a tool that generates a schema.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only loosely refers to 'inferred fields' which likely maps to the 'fields' parameter. It does not explain the 'name' parameter or the structure of field objects (kind, length, offset, etc.), leaving the agent without necessary context.

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 ('Export') and the resource ('inferred fields as a compact proto-like schema'), which distinguishes it from siblings like proto_infer_fields or proto_visualize_state. The purpose is specific, though it could more explicitly contrast with alternative 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?

The description provides no explicit when-to-use or when-not-to-use guidance, and no alternatives are named. 'For review' implies a use case but does not clarify prerequisites or the relationship to sibling tools like proto_infer_fields.

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

proto_fingerprintFingerprint protocol payloadB

Fingerprint one raw hex payload without sending network traffic.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadHexYes

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 full responsibility for behavioral disclosure. It mentions that no network traffic is sent, which is a key safety trait, but it doesn't explain what a fingerprint is, whether it's deterministic, or what the output looks like. Minimal behavioral context beyond the single phrase.

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 redundant words. It efficiently communicates the core action and a key constraint. It could include a bit more detail without becoming verbose, but it earns a 4 for 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 tool has a simple input schema and no output schema, so the description is the only context. While the purpose is clear, the lack of return value details and lightweight usage guidance leaves gaps. For a single-parameter tool, this is borderline acceptable, but it falls short of fully informative.

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 zero description coverage, so the description must compensate. It adds that the payload is 'raw hex', which clarifies the expected format for payloadHex. However, it doesn't provide examples or validate constraints beyond the schema. This is adequate for a single parameter but not rich.

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 'fingerprint' and the resource 'one raw hex payload', making the tool's core function apparent. The qualifier 'without sending network traffic' adds useful scope. However, it doesn't explicitly differentiate from sibling tools like proto_auto_detect, so a 4 is appropriate.

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 sending network traffic' implies an offline use case, but there is no explicit when-to-use guidance or comparison with alternatives. The description hints at a context but doesn't provide exclusions or clear selection criteria.

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

proto_infer_fieldsInfer protocol fieldsB

Infer constant, variable, and variable-tail byte regions across repeated hex payloads.

ParametersJSON Schema
NameRequiredDescriptionDefault
samplesHexYes

TDQS

B3/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 burden of behavioral disclosure. It only states the categories of regions to be inferred, but does not mention output format, whether the operation is read-only, any preconditions (e.g., equal-length samples), or limitations. This is insufficient for an agent to anticipate the tool's behavior beyond its basic function.

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

Conciseness5/5

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

The description is a single concise sentence that is front-loaded with the action verb. Every word contributes to meaning, with no redundant or ambiguous phrasing.

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 absence of annotations and output schema, the description is too brief to provide complete context. It does not explain the return value, any side effects, or sample requirements that would help an agent use the tool correctly. For a protocol inference tool with non-trivial behavior, this is a notable gap.

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

Parameters2/5

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

The sole parameter samplesHex is not mentioned in the description. The schema provides type and constraints but the description does not add meaning such as expected hex format, length consistency, or how the parameter relates to the inference. With 0% schema description coverage, this gap is significant.

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 infers constant, variable, and variable-tail byte regions across repeated hex payloads. The verb 'Infer' and specific resource (byte regions) make the purpose understandable, though it does not explicitly differentiate from sibling tools like proto_auto_detect.

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 'across repeated hex payloads' implies the tool is used to compare multiple hex strings, which is a usage condition. However, there is no explicit guidance on when to choose this tool over alternatives such as proto_auto_detect or proto_infer_state_machine, or when not to use it.

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

proto_infer_state_machineInfer protocol state machineC

Infer a deterministic state graph from direction, protocol fingerprint, and payload prefix.

ParametersJSON Schema
NameRequiredDescriptionDefault
messagesYes

TDQS

C2.6/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 states the core action and inputs but does not explain the output format, required message structure, limitations, or potential failures. The term 'deterministic state graph' is vague about what the result contains.

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 under-specified sentence. It is concise but not especially well-structured or informative; the phrase 'direction, protocol fingerprint, and payload prefix' is not directly tied to the schema, and the sentence lacks necessary detail for a tool with one complex array parameter.

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 moderate complexity (inferring a state graph from messages), no output schema, and no annotations, the description is incomplete. It omits what the state graph looks like, how messages should be ordered, and any assumptions about the protocol. The tool likely needs more context for proper use.

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

Parameters2/5

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

The schema defines a single 'messages' parameter with detailed fields (direction, timestamp, payloadHex), but the description does not mention this parameter or explain how to map the listed inputs (direction, protocol fingerprint, payload prefix) to the schema. Since schema description coverage is 0%, the description fails to compensate, leaving the parameter semantics unclear.

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

Purpose4/5

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

The description uses a specific verb 'Infer' and identifies the resource as a 'deterministic state graph', with inputs listed (direction, protocol fingerprint, payload prefix). It distinguishes from sibling tools like proto_infer_fields and proto_visualize_state by focusing on state machine inference, though it could be more explicit about being a protocol state machine.

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 proto_infer_fields or proto_auto_detect. There are no exclusions, prerequisites, or context hints, leaving the agent to guess based solely on the name.

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

proto_visualize_stateVisualize protocol stateA

Render an inferred state machine as Mermaid stateDiagram-v2 text.

ParametersJSON Schema
NameRequiredDescriptionDefault
machineYes

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the burden. It states the action and output format, which implies a pure read/transformation behavior, but does not disclose potential validation, error behavior, or side-effect absence. It adds minimal context beyond the basic function.

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, well-structured sentence that is front-loaded with the action and output format. Every word adds value; no fluff or repetition.

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 nested parameter and no output schema. The description explains the output format and indicates the input type, which is serviceable. However, it lacks explicit linkage to the inference tool and any usage context, making it only minimally complete for a tool with zero annotations and schema descriptions.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It only says 'inferred state machine', which clarifies the parameter's provenance and general type, but does not explain the nested structure (states, transitions, initialState) or the semantics of fields like count. The property names are partially self-explanatory, but the description adds little 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 states a specific action ('Render') and a specific resource ('an inferred state machine') with a precise output format ('Mermaid stateDiagram-v2 text'). It distinguishes itself from sibling tools like proto_infer_state_machine (which infers, this visualizes).

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 'inferred state machine' implies it should be used on the output of an inference tool (likely proto_infer_state_machine), but no explicit when-to-use or alternative comparison is given. It is clear enough to infer the context, but lacks explicit guidance.

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

search_in_scriptsSearch collected scriptsA

Search script sources already collected in this MCP process by literal text or regular expression.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
regexNo
maxResultsNo
collectionIdYes
caseSensitiveNo

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are present, so the description carries the burden. It discloses the search modes (literal or regex) which is useful behavioral context. However, it does not mention read-only status, default behavior like case sensitivity, or result limits, which limits transparency.

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

Conciseness5/5

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

The description is a single sentence, direct and front-loaded. It includes the essential purpose and method without any filler, making it highly concise.

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

Completeness2/5

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

Given five parameters and no output schema, the description is underspecified. It lacks details about return format, what collectionId refers to, how maxResults behaves, and other essential usage semantics needed for an agent to reliably invoke the tool.

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

Parameters2/5

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

Schema description coverage is 0%. The description explains query and regex via 'by literal text or regular expression' but does not clarify collectionId, maxResults, or caseSensitive. With five parameters and no schema descriptions, this is an insufficient compensation.

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 'Search script sources already collected in this MCP process by literal text or regular expression.' This clearly identifies the action (search), resource (script sources already collected), and method (literal/regex). It distinguishes from sibling collect_code by emphasizing already collected scripts.

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

Usage Guidelines4/5

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

The description implies usage after scripts have been collected in this MCP process, giving clear context. However, it does not explicitly name alternatives or exclusions. No explicit 'when not to use' guidance is provided.

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

sourcemap_coverageSummarize source-map coverageA

Summarize mapped original lines and sources for a parsed source map.

ParametersJSON Schema
NameRequiredDescriptionDefault
mapIdYes

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool summarizes coverage but does not explain what 'summarize' entails (e.g., counts, percentages), what output format to expect, or how it handles empty/malformed maps. The lack of return format details 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, front-loaded sentence with no filler. It communicates the essential action and object 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?

Given the tool's low complexity (one required parameter, no output schema), the description provides the basic purpose but omits key contextual details such as the output structure and any prerequisites beyond a parsed source map. Since there is no output schema, the description should say what the summary contains; it does not. It is adequate but with clear 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 schema has one parameter, mapId, with no description (0% coverage). The description's phrase 'for a parsed source map' gives some context that mapId likely refers to a previously parsed source map, but it does not explicitly explain the parameter's semantics or where the map ID comes from. The single, self-named parameter mitigates the gap, but the description still does not fully compensate for the missing schema documentation.

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

Purpose5/5

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

The description 'Summarize mapped original lines and sources for a parsed source map' clearly states the tool's purpose with a specific verb (summarize) and resource (mapped original lines and sources). This distinguishes it from sibling tools like sourcemap_parse_v4 (parsing), sourcemap_lookup (specific mappings), and sourcemap_diff (comparisons).

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 a parsed source map' implies that the tool should be used after parsing/fetching a source map, but it does not explicitly state when to prefer this over alternatives or provide exclusions. No alternatives are named, so guidance is merely implied.

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

sourcemap_diffDiff source mapsA

Compare source membership and sourcesContent hashes between two locally parsed source maps.

ParametersJSON Schema
NameRequiredDescriptionDefault
mapIdAYes
mapIdBYes
lineThresholdNo

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 adds value by specifying the exact comparison dimensions (source membership and hashes of sourcesContent). However, it does not disclose the output structure, whether the operation has side effects (though 'compare' suggests read-only), or how edge cases like missing sourcesContent are handled.

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 14-word sentence that front-loads the main verb and avoids any filler. Every word contributes to defining the tool's role, making it appropriately sized and 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?

Given the lack of an output schema and annotations, the description must explain the return value and parameter semantics to be complete. It does not describe the diff output format, nor does it clarify lineThreshold or how maps are associated with the 'locally parsed' state. These gaps leave the tool under-specified for reliable use.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only alludes to the two map IDs via 'two locally parsed source maps.' The third parameter, 'lineThreshold,' is not mentioned, leaving its meaning and behavior completely unexplained.

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

Purpose5/5

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

The description clearly identifies the tool's purpose with a specific verb ('Compare') and exactly what is compared ('source membership and sourcesContent hashes') between two source maps. This distinctly separates it from sibling tools like sourcemap_parse_v4, which parses, and sourcemap_lookup, which looks up mappings.

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 'locally parsed source maps' implies the prerequisite that maps must already be parsed, but it does not explicitly state when to use this tool versus alternatives or when to avoid using it. Usage context is hinted rather than explicitly documented.

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

sourcemap_discoverDiscover source mapsA

Discover sourceMappingURL values from Debugger.scriptParsed events and collected script tails.

ParametersJSON Schema
NameRequiredDescriptionDefault
waitMsNo
sessionIdYes
targetSessionIdNo

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description must carry the burden of behavioral disclosure. It mentions the data source (Debugger.scriptParsed events and script tails) which gives some insight, but fails to disclose whether the tool attaches listeners, waits, is one-shot, or returns results. The waitMs parameter hints at a wait behavior, but the description doesn't explain this.

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 leads with the action and object. It is concise, informative, and free of redundant details.

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 there is no output schema and no annotations, the description should explain return values and prerequisites. It doesn't mention what is returned (e.g., a list of discovered URLs) or any session requirements. The description is too sparse for a tool with 3 parameters and no further specs.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain any of the three parameters (sessionId, waitMs, targetSessionId). The mention of Debugger.scriptParsed events implies sessionId relates to a debugger session, but no explicit meaning is added. The description does not compensate for the lack of schema descriptions.

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

Purpose5/5

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

The description clearly states a specific action ('Discover') and resource ('sourceMappingURL values') with a precise source ('Debugger.scriptParsed events and collected script tails'). This distinguishes it from sibling tools like sourcemap_fetch_and_parse or sourcemap_coverage, which target different aspects of source map handling.

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 context for when to use this tool: when you need to discover sourceMappingURL values from browser debugger events and script tails. It doesn't explicitly mention alternatives or exclusions, but the context is sufficiently clear to avoid confusion with sibling tools.

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

sourcemap_fetch_and_parseFetch and parse source mapC

Parse supplied source-map JSON, or fetch a map through the selected page's authenticated fetch context before parsing it locally.

ParametersJSON Schema
NameRequiredDescriptionDefault
mapTextNo
scriptUrlNo
sessionIdNo
sourceMapUrlNo
targetSessionIdNo

TDQS

C2.9/5.0
Behavior2/5

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

The description mentions that an authenticated fetch context is used, which is a useful behavioral disclosure, and notes that parsing happens locally. However, it does not explain side effects of the network fetch, whether it modifies state, or how failures are handled. With no annotations provided, the description carries the full transparency burden and falls short.

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 that efficiently covers the two operational modes without extraneous words. It front-loads the main verbs and is easy to scan. However, it could be slightly more structured by explicitly indicating which parameter belongs to which mode.

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 5-parameter tool with no output schema and no annotation support, the description is too sparse. It doesn't explain the output format, required parameters per mode, or how the fetch context is selected. The description lacks sufficient detail for an agent to invoke the tool correctly without further investigation.

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

Parameters2/5

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

The schema has 5 parameters with no descriptions, and the tool description does not map any of them to the two modes. It doesn't clarify the roles of scriptUrl vs sourceMapUrl or the dual sessionId/targetSessionId fields. The only hint is that 'supplied source-map JSON' likely corresponds to mapText, but the description never names parameters.

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

Purpose4/5

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

The description clearly identifies the tool's dual function: parsing supplied source-map JSON or fetching a map via the page's authenticated fetch context and parsing locally. It uses specific verbs and a clear resource, making the core purpose understandable. However, it doesn't explicitly differentiate from sibling tools like sourcemap_parse_v4 or sourcemap_discover beyond implying the fetch capability.

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

Usage Guidelines3/5

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

The description gives two usage modes (supplied JSON vs fetching), implying when each path might be appropriate. It does not mention when to prefer alternatives such as sourcemap_parse_v4 or sourcemap_discover, nor does it state exclusions or require prerequisites. This is implied usage at best, lacking explicit guidance on tool selection among siblings.

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

sourcemap_lookupLook up original source positionB

Map a one-based generated line and zero-based column back to an original source position.

ParametersJSON Schema
NameRequiredDescriptionDefault
lineYes
mapIdYes
columnNo

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 burden of behavioral disclosure. It does add useful context about coordinate systems (one-based line, zero-based column) and the direction of mapping. However, it does not disclose failure behavior, the shape of the returned source position, or any preconditions (e.g., mapId must already be parsed).

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 verb and key details. No filler or redundant information. 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 tool is a simple lookup but has no annotations, no output schema, and a minimal description. It omits what 'original source position' actually looks like (e.g., file, line, column), error handling, and any dependency on prior sourcemap parsing. Given these gaps, the description is insufficient for an agent to use it confidently.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It clarifies 'line' and 'column' by specifying that the line is one-based and the column is zero-based. However, it says nothing about 'mapId', which remains opaque. Thus it adds value for two of three parameters but not all.

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

Purpose5/5

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

The description clearly states a specific action ('Map') with a specific resource ('a one-based generated line and zero-based column back to an original source position'). It distinguishes this from sibling sourcemap tools like sourcemap_fetch_and_parse or sourcemap_parse_v4 by focusing on the lookup/mapping operation.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus the many sourcemap-related siblings (e.g., sourcemap_fetch_and_parse, sourcemap_coverage). It does not mention prerequisites, such as needing a parsed map, or contexts where another tool is preferable. No exclusions are provided.

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

sourcemap_parse_v4Parse v4-compatible source mapC

Parse compatible mappings and preserve ECMA-426 debug ID and scope-field metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
mapUrlNo
mapTextYes

TDQS

C2.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 the full burden of behavioral disclosure. It adds that the tool 'preserves' metadata, which is useful, but it does not disclose whether parsing is side-effect-free, what happens with invalid or oversized input, how mapUrl is used, or what the return format looks like. This leaves significant behavioral ambiguity.

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

Conciseness4/5

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

The description is a single concise sentence that front-loads the core action ('Parse compatible mappings') and adds a specific detail about preserving metadata. It is efficient with no filler, though the phrase 'compatible mappings' could be more precise without sacrificing brevity.

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

Completeness2/5

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

The tool has no annotations, no output schema, and only two schema fields without descriptions. The single-sentence description does not explain return values, input expectations beyond the schema, how mapUrl affects behavior, or how this parser differs from other sourcemap-related tools. This is inadequate for a tool with multiple sibling alternatives and non-trivial metadata handling.

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

Parameters1/5

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

Schema description coverage is 0%, and neither the schema nor the description explains the meaning of the two parameters. The description never mentions mapText or mapUrl, nor their formats, constraints, or roles. With such low coverage, the description needed to compensate but did not.

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

Purpose4/5

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

The description clearly identifies a parse operation on source maps and adds the specific behavior of preserving ECMA-426 debug ID and scope-field metadata, which distinguishes it from sibling tools like sourcemap_lookup or sourcemap_coverage. However, the phrase 'compatible mappings' is somewhat vague and does not explicitly mention 'v4' within the description itself, relying on the title/name for that context.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives such as sourcemap_fetch_and_parse or sourcemap_discover. The metadata-preservation hint implies it is suited for v4 maps that contain debug IDs and scope fields, but no explicit exclusions or alternative recommendations are provided.

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

sourcemap_reconstruct_treeReconstruct source treeB

Reconstruct safe relative source paths and optionally return bounded sourcesContent from a parsed source map.

ParametersJSON Schema
NameRequiredDescriptionDefault
mapIdYes
maxFilesNo
includeContentsNo

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 full behavioral burden. It adds useful traits like 'safe' and 'bounded', hinting at path safety and output size limits, but does not disclose whether the operation is read-only, what happens for missing mapId, or any error behavior.

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

Conciseness5/5

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

The description is a single sentence with no filler, front-loaded with the action verb 'Reconstruct'. It conveys the core purpose efficiently and is appropriately sized.

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

Completeness2/5

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

Given no output schema, no annotations, and 3 parameters, the description is under-specified. It does not describe the returned tree structure, what 'safe' or 'bounded' concretely mean, or how maxFiles affects the result, making it incomplete for an agent to confidently invoke correctly.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It implies includeContents controls whether sourcesContent is returned, but maxFiles is not explained and mapId is only inferred from the tool name. With three parameters, this leaves significant gaps.

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

Purpose4/5

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

The description clearly states a specific action: reconstruct safe relative source paths and optionally return bounded sourcesContent from a parsed source map. It distinguishes from siblings like sourcemap_parse_v4 or sourcemap_lookup by focusing on tree reconstruction, 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 Guidelines3/5

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

The phrase 'from a parsed source map' implies it is intended to be used after parsing, but no explicit guidance is given on when to prefer this over tools like sourcemap_lookup or sourcemap_diff. There are no stated exclusions or alternative conditions.

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

transform_workbenchTransform binary payloadC

Run a reproducible local binary transform pipeline over base64 input.

ParametersJSON Schema
NameRequiredDescriptionDefault
stepsYes
inputBase64Yes
previewBytesNo
includeOutputBase64No

TDQS

C2.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 full burden. It provides some useful context by calling the pipeline 'reproducible local', implying determinism and no external network calls. However, it does not disclose return format, error behavior, or side effects, so it only partially covers behavioral transparency.

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

Conciseness3/5

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

The description is extremely concise (one sentence, 10 words), which is good for brevity, but it lacks structure and does not front-load key information like the pipeline nature or parameter requirements. Under-specification prevents it from being truly 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?

Given the complexity (4 parameters, no output schema, no annotations), a single sentence is woefully incomplete. It ignores the transform steps, preview options, and output considerations. The description needs to cover more of the tool's operational surface to be contextually complete.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must compensate, but it only mentions 'base64 input' which hints at inputBase64. It does not explain the steps array, the op enum options, key/keyHex, previewBytes, or includeOutputBase64. This is severely insufficient for a 4-parameter tool.

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 a specific action: 'Run a reproducible local binary transform pipeline over base64 input.' It uses a strong verb ('Run'), identifies the resource ('binary transform pipeline'), and adds scope ('over base64 input'), which differentiates it from siblings like binary_decode or binary_encode that imply single operations.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives such as binary_decode or binary_encode. It does not mention exclusions, prerequisites, or explicitly name any sibling tools, leaving the agent without clear selection criteria.

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

understand_codeUnderstand JavaScriptA

Parse supplied JavaScript locally and summarize structure, calls, complexity, globals, and optional security signals. No browser session is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes
focusNoall

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 disclosure burden. It discloses that parsing is local and that no browser session is required, which are useful behavioral traits. However, it does not mention whether code is executed, potential side effects, or return format, leaving some behavioral ambiguity. It adds some value but not comprehensive transparency.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the key verb and resource, and every phrase adds value. There is no fluff or repetition. It is efficiently compact while conveying the core functionality and a key constraint.

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

Completeness2/5

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

Given no annotations, no output schema, and 2 parameters with 0% schema coverage, the description is too sparse for full understanding. It does not explain the structure of the output summary, how to use the focus parameter effectively, or how this tool relates to the many analysis siblings. It covers the 'what' but not the 'how' or 'when,' making it incomplete for a tool with this complexity.

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

Parameters2/5

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

The input schema has 0% description coverage, so the description must clarify parameters. It mentions 'optional security signals' which hints at the 'focus' enum, but it does not explain what 'structure', 'business', or 'all' focus options do, nor does it describe the 'code' parameter beyond implication. The description only partially compensates for the lack of schema descriptions.

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

Purpose5/5

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

The description clearly states the tool's function with specific verbs: 'Parse supplied JavaScript locally and summarize structure, calls, complexity, globals, and optional security signals.' It distinguishes itself from sibling browser-based tools by emphasizing 'locally' and 'No browser session is required,' effectively differentiating from browser-bound alternatives.

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

Usage Guidelines3/5

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

The description implies usage context by noting local parsing and lack of browser dependency, suggesting it's appropriate for static analysis without a session. However, it does not explicitly state when to use this tool over other analysis siblings (e.g., analysis_ast_match, js_deobfuscate_pipeline) or provide exclusions. The guidance is implicit rather than explicit.

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

wasm_inspectInspect WebAssembly moduleA

Inspect a WASM module's sections, imports, exports, names, and producers using a local dependency-free structural parser.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputPathNo
inputBase64No

TDQS

A4.1/5.0
Behavior4/5

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

Since no annotations are provided, the description carries the burden of disclosing behavior. It adds useful context by noting it's a 'local dependency-free structural parser', indicating no network dependencies and a read-only inspection. However, it does not explicitly state error behavior or output format, but the 'inspect' verb implies non-destructive 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?

The description is one sentence, entirely front-loaded with the verb and object, listing the key inspected components. No redundant or filler words are present.

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 tool's purpose and input mechanism generally, and the mention of sections, imports, exports, names, and producers hints at the expected output. Given the absence of an output schema, it could provide more detail on return values or error handling, but for a simple inspection tool it is reasonably complete.

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

Parameters2/5

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

The schema has 2 parameters (inputPath, inputBase64) with 0% description coverage. The description does not explain these parameters or their relationship, so agents must rely on property names alone. This is a significant gap, as the description fails to compensate for the low 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 clearly identifies the tool as inspecting a WASM module's structural elements (sections, imports, exports, names, producers) using a local dependency-free parser. This specific verb+resource+scope distinguishes it from sibling tools like wasm_string_extract, which focus on string extraction.

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 context of what the tool does, implying its use for structural analysis of WASM modules. However, it does not explicitly state when to use it over alternatives or exclude other use cases, lacking direct when/when-not guidance.

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

wasm_string_extractExtract WebAssembly stringsB

Extract printable strings by WASM section and classify URLs, hashes, base64, and paths.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputPathNo
minLengthNo
maxStringsNo
inputBase64No

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are present, so the description carries the burden. It discloses that strings are printable, organized by WASM section, and classified, which adds insight beyond the title. However, it does not disclose input modes (file vs base64), output format, limits, or edge cases, leaving key behaviors undocumented.

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

Conciseness5/5

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

A single sentence that is clear and front-loaded, with no redundant wording. It earns its place by adding classification details that go beyond the title.

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

Completeness2/5

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

Given the lack of an output schema, missing parameter explanations, and no annotations, the one-sentence description is insufficient for an agent to fully understand how to invoke the tool or interpret results, especially for a 4-parameter tool. It lacks essential details like return value structure and parameter semantics.

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

Parameters1/5

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

The input schema has zero description coverage for its four parameters (inputPath, minLength, maxStrings, inputBase64), and the description does not mention any of them. It provides no assistance in understanding what these values mean or how they relate to the extraction behavior, failing to compensate for the schema gap.

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

Purpose5/5

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

The description states a specific action ('Extract printable strings') with a clear resource ('WebAssembly') and adds scope ('by WASM section' and classification of URLs/hashes/base64/paths), distinguishing it from sibling tools like wasm_inspect. This is a precise, non-redundant statement of purpose.

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

Usage Guidelines3/5

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

The description implies its use when you need to extract strings from WebAssembly binaries, but it provides no explicit guidance on when to use it over alternatives like wasm_inspect or binary analysis tools. There are no exclusions or context signals to help an agent decide.

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

watchManage debugger watchesA

Add, remove, clear, list, and evaluate watch expressions on a global or paused frame.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
watchIdNo
sessionIdYes
expressionNo
callFrameIdNo
targetSessionIdNo

TDQS

A3.5/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 lists the operations but does not explain side effects, prerequisites (e.g., an active session), or what happens when clearing all watches. This is insufficient for a mutating tool.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that efficiently lists the five supported operations. No wasted words.

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

Completeness2/5

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

Given six parameters and no annotations or output schema, the description is too minimal to guide correct invocation. It lacks details on how actions map to parameters, which are essential for an agent to use the tool correctly.

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

Parameters2/5

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

The description adds no direct parameter information, and schema coverage is 0%. It only hints at 'expression' and the action list maps to the action enum, but parameters like watchId, callFrameId, and targetSessionId remain unexplained, failing to compensate for the coverage gap.

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

Purpose5/5

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

The description clearly states the tool manages watch expressions with a specific list of actions (add, remove, clear, list, evaluate). This distinguishes it from sibling debugger tools like breakpoint or debugger_evaluate, which focus on different concerns.

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

Usage Guidelines4/5

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

The phrase 'on a global or paused frame' provides clear context about when to use this tool. However, it does not explicitly mention exclusions or alternative tools, so it lacks the explicit when/not guidance that would merit a 5.

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

webpack_enumerateEnumerate Webpack modulesB

Evaluate a bounded Webpack module-table collector in the selected Raw target. This modifies the chunk array only by appending a runtime probe.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo
sessionIdYes
maxModulesNo
targetSessionIdNo

TDQS

B3/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 disclosure burden. It explicitly states a side effect: 'modifies the chunk array only by appending a runtime probe', and uses 'bounded' to indicate a limit. This is valuable. However, it does not disclose execution context, potential errors, return format, or whether other state could be affected beyond the chunk array, leaving significant gaps.

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 filler. It front-loads the primary action in the first sentence and follows with a concise note on the side effect. The structure is efficient and appropriately sized for a brief overview.

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 absence of annotations, output schema, and parameter descriptions, the description is insufficient. It does not explain what the tool returns, what 'Raw target' means, prerequisites (e.g., the target being a Webpack bundle), or error behavior. The description covers only the basic side effect and boundedness, leaving many operational aspects unknown.

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

Parameters2/5

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

Schema coverage is 0% with no parameter descriptions. The description only vaguely hints at parameters: 'bounded' alludes to maxModules and 'selected Raw target' to targetSessionId. The query and sessionId parameters are completely unexplained. The description fails to compensate for the lack of schema documentation.

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

Purpose4/5

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

The description specifies a verb ('Evaluate') and a resource ('Webpack module-table collector'), and the title clarifies it enumerates Webpack modules. It is distinguished from sibling tools by focusing on Webpack's module table. However, the verb 'evaluate' is less precise than 'enumerate' or 'list', and 'Raw target' is undefined, leaving slight ambiguity.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention any sibling tools, prerequisites, or exclusions. The only contextual hint is 'in the selected Raw target', which implies a target selection but does not explain it. There is no 'when to use' or 'when not to use' information.

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. 8 tool updatesv0.10.0
    • Changedbrowser_act2 fields changed
      • addedInput schema / properties / debuggerSessionId
        Added value: +{
        +  "description": "Raw or network session ID this task holds on the tab. Required when the tab has a live debugger lease; omit otherwise.",
        +  "maxLength": 120,
        +  "minLength": 20,
        +  "type": "string"
        +}
      • addedInput schema / properties / snapshotId
        Added value: +{
        +  "description": "Required with ref: the snapshotId returned by the browser_snapshot that produced the ref.",
        +  "maxLength": 100,
        +  "minLength": 1,
        +  "type": "string"
        +}
    • Changedbrowser_cdp_attach2 fields changed
      • addedInput schema / properties / leaseTtlMs
        Added value: +{
        +  "description": "Idle period after which another task may take over the attachment (default 300000). Any valid call renews it.",
        +  "maximum": 3600000,
        +  "minimum": 30000,
        +  "type": "integer"
        +}
      • addedInput schema / properties / ownerLabel
        Added value: +{
        +  "description": "Diagnostic label shown to other tasks that find the tab busy; not an identity.",
        +  "maxLength": 64,
        +  "type": "string"
        +}
    • Changedbrowser_click1 field changed
      • addedInput schema / properties / debuggerSessionId
        Added value: +{
        +  "description": "Raw or network session ID this task holds on the tab. Required when the tab has a live debugger lease; omit otherwise.",
        +  "maxLength": 120,
        +  "minLength": 20,
        +  "type": "string"
        +}
    • Addedbrowser_debugger_recover
    • Addedbrowser_debugger_renew
    • Addedbrowser_debugger_sessions
    • Changedbrowser_fill1 field changed
      • addedInput schema / properties / debuggerSessionId
        Added value: +{
        +  "description": "Raw or network session ID this task holds on the tab. Required when the tab has a live debugger lease; omit otherwise.",
        +  "maxLength": 120,
        +  "minLength": 20,
        +  "type": "string"
        +}
    • Changedbrowser_network_start2 fields changed
      • addedInput schema / properties / leaseTtlMs
        Added value: +{
        +  "description": "Idle period after which another task may take over the attachment (default 300000). Any valid call renews it.",
        +  "maximum": 3600000,
        +  "minimum": 30000,
        +  "type": "integer"
        +}
      • addedInput schema / properties / ownerLabel
        Added value: +{
        +  "description": "Diagnostic label shown to other tasks that find the tab busy; not an identity.",
        +  "maxLength": 64,
        +  "type": "string"
        +}
  2. 15 tool updatesv0.9.1
    • Changedbrowser_act1 field changed
      • addedInput schema / properties / browser
        Added value: +{
        +  "description": "Which connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.",
        +  "maxLength": 100,
        +  "minLength": 1,
        +  "type": "string"
        +}
    • Changedbrowser_activate_tab1 field changed
      • addedInput schema / properties / browser
        Added value: +{
        +  "description": "Which connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.",
        +  "maxLength": 100,
        +  "minLength": 1,
        +  "type": "string"
        +}
    • Changedbrowser_cdp_attach1 field changed
      • addedInput schema / properties / browser
        Added value: +{
        +  "description": "Which connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.",
        +  "maxLength": 100,
        +  "minLength": 1,
        +  "type": "string"
        +}
    • Changedbrowser_click1 field changed
      • addedInput schema / properties / browser
        Added value: +{
        +  "description": "Which connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.",
        +  "maxLength": 100,
        +  "minLength": 1,
        +  "type": "string"
        +}
    • Changedbrowser_close_tab1 field changed
      • addedInput schema / properties / browser
        Added value: +{
        +  "description": "Which connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.",
        +  "maxLength": 100,
        +  "minLength": 1,
        +  "type": "string"
        +}
    • Changedbrowser_fill1 field changed
      • addedInput schema / properties / browser
        Added value: +{
        +  "description": "Which connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.",
        +  "maxLength": 100,
        +  "minLength": 1,
        +  "type": "string"
        +}
    • Addedbrowser_list_instances
    • Changedbrowser_list_tabs2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / browser
        Added value: +{
        +  "description": "Which connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.",
        +  "maxLength": 100,
        +  "minLength": 1,
        +  "type": "string"
        +}
    • Changedbrowser_navigate1 field changed
      • addedInput schema / properties / browser
        Added value: +{
        +  "description": "Which connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.",
        +  "maxLength": 100,
        +  "minLength": 1,
        +  "type": "string"
        +}
    • Changedbrowser_network_start1 field changed
      • addedInput schema / properties / browser
        Added value: +{
        +  "description": "Which connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.",
        +  "maxLength": 100,
        +  "minLength": 1,
        +  "type": "string"
        +}
    • Changedbrowser_open_tab1 field changed
      • addedInput schema / properties / browser
        Added value: +{
        +  "description": "Which connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.",
        +  "maxLength": 100,
        +  "minLength": 1,
        +  "type": "string"
        +}
    • Changedbrowser_screenshot1 field changed
      • addedInput schema / properties / browser
        Added value: +{
        +  "description": "Which connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.",
        +  "maxLength": 100,
        +  "minLength": 1,
        +  "type": "string"
        +}
    • Changedbrowser_snapshot1 field changed
      • addedInput schema / properties / browser
        Added value: +{
        +  "description": "Which connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.",
        +  "maxLength": 100,
        +  "minLength": 1,
        +  "type": "string"
        +}
    • Changedbrowser_status2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / browser
        Added value: +{
        +  "description": "Which connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.",
        +  "maxLength": 100,
        +  "minLength": 1,
        +  "type": "string"
        +}
    • Changedbrowser_watch_events1 field changed
      • addedInput schema / properties / browser
        Added value: +{
        +  "description": "Which connected Chrome to use: an instanceId or label from browser_list_instances. Required when more than one browser is connected; session-based tools infer it from their sessionId.",
        +  "maxLength": 100,
        +  "minLength": 1,
        +  "type": "string"
        +}
  3. 79 tool updatesv0.8.0
    • Addedanalysis_ast_match
    • Addedanalysis_data_flow
    • Addedanalysis_decode_string_array
    • Addedanalysis_deflat_control_flow
    • Addedanalysis_security_scan
    • Addedast_transform_apply
    • Addedast_transform_chain
    • Addedast_transform_preview
    • Addedbinary_decode
    • Addedbinary_detect_format
    • Addedbinary_encode
    • Addedbinary_entropy_analysis
    • Addedblackbox_add
    • Addedblackbox_add_common
    • Addedblackbox_list
    • Addedbreakpoint
    • Addedbrowser_act
    • Changedbrowser_cdp_attach1 field changed
      • changedInput schema / properties / maxBytes / maximum
        Previous value: -3000000New value: +67108864
    • Addedcollect_code
    • Addedconsole_get_exceptions
    • Addedcrypto_compare
    • Addedcrypto_test_harness
    • Addeddebugger_capture_hit
    • Addeddebugger_disassemble
    • Addeddebugger_evaluate
    • Addeddebugger_get_paused_state
    • Addeddebugger_lifecycle
    • Addeddebugger_pause
    • Addeddebugger_resume
    • Addeddebugger_run_to_location
    • Addeddebugger_session
    • Addeddebugger_step
    • Addeddebugger_wait_for_paused
    • Addeddetect_crypto
    • Addeddetect_obfuscation
    • Addedextract_function_tree
    • Addedget_call_stack
    • Addedget_object_properties
    • Addedget_scope_variables_enhanced
    • Addedgrpc_frame_build
    • Addedgrpc_frame_parse
    • Addedhttp2_frame_parse
    • Addedjs_deobfuscate_pipeline
    • Addedjs_solve_constraints
    • Addednetwork_export_har
    • Addednetwork_extract_auth
    • Addednetwork_get_response_body
    • Addednetwork_get_stats
    • Addednetwork_http2_fingerprint
    • Addednetwork_intercept
    • Addedperformance_coverage
    • Addedperformance_get_metrics
    • Addedperformance_take_heap_snapshot
    • Addedperformance_trace
    • Addedprofiler_cpu
    • Addedprofiler_heap_sampling
    • Addedproto_auto_detect
    • Addedproto_dissect_dns
    • Addedproto_dissect_http
    • Addedproto_export_schema
    • Addedproto_fingerprint
    • Addedproto_infer_fields
    • Addedproto_infer_state_machine
    • Addedproto_visualize_state
    • Addedprotobuf_decode_raw
    • Addedsearch_in_scripts
    • Addedsourcemap_coverage
    • Addedsourcemap_diff
    • Addedsourcemap_discover
    • Addedsourcemap_fetch_and_parse
    • Addedsourcemap_lookup
    • Addedsourcemap_parse_v4
    • Addedsourcemap_reconstruct_tree
    • Addedtransform_workbench
    • Addedunderstand_code
    • Addedwasm_inspect
    • Addedwasm_string_extract
    • Addedwatch
    • Addedwebpack_enumerate
  4. 18 tool updatesv0.6.0
    • First observedbrowser_activate_tab
    • First observedbrowser_cdp_attach
    • First observedbrowser_cdp_detach
    • First observedbrowser_cdp_events
    • First observedbrowser_cdp_send
    • First observedbrowser_click
    • First observedbrowser_close_tab
    • First observedbrowser_fill
    • First observedbrowser_list_tabs
    • First observedbrowser_navigate
    • First observedbrowser_network_poll
    • First observedbrowser_network_start
    • First observedbrowser_network_stop
    • First observedbrowser_open_tab
    • First observedbrowser_screenshot
    • First observedbrowser_snapshot
    • First observedbrowser_status
    • First observedbrowser_watch_events

TDQS

C2.6/5.0

Scored across 100 tools

Disambiguation2/5

Many tools overlap: browser_act vs browser_click/fill, browser_snapshot vs browser_screenshot, browser_cdp_send/events vs browser_network_poll, and multiple debugger/network session attachment tools. Descriptions help but boundaries remain blurry, risking misselection.

Naming Consistency3/5

Dominant prefix_noun_action pattern (browser_, debugger_, sourcemap_) is readable, but bare verbs (watch, breakpoint, understand_code, collect_code) and mixed verb/noun order break consistency.

Tool Count1/5

100 tools far exceed a well-scoped surface; the server spans browser automation, CDP, debugger, network, sourcemaps, binary/proto analysis, WASM, JS deobfuscation, and crypto. This is an extreme mismatch for a single MCP server.

Completeness5/5

Surface is extremely comprehensive, covering browser control, CDP raw access, debugger lifecycle, network capture, sourcemap analysis, binary/proto/WASM inspection, and JS static analysis. No obvious dead ends for the broad reverse-engineering/browser-bridge purpose.

Maintenance

ActivityMaintained
ResponsivenessWithin a week

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server for local browser control via Chrome/Edge extension, enabling agents to open isolated tabs, observe pages, take screenshots, and interact with accessible controls using an existing browser profile. It is agent-agnostic, local-only, and supports safe session scoping with origin grants and sensitive-data blocking.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Local MCP server for persistent Chrome automation with multi-profile support, enabling tab management, page inspection, element interaction, JavaScript evaluation, and screenshots while preserving login sessions across restarts.
    117 npm
    3
    MIT