Skip to main content
Glama

OpenChrome

OpenChrome is a browser automation MCP server for controlling a real Chrome browser from Claude Code, Codex CLI, OpenCode, or any MCP client.

It ships as a Node CLI plus MCP runtime. Desktop apps, browser extensions, native-host installers, deployment templates, and release artifact builders are outside this repository surface.

Install

npm install -g openchrome-mcp
openchrome setup --client codex

For Claude Code:

openchrome setup --client claude

Restart the MCP host after setup so it reloads the generated configuration.

Related MCP server: byob

Run

openchrome serve --auto-launch --auto-elect --minimal

Manual Codex CLI configuration:

openchrome config --client codex

Add the printed [mcp_servers.openchrome] block to ~/.codex/config.toml.

CLI

OpenChrome can call its MCP tools directly from the shell:

oc run navigate --arg url=https://example.com
oc run read_page --arg mode=dom --json
oc navigate https://example.com
oc click ref_5

Playbooks run deterministic YAML scenarios:

oc playbook run scenario.yaml --vars url=https://iana.org --out report.md

HTTP Mode

Run a long-lived MCP HTTP daemon when multiple clients should share one managed Chrome owner:

openchrome serve --http 3100 --auth-token <token> --idle-timeout 30m
curl -s http://127.0.0.1:3100/health

Independent stdio clients should use separate --port and --user-data-dir profiles, or connect through broker mode with --auto-elect.

Capabilities

  • Real Chrome control through CDP.

  • Navigation, clicks, typing, screenshots, DOM reads, accessibility reads, and natural-language element lookup.

  • Parallel tab/session workflows with broker-safe profile ownership.

  • Compact page serialization for lower-token agent loops.

  • Outcome contracts, evidence bundles, diffs, and diagnostics.

  • Optional pilot-tier recovery and skill runtime behind --pilot.

Full tool catalogue: docs/agent/capability-map.md.

Documentation

Development

git clone https://github.com/shaun0927/openchrome.git
cd openchrome
npm install
npm run build
npm test

Useful checks:

npm run lint
npm run lint:repo-structure
npm run lint:tier
npm run docs:capability-map:check

License

MIT

Available Tools

118 tools
actA
Destructive

Execute multi-step browser actions from a natural language instruction. Parses and runs click, type, select, scroll, hover, navigate, and wait steps in sequence.

When to use: Automating a known multi-step flow (login, form fill, navigation) in one call. When NOT to use: Use interact for a single element action, or computer for raw coordinate input.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID to execute on
instructionYesNatural language description of actions (e.g., "click login, type admin in username, click submit")
contextNoAdditional context (e.g., "on the login page")
verifyNoVerify mode. boolean is legacy: true→"screenshot", false→"none". String enum returns a compact diff signal (AX-hash delta + pHash, ≤4KB).
timeoutNoMax time in ms for entire sequence. Default: 30000
use_workflow_cacheNoOpt-in: try guarded structured workflow cache before legacy action cache. Default: false
record_workflow_cacheNoOpt-in: record safe successful parsed sequences into the structured workflow cache. Default: false
allow_risky_replayNoAllow replay of workflow cache entries marked risky. Default: false
workflow_debugNoInclude concise workflow cache accept/reject metadata in the response. Default: false
returnAfterStateNoOptional chaining hint. When "ax" or "dom", the response includes a page snapshot of that mode captured after the post-action wait, removing the need for a follow-up read_page call. Default: "none".

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already convey destructiveHint=true and readOnlyHint=false. The description adds context about parsing instructions and sequential execution, which is consistent with annotations. No contradictions.

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 plus two usage lines. No wasted words, front-loaded with purpose, then usage guidance. Efficient and well-structured.

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

Completeness4/5

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

With 10 parameters (100% schema coverage) and no output schema, the description covers core functionality and usage context. Could mention caching parameters but not necessary given schema detail. Adequate for complexity.

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

Parameters4/5

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

Schema coverage is 100% with detailed parameter descriptions. The description adds value by listing the types of actions parsed (click, type, etc.), which is not in the schema, enhancing understanding of the 'instruction' parameter.

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

Purpose5/5

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

The description clearly defines the tool as executing multi-step browser actions from natural language, listing specific actions (click, type, etc.), and distinguishes from siblings by specifying when to use 'interact' or 'computer' instead.

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

Usage Guidelines5/5

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

Explicitly states when to use (automating a known multi-step flow) and when not to use (single element action→interact, raw coordinate→computer), providing clear alternatives and guidance.

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

batch_executeA
Destructive

Execute JS across multiple tabs in parallel.

ParametersJSON Schema
NameRequiredDescriptionDefault
tasksYesTasks to execute in parallel
concurrencyNoMax parallel tasks. Default: 10
failFastNoStop on first failure. Default: false

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already disclose destructiveHint=true and readOnlyHint=false, so the description's mention of 'parallel' adds context. However, it does not elaborate on destructive behavior, idempotency, or performance implications beyond the schema's Promise auto-awaited note.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with zero waste. It efficiently conveys the core action and scope.

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 (multiple parameters, nested objects, no output schema) and lack of return value documentation, the description is too sparse. It omits failure behavior, result format, and how task results are retrieved, making it incomplete for effective use.

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

Parameters3/5

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

All parameters are described in the input schema (100% coverage), so the description adds no extra parameter-level meaning. Baseline 3 is appropriate as the schema does the heavy lifting.

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

Purpose5/5

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

The description clearly states the verb 'Execute' and resource 'JS across multiple tabs', distinguishing it from single-tab execution tools like 'javascript_tool'. It explicitly mentions parallel execution, setting it apart from sequential 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 parallel batch execution but provides no explicit guidance on when to use this tool versus siblings like 'javascript_tool' for single-tab or 'batch_paginate' for paging. No when-not-to-use or alternative naming is present.

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

batch_paginateB

Extract content from paginated viewers in one call.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID
strategyYesPagination strategy
totalPagesNoTotal pages. Required for keyboard/click
startPageNoStarting page number. Default: 1
captureModeNoCapture format per page. Default: text
keyActionNoNext-page key. Default: ArrowRight
nextSelectorNoNext button selector (click)
urlTemplateNoURL with {N}/{page}/{offset} placeholder
waitBetweenPagesNoWait between pages in ms. Default: 500
scrollAmountNoViewports per scroll. Default: 1
maxScrollsNoMax scroll steps. Default: 50

TDQS

B3.1/5.0
Behavior2/5

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

The description says 'extract content' implying read-only behavior, but annotations set readOnlyHint=false, creating a contradiction. It does not disclose that strategies involve clicking, scrolling, or keyboard actions that modify page state. Annotations already provide some transparency, but the description adds no behavioral context beyond the contradiction.

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 concise and front-loaded with the core purpose. However, it sacrifices necessary guidance 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?

Given the tool's complexity (11 parameters, 4 strategies, no output schema), the description is insufficient. It does not explain return values, strategy behavior, prerequisites, or how to choose between strategies.

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

Parameters3/5

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

Schema coverage is 100%, so baseline 3 is appropriate. The description does not add any parameter-specific meaning beyond what the schema already provides, such as how strategies differ or which parameters are needed for each strategy.

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 ('extract content'), the resource ('paginated viewers'), and the efficiency ('in one call'). It distinguishes from sibling tools like crawl by focusing on pagination extraction in a single call.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like crawl, navigate, or manual pagination. The description does not mention preconditions, when to choose different strategies, or when to avoid this tool.

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

computerA

Mouse, keyboard, and screenshot actions on a tab. Supports click, type, scroll, key, hover, and screenshot by pixel coordinate or element ref.

When to use: Precise coordinate-based input, screenshots, or keyboard shortcuts. When NOT to use: Use interact for natural-language element actions, or act for multi-step sequences.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID
actionYesAction to perform
coordinateNo[x, y] for click/scroll actions
textNoText to type or key to press
durationNoWait duration in seconds
scroll_directionNoScroll direction
scroll_amountNoScroll wheel ticks. Default: 3
refNoElement ref or backendNodeId
screenshotQualityNoScreenshot quality. low: reduced resolution and quality for smaller payload.
screenshotFormatNoOnly for action "screenshot". Image format for the returned base64. Default: "webp" (smallest payload). Use "png" for clients that cannot decode webp inline (e.g. some MCP UIs), at the cost of larger payloads. "screenshotQuality" is ignored for png (PNG is lossless).
includeUserAgentShadowDOMNoInclude user-agent shadow DOM in hit detection. Default: false
forceNoOnly for action "screenshot". Force full screenshot, bypassing adaptive degradation. Default: false.
returnAfterStateNoOptional chaining hint. When "ax" or "dom", the response includes a page snapshot of that mode captured after the post-action wait, removing the need for a follow-up read_page call. Default: "none".

TDQS

A4.2/5.0
Behavior3/5

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

Annotations are all false, but the description adds no behavioral context beyond basic actions. It does not mention side effects, state changes, or post-action waits, though the schema hints at such with duration and returnAfterState. The description adds minimal behavioral insight.

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

Conciseness5/5

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

The description is concise, using four well-structured sentences including explicit usage guidelines. Every sentence adds value without redundancy.

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

Completeness4/5

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

Given the complexity (13 params, no output schema, many actions), the description provides a high-level overview and usage context. It could mention return format or behavior of actions like wait and scroll, but the schema fills many gaps. A minor shortfall.

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% (13 params all described). The description only adds 'by pixel coordinate or element ref' which matches coordinate/ref params. With high schema coverage, baseline is 3; description provides little extra 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 states it handles mouse, keyboard, and screenshot actions on a tab, listing specific actions like click, type, scroll, key, hover, and screenshot. It clearly distinguishes from siblings interact (natural language) and act (multi-step sequences).

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

Usage Guidelines5/5

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

The description explicitly provides 'When to use' and 'When NOT to use' sections, naming specific alternatives (interact for natural language, act for sequences). This is excellent guidance.

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

console_captureB
Destructive

Capture browser console output (start, stop, get, clear).

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID
actionYesAction to perform
filterNoLog types to capture. Default: all
limitNoMax logs to return (get action)
cursorNoOpaque pagination cursor returned as nextCursor from a prior console_capture get call.
maxLogsNoMax logs to store. Default: 1000
maxBytesNoMax total bytes of logs to store. Default: 4194304 (4 MiB)
boundaryMarkersNoWrap console-origin text in <oc:console>. Default true; false disables.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds that the tool manages a capture lifecycle (start/stop/clear), which implies state changes. However, it does not detail side effects like memory consumption or that clear is irreversible, so it adds minimal value beyond annotations.

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

Conciseness5/5

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

The description is a single sentence that efficiently conveys the core purpose and actions. It is front-loaded with the primary verb and resource, with no superfluous content.

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 8 parameters and no output schema, the description lacks essential context such as the capture lifecycle, session scope, storage limits (already in schema), or when to use each action. The agent cannot infer important behavioral details like the ability to filter logs or paginate results, which are only in the schema.

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 schema already describes all parameters in detail. The description merely restates the actions, adding no new information about parameter usage beyond what the schema provides.

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 as capturing browser console output and lists the supported actions (start, stop, get, clear). It distinguishes from siblings like network_capture tools by focusing on console output.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. The agent receives no context for decision-making.

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

cookiesA
Destructive

Manage browser cookies (get, set, delete, clear).

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID
actionYesAction to perform
nameNoCookie name
valueNoCookie value
domainNoCookie domain. Default: current domain
pathNoCookie path. Default: /
secureNoSecure flag
httpOnlyNoHTTP-only flag
sameSiteNoSameSite attribute
expiresNoExpiration Unix timestamp (seconds)
rawNoReturn all cookies with full attributes, bypassing classification.
dryRunNoPreview-only mode for destructive actions (delete, clear). When true, returns counts and a sample of cookies that would be deleted without mutating any state. Default: false.

TDQS

A3.7/5.0
Behavior3/5

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

Annotations indicate destructiveHint=true, so the description's mention of 'manage' covers destructive actions like delete/clear. However, the description does not elaborate on behavioral traits such as the effect of dryRun parameter or that preview mode exists. The schema provides some detail, but the description adds minimal extra transparency beyond 'manage'.

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

Conciseness5/5

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

The description is extremely concise—one sentence with no wasted words. It front-loads the core purpose ('manage browser cookies') and lists actions, making it efficient for quick comprehension.

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

Completeness3/5

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

With 12 parameters and no output schema, the description is minimal. It lacks details on return values, error handling, or usage scenarios. However, the schema is comprehensive, partially compensating. The description could provide more context on how actions interact or ordering.

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions for all parameters. The description adds no additional meaning beyond what the schema already provides, resulting in a baseline score of 3.

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

Purpose5/5

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

The description clearly states the tool's purpose: managing browser cookies by performing actions like get, set, delete, clear. The verb 'manage' combined with the explicit list of actions makes it specific and distinct from sibling tools like 'storage' or 'network'.

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 cookie management but does not explicitly state when to use this tool versus alternatives (e.g., for simple cookie operations vs. other storage methods). No guidance on prerequisites 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.

crawlA

Recursively crawl a website via BFS. Opens pages in new tabs, extracts text and links, follows them up to max_depth. Respects robots.txt and scope constraints.

When to use: Extracting content from multiple pages of a site when the URL structure is not known in advance. When NOT to use: Use crawl_sitemap when the site has a sitemap.xml, or navigate for a single page.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesStarting URL to crawl
max_depthNoMaximum link-follow depth (0 = start page only). Default: 2
max_pagesNoMaximum number of pages to crawl. Default: 20
cursorNoOpaque pagination cursor returned as nextCursor from a prior crawl call. Cursoring paginates returned pages after the crawl completes.
scopeNoURL glob pattern limiting which URLs to follow (e.g. "https://docs.example.com/**"). Default: same origin as start URL.
include_patternsNoURL glob patterns — only follow links matching at least one
exclude_patternsNoURL glob patterns — skip links matching any of these
output_formatNoContent format per page. "markdown-clean" uses cheerio+turndown to strip nav/footer/ads. Default: markdown
onlyMainContentNomarkdown-clean only: strip nav/header/footer/aside/ads. Default: true.
includeLinksNomarkdown-clean only: preserve <a> as markdown links. Default: true.
content_filterNomarkdown-clean only: deterministic fit_markdown filter. Default: none.
return_rawNomarkdown-clean only: include raw_markdown in each page. Default: false.
return_fitNomarkdown-clean only: include fit_markdown and use it as content when filtering. Default: true when filtered.
respect_robotsNoWhether to fetch and obey robots.txt. Default: true
delay_msNoDelay between page fetches in milliseconds. Default: 1000
concurrencyNoMax parallel tab fetches. Default: 3
engineNoFetch engine: "cdp" (default, opens a Chrome tab per page), "static" (Node fetch only, fails closed on insufficient pages), or "auto" (static first, fall back to CDP when static is insufficient).
include_metricsNoWhen true, include approximate output size/token metrics in the JSON result. Default: false.
strategyNoCrawl traversal strategy. Default: bfs. best_first scores discovered URLs by query/url_score and visits highest-scoring URLs first.
queryNoOptional query terms used by strategy=best_first URL scoring.
url_scoreNoOptional strategy=best_first URL scoring hints: keywords, prefer_paths, exclude_paths, same_depth_bias.
dispatcherNoCrawl concurrency dispatcher. Default: fixed. adaptive reduces concurrency on memory/error pressure and records origin backoff for 429/503 responses.
dispatcher_optionsNodispatcher=adaptive options: min_concurrency, max_concurrency, memory_pressure_mb, origin_backoff_ms, rate_limit_statuses.
cache_modeNoOpt-in crawl content cache mode. Default: disabled.
cache_ttl_msNoMaximum age for enabled/read_only cache hits. Negative or omitted means no TTL expiry.
cache_scopeNoCache namespace/safety scope. Default: public; session adds a session fingerprint to the key.

TDQS

A4.4/5.0
Behavior4/5

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

The description adds behavioral context beyond the sparse annotations: opening new tabs, respecting robots.txt and scope constraints, following links up to max_depth. It does not contradict annotations. Some details like engine behavior or caching are not mentioned, but the core behavior is 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.

Conciseness5/5

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

Three short paragraphs: core functionality, usage guidance, and a trailing note on scope/responsiveness. Every sentence adds value, front-loaded with the most important information. No wasted words.

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

Completeness4/5

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

For a complex tool with 26 parameters and no output schema, the description provides a solid high-level understanding. It covers the main use case, BFS traversal, robots.txt handling, and links to sibling tools. Advanced features like caching or best-first strategy are not detailed, but the schema handles those. The description is sufficiently complete for an agent to decide when to invoke it.

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

Parameters3/5

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

Schema coverage is 100%, so each parameter is already described in the schema. The description adds minimal extra semantics for individual parameters, mentioning only max_depth implicitly. Baseline of 3 is appropriate since the schema carries the burden.

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

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: recursively crawl a website via BFS, extracting text and links. It distinguishes itself from siblings like navigate (single page) and crawl_sitemap (when sitemap exists). The specific verb 'crawl' and resource 'website' with method 'BFS' make it unambiguous.

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

Usage Guidelines5/5

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

Explicitly provides 'When to use' and 'When NOT to use' sections, with clear alternatives: use crawl_sitemap when a sitemap is available, or navigate for a single page. This helps the agent choose correctly among siblings.

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

crawl_cancelA
Destructive

Mark a crawl job as cancelled. Returns immediately. Subsequent crawl_status calls on this jobId will skip the runner and report status "cancelled".

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesREQUIRED Job id returned by crawl_start.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate destructive and non-idempotent behavior. The description adds immediate return and status change details, but doesn't cover all side effects (e.g., irreversibility).

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-load the purpose and key behavior. No redundant or vague wording.

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

Completeness4/5

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

For a simple cancellation tool with one parameter and no output schema, the description covers the main use and state change. Minor gap: no mention of return value or error handling.

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 sole parameter jobId is fully described in the input schema. The tool description does not add additional semantic meaning beyond referencing 'crawl job', so it meets baseline without enhancement.

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 marks a crawl job as cancelled, using a specific verb and resource. It distinguishes itself from siblings like crawl_start and crawl_status by focusing on cancellation.

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 starting a crawl job that needs to be stopped. It explains the effect on subsequent crawl_status calls but lacks explicit when-not-to-use or alternative tools.

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

crawl_sitemapA

Crawl a website using its sitemap.xml. Auto-discovers sitemaps from robots.txt or /sitemap.xml. Supports sitemap index files and URL filtering.

When to use: Extracting content from many pages of a site that publishes a sitemap.xml. When NOT to use: Use crawl for BFS discovery when no sitemap exists, or navigate for a single page.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesWebsite URL (auto-discovers /sitemap.xml, /sitemap_index.xml)
sitemap_urlNoExplicit sitemap URL (skips auto-discovery)
filterNoURL glob pattern to filter which sitemap URLs to visit
max_pagesNoMaximum number of pages to visit. Default: 50
output_formatNoContent format per page. "markdown-clean" uses cheerio+turndown to strip nav/footer/ads. Default: markdown
onlyMainContentNomarkdown-clean only: strip nav/header/footer/aside/ads. Default: true.
includeLinksNomarkdown-clean only: preserve <a> as markdown links. Default: true.
queryNomarkdown-clean content_filter="bm25" query terms.
content_filterNomarkdown-clean only: deterministic fit_markdown filter. Default: none.
return_rawNomarkdown-clean only: include raw_markdown in each page. Default: false.
return_fitNomarkdown-clean only: include fit_markdown and use it as content when filtering. Default: true when filtered.
concurrencyNoMax concurrent page fetches. Default: 3
engineNoFetch engine: "cdp" (default, opens a Chrome tab per page), "static" (Node fetch only, fails closed on insufficient pages), or "auto" (static first, fall back to CDP when static is insufficient).
cache_modeNoOpt-in crawl content cache mode. Default: disabled.
cache_ttl_msNoMaximum age for enabled/read_only cache hits. Omit for no TTL expiry.
cache_scopeNoCache namespace/safety scope. Default: public.
include_metricsNoWhen true, include approximate output size/token metrics in the JSON result. Default: false.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations provide readOnlyHint=false and others; description adds context on auto-discovery, caching modes, and filtering. No contradictions, but could disclose more about side effects or state changes.

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

Conciseness5/5

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

Concise and well-structured with front-loaded purpose and clear usage section. Every sentence adds value; no fluff.

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

Completeness4/5

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

Covers usage, behavior, and parameters well. Minor gap: no mention of output format or return structure, but implied by 'extracting content' and parameter descriptions.

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

Parameters3/5

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

Schema coverage is 100% with detailed parameter descriptions. The description adds overview but no additional insight beyond what the schema already provides, meeting baseline for high coverage.

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

Purpose5/5

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

The description clearly states it crawls a website using sitemap.xml, with auto-discovery and URL filtering. It distinguishes from siblings by contrasting with 'crawl' and 'navigate' in the usage guidelines.

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

Usage Guidelines5/5

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

Explicitly states when to use (many pages with sitemap) and when not to use (no sitemap -> crawl, single page -> navigate), providing clear alternatives.

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

crawl_startA

Initialise a resumable crawl job. Returns { jobId, status: "pending" } immediately — performs NO network I/O. Drive progress with crawl_status({ jobId, advance: N }) which fetches up to N pages per call. Same args as the legacy crawl tool. Use crawl_cancel to stop.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesREQUIRED Starting URL to crawl
max_depthNoMax link-follow depth. Default: 2
max_pagesNoMax pages to crawl. Default: 20
scopeNoURL glob limiting which URLs to follow. Default: same origin.
include_patternsNoURL globs — follow only links matching at least one.
exclude_patternsNoURL globs — skip links matching any.
output_formatNoContent format. Default: markdown
onlyMainContentNoFor markdown-clean, remove nav/footer/ads before conversion. Default: true
includeLinksNoFor markdown-clean, include link destinations in markdown. Default: true
respect_robotsNoWhether to obey robots.txt. Default: true
delay_msNoDelay between page fetches (ms). Default: 1000
concurrencyNoMax parallel fetches. Default: 3
cache_modeNoOpt-in crawl content cache mode. Default: disabled.
cache_ttl_msNoMaximum age for enabled/read_only cache hits. Omit for no TTL expiry.
cache_scopeNoCache namespace/safety scope. Default: public.

TDQS

A4.7/5.0
Behavior5/5

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

Discloses that the tool returns immediately with a pending status and does no network I/O. Annotations are sparse (no readOnly/destructive/idempotent hints), so description carries the full burden and does so effectively.

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 concise sentences with no wasted words. Purpose is front-loaded, followed by behavioral note and usage instructions.

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

Completeness5/5

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

Despite 15 parameters and no output schema, the description clearly explains the return format and the follow-up steps (crawl_status, crawl_cancel). The workflow is fully contextualized.

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

Parameters3/5

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

Schema description coverage is 100%, so the description adds little beyond 'Same args as the legacy crawl tool'. This reference to a known sibling is helpful but does not increase semantic value beyond the schema defaults.

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

Purpose5/5

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

Clearly states it initializes a resumable crawl job, returns a jobId immediately, and performs no network I/O. Distinguishes from siblings by specifying that progress is driven via crawl_status and stopping via crawl_cancel.

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

Usage Guidelines5/5

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

Explicitly instructs to use crawl_status for progress and crawl_cancel for stopping. Also mentions it has the same arguments as the legacy crawl tool, providing clear guidance on when to use this tool.

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

crawl_statusA
Read-onlyIdempotent

Advance a crawl job by up to advance pages (default 5, env OC_CRAWL_ADVANCE_DEFAULT) and return current state. advance: 0 is read-only and performs no fetching. Returns { status, completed, total, errors, pages?, pagesOmitted?, startedAt, finishedAt? }. Pages array is capped at OC_CRAWL_STATUS_MAX_PAGES (default 200).

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesREQUIRED Job id returned by crawl_start.
advanceNoMax pages to fetch in this call. Default OC_CRAWL_ADVANCE_DEFAULT (5). Use 0 for read-only.
includePagesNoInclude `pages` in the response. Default false.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint. Description adds behavioral specifics: advance=0 is read-only, pages array capped at environment variable, return shape details.

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, efficient front-loading of action and key behavior, no wasted words.

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

Completeness4/5

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

No output schema, but description explains return shape. Covers main state and limits. Lacks error conditions but sufficient for typical usage.

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 covers all parameters with descriptions. Description adds environment variable defaults and special semantics for advance=0 and includePages.

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

Purpose5/5

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

Description clearly specifies the verb 'advance' and the resource 'crawl job', with details on advance count and read-only mode. It distinguishes from siblings like crawl_start (initiates) and crawl_cancel (stops).

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?

Describes default advance and read-only behavior. Context implies use for advancing/checking crawl status, but no explicit when-not-to-use or alternative tools mentioned.

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

drag_dropB

Drag and drop by selector or coordinates. Pass intent="..." (≤120 chars) to label this action in audit logs.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID
sourceSelectorNoSource CSS selector
sourceXNoSource X (alternative to selector)
sourceYNoSource Y (alternative to selector)
targetSelectorNoTarget CSS selector
targetXNoTarget X (alternative to selector)
targetYNoTarget Y (alternative to selector)
stepsNoIntermediate drag steps. Default: 10
delayNoDelay in ms between steps. Default: 10
intentNoHuman-readable label for this action in audit logs (≤120 chars)

TDQS

B3.3/5.0
Behavior2/5

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

Annotations provide no destructive or idempotent hints, so description should fill in. It only mentions intent labeling; missing details on what happens during drag (e.g., success/failure behavior, if coordinates override selectors).

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-loading the main action and then adding the intent detail. No wasted words.

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

Completeness3/5

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

No output schema and 10 parameters—description is minimal. Could explain how steps/delay affect behavior or default values. Adequate but not complete for complex usage.

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

Parameters3/5

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

Schema covers all parameters with descriptions. The description adds context that intent is for audit logs with a 120-char limit, but otherwise does not add meaning beyond schema.

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

Purpose5/5

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

Clearly states the action (drag and drop) and the two methods (by selector or coordinates). Distinguishes from sibling tools like 'interact' or 'act' by its specific functionality.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., 'interact' or 'form_input'). Does not mention prerequisites or restrictions.

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

element_pickA

Start or cancel an in-page human element picker overlay. Returns selector, DOM, style, and bounding-box facts; it does not persist skills directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesREQUIRED Tab ID to pick from
actionNostart waits for a picked element; cancel cancels an in-flight pick. Default: start.
timeoutMsNoMax wait for a click in ms. Default 60000; capped at 300000.
cancelOnEscapeNoReserved for compatibility; Escape cancellation is enabled by the overlay.

TDQS

A4/5.0
Behavior4/5

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

Annotations are neutral (not read-only, not destructive). The description adds context: it starts a UI overlay, waits for a click, returns selector, DOM, style, and bounding-box facts. It does not contradict annotations and goes beyond them by explaining the interactive nature.

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, no wasted words. It front-loads the main action and purpose, then adds details about return values and constraints.

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

Completeness4/5

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

With 4 parameters (1 required), no output schema, and neutral annotations, the description adequately explains what the tool does and returns. It could mention timeout or cancellation behavior, but the return facts list provides sufficient context.

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

Parameters3/5

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

Schema coverage is 100%, with all parameters well-documented. The description adds no additional param details beyond the schema, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb (start or cancel) and the resource (in-page human element picker overlay). It mentions returning specific facts and distinguishes from sibling tools by noting it does not persist skills, which sets it apart from skill-related tools.

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

Usage Guidelines3/5

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

The description implies usage for picking elements interactively and notes it does not persist skills, suggesting when not to use it. However, it does not explicitly state when to use this tool versus alternatives like inspect or query_dom.

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

emulate_deviceC

Emulate device viewport and UA via preset or custom.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID
presetNoDevice preset
widthNoCustom width (overrides preset)
heightNoCustom height (overrides preset)
deviceScaleFactorNoDevice scale factor. Default: 1
isMobileNoEmulate mobile device. Default: false
hasTouchNoEmulate touch events. Default: false
userAgentNoCustom UA string (overrides preset)

TDQS

C2.9/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false, implying modification, but the description does not add context about persistence, side effects, or reversibility. Beyond stating the function, no additional behavioral details are given.

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

Conciseness4/5

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

The description is a single, clear sentence without fluff. It is efficiently structured, though it could benefit from slight expansion for 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?

With 8 parameters, no output schema, and no mention of behavior like state persistence or scope (e.g., per tab or global), the description is insufficiently 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.

Parameters3/5

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

Schema description coverage is 100%, with each parameter well-defined in the input schema. The description adds no further meaning to the parameters, so baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool modifies viewport and user agent via preset or custom. It is specific about the verb 'emulate' and resource 'device viewport and UA', but does not explicitly differentiate from sibling tool 'user_agent' which also handles UA.

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 'user_agent' or when not to use it. The description lacks context for appropriate usage.

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

execute_planA
Destructive

Execute a cached plan by ID, bypassing per-step LLM calls. Falls back gracefully on failure for manual retry.

ParametersJSON Schema
NameRequiredDescriptionDefault
planIdYesPlan ID to execute
tabIdYesTab ID to execute the plan against
paramsNoRuntime params merged with plan defaults
taskSignatureNoOptional deterministic BrowserTaskSignature that bounds allowed tools, loop guards, and budgets for this execution
reflectionStrategyNoOpt-in bounded reflection metadata strategy. Default omitted path preserves legacy output.
reflectionScopeNoOptional reflection recall scope: domain, taskFingerprint, contractId.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate destructiveHint: true and openWorldHint: true. The description adds the fallback behavior on failure for manual retry, but lacks details on what gets destroyed or other 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 two sentences, front-loaded with the core purpose, with no redundant information. Every sentence provides 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 six parameters and no output schema, the description does not explain return values, plan structure, or caching details. The openWorldHint annotation suggests external effects, but they are not elaborated.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter having a description. The tool description does not add any additional meaning beyond the schema, so baseline score is appropriate.

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

Purpose5/5

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

The description clearly states the tool executes a cached plan by ID, bypassing per-step LLM calls, distinguishing it from other execution tools like batch_execute. The verb 'execute' and resource 'cached plan' are specific.

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

Usage Guidelines3/5

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

The description implies usage for efficient plan execution when cached and mentions failure fallback for manual retry, but does not specify when not to use it or compare with sibling tools for guidance.

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

extract_dataB

Extract JSON-schema data from JSON-LD, Microdata, OpenGraph, or CSS. Use multiple:true for listings, mode="semantic" plus query for bounded host-side chunks, or exactly one scope: selector, ref_id, backendNodeId.

When to use: Typed products, articles, prices, or semantic facts. When NOT to use: Use read_page for raw content or javascript_tool for ad-hoc scraping.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID to extract from
schemaYesJSON Schema defining output structure. Example: { "type": "object", "properties": { "title": { "type": "string" }, "price": { "type": "number" } } }
instructionNoOptional natural language hint (e.g., "product details")
queryNoRequired for mode="semantic": query describing the information to extract from a bounded markdown chunk
maxCharsNoSemantic mode only: max chunk chars returned to the host. Default 12000, hard cap 50000.
startFromCharNoSemantic mode only: continuation offset into filtered markdown. Default: 0.
includeLinksNoSemantic mode only: preserve markdown links. Default: true.
includeImagesNoSemantic mode only: reserved for image markdown inclusion. Default: false.
alreadyCollectedNoSemantic mode only: values already collected by the host, used for simple chunk dedupe hints.
selectorNoCSS selector to scope extraction region
ref_idNoElement ref_id from read_page or oc_observe to scope extraction region
backendNodeIdNoChrome backend DOM node id to scope extraction region
multipleNoExtract array of items (for listings/tables). Default: false
output_modeNo"inline" (default): return the full payload in-band — byte-identical to v1.11.0. "handle": write payload to the handle store and return a small descriptor; redeem with oc_output_fetch. "auto": inline if payload ≤ output_inline_limit_bytes, otherwise handle.
output_inline_limit_bytesNoOnly honored when output_mode="auto". If the serialized payload exceeds this byte count the response spills to a handle. Default: 32768.

TDQS

B3.4/5.0
Behavior1/5

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

Annotations indicate readOnlyHint=false (not read-only), but the description implies a read-only extraction operation. This contradiction misleads about behavioral traits. Description does not disclose side effects or state changes.

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

Conciseness4/5

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

Description is concise and well-structured, with three sentences covering purpose, usage, and mode hints. Slightly technical but 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 15 parameters and no output schema, the description lacks crucial details about return format and behavior. It does not specify output structure or explain all parameter interactions (e.g., scope selectors).

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?

While schema coverage is 100%, the description references a 'mode' parameter (e.g., mode='semantic') that does not exist in the input schema, causing inconsistency. No additional parameter semantics are provided 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 it extracts JSON-schema data from specific sources (JSON-LD, Microdata, OpenGraph, CSS) and distinguishes itself from sibling tools like read_page and javascript_tool.

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?

Explicit 'When to use' and 'When NOT to use' sections provide clear guidance: use for typed products, articles, prices; avoid for raw content (read_page) or ad-hoc scraping (javascript_tool).

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

file_uploadB

Upload files to a file input element on the page. Pass intent="..." (≤120 chars) to label this action in audit logs.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID to upload files to
selectorYesCSS selector for the file input element
filePathsYesFile paths to upload. Paths must resolve under configured file_upload roots.
intentNoHuman-readable label for this action in audit logs (≤120 chars)

TDQS

B3.4/5.0
Behavior2/5

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

Annotations are all false; description adds minimal behavioral context beyond 'Upload files'. Does not disclose file size limits, overwrite behavior, or possible 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?

Two concise sentences, main action front-loaded, 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 no output schema and minimal annotations, description lacks details on return behavior, error cases, or constraints beyond what's in schema.

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?

Adds value by specifying that file paths must resolve under configured roots, but intent parameter info is already in schema. Schema coverage is 100%, so baseline 3.

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

Purpose5/5

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

Clearly states verb 'Upload' and resource 'files to a file input element on the page', distinguishing it from sibling tools like form_input or fill_form.

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?

Mentions optional intent parameter for audit logs but lacks guidance on when to use vs alternatives, prerequisites, or when not to use.

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

fill_formC

Fill form fields and optionally submit. Pass intent="..." (≤120 chars) to label this action in audit logs.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID to execute on
fieldsNoField label/name/placeholder to value map. Checkboxes: "true"/"false"
submitNoSubmit button query after fill
clear_firstNoClear before fill. Default: true
waitForMsNoPoll timeout for dynamic fields in ms. Default: 0
pollIntervalNoPoll interval in ms (50-2000). Default: 300
loginCheckNoAfter submit, run a generic login-failure detector that flips success → failure when the password form is still mounted. Default: "auto". Set "off" to restore pre-#658 behavior.
refsNoOptional ref→value map (#831). Refs come from a recent read_page(mode="ax") snapshot. When present, refs are processed before `fields` and skip AX/CSS discovery. Stale refs produce a STALE_REF error — no silent coordinate fallback.
verifyNoVerify mode. boolean is legacy: true→"screenshot", false→"none". String enum returns a compact diff signal (AX-hash delta + pHash, ≤4KB).
intentNoHuman-readable label for this action in audit logs (≤120 chars)
capture_artifactNoWhen true, stage replay artifact steps for oc_skill_record after successfully filled fields. Default false is a strict no-op.
returnAfterStateNoOptional chaining hint. When "ax" or "dom", the response includes a page snapshot of that mode captured after the post-action wait, removing the need for a follow-up read_page call. Default: "none".

TDQS

C2.9/5.0
Behavior2/5

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

The description adds the audit logging behavior for intent, but fails to disclose important aspects like side effects, error states (e.g., STALE_REF), timeout behavior, or the fact that it performs mutations. Annotations are neutral and do not compensate.

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 waste. Front-loads the core purpose and efficiently introduces the key intent feature.

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 the tool having 12 parameters with complex interactions (refs, verify, returnAfterState, polling), the description gives no overview of the workflow or how these pieces fit together. It lacks sufficient context for an AI agent to use the tool correctly without relying entirely on the parameter descriptions.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds minimal value by reiterating the intent parameter's audit purpose. No additional insights beyond schema are provided for other parameters.

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

Purpose4/5

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

The description clearly states the verb 'fill' and resource 'form fields', and mentions optional submit and intent labeling. However, it does not distinguish this tool from the sibling 'form_input', which likely has overlapping functionality.

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 or when to choose alternatives. There is no mention of prerequisites, typical use cases, or exclusion criteria for sibling tools.

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

findA
Read-onlyIdempotent

Find elements by query. Returns up to 20 matches with refs.

When to use: Locating elements by natural language when exact selectors are unknown. When NOT to use: Use query_dom when you have a CSS selector or XPath, or interact to find-and-click in one step.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID to search in
queryYesWhat to find (natural language)
waitForMsNoPoll timeout in ms. Default: 3000. 0 to disable
pollIntervalNoPoll interval in ms. Default: 200
vision_fallbackNoDeprecated alias for allow_vision_fallback (kept for back-compat).
allow_vision_fallbackNoOpt into vision-based screenshot analysis when DOM discovery returns nothing. #831 flipped the default to OFF — supply `true` here OR set OPENCHROME_VISION_MODE=on (or fallback/auto) to enable vision.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate readOnly, nondestructive, idempotent. The description adds that it returns up to 20 matches with refs, providing useful behavioral context beyond annotations.

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

Conciseness5/5

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

The description is concise with only essential information, front-loaded with purpose, and every sentence adds value. No redundant text.

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?

Despite no output schema, the description mentions return format (up to 20 matches with refs). It covers usage context well, though output structure specifics are omitted.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description does not add parameter details beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states the tool finds elements by query and returns matches with refs. It distinguishes from sibling tools like query_dom and interact by specifying when to use alternatives.

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?

Explicit 'When to use' and 'When NOT to use' sections provide clear guidance, naming specific alternative tools (query_dom, interact) and conditions.

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

form_inputA

Set one form element value by ref. Pass intent="..." (≤120 chars) to label this action in audit logs.

When to use: Filling a single known input, textarea, select, or checkbox by ref. When NOT to use: Use fill_form({fields:{...}}) for multiple fields or optional submit.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID to set form value in
refYesElement ref or backendNodeId
valueYesValue to set. Checkboxes: "true"/"false"
intentNoHuman-readable label for this action in audit logs (≤120 chars)
capture_artifactNoWhen true, stage a replay artifact step for oc_skill_record. Default false is a strict no-op.
returnAfterStateNoOptional chaining hint. When "ax" or "dom", the response includes a page snapshot of that mode captured after the post-action wait, removing the need for a follow-up read_page call. Default: "none".

TDQS

A4.7/5.0
Behavior4/5

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

Annotations only mark readOnlyHint=false, destructiveHint=false. Description adds audit logging via intent, checkbox value format, capture_artifact no-op behavior, and returnAfterState chaining. Though not exhaustive, it provides significant behavioral context beyond annotations.

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

Conciseness5/5

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

Two primary sentences plus two concise guidance lines. Front-loaded main action then usage rules. No unnecessary words; every sentence 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?

Completeness is high given no output schema. Covers usage, parameters, and behavioral details. Could mention error handling or that it does not trigger events, but these are minor gaps for such a focused tool.

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

Parameters5/5

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

Schema covers 100% of parameters. Description adds meaningful context: intent for audit logs, value format for checkboxes, capture_artifact as strict no-op, and returnAfterState as chaining hint to avoid follow-up calls. This adds value beyond schema.

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

Purpose5/5

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

The description clearly states the verb 'Set' and resource 'form element value by ref', specifying input types (text, textarea, select, checkbox). Differentiates from sibling 'fill_form' which handles multiple fields.

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?

Explicit 'When to use' and 'When NOT to use' sections, with direct alternative 'fill_form' for multiple fields or optional submit, providing clear decision criteria.

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

geolocationC

Set or clear geolocation override.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID
presetNoPreset city
latitudeNoCustom latitude (-90 to 90)
longitudeNoCustom longitude (-180 to 180)
accuracyNoAccuracy in meters. Default: 100

TDQS

C2.9/5.0
Behavior2/5

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

The description minimally indicates mutation (set/clear) but adds no behavioral context beyond annotations. Annotations are present but not detailed; the description does not disclose potential side effects, permission requirements, or what 'override' means in practice.

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

Conciseness4/5

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

The description is a single sentence, concise and front-loaded. It is efficient but could benefit from slightly more detail without losing 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?

Given the tool complexity (5 parameters, no output schema), the description lacks completeness. It does not explain how to clear the override, the effect on the browser, or any constraints. The rich schema partially compensates, but important usage context is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds no parameter-specific meaning beyond what the schema already provides, but it does not contradict or mislead.

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 sets or clears a geolocation override, using specific verbs (set/clear) and a resource (geolocation override). It distinguishes the tool's purpose from siblings, though no sibling differentiation is explicitly provided.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it mention exclusions. No context is given about prerequisites or scenarios.

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

http_authB

Set or clear HTTP auth credentials.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID to set auth for
actionYesSet or clear credentials
usernameNoUsername for HTTP auth
passwordNoPassword for HTTP auth

TDQS

B3.2/5.0
Behavior2/5

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

Annotations indicate mutation (readOnlyHint=false) but the description adds minimal behavioral context beyond setting/clearing credentials, failing to disclose side effects like credential persistence or scope.

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?

Single sentence, efficient and front-loaded, though it could include more detail without becoming overly long.

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?

Adequate for a simple tool but lacks explanation of behavior differences between 'set' and 'clear', and how optional parameters interact with the action.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3; the description does not add meaning beyond the schema, offering no details on parameter dependencies (e.g., clear doesn't need username/password).

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 ('Set or clear') and the resource ('HTTP auth credentials'), making the tool's purpose immediately understandable and distinct from siblings.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, such as other authentication-related tools or manual credential handling.

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

image_qaA
Read-onlyIdempotent

Ask the connected host LLM a question about a caller-supplied screenshot. Forwards via MCP sampling/createMessage when the client advertises the sampling capability. Returns { status: "unsupported_by_host", reason } when the capability is absent — OpenChrome never uses its own API keys. The caller MUST supply one of screenshot.ref, screenshot.path, or screenshot.base64. No auto-capture.

ParametersJSON Schema
NameRequiredDescriptionDefault
screenshotYesREQUIRED Exactly one of `ref`, `path`, or `base64` must be supplied. Optional `mime_type` defaults to `image/png`.
questionYesREQUIRED Vision Q&A prompt for the host LLM.
max_tokensNoOptional sampling cap. Defaults to 512.

TDQS

A4.7/5.0
Behavior5/5

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

Adds significant behavioral context beyond annotations: explains forwarding via MCP sampling, that OpenChrome never uses its own API keys, and details the unsupported response. No contradiction with annotations (readOnlyHint, destructiveHint, idempotentHint are all consistent).

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 compact sentences plus a critical note. Information is front-loaded: purpose first, then mechanism, then constraints. Every sentence adds value with no redundancy.

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

Completeness5/5

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

Despite having no output schema, the description covers purpose, mechanism, dependency on client capability, fallback behavior, input requirements, and defaults. For a moderately complex tool (vision QA, three input modes, nested object), this is 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?

Schema coverage is 100%, so baseline is 3. The description adds meaning by stating 'REQUIRED Exactly one of...' for the screenshot object, clarifying that mime_type defaults to image/png, and explaining max_tokens defaults to 512. This goes beyond the 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 asks the host LLM a question about a screenshot. It uses a specific verb ('Ask') and resource ('screenshot'), and distinguishes from sibling tools like vision_find by specifying the mechanism (MCP sampling).

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?

Describes when the tool works (client must advertise sampling capability) and what happens otherwise (returns unsupported status). It also specifies that exactly one screenshot identifier must be supplied. However, it does not explicitly compare to alternatives like vision_find or state when not to use this tool.

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

inspectA
Read-onlyIdempotent

Extract focused page state by query. Returns headings, form fields, errors, tabs, and interactive counts scoped to the query intent.

When to use: Checking focused aspects of page state (forms, errors, tabs) without loading the full DOM. When NOT to use: Use read_page for full DOM/AX tree, or find to locate a specific element.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID to inspect
queryYesWhat to inspect (natural language)
scopeNoElement scope. Default: visible
include_metricsNoWhen true, append approximate returned size/token metrics to text output. Default: false.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already provide readOnlyHint, destructiveHint, idempotentHint, openWorldHint. Description adds behavioral context about return types (headings, forms, etc.) and scope, aligning with annotations. Discloses non-destructive, idempotent read 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?

Two concise paragraphs: first states purpose and returns, second gives usage guidelines. No fluff, efficient and front-loaded.

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

Completeness4/5

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

Given the tool has 4 parameters, no output schema, and annotations, the description provides sufficient context: return types, usage scenarios, and limitations. Could mention return format but overall complete.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for all parameters. Description does not add additional meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool extracts focused page state by query, listing specific return elements (headings, form fields, errors, tabs, interactive counts) and distinguishes from siblings like read_page and find.

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

Usage Guidelines5/5

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

Explicitly provides when to use (focused aspects without full DOM) and when not to use, with alternatives (read_page for full DOM, find for specific elements).

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

interactA

Find element by natural language; click/hover/double_click it; wait for DOM settle; return state.

When to use: One described element action, with coordinate fallback for Shadow DOM/canvas/iframes. When NOT to use: Use act for multi-step flows; computer for general coordinate clicks.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdNoTab ID to execute on
taskIdNoTask id when using a task-scoped browser lane.
laneIdNoTask-scoped browser lane id; validates tabId or defaults to the lane current target.
queryNoElement to act on (natural language). Required when mode is "ref" (default).
modeNoDispatch mode. "ref" (default) resolves the element by query; "coordinate" sends a CDP mouse event directly to pixel coordinates.ref
coordinateNoPixel coordinates for coordinate mode. Required when mode is "coordinate".
actionNoAction to perform. Default: click. Use type with value to enter text.
valueNoText to type when action is type. Supports vault://name in pilot mode.
waitAfterNoDOM settle wait in ms. Default: 500
returnFormatNoResponse content. Default: both
verifyNoVerify mode. boolean is legacy: true→"screenshot", false→"none". String enum returns a compact diff signal (AX-hash delta + pHash, ≤4KB).
returnAfterStateNoOptional chaining hint. When "ax" or "dom", the response includes a page snapshot of that mode captured after the post-action wait, removing the need for a follow-up read_page call. Default: "none".
waitForMsNoPoll timeout for element in ms. Max: 30000
pollIntervalNoPoll interval in ms. Default: 200
refNoSnapshot ref ID (from read_page refs map). When provided, skips AX re-resolution and clicks the element directly via its cached backendDOMNodeId.
intentNoOptional short label (≤120 chars) describing the user-facing goal of this action, e.g. "submit login form". Recorded in the task journal for observability.
capture_artifactNoWhen true, stage a replay artifact step for oc_skill_record after a successful click. Default false is a strict no-op.
locatorFallbackNoOpt-in AI locator fallback extension point. Disabled by default; when enabled, provider candidates are validated before any action.

TDQS

A4.5/5.0
Behavior4/5

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

Discloses behavioral traits beyond annotations: waits for DOM settle, returns state, coordinate fallback for complex elements. Does not contradict annotations (all false). Could mention that actions are mutable (click/type) but adequately covers core 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?

Extremely concise: three short lines covering core action, when to use, and when not to use. No redundant information; 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?

Despite high parameter count (18) and no output schema, the description only covers the core action and coordinate fallback, omitting details on return formats, verification, artifact capture, and chaining. Adequate for basic understanding but incomplete for full usage.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. Description adds context for coordinate mode and action types, and explains when to use different modes, providing meaning beyond parameter descriptions.

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

Purpose5/5

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

The description clearly states the tool finds an element by natural language and performs actions (click/hover/double_click), explicitly distinguishing itself from sibling tools 'act' (multi-step flows) and 'computer' (general coordinate clicks).

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

Usage Guidelines5/5

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

Provides explicit 'When to use' (one described element action, with coordinate fallback for Shadow DOM/canvas/iframes) and 'When NOT to use' (use act for multi-step flows; computer for general coordinate clicks), including specific alternatives.

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

javascript_toolA
Destructive

Execute JavaScript in page context. Supports await, async IIFE, and shadow-DOM helpers via __pierce.

When to use: Custom DOM queries, data extraction, or triggering JS APIs not reachable via other tools. When NOT to use: Use interact or act for UI interactions, or extract_data for structured schema-based extraction.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID to execute code in
codeNoJS code. Last expression returned
textNoDeprecated. Use "code" instead
timeoutNoTimeout in ms. Default: 30000

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate destructiveHint, so description adds value with shadow DOM helpers and async support. Could elaborate on execution side effects but fine.

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?

Brief, well-structured with clear sections. Every sentence adds value without repetition.

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?

Covers use cases, execution details, and parameter hints. No output schema but return value implied. Complete for a JS execution tool.

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

Parameters3/5

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

Schema coverage is 100%, so description adds only minor nuance about return value ('Last expression returned'). Baseline 3 appropriate.

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

Purpose5/5

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

Description clearly states 'Execute JavaScript in page context' with specific features like await, async IIFE, __pierce. Distinguishes from siblings like interact/act and extract_data.

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?

Explicit 'When to use' and 'When NOT to use' sections provide clear guidance on appropriate contexts and alternatives.

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

lightweight_scrollA

Scroll page via JS. Returns new scroll position.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID to scroll
directionYesScroll direction
amountNoScroll amount in pixels. Default: 300
smoothNoSmooth scroll. Default: false
selectorNoScrollable element selector. Default: window
scrollToEndNoScroll to end in given direction. Default: false
waitAfterMsNoWait after scroll in ms. Default: 0

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already indicate non-read-only and non-destructive behavior. The description adds that scrolling is performed via JavaScript and that the new scroll position is returned, providing useful context beyond annotations. No contradictions.

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

Conciseness5/5

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

Two short sentences with no wasted words. Front-loads the action and clearly states the return value. Highly concise.

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

Completeness3/5

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

While the description covers the core action and return value, it does not specify the return structure or handle edge cases (e.g., invalid selector). With 7 parameters and no output schema, more detail would improve completeness.

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

Parameters3/5

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

All parameters have descriptions in the input schema (100% coverage), so the baseline is 3. The description does not add any meaning beyond what the schema provides for the 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 action ('Scroll page via JS') and its return value ('Returns new scroll position'). It is specific, uses a verb+resource structure, and distinguishes itself from siblings like 'javascript_tool' or 'navigate' by focusing on lightweight scrolling.

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

Usage Guidelines3/5

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

The description implies the tool is for scrolling a page, but provides no guidance on when to use it over alternatives like 'javascript_tool' or 'act'. No when-not-to-use or explicit context is given.

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

list_profilesA
Read-onlyIdempotent

List available Chrome profiles with names and directory IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
userDataDirNoCustom Chrome user data dir. Default: system Chrome location.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds value by specifying the returned fields (names, directory IDs) and implies non-mutating behavior. No contradiction with annotations.

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

Conciseness5/5

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

A single sentence that is front-loaded with the verb 'List' and contains no unnecessary words. Every element earns its place.

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

Completeness5/5

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

For a simple list tool with one optional parameter and no output schema, the description fully covers what the tool does and what it returns. No gaps remain.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the single optional parameter (userDataDir). The description does not add any parameter semantics beyond the schema, meeting the baseline.

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

Purpose5/5

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

The description clearly states the tool's action ('List'), resource ('Chrome profiles'), and output ('with names and directory IDs'). It is a distinct verb+resource combination not duplicated in sibling tools.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives or context conditions. While the tool is simple, the description lacks any usage timing or exclusion notes.

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

memoryA
Destructive

Manage domain knowledge. Actions: "record" (store), "query" (retrieve by domain), "validate" (adjust confidence). Key prefixes: "selector:", "tip:", "avoid:".

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction: record, query, or validate
domainNo(record, query) Domain
keyNo(record) Key. (query) Key prefix filter.
valueNo(record) Knowledge value
idNo(validate) Knowledge entry ID
successNo(validate) true = accurate, false = outdated/broken

TDQS

A3.9/5.0
Behavior3/5

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

Annotations indicate destructiveHint=true, so the tool can modify state. The description adds context about actions and key prefixes, but does not detail specific behavioral traits like overwriting on record or confidence adjustment during validation.

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 overall purpose, then specifics. Every word adds value with no 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 the tool's complexity (6 params, destructive, no output schema), the description covers actions and prefixes but lacks details on return values or behavior for each action, which is important for a knowledge management tool.

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

Parameters4/5

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

The input schema has 100% description coverage. The description adds value by explaining the actions and introducing key prefixes ('selector:', 'tip:', 'avoid:') which are not in the schema, aiding agent understanding.

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 domain knowledge with specific actions: record, query, validate. It distinguishes itself from sibling tools by its unique purpose of storing and retrieving knowledge.

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

Usage Guidelines3/5

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

The description lists the actions and their purposes but does not provide explicit guidance on when to use this tool versus alternatives or when not to use it. The usage context is implied but not detailed.

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

networkC
Destructive

Simulate network conditions.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID
presetYesNetwork preset
downloadKbpsNoDownload Kbps (preset=custom only)
uploadKbpsNoUpload Kbps (preset=custom only)
latencyMsNoLatency in ms (preset=custom only)
output_modeNo"inline" (default): return the full payload in-band — byte-identical to v1.11.0. "handle": write payload to the handle store and return a small descriptor; redeem with oc_output_fetch. "auto": inline if payload ≤ output_inline_limit_bytes, otherwise handle.
output_inline_limit_bytesNoOnly honored when output_mode="auto". If the serialized payload exceeds this byte count the response spills to a handle. Default: 32768.

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already indicate destructiveHint=true and openWorldHint=true, but the description adds no extra behavioral details (e.g., whether changes persist, effect on browser, error scenarios). Does not contradict annotations.

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

Conciseness2/5

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

Extremely short (one sentence) for a tool with 7 parameters. Lacks structure and important context, bordering on under-specification rather than conciseness.

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

Completeness2/5

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

No output schema and minimal description. Fails to explain return values, side effects, or usage patterns, leaving significant gaps for a tool that modifies network conditions.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents parameters. The description adds no additional meaning beyond the schema, earning baseline 3.

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 'Simulate network conditions.' conveys the general purpose but fails to differentiate from sibling tools like network_capture_full or oc_get_connection_info. It lacks specificity about what 'simulate' entails (e.g., throttling, offline mode).

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 vs alternatives, no preconditions or postconditions mentioned. The description is too vague to help an agent decide contextually.

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

network_capture_fullA

Capture network requests with response bodies (capped). Actions: start, stop, getLogs, clear. Bodies over maxBodyBytes are omitted with reason="over_cap".

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesREQUIRED Tab (target) ID
actionYesREQUIRED Action to perform
optionsNoCaptureOptions (start only). Defaults: maxEntries=5000, maxBodyBytes=262144 (full mode).
keepBodiesNoOn stop: retain on-disk bodies (default false).
limitNoMax entries to return on getLogs. Default 100; 0 = all.
cursorNoOpaque pagination cursor returned as nextCursor from a prior getLogs call.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations indicate non-readonly, non-destructive, non-idempotent, non-open-world, which align with a tool that starts/stops captures. The description adds key behavioral details: bodies over maxBodyBytes are omitted with reason='over_cap'. This goes beyond annotations.

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

Conciseness5/5

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

The description is two sentences, highly concise, front-loaded with the core purpose and actions. Every word earns its place; no redundancy.

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

Completeness3/5

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

Despite having no output schema, the description does not explain the structure of getLogs results (e.g., entries, pagination via cursor/limit). It leaves the return format unspecified, which for a complex tool with multiple actions is a 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?

All 6 parameters have descriptions in the schema (100% coverage). The description adds context about the cap behavior affecting maxBodyBytes and mentions actions, but does not provide additional detail beyond the schema for most parameters. Minor value added.

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

Purpose5/5

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

The description clearly states the tool captures network requests with response bodies (capped) and enumerates the four possible actions (start, stop, getLogs, clear). It distinguishes itself from the sibling network_capture_lite by implying this is the 'full' version with body capture.

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

Usage Guidelines3/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives like network_capture_lite. It lists actions and options but lacks context such as prerequisites or scenarios where this tool is preferred.

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

network_capture_liteA

Capture network request metadata + headers (no bodies). Cheap passive recorder. Actions: start, stop, getLogs, clear.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesREQUIRED Tab (target) ID
actionYesREQUIRED Action to perform
optionsNoCaptureOptions (start only). Defaults: maxEntries=5000, maxBodyBytes=262144 (full mode).
keepBodiesNoOn stop: retain on-disk bodies (default false).
limitNoMax entries to return on getLogs. Default 100; 0 = all.
cursorNoOpaque pagination cursor returned as nextCursor from a prior getLogs call.

TDQS

A4/5.0
Behavior4/5

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

Annotations set destructiveHint=false, matching the description's 'passive recorder' nature. The description adds that it does not capture bodies, but omits details on data persistence or side effects. Adequate but not exhaustive.

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: one explaining the core purpose and one listing the actions. No wasted words, front-loaded with key 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?

No output schema is provided, and the description does not explain what getLogs returns or how to interpret results. For a tool with 6 parameters and multiple actions, this is a significant gap.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description lists actions and defaults for options but adds little beyond the schema's own descriptions. The 'Cheap passive recorder' context is helpful but not parameter-specific.

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

Purpose5/5

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

The description clearly states the tool captures network request metadata and headers (but not bodies), and enumerates the four actions. The name 'lite' and sibling 'network_capture_full' differentiate it effectively.

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 lightweight, passive recording via 'Cheap passive recorder' and 'no bodies', but does not explicitly state when to use this vs. the full capture tool or specify 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.

oc_assertA
Read-onlyIdempotent

Evaluate a single Outcome Contract assertion against caller-supplied evidence (snapshot). Returns verdict pass/fail/inconclusive plus the list of failed leaf assertions. Core-tier single-call surface; retry and escalation live in the pilot runtime.

ParametersJSON Schema
NameRequiredDescriptionDefault
contract_idNoOptional identifier for a registered contract. Reserved for forward compatibility — currently no registry exists, so callers must supply `contract` inline.
contractNoAssertion DSL object (see src/contracts/types.ts: kind ∈ url|dom_text|dom_count|network|screenshot_class|no_dialog|image_qa|and|or|not). Validated via validateAssertion() before evaluation.
argsNoReserved for future contract templating. Ignored in v1.11.
evidenceNoPre-captured page evidence. Required for evaluation; without it the verdict is `inconclusive`.

TDQS

A4/5.0
Behavior4/5

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

Annotations already mark readOnlyHint=true and idempotentHint=true. The description adds behavioral details: returns verdict pass/fail/inconclusive, requires evidence else inconclusive, and mentions the core-tier vs pilot runtime distinction. No contradictions.

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 succinct sentences: first states purpose and outputs, second provides context about tool tier. No extraneous words.

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

Completeness4/5

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

For a tool with no output schema, the description adequately covers the return value (verdict and failed leaf assertions) and the required input condition (evidence). It also notes the tool's place in the architecture. Minor gap: does not explain the verdict options beyond pass/fail/inconclusive.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents each parameter. The main description adds only marginal context (e.g., 'caller-supplied evidence (snapshot)'). Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'evaluate', the resource 'Outcome Contract assertion', and the outputs (verdict and failed leaf assertions). It also distinguishes from sibling tools by noting this is the core-tier single-call surface, with retry/escalation elsewhere.

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 ('Core-tier single-call surface; retry and escalation live in the pilot runtime') but does not explicitly state when to use this tool vs alternatives or provide exclusion criteria.

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

oc_checkpointA

Save, load, list, or delete automation checkpoints for long-running session continuity. Use "save" to persist current task state, "list" to inspect the bounded checkpoint timeline, "load" to restore metadata after context compaction, and "delete" to clean up.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform
checkpointIdNoSpecific checkpoint id for load/delete. Omit to use latest/current checkpoint.
labelNoOptional short label for timeline inspection (save only).
taskDescriptionNoDescription of the current automation task (required for save)
completedStepsNoList of completed steps (for save)
pendingStepsNoList of pending steps (for save)
extractedDataNoIntermediate results to persist (for save)

TDQS

A3.9/5.0
Behavior3/5

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

Annotations are minimal (readOnlyHint=false, destructiveHint=false). The description discloses basic behaviors (save persists, delete cleans up) but lacks details on failure modes, overwrite behavior, or permanence of delete. More context would improve transparency.

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

Conciseness5/5

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

The description is a single sentence that front-loads the main purpose, then lists actions and their uses. It is concise with no unnecessary words, earning its place 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 7 parameters and no output schema, the description covers action selection but does not explain return values, error states, or side effects. Adequate for basic use but lacking completeness for complex scenarios.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for all 7 parameters. The description adds minor value, e.g., 'Omit to use latest/current checkpoint' for checkpointId and 'required for save' for taskDescription, but largely reiterates schema info. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's function: 'Save, load, list, or delete automation checkpoints for long-running session continuity.' It specifies the resource (automation checkpoints) and the actions, distinguishing it from sibling tools like oc_session_resume or oc_context_export.

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

Usage Guidelines4/5

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

The description provides explicit guidance for each action: 'Use "save" to persist current task state, "list" to inspect the bounded checkpoint timeline, "load" to restore metadata after context compaction, and "delete" to clean up.' This helps agents choose the correct action, though it does not exclude alternatives when not to use.

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

oc_connection_healthA
Read-onlyIdempotent

Get CDP connection health metrics including heartbeat mode, reconnect count, ping latency, connection state, and live reconnection progress. Use this to monitor connection stability during long-running sessions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description adds value by detailing the metrics returned (heartbeat mode, reconnect count, ping latency, etc.) and the monitoring use case, without contradicting annotations.

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

Conciseness5/5

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

The description consists of two concise sentences: the first specifies what the tool returns, and the second states its use case. No wasted words, perfectly 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?

With no output schema, the description provides sufficient context by listing the metrics returned and the monitoring purpose, though it does not detail how the metrics are structured or formatted.

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

Parameters4/5

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

The input schema has no parameters, so schema coverage is 100%. The description does not need to add parameter meaning, and it appropriately omits any parameter information.

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

Purpose5/5

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

The description clearly states the tool gets CDP connection health metrics and lists specific metrics (heartbeat mode, reconnect count, etc.), distinguishing it from siblings like oc_get_connection_info.

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

Usage Guidelines4/5

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

The description explicitly says to use this for monitoring connection stability during long-running sessions, providing clear context on when to use it, though it does not specify when not to use it or mention alternatives.

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

oc_context_exportA
Read-onlyIdempotent

Export the active tab's auth-relevant state (cookies + local/sessionStorage + optional UA/viewport/HTTP-auth) as a portable plaintext envelope. The envelope is byte-deterministic modulo capturedAt and carries a SHA-256 integrity hash for tamper detection on import. SECURITY: the envelope is plaintext by design — the host MUST treat it as a secret. Pair with oc_context_import on a fresh openchrome instance to carry signed-in state across hosts.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesREQUIRED Tab ID to export from.
originNoExplicit origin to record in the envelope. Default: active tab origin.
includeStorageNoCapture localStorage + sessionStorage. Default: true.
includeHttpAuthNoCapture HTTP Basic auth credentials supplied via `http_auth set`. Default: false (rarely safe to round-trip).
captureUANoCapture navigator.userAgent. Default: false.

TDQS

A4.3/5.0
Behavior4/5

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

Beyond annotations (readOnlyHint, idempotentHint), the description adds that the envelope is byte-deterministic modulo capturedAt, carries a SHA-256 integrity hash, and is plaintext by design. No contradictions.

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

Conciseness5/5

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

The description is concise, front-loading the purpose, and includes essential security and pairing information without waste. Every sentence adds 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?

Given no output schema, the description explains the envelope's properties but does not detail its exact structure (e.g., JSON fields). Adequate for use, but the envelope format could be more explicit.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3. The description adds default values and security context for parameters like includeHttpAuth, providing value beyond schema.

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

Purpose5/5

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

The description clearly states the tool exports auth-relevant state (cookies, storage) as a portable plaintext envelope, distinguishing it from its pair sibling oc_context_import. It uses specific verbs and resource details.

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

Usage Guidelines4/5

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

The description explicitly pairs with oc_context_import for carrying signed-in state across hosts, providing clear usage context. It does not explicitly state when not to use, but the security note implies caution.

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

oc_context_importA

Strict-replace import of a ContextEnvelope produced by oc_context_export. Verifies the SHA-256 integrity hash first — on mismatch returns { ok: false, integrityError } WITHOUT applying any state. On success, existing cookies for the envelope origin and the active-origin web storage are CLEARED, then the envelope payload is installed. Merge semantics are intentionally not supported. SECURITY: the envelope is plaintext — the host MUST treat it as a secret.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesREQUIRED Tab ID to apply the envelope to.
envelopeYesREQUIRED A `ContextEnvelope` produced by `oc_context_export`.
strictOriginNoWhen true, reject the import if the active tab origin does not match `envelope.origin`. Default: false (caller is responsible for navigating).

TDQS

A3.5/5.0
Behavior1/5

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

Description details destructive actions (clears cookies/web storage) but annotations set destructiveHint=false, creating a direct contradiction per scoring rules. The description itself is transparent, but the contradiction mandates a score of 1.

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

Conciseness5/5

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

Three sentences with front-loaded purpose, concise behavioral details, and a critical security note. No filler.

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

Completeness3/5

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

Covers preconditions, integrity check, partial return value for failures, and side effects. Missing success return value description and output schema, which is needed for completeness given complexity.

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

Parameters3/5

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

Schema coverage is 100% (baseline 3). Description adds overall context but does not improve parameter understanding beyond schema descriptions. Envelope parameter implicitly described via integrity check.

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 specific verb ('import'), resource ('ContextEnvelope'), and source ('produced by oc_context_export'). Distinct from sibling tools like oc_context_export.

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 says 'Strict-replace import' and 'Merge semantics are intentionally not supported,' guiding when to use this tool. Could further clarify alternatives for merge needs, but none listed among siblings.

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

oc_copy_to_clipboardA

Copy text to the system clipboard. Useful for copying MCP server URLs or config snippets.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to copy to clipboard.

TDQS

A4.5/5.0
Behavior4/5

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

Description straightforwardly explains the action; annotations confirm it's non-destructive. No hidden behaviors or contradictions.

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?

Extremely concise—two sentences with no wasted words. Front-loaded with the core action.

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

Completeness5/5

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

Fully adequate for a simple tool with one required parameter. No missing information needed for correct invocation.

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

Parameters4/5

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

Parameter schema has 100% coverage, and description adds context by suggesting typical usage, enhancing understanding beyond schema.

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

Purpose5/5

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

Description clearly states it copies text to the system clipboard and gives specific use cases (MCP server URLs or config snippets), differentiating it from sibling tools which are unrelated.

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 notes usefulness for copying specific content, implying when to use. No explicit when-not or alternatives, but simplicity and lack of similar tools make this sufficient.

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

oc_devtools_urlA
Read-onlyIdempotent

Get the Chrome DevTools inspector URL for the current worker's active page. Returns a URL you can paste into any local browser to attach live DevTools to the running page. Use targetId to select a specific open tab, or workerId to select a specific worker's current page.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetIdNoOptional CDP target ID. When provided, returns the DevTools URL for that specific tab.
workerIdNoOptional worker ID. When provided (and targetId is omitted), returns the DevTools URL for that worker's current page.

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds 'Returns a URL you can paste into any local browser,' confirming it's a read-only operation. It does not disclose potential errors or limitations (e.g., requiring an active worker), but the annotations cover the safety profile adequately.

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

Conciseness5/5

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

The description is three sentences, each serving a clear purpose: purpose, return value, and parameter guidance. No wasted words, front-loaded with the main action. Ideal conciseness.

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

Completeness5/5

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

Given the tool's simplicity (no required params, no output schema), the description covers all essential aspects: what it gets, what it returns, and how to specify parameters. The output URL type is explained, and annotations cover safety. No gaps for an agent to make mistakes.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are already documented. The description restates parameter intent: 'Use targetId to select a specific open tab, or workerId to select a specific worker's current page.' This adds little beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Get the Chrome DevTools inspector URL for the current worker's active page.' This specifies the verb (Get), resource (DevTools inspector URL), and context (current worker's active page), making it distinct from sibling tools like 'inspect' or 'oc_observe'.

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

Usage Guidelines3/5

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

The description provides guidance on choosing between targetId and workerId: 'Use targetId to select a specific open tab, or workerId to select a specific worker's current page.' However, it does not mention when to use this tool over alternatives (e.g., 'inspect' or browser DevTools), so usage guidance is minimal.

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

oc_diffA
Read-onlyIdempotent

Compare two evidence-bundle IDs or paths and return deterministic DOM, screenshot phash, URL, console, and network diff facts.

ParametersJSON Schema
NameRequiredDescriptionDefault
beforeYesREQUIRED Before evidence bundle ID or absolute bundle path.
afterYesREQUIRED After evidence bundle ID or absolute bundle path.
kindsNoKinds to compare. Default: dom, screenshot, url, console, network.

Output Schema

ParametersJSON Schema
NameRequiredDescription
beforeYes
afterYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds that the diffs are 'deterministic' and specifies the exact components compared. No contradiction.

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

Conciseness5/5

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

The description is a single, front-loaded sentence of 20 words that conveys the essential purpose and scope without redundancy.

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

Completeness5/5

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

Given the three fully described parameters and the existence of an output schema, the description covers the tool's purpose and behavior completely without missing information.

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions for all three parameters. The tool description does not add extra parameter details beyond what the schema provides, so baseline score is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'compare', the resource 'evidence-bundle IDs or paths', and lists the specific diff facts returned (DOM, screenshot phash, URL, console, network). This is specific and differentiates it from other oc_* tools.

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

Usage Guidelines4/5

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

The description implies usage when needing to compare two evidence bundles and lists the kinds of diffs. However, it does not explicitly mention when not to use it or provide alternatives, but the context is clear enough.

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

oc_doctor_reportA
Read-onlyIdempotent

Read the most recent openchrome doctor diagnostic report from cache. Returns the DoctorReport written by the last openchrome doctor run. Does NOT trigger new checks — run openchrome doctor in a shell to refresh.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds that the tool reads from cache and does not trigger new checks, which is consistent and goes beyond annotations by explaining the caching mechanism.

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

Conciseness5/5

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

The description is two sentences with no wasted words. The first sentence states the main purpose, the second clarifies important behavioral detail (no new checks, refresh method). Ideal conciseness.

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

Completeness4/5

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

For a simple read-only tool with no parameters and full annotations, the description provides the essential context: it reads a cached report, does not run checks, and how to refresh. The only minor gap is the lack of return value structure, but since there is no output schema, this is acceptable.

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 parameters, so schema coverage is 100%. The description does not add meaning to parameters (since none exist), meeting the baseline of 3 for high 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 states the tool reads the most recent openchrome doctor diagnostic report from cache, specifying the verb 'Read' and the resource 'doctor diagnostic report'. It distinguishes from sibling tools like `oc_doctor` by implying it does not run checks.

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

Usage Guidelines5/5

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

The description explicitly says the tool does NOT trigger new checks and instructs users to run `openchrome doctor` in a shell to refresh the cache, providing clear when-to-use and when-not-to-use guidance.

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

oc_evidence_bundleA

Capture a snapshot of the current page state (DOM, screenshot, network slice, console, perceptual hash) and write it to a bundle directory. Returns { bundle_id, path, size_bytes, parts }. Default include = ['dom', 'screenshot']; pass include to capture more parts. network_window_ms (default 5000) limits the network slice to recent entries. Core-tier; does not depend on the pilot runtime.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeNoWhich parts to capture. Default ['dom', 'screenshot']. Allowed items: 'dom' | 'screenshot' | 'network' | 'console' | 'phash' | 'gate' | 'schema_diff'. `gate` requires `evidence.snapshot.gate`; `schema_diff` requires `target_schema` and `evidence.snapshot.observed`; otherwise the part is omitted.
target_schemaNoDeclared target schema (see src/core/contracts/schema-diff.ts: { version: 1, fields: [ { name, type, required? } ] }). When supplied together with `evidence.snapshot.observed` and the 'schema_diff' part is included, the bundle writes `schema_diff.json` containing the structured field-match diff.
network_window_msNoRolling window (ms) used to slice the supplied `evidence.snapshot.network` array. Default 5000.
evidenceNoCaller-supplied snapshot. Provide the subset of fields the requested parts need: `dom`, `screenshot_png_base64`, `network`, `console`, `now_ms`, `gate`, `observed`. Missing fields cause the corresponding part to be omitted gracefully.
output_modeNo"inline" (default): return the full payload in-band — byte-identical to v1.11.0. "handle": write payload to the handle store and return a small descriptor; redeem with oc_output_fetch. "auto": inline if payload ≤ output_inline_limit_bytes, otherwise handle.
output_inline_limit_bytesNoOnly honored when output_mode="auto". If the serialized payload exceeds this byte count the response spills to a handle. Default: 32768.

TDQS

A4.7/5.0
Behavior5/5

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

The description goes beyond annotations by explaining graceful omission of missing fields, output modes (inline, handle, auto), and conditions for optional parts like `gate` and `schema_diff`. This adds significant behavioral context not captured by annotations.

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

Conciseness5/5

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

The description is concise, front-loading the core purpose, and each sentence adds necessary information without redundancy. It covers key behaviors in a compact format.

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

Completeness5/5

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

Despite having 6 parameters and no output schema, the description fully explains the return value, all configurable parts, conditional inclusions, output modes, and error handling (graceful omission). It is complete for the tool's complexity.

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

Parameters4/5

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

Schema coverage is 100% with detailed descriptions for each parameter. The tool description adds value by clarifying defaults for `include` and `network_window_ms`, and the overall purpose of `evidence`. However, the schema itself already provides comprehensive parameter semantics.

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

Purpose5/5

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

The description clearly states the verb 'Capture a snapshot of the current page state' and the resource 'bundle directory'. It lists all captured parts and the return object, distinguishing it from sibling tools that focus on other operations.

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

Usage Guidelines4/5

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

The description provides clear usage context: 'Core-tier; does not depend on the pilot runtime' and explains defaults for `include` and `network_window_ms`. However, it does not explicitly mention when not to use this tool or compare it to alternatives.

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

oc_gate_inspectA
Read-onlyIdempotent

Detect whether the current tab is gated (CAPTCHA, bot-check, SSO redirect, paywall, 2FA prompt). Returns facts only — never invokes any solver, never makes a third-party HTTP call, never bypasses the gate. The host agent decides what to do next.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesREQUIRED Tab ID to inspect.

TDQS

A4.4/5.0
Behavior5/5

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

Beyond annotations (read-only, idempotent), the description adds critical context: no solver invocation, no third-party calls, no bypassing. This clarifies the tool's safe, non-intrusive nature.

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 fluff. First sentence defines purpose with examples; second sets boundaries. Every word adds value.

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

Completeness4/5

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

The description covers what the tool does and doesn't do. With no output schema, the return format is unspecified but implied as factual. Slightly incomplete without an example result, but sufficient for a simple detection tool.

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

Parameters3/5

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

Schema coverage is 100% for the single parameter tabId. The description does not add extra meaning beyond the schema's 'REQUIRED Tab ID to inspect', so baseline 3 is appropriate.

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

Purpose5/5

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

The description explicitly states the tool detects whether a tab is gated (CAPTCHA, SSO, etc.), using specific verbs and resources. It distinguishes from siblings like 'inspect' by emphasizing it only detects, never solves.

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 outlines when to use (check for gates) and what it does not do (solve, make calls). It implies the agent should decide next steps. Explicit alternatives are not given, but the context is sufficient.

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

oc_get_connection_infoA
Read-onlyIdempotent

Get connection configuration for a web AI host (Claude Web, ChatGPT, Gemini, or custom). Returns the MCP server URL, bearer token, settings page URL, step-by-step instructions, and (when Chrome is reachable) a devtools block with live DevTools inspector URLs for all open pages. Use host="openchrome" to introspect the openchrome server itself — when --auto-connect is active, returns {mode: "auto-connect", userDataDir, port}.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostYesWeb AI host to generate config for. Use "all" for all hosts, or "openchrome" for openchrome server status (e.g. auto-connect mode).

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already mark the tool as readOnly and idempotent. The description adds valuable behavioral details: it returns MCP server URL, bearer token, settings page, instructions, and optionally live DevTools inspector URLs when Chrome is reachable. It also reveals the conditional behavior for the 'openchrome' host.

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

Conciseness5/5

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

The description is only two sentences long. The first sentence clearly states the core purpose, and the second sentence adds a crucial special case. No unnecessary words.

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

Completeness5/5

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

Given the single parameter, rich annotations, and no output schema, the description fully covers the tool's behavior, return values, and special scenarios (e.g., Chrome reachability, --auto-connect mode). It is complete for a read-only info tool.

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

Parameters5/5

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

Although the schema covers 100% of the parameter (host with enum), the description adds meaning by explaining each enum value's purpose and giving a concrete example for 'openchrome.' This goes beyond the schema's generic 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 starts with 'Get connection configuration for a web AI host,' which clearly states the verb (Get) and resource (connection configuration). The tool is distinct from its many siblings as it focuses on fetching configuration details for specific AI hosts.

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 specific use-case for the 'openchrome' host value and explains what it returns when --auto-connect is active. However, it does not explicitly differentiate this tool from alternatives like oc_connection_health or oc_devtools_url, which are siblings.

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

oc_journalA

Query the tool call journal. Actions: "summary" (milestone overview), "recent" (last N entries), "handoff_summary" (compact JSON resume handoff). When to use: Reviewing session history, restoring context, or auditing past tool calls. When NOT to use: Use read_page or inspect to check the current live page state.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesQuery type
countNo(recent) Number of entries to return. Default: 20, max: 100
toolNoFilter by tool name
sessionIdNo(handoff_summary) Limit journal evidence to one session id
checkpointIdNo(handoff_summary) Source checkpoint id. Only "current" is backed by the existing checkpoint store.
includeCheckpointNo(handoff_summary) Include the current checkpoint file when available. Default: true
sinceNoISO timestamp or relative ("1h", "30m")

TDQS

A3.6/5.0
Behavior1/5

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

Annotations declare readOnlyHint=false, implying possible writes, but the description describes only a query operation. No behavioral traits beyond the contradictory annotation are disclosed, such as whether the tool modifies state, requires auth, or has rate limits.

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?

Extremely concise: three sentences covering purpose, actions, and usage boundaries. No wasted words, and critical information is front-loaded. Excellent structure.

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

Completeness4/5

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

Given 7 parameters and no output schema, the description provides essential context: actions, their outputs (e.g., 'compact JSON resume handoff'), and usage boundaries. It could be more complete with details on error behavior or pagination for the 'recent' action, but overall it is adequate.

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

Parameters3/5

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

Schema coverage is 100%, so the input schema already documents all 7 parameters. The description adds no additional semantic meaning beyond what the schema provides, meeting the baseline but not exceeding it.

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

Purpose4/5

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

Description clearly specifies verb 'Query' and resource 'tool call journal', and enumerates three actions with brief explanations. However, it does not explicitly differentiate from similar sibling tools like oc_journal_compact, missing an opportunity for clarity.

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

Usage Guidelines5/5

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

Explicitly states when to use ('reviewing session history, restoring context, auditing') and when NOT to use (use read_page or inspect for live page state), with concrete alternative tool names. This is excellent guidance.

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

oc_journal_compactA
Read-onlyIdempotent

Compress a sliding window of journal entries into a compact model-friendly summary. Defaults to a deterministic recent_k strategy that fits a token budget. checkpoint_only returns milestone-flagged entries. sampling forwards a summarisation prompt to the host LLM via sampling/createMessage — only available when the client advertises the sampling capability; returns { status: "unsupported_by_host" } otherwise. OpenChrome never uses its own LLM.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNoOptional MCP session id filter. The `recent_steps` window is taken across all sessions first, then filtered by this id — so a busy multi-session journal may yield fewer than `recent_steps` entries for one session; raise `recent_steps` to compensate. When omitted, all recent entries are considered.
recent_stepsNoHow many recent journal entries to consider. Default 50.
token_budgetNoApproximate token budget for the summary text. Default 1024.
strategyNoCompaction strategy. Defaults to `recent_k` (deterministic).

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already indicate read-only and idempotent. The description adds: 'Defaults to deterministic recent_k', 'checkpoint_only returns milestone-flagged entries', 'sampling forwards to host LLM and returns unsupported status', and 'OpenChrome never uses its own LLM'. No contradictions.

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

Conciseness4/5

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

The description is a single dense paragraph, but it is well-organized with front-loading of purpose, then defaults, then strategy details. It could benefit from visual structure like bullets, but remains clear and efficient.

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

Completeness3/5

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

The description thoroughly covers inputs and strategies but lacks explanation of the return value format for strategies other than sampling. The output is described as 'compact model-friendly summary', which is vague. Given no output schema, more detail would help.

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

Parameters5/5

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

Schema coverage is 100% (all 4 parameters described in schema). The description adds extra context: session_id explains filtering behavior after cross-session window, recent_steps and token_budget have defaults, strategy enum values are explained.

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

Purpose5/5

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

The description clearly states the tool compresses journal entries into a summary, with specific verb 'compress' and resource 'journal entries'. It distinguishes from siblings like oc_journal by stating 'compact model-friendly summary' and detailing strategies.

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

Usage Guidelines4/5

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

The description explains when to use each strategy (recent_k, checkpoint_only, sampling) and notes the sampling capability requirement. It does not explicitly state when to avoid this tool, but the purpose and sibling context make it clear.

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

oc_lane_closeA
Destructive

Close a task-scoped browser lane and its lane-owned targets without closing unrelated task tabs.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdNo16-hex task id returned by oc_task_start.
task_idNoAlias for taskId.
laneIdNoLane id returned by oc_lane_create.
lane_idNoAlias for laneId.

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true, so the description adds value by clarifying that unrelated task tabs remain untouched, providing context beyond the annotations. It doesn't detail what 'lane-owned targets' are or potential side effects, but the added scope constraint is helpful.

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, front-loaded, and contains no unnecessary words. Every part adds value: action, scope, and exclusion.

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

Completeness4/5

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

For a simple close operation with destructive annotations, the description is mostly complete. It explains what is closed and what is preserved. However, it could mention handling of missing lanes or confirmation of closure, but given the tool's simplicity and schema coverage, it is adequate.

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

Parameters3/5

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

The input schema has 100% coverage with clear parameter descriptions, so baseline is 3. The description does not add additional meaning beyond the action; it restates the parameters implicitly. No extra value added to parametric understanding.

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

Purpose5/5

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

The description clearly states the verb 'close' and the resource 'task-scoped browser lane', and specifies it does not affect unrelated task tabs, distinguishing it from sibling lane-manipulation tools like oc_lane_create or oc_lane_get.

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 this tool (to close a lane) but lacks explicit guidance on when not to use it or comparison with alternatives like oc_lane_list or oc_lane_get. The 'without closing unrelated task tabs' provides some context but not full usage criteria.

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

oc_lane_createA

Create a task-scoped browser lane on existing SessionManager worker/target primitives. Lanes isolate refs, tabs, and trace metadata for host-driven parallel work. Optional profile: "inherit" (default) shares the server Chrome user-data-dir; "scratch" provisions a fresh temp user-data-dir at creation and removes it on oc_lane_close.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdNoREQUIRED 16-hex task id returned by oc_task_start.
task_idNoAlias for taskId.
nameNoOptional human label.
purposeNoOptional bounded purpose for audit/debugging.
initialUrlNoOptional URL to open as the first lane target.
budgetNoOptional host-owned lane budget metadata; recorded only.
profileNoProfile isolation mode. `"inherit"` (default) shares the existing Chrome user-data-dir. `"scratch"` provisions a clean temporary Chrome user-data-dir for the lane and removes it automatically when the lane is closed via oc_lane_close.

TDQS

A3.9/5.0
Behavior3/5

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

Annotations are minimal (no readOnly, destructive, etc.), so the description carries the burden. It discloses the profile behavior, including that scratch provisions and removes a temp directory. However, it does not mention error conditions, side effects on existing state, or whether the operation is safe to repeat.

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-loads the core purpose, and efficiently adds the crucial profile isolation detail. No fluff or redundant 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?

With 7 parameters and no output schema, the description covers the basic concept and profile modes but omits important context: what the return value is, how to reference the lane later, error conditions, and prerequisite that the taskId must refer to an existing task.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3. The description adds significant extra context for the profile parameter, detailing the behavior of 'inherit' and 'scratch' beyond the schema. For other parameters, it adds little, but the profile explanation elevates the score.

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: 'Create a task-scoped browser lane on existing SessionManager worker/target primitives.' It explains the function of a lane ('isolate refs, tabs, and trace metadata') and distinguishes itself from sibling tools like oc_lane_close.

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 stating it operates 'on existing... primitives' and explains the profile options, but it does not explicitly tell when to use this tool versus alternatives, nor does it state when not to use it.

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

oc_lane_getA
Read-onlyIdempotent

Fetch one task-scoped browser lane including live target ids and counters.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdNo16-hex task id returned by oc_task_start.
task_idNoAlias for taskId.
laneIdNoLane id returned by oc_lane_create.
lane_idNoAlias for laneId.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare the tool as read-only, non-destructive, and idempotent. The description adds that the returned data includes 'live target ids and counters', which is extra behavioral context. However, it does not explain other behavioral traits (e.g., latency, side effects). No contradiction with annotations.

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

Conciseness5/5

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

The description is a single, focused sentence with no extraneous words. It efficiently conveys the essential purpose and key output characteristics.

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 absence of an output schema, the description only mentions 'live target ids and counters' as return content. It lacks details on the structure of the returned lane object, which could hinder an AI agent's correct invocation. Adequate but 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?

Schema coverage is 100%, with clear descriptions for all parameters. The tool description does not add new parameter meaning beyond what is already in the input schema. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('Fetch'), the resource ('one task-scoped browser lane'), and the included data ('live target ids and counters'). This effectively distinguishes the tool from siblings like oc_lane_create, oc_lane_list, and oc_lane_close.

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 context for selection among sibling lane-related tools.

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

oc_lane_listA
Read-onlyIdempotent

List task-scoped browser lanes for a task.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdNo16-hex task id returned by oc_task_start.
task_idNoAlias for taskId.
laneIdNoLane id returned by oc_lane_create.
lane_idNoAlias for laneId.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare read-only and idempotent behavior. The description adds scope context ('task-scoped') but no additional behavioral details like pagination or authorization needs.

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, front-loaded sentence that efficiently conveys the tool's purpose without extraneous words.

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

Completeness4/5

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

For a simple list tool with good annotations and full schema coverage, the description is adequate. However, it could mention the return format or any default 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?

Schema coverage is 100% with clear descriptions for each parameter. The description does not add any further 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 clearly states the verb 'List', resource 'browser lanes', and scope 'for a task'. It is specific and distinguishes from sibling tools like oc_lane_create and oc_lane_close.

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 oc_lane_get. Prerequisites or filtering options are not mentioned.

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

oc_normalize_actionA
Read-onlyIdempotent

Validate and normalize a near-valid browser/computer action payload without executing it. Use this before calling real action tools when a host model produced aliases such as left_click, hotkey, coordinate, or missing click button. This tool is side-effect-free: it does not touch Chrome, CDP, tabs, DOM, cookies, storage, or files.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesREQUIRED Candidate action object to validate and normalize. The action is never executed.
targetToolNoOptional target tool context. Currently advisory only; normalization remains side-effect-free.
strictNoWhen true (default), missing required fields and unsupported action types make ok=false.
redactNormalizedNoWhen true, caller-provided string payload values in normalized output are replaced with '[REDACTED]'.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
changedYes
normalizedNo
warningsYes
errorsYes
safetyYes

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already indicate read-only, non-destructive, idempotent. Description goes further with 'side-effect-free: it does not touch Chrome, CDP, tabs, DOM, cookies, storage, or files.' Lists exactly what is not affected, adding valuable behavioral context beyond annotations.

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

Conciseness5/5

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

Two sentences: first sentence front-loads purpose and key qualifiers (validate, normalize, near-valid, without executing), second sentence emphasizes side-effect-free nature. No wasted words, all essential information.

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

Completeness5/5

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

Given output schema exists (not shown but indicated), description covers purpose, usage context, behavioral traits, and parameter semantics adequately. No missing critical information; the tool is well-described for agent usage.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for all 4 parameters. Description adds minimal extra value beyond schema; it restates that action is never executed, but schema already says 'Action is never executed.' Baseline 3 is appropriate.

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

Purpose5/5

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

Clearly states 'Validate and normalize a near-valid browser/computer action payload without executing it.' Identifies the specific resource (action payload) and verb (validate and normalize). Differentiates from sibling execution tools by emphasizing non-execution, making its unique purpose obvious.

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 advises 'Use this before calling real action tools when a host model produced aliases such as left_click, hotkey, coordinate, or missing click button.' Provides clear context for use, though could strengthen with explicit when-not-to-use or alternative tool names.

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

oc_observeA
Read-onlyIdempotent

Deterministic, numbered list of actionable elements on the page. When to use: replace the read_page → query_dom → inspect → interact pattern when you already know which kind of action you want to take (click / fill / select / hover / focus). Returns refs that plug directly into interact. When NOT to use: full-page comprehension (use read_page), structural CSS diagnostics (use read_page mode=css), or natural-language replay (use act). No LLM, no outbound network — pure AX-tree traversal.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesREQUIRED Tab ID to observe
scopeNo'viewport' (default) restricts to the current viewport; 'document' returns all actionable nodes
actionsNoFilter to nodes offering at least one of these action verbs
limitNoHard cap on returned entries (default 200, max 1000)
includeHiddenNoInclude disabled / aria-hidden / display:none nodes (default false)

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds context beyond annotations: 'No LLM, no outbound network — pure AX-tree traversal,' reinforcing deterministic and safe 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?

Description is concise (4 sentences) with front-loaded purpose, clear usage guidelines, and no redundant text. Every sentence adds value.

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

Completeness5/5

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

Given no output schema, description covers return value ('Returns refs that plug directly into interact'), purpose, usage boundaries, and operational constraints. Complete for a list tool with rich annotations.

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions for all 5 parameters. Description adds no extra parameter-level meaning beyond what the schema provides, so baseline 3 is appropriate.

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

Purpose5/5

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

Description explicitly states 'Deterministic, numbered list of actionable elements on the page' with specific verb and resource. It clearly distinguishes from sibling tools like read_page and act by referencing the read_page→query_dom→inspect→interact pattern.

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

Usage Guidelines5/5

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

Provides explicit when-to-use guidance ('replace the read_page → query_dom → inspect → interact pattern when you already know which kind of action you want to take') and when-not-to-use guidance with alternative tools (read_page for comprehension, act for language-based replay, etc.).

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

oc_open_host_settingsA

Open the MCP connector settings page for a web AI host in the default browser.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostYesWeb AI host whose settings page to open.

TDQS

A3.6/5.0
Behavior3/5

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

The description reveals that the tool opens a browser page, which is useful behavioral information. However, it does not detail side effects such as whether a new tab is created, focus changes, or if the call fails silently when no browser is present. Annotations do not provide additional safety context, so the description carries some burden but falls short of full transparency.

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

Conciseness5/5

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

The description is a single, clear sentence that immediately conveys the tool's purpose. It is front-loaded, concise, and contains no superfluous words.

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

Completeness4/5

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

For a simple tool with one parameter and no output schema, the description is fairly complete. It explains what the tool does and what input it takes. However, it could mention that it opens in the default browser and implicitly requires a browser environment, which might affect completeness for agents lacking that context.

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

Parameters3/5

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

The description does not add meaningful information about the 'host' parameter beyond what the input schema already provides (enum values and a short description). With 100% schema coverage, a baseline of 3 is appropriate since the schema already documents the parameter adequately.

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 opens the MCP connector settings page for a web AI host in the default browser. It uses a specific verb and resource, and it is distinct from siblings like 'oc_devtools_url' or 'cookies' which deal with different settings or configuration.

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. There is no mention of prerequisites (e.g., whether the host must be configured first) or context in which this tool is appropriate, leaving the agent to infer usage.

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

oc_output_fetchA

Redeem an output handle returned by a large-output tool (read_page, crawl, network, extract_data, oc_evidence_bundle). Supports offset/limit pagination for JSON arrays (item-based) and binary blobs (byte-range). Returns eof=true and next_offset=null when the last page has been read.

ParametersJSON Schema
NameRequiredDescriptionDefault
output_handleYesREQUIRED Handle identifier returned by a large-output tool (e.g. "oh_ABCDEFGHIJKL").
offsetNoByte offset (binary) or item index (JSON array). Default: 0.
limitNoMax items (JSON array) or bytes (binary/non-array JSON) to return per page. Default: 200 items for JSON arrays, 65536 bytes for blobs.
formatNo"auto" (default): JSON arrays use item pagination, blobs use byte-range. "items": force item pagination (JSON arrays only). "bytes": force byte-range pagination.

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses pagination modes (item-based vs byte-range), defaults for offset/limit, and termination indicators (eof, next_offset). It does not cover error conditions like invalid handles, but provides sufficient behavioral context.

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

Conciseness5/5

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

The description is concise at three sentences, front-loading the purpose. Every sentence adds value without redundancy.

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

Completeness4/5

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

Given the tool's complexity (pagination with two modes) and the absence of an output schema, the description adequately covers the return behavior (eof, next_offset). It could mention error handling, but the essential information is present.

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

Parameters4/5

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

Schema coverage is 100%, but the description adds value beyond the schema by explaining default values (200 items, 65536 bytes), the 'auto' format behavior, and the meaning of eof and next_offset. This helps the agent understand parameter effects.

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: 'Redeem an output handle returned by a large-output tool...' It specifies the verb 'Redeem' and the resource 'output handle', and distinguishes it from sibling tools by mentioning the specific tools that produce output handles (read_page, crawl, etc.).

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 when to use the tool: after a large-output tool returns an output handle. It does not explicitly say when not to use, but the context is clear. It does not list alternative tools, but the purpose is specific enough.

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

oc_performance_analyzeA
Read-onlyIdempotent

Drill into one named insight from a trace captured by oc_performance_insights. Returns Markdown details and an evidence list. Unknown insight names return { error: 'unknown_insight', supported: [...] } without crashing.

ParametersJSON Schema
NameRequiredDescriptionDefault
trace_idYesREQUIRED Trace handle returned by oc_performance_insights.
insightYesREQUIRED Name of the insight to drill into.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, ensuring safety. The description adds transparency by stating the return format (Markdown details and evidence list) and error handling (unknown insight returns error without crashing), which is not covered by annotations.

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

Conciseness5/5

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

The description is extremely concise with two sentences. The first sentence covers purpose and output, the second covers error handling. Every sentence adds value, and the information 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?

Given the tool's simplicity (2 parameters, no output schema), the description is nearly sufficient. It covers what the tool does, its inputs, and error behavior. However, it does not explain the format of the returned Markdown details or evidence list, which could be useful for an agent.

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

Parameters4/5

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

Schema coverage is 100% with both parameters described. The description adds context by tying 'trace_id' to the output of 'oc_performance_insights' and notes that 'insight' is from an enum, with error handling for unknown values. This provides a slight improvement over the schema alone.

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

Purpose5/5

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

The description clearly states the tool drills into a specific insight from a trace captured by 'oc_performance_insights', identifying it as a drill-down tool. It distinguishes from the sibling 'oc_performance_insights' which captures traces and returns insights, making the purpose unambiguous.

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

Usage Guidelines4/5

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

The description indicates this tool is used after obtaining a trace from 'oc_performance_insights', providing a clear usage context. It also mentions that unknown insight names return an error with supported list, guiding correct input. However, it does not explicitly state when to avoid using this tool or list alternatives beyond the implied dependency.

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

oc_performance_insightsA

Capture a CDP performance trace and return named insights (LCPBreakdown, DocumentLatency, RenderBlocking, CLSCulprits, LongTasks, ThirdParties). Returns a trace_id usable by oc_performance_analyze. Core-tier; trace handles are session-scoped and evicted on session close. Disable via OPENCHROME_PERF_INSIGHTS=0.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesREQUIRED Tab ID to trace.
urlNoIf set, navigate the tab to this URL before tracing.
reloadNoReload the page after starting the trace (cold-load capture).
cpuThrottlingNoCPU throttling rate. 1 = none, 4 = mid-tier mobile.
networkNoNetwork throttling profile.
autoStopNoWhen to stop tracing. "load" = page load event, "idle" = network idle, { ms: N } = fixed timeout. Default 3000ms.

TDQS

A4/5.0
Behavior4/5

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

Annotations provide readOnlyHint=false etc. The description adds behavioral context: it starts tracing (nontrivial operation), session-scoped handles are evicted on session close, and it can be disabled via environment variable. No contradictions.

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: first directly states purpose and outputs, second adds essential lifecycle context. Every sentence is necessary, no redundancy.

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

Completeness4/5

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

Given 6 parameters (1 required) and no output schema, the description covers key aspects: purpose, returned insights, trace_id for analysis, session scoping, and disable option. Adequate for an agent to use the tool safely.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents each parameter. The description adds no new parameter-level meaning beyond listing output insights. Baseline 3 is appropriate.

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

Purpose5/5

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

The description uses specific verbs ('capture', 'return') and clearly names the resource ('CDP performance trace', named insights list). It distinguishes from sibling 'oc_performance_analyze' by stating the trace_id is usable by that tool.

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

Usage Guidelines3/5

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

The description explains when to use (performance tracing) and provides lifecycle details (session-scoped, eviction on close, disable env var). However, it does not explicitly contrast when not to use this tool versus alternatives like performance_metrics or network_capture.

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

oc_policyA
Read-onlyIdempotent

Inspect deterministic OpenChrome safety policy. Use action="matrix" to list irreversible-action rules or action="evaluate" to preview a policy decision for a tool/args context.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNomatrix lists policies; evaluate returns a decision for tool/args. Default: matrix.
toolNo(evaluate) Tool name to evaluate.
argsNo(evaluate) Tool arguments to classify.
dryRunNo(evaluate) Whether the caller requested a dry-run/preview path.
elicitationSupportedNo(evaluate) Whether client-side elicitation/confirmation is available.
allowedDomainsNo(evaluate) Optional task allowedDomains policy.
checkpointNo(evaluate) Optional checkpoint evidence with createdAt, now, and taskId.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds the deterministic nature and the two modes of operation, consistent with annotations. No contradictions.

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-load the purpose and then explain the two actions. Every sentence adds value with no fluff.

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

Completeness4/5

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

Given 7 parameters and no output schema, the description covers the two main use cases well. It could mention the output format (e.g., list, decision object) but the schema handles parameter details adequately.

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

Parameters3/5

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

Schema coverage is 100%, so baseline 3. The description provides a high-level summary of the action parameter but doesn't add new semantic details beyond what the schema already explains for each parameter.

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

Purpose5/5

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

The description clearly states the tool inspects deterministic OpenChrome safety policy, specifying two distinct actions (matrix and evaluate). This is a specific verb+resource combo that distinguishes it from sibling tools like oc_gate_inspect.

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

Usage Guidelines4/5

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

The description explicitly tells when to use each action: 'matrix' for listing rules, 'evaluate' for previewing a decision. While it doesn't list alternatives, the context is clear and no exclusions are needed.

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

oc_profile_statusB
Read-onlyIdempotent

Check browser profile type and capabilities.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint true, destructiveHint false, and idempotentHint true. The description's 'check' verb is consistent but adds no additional behavioral context beyond what annotations provide.

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

Conciseness4/5

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

The description is very concise at 6 words, front-loading the purpose. It could be slightly more descriptive without harming conciseness, but it is mostly efficient.

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

Completeness3/5

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

For a simple status check tool with no parameters or output schema, the description is adequate but lacks details on what 'profile type and capabilities' means or what the return value contains.

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

Parameters4/5

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

No parameters exist, and schema coverage is 100%. The description does not need to elaborate on parameters, and the empty schema leaves no 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 the tool checks browser profile type and capabilities, using a specific verb and resource. It is distinct from sibling tools based on its unique name, but no explicit differentiation is provided.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like list_profiles. There is no context for when to check profile status or what actions to avoid.

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

oc_progress_statusA
Read-onlyIdempotent

Read-only diagnostics for whether the current OpenChrome session appears to be progressing, stalling, or stuck. Returns bounded counters and advisory next-call suggestions; it never stops, retries, recovers, or executes browser actions.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdNoOptional session ID. Defaults to the current MCP session.
windowNoRecent completed calls to inspect. Default 10, min 3, max 50.
includeRecentCallsNoInclude redacted compact recent call summaries. Default false.

Output Schema

ParametersJSON Schema
NameRequiredDescription
sessionIdYes
statusYes
windowYes
countersYes
topSignalNo
suggestedPolicyYes
suggestedNextCallsYes
recentCallsNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate read-only, destructive hint false, and idempotent. The description adds valuable behavioral details: 'it never stops, retries, recovers, or executes browser actions.' This goes beyond the annotations and helps the agent understand the tool's passive nature.

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 very concise with three sentences: the first defines purpose, the second describes return type, and the third clarifies what the tool does not do. No unnecessary words, and the critical information is front-loaded.

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

Completeness5/5

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

For a diagnostic tool with 3 parameters and an output schema, the description adequately covers the purpose, behavior, and limitations. It explains what the tool returns ('bounded counters and advisory next-call suggestions') and that it is safe to call. No gaps are apparent given the availability of the output schema.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all parameters with descriptions (sessionId, window with default/min/max, includeRecentCalls). The description does not add parameter-level meaning beyond the schema, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly specifies the tool's purpose: 'Read-only diagnostics for whether the current OpenChrome session appears to be progressing, stalling, or stuck.' It also explicitly states what the tool does not do ('it never stops, retries, recovers, or executes browser actions'), which distinguishes it from action-oriented sibling tools.

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

Usage Guidelines4/5

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

The description provides clear usage context by stating it is read-only and does not execute browser actions, implying it should be used for non-intrusive health checks. However, it does not explicitly list alternative tools for different diagnostics, leaving the agent to infer from sibling names.

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

oc_queryA
Read-onlyIdempotent

Resolve a semantic element query into stable refs for interaction workflows. Uses local AX/DOM matching only; no external AgentQL or LLM provider is called. Pass returned refs to interact, act, fill_form, read_page(ref_id), or plan parseResult.storeAs paths.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesREQUIRED Tab id to query.
queryYesREQUIRED Semantic query such as "checkout button" or "email field".
purposeNoHow the caller intends to use the result. Default: interaction.
limitNoMaximum refs to return. Default 5, max 20.
includeCandidatesNoWhen true, include lower-scored DOM candidates as well as AX matches. Default true.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds useful behavioral info: uses only local AX/DOM matching, no external calls. This goes beyond annotations without contradicting them.

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

Conciseness5/5

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

Three concise sentences front-loaded with the core purpose. Every sentence adds value without redundancy.

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

Completeness4/5

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

Given 5 parameters, no output schema, and informative annotations, the description covers the tool's function, usage, and output handling well. It does not explain return format, but the overall completeness is high for a query tool.

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

Parameters3/5

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

Schema coverage is 100% with clear parameter descriptions. The description does not add significant per-parameter info beyond the schema, but provides overall context. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description explicitly states the action ('Resolve a semantic element query into stable refs') and the resource ('semantic element queries'). It distinguishes from sibling tools by noting local AX/DOM matching only, no external providers. The purpose is specific and clear.

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

Usage Guidelines4/5

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

The description gives clear context: for interaction workflows, and directs where to pass the refs (interact, act, etc.). However, it does not explicitly state when not to use or name alternatives among siblings, though the differentiation from external-provider tools is implicit.

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

oc_reap_orphansA
Destructive

Manually sweep and terminate orphaned OpenChrome-managed Chrome processes. Never touches attach-mode or unmarked user Chrome.

ParametersJSON Schema
NameRequiredDescriptionDefault
portsNoOptional Chrome remote-debugging ports to check for legacy PID-file orphans. Defaults to the active CDP port window (base port through base+4); ownership markers are always scanned.
dryRunNoPreview orphaned Chrome processes that would be terminated without killing processes or deleting marker/PID files.

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses that the tool terminates processes (destructive) and specifies it does not affect attach-mode or unmarked Chrome, adding behavioral context beyond the annotations. It does not mention idempotency or side effects, but the safety boundary is clear.

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 efficiently convey purpose and a key safety constraint. No wasted words.

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

Completeness4/5

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

For a simple tool with two optional parameters and no output schema, the description covers the core purpose and safety. It could mention the result or return value, but the lack of such is acceptable given the tool's nature.

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 input schema already provides detailed descriptions for both parameters (ports and dryRun). The overall description adds no extra parameter information, so baseline 3 is appropriate.

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

Purpose5/5

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

The description uses specific verbs 'sweep and terminate' and clearly identifies the resource as 'orphaned OpenChrome-managed Chrome processes'. It also explicitly excludes attach-mode or unmarked user Chrome, differentiating it from other tools.

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

Usage Guidelines4/5

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

The description states it is for manual intervention and clarifies what it never touches, providing safety guidance. However, it lacks explicit when-to-use or when-not-to-use compared to alternatives, though the context implies its use for cleaning orphaned processes.

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

oc_recording_exportA

Export a recording as JSON or a self-contained HTML report. For HTML, saves to ~/.openchrome/recordings/{id}/report.html and returns the path.

ParametersJSON Schema
NameRequiredDescriptionDefault
recordingIdYesThe recording ID to export.
formatNoExport format. Default: "json".

TDQS

A3.9/5.0
Behavior4/5

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

Annotations are all false, and the description adds context about the HTML export saving to a specific path and returning that path. This goes beyond annotations, though it could be more explicit about file creation 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 two sentences, front-loaded with the main action, and contains no unnecessary words. It is optimally concise.

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

Completeness3/5

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

For HTML export, the description specifies the return value (path). However, for JSON export, it does not clarify whether the JSON is returned directly or saved to a file, leaving a gap in completeness.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema itself documents both parameters. The description adds no extra meaning beyond the enum values for format; baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool exports a recording in JSON or HTML format. It uses a specific verb ('Export') and resource ('recording'), and the lack of sibling export tools makes differentiation inherent.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool vs alternatives or when not to use it. It implies usage for exporting recordings, but no guidance on format selection or prerequisites is provided.

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

oc_recording_listA
Read-onlyIdempotent

List available session recordings, newest first.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of recordings to return. Default: 20.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already provide readOnlyHint, destructiveHint, idempotentHint. Description adds ordering behavior ('newest first') beyond annotations. No contradictions. Could disclose scope of 'available' recordings but sufficient.

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

Conciseness5/5

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

Single sentence, front-loaded, no wasted words. Perfectly concise for the information conveyed.

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?

Tool is simple with one optional parameter and rich annotations. Description is mostly complete but lacks details on output format (e.g., fields returned) and pagination behavior. Adequate for a list operation.

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

Parameters3/5

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

Only one parameter 'limit' with schema description covering 100%. Description does not add meaning beyond schema. Baseline 3 is appropriate as schema is sufficient.

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

Purpose5/5

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

Description clearly states the action ('List') and resource ('session recordings') with sorting order ('newest first'), distinguishing it from sibling recording tools like oc_recording_start or oc_recording_export.

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. Does not mention prerequisites, use cases, or when not to use it. Minimal context for an agent to decide.

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

oc_recording_startA

Start a new session recording. All subsequent MCP tool calls will be recorded until oc_recording_stop is called. Errors if a recording is already active.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelNoOptional human-readable label for this recording.
profileNoOptional browser profile name to associate with this recording.
trajectoryBundleNoDefault false. When true, write a file-based trajectory bundle under ~/.openchrome/trajectories.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false (non-read-only), destructiveHint=false, idempotentHint=false. The description adds that it records calls and errors if a recording is active, which is behavioral context beyond annotations. No contradictions.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core purpose, and contains no extraneous information. Every sentence adds value.

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

Completeness5/5

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

For a simple start-recording tool with no output schema and good annotations, the description provides all necessary context: what it does, scope, and error condition. It is complete.

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

Parameters3/5

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

All 3 parameters are fully described in the schema (100% coverage). The description does not add additional detail beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Start a new session recording' and explains that it records subsequent MCP tool calls until oc_recording_stop is called. It also notes the error condition if already active, distinguishing it from other recording-related siblings.

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

Usage Guidelines4/5

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

The description explains that recordings continue until oc_recording_stop and errors if already active, providing clear context for when to use it. It does not explicitly mention alternatives or when not to use, but the usage is straightforward.

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

oc_recording_statusA
Read-onlyIdempotent

Report whether session recording is active, including trajectory bundle metadata when enabled.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare it as read-only and idempotent. The description adds behavioral detail about returning trajectory bundle metadata when enabled, but does not specify what 'enabled' means or the metadata structure. Given the simplicity, this is adequate.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no extraneous words. It efficiently conveys the tool's purpose without waste.

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

Completeness4/5

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

Given no parameters and no output schema, the description provides essential information. However, it omits the structure of the return value, which could be helpful for an agent to process the output.

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

Parameters4/5

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

The tool has no parameters, and schema description coverage is 100%. The description does not need to add parameter info, so the baseline score of 4 applies.

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

Purpose5/5

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

The description clearly states the verb 'Report' and the resource 'whether session recording is active', adding 'including trajectory bundle metadata when enabled'. It effectively distinguishes from siblings like oc_recording_start/stop/list.

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 status check but provides no explicit guidance on when to use this tool versus alternatives like oc_recording_list or oc_recording_start/stop. More context on usage context would improve clarity.

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

oc_recording_stopA
Destructive

Stop the active session recording and finalize it to disk. Returns a summary of the recording. Errors if no recording is active.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Discloses destructive behavior (finalize to disk) consistent with destructiveHint=true. Includes error condition and return summary. Could elaborate on irreversibility but adequate.

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

Conciseness5/5

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

Two concise sentences, front-loaded with key information. No fluff.

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

Completeness5/5

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

Completely describes the tool's behavior given zero parameters and no output schema. Covers success outcome, return value, and error case.

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

Parameters4/5

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

No parameters, so the baseline 4 applies. Description adds no param info, but schema coverage is 100% trivially.

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

Purpose5/5

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

Clearly states the action (stop), resource (active session recording), and outcomes (finalize to disk, return summary, error if none). Distinguishes from sibling tools like oc_recording_start, oc_recording_status, etc.

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 warns that it errors if no recording is active, implying the prerequisite. Lacks explicit mention of when not to use or alternatives, but the context is sufficient.

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

oc_reflectB

Create, get, or list structured task-failure reflection artifacts. Reflections are passive recovery guidance only; OpenChrome never executes nextPlan automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesREQUIRED Reflection action: create, get, list, or validate.
idNo(get) Reflection id
scopeNo(create/list) domain, taskFingerprint, optional contractId/urlPattern
triggerNo(create) stuck, plan_failed, contract_failed, workflow_partial, or timeout
evidenceNo(create) journalEntryIds, hintRules, failedAssertions, and lastTools
diagnosisNo(create) bounded diagnosis text
nextPlanNo(create) passive next-trial plan items
avoidNo(create) actions/strategies to avoid repeating
confidenceNo(create) confidence 0..1
expiresAtNo(create) optional unix ms expiry
limitNo(list) max records, default 3, max 100
includeExpiredNo(list) include expired reflections for debugging
successNo(validate) whether using this reflection succeeded

TDQS

B3.4/5.0
Behavior3/5

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

Annotations indicate the tool can write (readOnlyHint=false) and is not destructive. The description adds that it creates/gets/lists and is passive, which is helpful. But it does not disclose potential side effects, required permissions, or behavior for each action beyond what the schema provides.

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

Conciseness5/5

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

The description is very concise—only two sentences. The first sentence clearly states the verb and resource, and the second adds the important passive qualifier. Every sentence earns its place with no waste.

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 13 parameters and no output schema, the description is minimal. It does not explain return values, how to use each action (e.g., 'validate' marks success), the structure of reflections, or provide examples. Given the tool's complexity, more context is needed.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds no additional parameter context beyond the schema; it only summarizes the actions. No extra semantic meaning is provided.

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

Purpose4/5

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

The description clearly states it creates, gets, or lists task-failure reflection artifacts, which distinguishes it from other oc_ tools like oc_journal or oc_checkpoint. However, it could be more specific about the 'structured' nature and how it differs from related tools.

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

Usage Guidelines3/5

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

The description notes that reflections are passive recovery guidance only and that OpenChrome never executes nextPlan automatically, providing contextual usage guidance. However, it does not explicitly state when to use this tool versus alternatives, such as when recording failure analysis rather than automatic recovery.

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

oc_run_eventsB
Read-onlyIdempotent

Return recent events for an opt-in OpenChrome run ledger.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesREQUIRED Run identifier returned by oc_run_start.
limitNoMaximum number of events to return. Default 100.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds 'recent events' but doesn't elaborate on ordering, pagination, or side effects. With strong annotations, the description adds little behavioral context beyond the schema and annotations.

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

Conciseness4/5

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

Single sentence is concise and front-loaded. No fluff, but lacks additional context that could improve usability. Efficient for a simple tool.

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

Completeness3/5

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

No output schema, and description does not explain the return format or structure of events. For a tool with few parameters and no nested objects, the missing return value documentation is a gap, but annotations cover safety adequately.

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%; both parameters (run_id, limit) are described in the schema with clear meaning. The description adds no extra semantic value. Baseline 3 applies.

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

Purpose5/5

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

The description clearly states the tool returns recent events for a specific run ledger. The verb 'Return' and resource 'events' are precise. It differentiates from sibling tools like oc_run_status by specifying 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. Lacks prerequisites, context, or exclusion criteria. Sibling tools like oc_run_status are not compared, leaving the agent to infer usage.

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

oc_run_finishA
Destructive

Finish an opt-in OpenChrome run ledger with a terminal, needs_user_input, or needs_strategy_change status.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesREQUIRED Run identifier returned by oc_run_start.
statusYesREQUIRED Terminal, needs_user_input, or needs_strategy_change run status.
messageNoOptional finish reason.
metadataNoOptional finish metadata.

TDQS

A3.6/5.0
Behavior3/5

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

The description's 'Finish' aligns with annotations showing destructiveHint=true. It does not add additional behavioral context beyond what annotations provide, such as side effects or required run 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?

The description is a single sentence that conveys the essential information without any unnecessary words. It is front-loaded and efficient.

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

Completeness4/5

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

For a simple finish action with no output schema, the description adequately covers the purpose and allowed statuses. It lacks mention of error conditions or prerequisites, but the completeness is high given the tool's simplicity.

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

Parameters3/5

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

All parameters are described in the input schema with 100% coverage. The description provides no extra meaning beyond the schema definitions, so baseline score of 3 applies.

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

Purpose4/5

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

The description clearly specifies the action (finish), the resource (OpenChrome run ledger), and the allowed statuses. However, it doesn't explicitly differentiate from sibling tools like oc_task_finish, but the resource name is distinct enough.

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

Usage Guidelines3/5

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

The description implies the tool is used when a run needs to be finished with a specific terminal or ongoing status. It does not mention when not to use it or suggest alternatives like checking run status first.

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

oc_run_startA

Start an opt-in OpenChrome run ledger. Returns {run_id,status,pathless metadata}.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idNoOptional caller-supplied safe run id.
session_idNoOptional session id to associate with the run.
tab_idNoOptional tab id to associate with the run.
metadataNoOptional JSON metadata.
budgetNoOptional run-level wandering budget. When exceeded, oc_run_status records a needs_strategy_change finish event.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate the tool is not read-only (readOnlyHint=false) and not destructive (destructiveHint=false). The description adds that it returns '{run_id,status,pathless metadata}', which is useful but does not disclose side effects like whether multiple starts are allowed or if prior runs affect it. Minimal additional value beyond annotations.

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

Conciseness4/5

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

The description is a single sentence plus a return format note, making it very concise. It contains no unnecessary words, but it could be slightly more structured to list the return fields. Still efficient for its length.

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 starts a run and has a complex nested 'budget' parameter, the description lacks details on when to set budgets or how they interact with run behavior. No output schema exists, so the return format note helps, but missing context about run lifecycle among siblings (e.g., relationship to oc_run_finish) reduces completeness.

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

Parameters3/5

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

All 5 parameters are described in the input schema (100% coverage). The description does not add extra meaning beyond the schema, such as explaining the 'budget' object's impact or providing examples. With high schema coverage, baseline is 3, and the description does not improve it.

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

Purpose5/5

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

The description clearly states the tool's action: 'Start an opt-in OpenChrome run ledger'. It specifies the verb 'Start' and the resource 'OpenChrome run ledger', and distinguishes it from sibling tools like oc_run_finish and oc_run_status that perform other run lifecycle operations.

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

Usage Guidelines3/5

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

The description implies usage (when needing to start a run) but does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention prerequisites or when not to use it. The context is clear but lacks 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.

oc_run_statusC

Return the current status and summary for an opt-in OpenChrome run ledger.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesREQUIRED Run identifier returned by oc_run_start.
budgetNoOptional run-level wandering budget. When exceeded, oc_run_status records a needs_strategy_change finish event.

TDQS

C2.9/5.0
Behavior2/5

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

The description implies a read-only operation ('Return'), but annotations indicate it is not read-only (readOnlyHint=false). The tool can trigger a 'needs_strategy_change' finish event when budget is exceeded, which is undisclosed. This side effect should be mentioned.

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?

Extremely concise single sentence (14 words) that is front-loaded and contains no unnecessary 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 no output schema, the description should explain return values and when to call it (e.g., after oc_run_start). It lacks these details, leaving the agent uncertain about usage and expected output.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds no extra meaning beyond what the schema already provides for both parameters, particularly the budget object.

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 returns status and summary for a run ledger, with specific verb and resource. It distinguishes from siblings like oc_run_start, but could be more specific about what 'status and summary' includes.

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 oc_run_events or oc_run_finish. The context is implied but not explicitly stated.

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

oc_session_resumeA

Restore working context after context compaction. Reads the last oc_session_snapshot, checks which tabs are still alive, and returns a resume guide with your objective, progress, and tab status. Call this after compaction to continue where you left off.

ParametersJSON Schema
NameRequiredDescriptionDefault
snapshotIdNoSpecific snapshot ID to restore (default: latest)
taskIdNoOptional TaskRun id. When present, include latest task checkpoint/resume context if available.

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses that the tool reads the last snapshot and checks live tabs, implying a non-destructive read operation. Annotations (readOnlyHint: false, destructiveHint: false) are neutral; the description provides additional context about the behavior without contradictions.

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

Conciseness5/5

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

The description is three sentences long, front-loading the primary action and then detailing the process and calling action. Every sentence is informative and there is no redundancy or wasted words.

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

Completeness4/5

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

Despite lacking an output schema and having minimal annotations, the description explains the output structure (resume guide with objective, progress, tab status) and the conditions for use (after compaction). It provides enough context for an agent to understand when and how to invoke the tool, though more detail on side effects could be added.

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

Parameters3/5

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

The input schema covers both parameters with descriptions (snapshotId and taskId), achieving 100% coverage. The tool description does not add new information about the parameters beyond summarizing their roles; it only generalizes that it reads the latest snapshot. Thus, the description does not significantly enhance understanding beyond the schema.

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

Purpose5/5

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

The description clearly identifies the tool's purpose with a specific verb ('Restore working context after context compaction'), details the process (reads snapshot, checks tabs), and specifies the output (resume guide with objective, progress, tab status). It distinguishes itself from sibling tools like oc_session_snapshot by focusing on restoration rather than capture.

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

Usage Guidelines4/5

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

The description explicitly states when to use the tool ('Call this after compaction to continue where you left off'). It implies the context of use, but does not explicitly exclude other scenarios or mention alternatives, though the sibling list includes related tools like oc_session_snapshot.

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

oc_session_snapshotA

Save browser state snapshot for context recovery after compaction. Captures open tabs, worker state, and your task memo. Use before long operations or periodically during multi-step tasks. Restore with oc_session_resume.

ParametersJSON Schema
NameRequiredDescriptionDefault
objectiveYesWhat you are trying to accomplish
currentStepYesWhat step you are currently on
nextActionsYesPlanned next actions
completedStepsNoSteps already completed
notesNoAdditional context or notes
labelNoOptional label for this snapshot

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate a non-read-only, non-destructive mutation. The description adds context about capturing tabs/worker/memo and the compaction use case, going beyond annotations. No contradictions.

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 with no waste: first states action, second lists captures, third gives usage guidance and restore reference. Front-loaded and efficient.

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

Completeness4/5

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

The description covers purpose, captures, and usage well. However, it omits mention of return value (e.g., snapshot ID) and the label parameter's purpose, leaving minor gaps for a tool with no output schema.

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

Parameters3/5

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

Schema coverage is 100%, so the schema fully describes parameters. The description's mention of 'task memo' loosely maps to the 'notes' parameter but adds no new semantic detail. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool saves a browser state snapshot for context recovery, specifying what it captures (open tabs, worker state, task memo) and the restore counterpart (oc_session_resume). This distinguishes it from siblings like oc_session_resume and other session tools.

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

Usage Guidelines4/5

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

The description advises use 'before long operations or periodically during multi-step tasks' and mentions the companion restore tool, providing clear context. It lacks explicit when-not-to-use guidance but is sufficient for basic decision-making.

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

oc_skill_exportA
Read-onlyIdempotent

Export an opt-in codegen replay artifact written by --codegen. Returns the path and byte count for puppeteer, playwright, or mcp-replay output. Default OpenChrome behavior is unchanged when --codegen is off.

ParametersJSON Schema
NameRequiredDescriptionDefault
skill_idNoSkill id or session id hint. For codegen artifacts this is matched against file names.
session_idNoExact MCP session id to export. Defaults to current session.
formatYesREQUIRED Export format.

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds value by stating the return format and that default behavior is unchanged when --codegen is off, providing context beyond the annotations.

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

Conciseness5/5

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

Two concise sentences with no superfluous words. Efficiently communicates purpose, output, and a behavioral note.

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

Completeness4/5

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

For a simple tool with high schema coverage and annotations, the description covers purpose, output, and a condition. It could mention prerequisites (e.g., codegen must be running) but is mostly complete.

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

Parameters3/5

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

Schema coverage is 100% with each parameter having a description. The description does not add significant new meaning for the parameters, as it focuses on the output. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool exports an opt-in codegen replay artifact and specifies the output (path and byte count) and formats (puppeteer, playwright, mcp-replay). This distinguishes it from sibling export tools like oc_context_export and oc_recording_export.

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 codegen replay artifacts only, and mentions default behavior unchanged when --codegen is off. However, it does not explicitly state when to use this tool versus alternatives or provide exclusions.

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

oc_skill_recallA
Read-onlyIdempotent

Retrieve skills from the JSON skill memory store for a given domain. Returns a recency-sorted list (last_used_at desc). Optionally filter by contract_id and cap results with limit (default 20). No LLM ranking — deterministic store order is returned as-is unless task/query or ranked is supplied. Each result carries codegenReplay ({available, artifacts}) for the LLM-free replay fast path. Use oc_skill_record to write skills.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to retrieve skills for (e.g. "amazon.com"). Must be a non-empty string ≤ 253 chars and match the domain used at record time.
contract_idNoOptional. Restrict results to skills whose contract_id matches this value exactly. Omit to return skills across all contracts.
taskNoOptional task text. When present, recall is ranked by deterministic task relevance.
queryNoOptional alias for task. Ignored when task is also provided.
rankedNoOpt in to deterministic ranked recall. Also enabled when task is provided.
limitNoMaximum number of skills to return. Default 20. Pass 0 to return an empty list. Values below 0 are treated as 0.
include_unpromotedNoWhen true, also surface promotionState=recorded skills. Default false: once a domain has any re_verified/recallable skill, recall hides recorded ones to keep the LLM-free fast path safe. Domains with no promoted skill auto-fallback to v1.x (all non-quarantined surface). (#1431)
include_quarantinedNoWhen true, also surface promotionState=quarantined skills. Default false; diagnostic only — they failed re-verification and should not be replayed. Independent of the recorded/promoted filter, so on an unpromoted domain (v1.x auto-fallback) it yields recorded + quarantined. (#1431)
use_run_statsNoOpt in to factor audit-log run statistics (recent-window failure rate) into ranked recall, demoting skills that fail often. Implies ranked recall. Default false (no audit-log I/O when off). When on, does a one-time synchronous audit-log scan per call. (#1457)

TDQS

A4.7/5.0
Behavior5/5

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

Annotations declare readOnlyHint, destructiveHint, idempotentHint, openWorldHint. Description adds recency-sorted order, codegenReplay fast path, deterministic ranking behavior, and detailed boolean parameter effects (include_unpromoted, include_quarantined, use_run_stats). No contradiction.

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

Conciseness4/5

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

Single paragraph with each sentence adding value. Could be more structured (e.g., bullet points for parameters), but remains concise and front-loads key information.

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

Completeness5/5

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

Covers return format, pagination via limit, ranking options, edge cases (limit 0/negative, unpromoted domains, audit-log stats). No output schema, but description compensates with behavioral details.

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

Parameters5/5

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

100% schema coverage, description adds constraints (domain length, contract_id exact match), explains interaction between task/query/ranked, limit=0 behavior, and details on boolean parameters (e.g., unpromoted domain fallback). Adds significant value beyond schema.

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

Purpose5/5

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

Clearly states the tool retrieves skills from a JSON skill memory store for a given domain. Specifies verb 'retrieve' and resource 'skills', and distinguishes from sibling oc_skill_record (write).

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 guidance on default recency-sorted order, optional filters (contract_id, limit), and ranked recall via task/query or ranked. Mentions alternative oc_skill_record for writing. Could be more explicit about when to use vs other tools, but sufficient.

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

oc_skill_recordA

Record a skill (domain, name, steps, contract_id) into the JSON skill memory store. Idempotent on (domain, name) — re-recording preserves the existing skill_id and usage counters while updating steps and contract_id. Pass frozen_snapshot to atomically write a gzipped snapshot alongside the record. Returns { skill_id, stored_at, snapshot_path? }. Core-tier; no LLM ranking. Use oc_skill_recall to retrieve skills.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain this skill belongs to (e.g. "amazon.com"). Used as the storage partition key and must be a non-empty string ≤ 253 chars.
nameYesHuman-readable skill name, unique within the domain (e.g. "add-to-cart"). Acts as the idempotency key together with domain.
stepsYesOpaque step list supplied by the host agent. The store persists this inline in the JSON file without schema validation. Each element may be any JSON-serialisable value.
contract_idYesIdentifier of the Outcome Contract that governs this skill (ties into oc_assert #784 and the contracts registry).
frozen_snapshotNoOptional opaque snapshot payload to persist alongside the record. Written exactly once (write-once semantics) under <rootDir>/<domain>/snapshots/<skill_id>.json.gz. Omit on re-records when you do not want to update the snapshot.
replay_artifactsNoOptional replay artifacts (selector-chain step recordings) to persist alongside the skill. Each artifact must conform to the ReplayArtifact schema. Ignored when OPENCHROME_SKILL_REPLAY is not enabled.

TDQS

A3.8/5.0
Behavior1/5

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

The description claims idempotency ('Idempotent on (domain, name)'), but the annotations set idempotentHint to false, creating a direct contradiction. Additionally, while it mentions atomic snapshot write and preservation of counters, it lacks details on authentication, error behavior, or side effects beyond the idempotency claim.

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: the first states the core purpose, the second clarifies idempotency and directs to the sibling tool. No 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.

Completeness4/5

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

Considering the 6 parameters (100% schema coverage) and no output schema, the description covers return values (skill_id, stored_at, snapshot_path?), idempotency behavior, and references the sibling tool. However, it does not mention the 'replay_artifacts' parameter or elaborate on 'Core-tier; no LLM ranking', leaving minor gaps.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value beyond the schema by explaining that (domain, name) form an idempotency key preserving skill_id and usage counters, and by describing the atomic write behavior for frozen_snapshot. This contextual information helps the agent understand parameter interplay.

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 records a skill into a JSON skill memory store, lists the key fields (domain, name, steps, contract_id), and explicitly distinguishes itself from the sibling tool oc_skill_recall by directing users to use that for retrieval. The verb 'Record' and resource 'skill' are specific.

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 indicates when to use the tool (recording skills) and mentions idempotency on (domain, name), implying re-recording is allowed. It explicitly points to oc_skill_recall for retrieval, providing a clear alternative. However, it does not state when NOT to use it or any prerequisites.

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

oc_stopA
Destructive

Shut down OpenChrome and close Chrome. Auto-relaunched on next tool call.

ParametersJSON Schema
NameRequiredDescriptionDefault
keepChromeNoKeep Chrome running, just disconnect. Default: false in standalone mode, true when running in broker owner mode so shared clients are not impacted.
dryRunNoPreview sessions/tabs and managed Chrome resources that oc_stop would shut down without mutating runtime state.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations provide destructiveHint=true, but the description adds the key behavior 'Auto-relaunched on next tool call,' which is not captured in annotations. This is valuable context for an agent.

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 purpose, and contains no fluff. Every sentence adds 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 simple shutdown tool with no output schema, the description covers the main action and auto-relaunch but lacks details on side effects, prerequisites, or how parameters affect behavior (though schema covers those).

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

Parameters3/5

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

The input schema has 100% coverage with descriptions for both parameters. The tool description does not add any extra meaning beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states 'Shut down OpenChrome and close Chrome,' using a specific verb and resource. It distinguishes itself from siblings by noting auto-relaunch, which is unique among the many oc_* 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?

There is no explicit guidance on when to use this tool versus alternatives. The description does not mention criteria like 'use when you need to completely stop the browser' or exclude scenarios.

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

oc_task_cancelA
Destructive

Request cancellation of a background task. Best-effort: the runner aborts the underlying tool at the next work-unit boundary. Terminal tasks are unaffected. PENDING tasks transition straight to CANCELLED.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesREQUIRED task_id returned by oc_task_start.

TDQS

A4.5/5.0
Behavior5/5

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

The description details the cancellation mechanism (best-effort, work-unit boundary), effects on PENDING vs terminal tasks, and transitions. This goes beyond annotations (destructiveHint: true) and provides full 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.

Conciseness5/5

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

Three sentences, each valuable, front-loaded with purpose. No wasted words. Concisely covers purpose, behavior, and edge cases.

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

Completeness5/5

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

For a single-parameter tool with no output schema, the description is complete: it explains the action, behavior, limitations, and state transitions. No 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 already describes task_id as 'REQUIRED task_id returned by oc_task_start' (100% coverage). The description adds no further parameter semantics beyond confirming it from start. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states it requests cancellation of a background task, specifies the best-effort behavior, and explains effects on different task states (terminal unaffected, PENDING to CANCELLED). This distinguishes it from sibling tools like oc_task_start or oc_task_get.

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 implicit guidance: use when you need to cancel a task, noting it is best-effort and does not affect terminal tasks. It does not explicitly mention when not to use or alternatives, but the context is clear enough.

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

oc_task_finishB

Finish a host-driven task envelope as completed, failed, or cancelled.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idNo
taskIdNoAlias for task_id.
outcomeYesREQUIRED Terminal task outcome: completed, failed, or cancelled.
noteNo

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, and the description only states the action and outcomes. It does not disclose permissions, irreversibility, or side effects of finishing a task envelope.

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 essential purpose without extraneous information.

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

Completeness2/5

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

Given the parameter count and lack of output schema, the description is too minimal. It does not specify behavior upon finishing, how outcomes affect the task, or proper usage of parameters.

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 50% schema coverage, the description adds no additional meaning beyond the schema. The parameters `task_id` and `note` lack descriptions, and the relationship between `task_id` and `taskId` is not clarified.

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 ('Finish'), the object ('host-driven task envelope'), and the possible outcomes ('completed, failed, or cancelled'). It effectively distinguishes from sibling tools like oc_task_start or oc_task_cancel.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives. The description implies it is used to finish a task, but does not mention prerequisites or exclusions.

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

oc_task_getA
Read-onlyIdempotent

Fetch a single task by task_id. By default returns meta only; pass include_result=true to also resolve the persisted result payload.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idNotask_id returned by oc_task_start.
taskIdNoAlias for task_id.
include_resultNoWhen true, also returns the persisted result.json contents.
includeDigestNoWhen true, also returns a deterministic bounded task evidence digest.
include_digestNoAlias for includeDigest.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint, and idempotentHint, so the description does not need to reiterate safety. It adds valuable behavioral detail about default return (meta only) and the effect of include_result, which goes beyond annotations.

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

Conciseness5/5

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

The description is extremely concise: two sentences with no wasted words. It front-loads the core purpose ('Fetch a single task by task_id') and adds the optional behavior in the second sentence.

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 does not explain the return value structure (e.g., what 'meta only' includes). Given the absence of an output schema, this is a notable gap for a tool with many sibling tools. However, the essential behavior is covered, and annotations provide safety context.

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

Parameters4/5

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

Schema coverage is 100% with parameter descriptions. The description adds extra meaning: task_id is from oc_task_start, and include_result returns persisted result.json. This enhances understanding beyond the schema alone.

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

Purpose5/5

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

The description clearly states the tool fetches a single task by task_id, and specifies the default behavior (meta only) with an optional flag to get the full result. This directly distinguishes it from sibling tools like oc_task_list which lists tasks.

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

Usage Guidelines4/5

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

The description provides clear guidance on when to use include_result (to get the persisted result payload). However, it does not explicitly differentiate from related sibling tools like oc_task_run_get or oc_task_start, though the purpose is sufficiently clear.

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

oc_task_listA
Read-onlyIdempotent

List background tasks in the ledger. Default limit=50, sorted by created_at descending. Supports status/kind/since/limit filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNo
kindNo
sinceNoOnly tasks created at or after this ms epoch.
limitNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds context about default limit, sorting, and available filters, going beyond what annotations provide.

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 with no unnecessary words. Front-loaded with purpose, followed by key defaults and filter options.

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

Completeness3/5

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

No output schema is provided, and the description does not mention the return format or pagination behavior beyond the default limit. For a list tool, more details on the response structure would be helpful.

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

Parameters3/5

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

Schema description coverage is only 25% (only 'since' has a description). The description lists the parameter names but does not explain valid values for 'status' or 'kind' or provide details 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 verb 'List' and the resource 'background tasks in the ledger'. It also specifies default limit and sorting, distinguishing it from sibling tools like oc_task_get or oc_task_run_list.

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 listing tasks with filters, but does not explicitly state when to use this tool versus alternatives or provide when-not conditions.

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

oc_task_run_checkpointB

Write a compact caller-provided checkpoint summary for a non-terminal TaskRun and return the checkpoint metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesREQUIRED TaskRun id returned by oc_task_run_start.
summaryYesREQUIRED Caller-provided summary, redacted and capped at 8 KiB.
current_cursorNo
evidenceNo

TDQS

B3.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=false. The description adds minimal behavioral context beyond stating it writes a summary and returns metadata. It does not explain consequences of calling on a terminal run, whether it can be called multiple times (non-idempotent), or what triggers side effects like redaction or capping of the summary.

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 action and resource. Every word adds value; there is no redundancy or unnecessary elaboration.

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 moderate parameter count and no output schema, the description omits key context such as the format or fields of the returned metadata, the behavior when called repeatedly, and the meaning of optional parameters. An agent would need to infer or experiment to understand the full contract of this 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 50% and the description does not add meaning for the two optional parameters (current_cursor, evidence). The schema itself provides descriptions for run_id, summary, and the evidence structure, but the description only reinforces the summary parameter. The agent lacks guidance on how to use current_cursor and when to supply evidence, reducing autonomous invocation accuracy.

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 ('Write') and resource ('checkpoint summary for a non-terminal TaskRun') and clearly indicates the return value ('checkpoint metadata'). It distinguishes this tool from sibling checkpoint-related tools like oc_checkpoint or oc_task_run_complete by specifying the non-terminal state requirement.

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 mentions 'non-terminal TaskRun' which implies when to use it, but it does not explicitly state when not to use it or provide alternatives. For example, it doesn't clarify when oc_checkpoint or oc_task_run_update would be more appropriate, leaving the agent to 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.

oc_task_run_completeB
Destructive

Enter a terminal TaskRun state (COMPLETED, FAILED, or CANCELLED). Terminal TaskRuns are immutable.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesREQUIRED TaskRun id returned by oc_task_run_start.
statusNoDefaults to COMPLETED.
progress_summaryNo
completed_itemsNo
failed_itemsNo
last_evidenceNo

TDQS

B3/5.0
Behavior3/5

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

Annotations provide destructiveHint=true, and the description adds the key behavioral trait 'Terminal TaskRuns are immutable.' However, it does not disclose other effects, failure modes, or confirmation requirements.

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

Conciseness5/5

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

The description is extremely concise (two sentences) with no wasted words. The first sentence delivers the core purpose, and the second adds an important behavioral note.

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 (6 parameters, nested objects like failed_items) and the absence of an output schema, the description is too brief. It does not explain what happens upon success/failure or how to use optional parameters effectively.

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 33%, and the description adds no additional meaning for the six parameters. Parameters like progress_summary and failed_items remain unexplained 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 the action: 'Enter a terminal TaskRun state' and lists the possible states (COMPLETED, FAILED, CANCELLED). It distinguishes the tool from siblings like oc_task_run_update by implying finality, though not explicitly.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like oc_task_run_update or oc_task_run_checkpoint. No mention of prerequisites or conditions for use.

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

oc_task_run_getA
Read-onlyIdempotent

Read a TaskRun meta record and optionally its event log.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesREQUIRED TaskRun id returned by oc_task_run_start.
include_eventsNoWhen true, include events.jsonl entries.

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds the optional inclusion of event log, which is helpful but does not disclose any additional behavioral traits like rate limits or error handling. With annotations covering safety, a 3 is appropriate.

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

Conciseness5/5

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

The description is a single concise sentence (11 words) that is front-loaded with the core action. No redundant information.

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

Completeness3/5

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

The tool is simple with only two parameters and no output schema. The description covers the basic operation but lacks return value details. Given low complexity, it is adequate but 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?

Schema coverage is 100% with both parameters well-described. The description's mention of 'optionally its event log' aligns with the include_events parameter, but adds no new meaning beyond what the schema provides.

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

Purpose5/5

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

The description clearly states the verb 'Read' and the resource 'TaskRun meta record', and notes the optional inclusion of event log. This distinguishes it from sibling tools like oc_task_run_list or oc_task_run_start.

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

Usage Guidelines3/5

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

The description provides basic usage but does not explicitly mention when to use this tool versus alternatives like oc_task_run_list or oc_task_get. No guidance on when not to use it or prerequisites.

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

oc_task_run_listB
Read-onlyIdempotent

List recent TaskRuns sorted by created_at descending. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNo
limitNoDefault 50, max 200.
sinceNoUnix ms lower bound for created_at.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds 'Read-only' which confirms but does not add new behavioral context. With rich annotations, the bar is lower; the description provides minimal additional 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 extremely concise, one sentence plus 'Read-only', with no wasted words. It is front-loaded with the core action.

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 list tool with optional parameters and no output schema, the description is adequate but lacks details about the result format, fields returned, or pagination behavior. It covers the basics but leaves room for improvement.

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

Parameters3/5

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

Schema covers 2 of 3 parameters with descriptions (limit and since). The description does not add any extra meaning beyond the schema. The status enum lacks description but is covered by the enum values themselves. No additional parameter details are provided.

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

Purpose4/5

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

The description clearly states the tool lists recent TaskRuns sorted by created_at descending, indicating a specific verb and resource. However, it does not explicitly differentiate from sibling tools like oc_task_list or oc_task_run_get.

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 are there any exclusions or context notes. The description is purely functional without usage context.

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

oc_task_run_needs_helpA

Move a non-terminal TaskRun to NEEDS_HELP with a secret-safe reason, optional resume hint, cursor, and evidence pointer.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesREQUIRED TaskRun id returned by oc_task_run_start.
reasonYesREQUIRED Secret-safe reason this TaskRun needs user help.
resume_hintNo
current_cursorNo
last_evidenceNo

TDQS

A3.7/5.0
Behavior3/5

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

Description adds context beyond annotations: 'non-terminal' constraint and 'secret-safe reason'. Annotations are silent on state changes; description reveals mutation (move to NEEDS_HELP). No contradiction, but no details on reversibility or permissions.

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

Conciseness5/5

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

Single 20-word sentence, front-loaded with action and target. No unnecessary words; every piece of information adds 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?

Covers overall purpose and parameter list, but lacks details on return values (no output schema), prerequisites (e.g., how to obtain run_id), and consequences of state change. Leaves some questions unanswered.

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 40%; description mentions all 5 params briefly ('secret-safe reason', 'optional resume hint, cursor, and evidence pointer'). Adds meaning beyond schema for 'reason' but leaves 'cursor' and 'hint' vague. Partially compensates for 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?

Clear verb 'Move', specific resource 'non-terminal TaskRun', target state 'NEEDS_HELP', and lists parameters. Distinguishes from siblings like oc_task_run_complete by specifying the state transition.

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

Usage Guidelines3/5

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

Implies usage when a task requires human help, but lacks explicit when-to-use or alternatives. Among many task-run tools, no guidance on when this is preferred over others.

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

oc_task_run_startA

Start an opt-in goal-level TaskRun. Tracks user goal, success criteria, progress summary, item progress, and evidence across multiple OpenChrome tool calls without changing existing browser tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
goalYesREQUIRED User-level goal to track, redacted and capped at 4 KiB.
success_criteriaNoOptional concrete success criteria.
session_idNoOptional OpenChrome session id to associate.
workflow_idNoOptional workflow id to associate.
ledger_task_idsNoOptional #855 async ledger task ids to link when available.
auto_session_snapshotNoOptional #1013 policy. When enabled, TaskRun lifecycle tools write compact oc_session_snapshot artifacts without changing ordinary browser tools.
page_urlNoOptional current page URL. When pilot + skill-curator + OPENCHROME_AUTO_RECALL=1 are all enabled, the start response includes a `recalled_skills` field with up to 5 promoted curator skills for this URL's host — the host LLM uses them as priors for the goal.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false. The description adds that the tool does not change existing browser tools and tracks progress across calls. It provides behavioral context beyond annotations but does not detail prerequisites or side effects.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that efficiently communicates the tool's core purpose without unnecessary words. Every phrase 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?

The description lacks information about return values or side effects, which is critical for a start tool. No output schema exists, so the description should explain what the tool returns (e.g., task_run_id). This omission makes it incomplete.

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

Parameters3/5

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

Schema coverage is 100%, so parameters are well-documented in the schema. The description adds no additional meaning beyond what the schema already provides, maintaining the baseline score.

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 an opt-in goal-level TaskRun, tracks user goal, success criteria, progress, and evidence. It distinguishes from sibling tools by specifying it is goal-level and does not change existing browser tools.

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

Usage Guidelines3/5

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

The description implies usage for tracking user goals across multiple tool calls, but does not explicitly guide when to use this tool versus alternatives like oc_task_start or oc_run_start. No exclusions or when-not-to-use are provided.

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

oc_task_run_updateA

Update a non-terminal TaskRun with progress, item results, cursor, evidence, or explicit NEEDS_HELP resume back to RUNNING. Existing browser tools are unaffected.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesREQUIRED TaskRun id returned by oc_task_run_start.
statusNoOnly RUNNING is accepted. Use oc_task_run_needs_help / oc_task_run_complete for other transitions.
resume_reasonNoRequired when resuming from NEEDS_HELP to RUNNING.
progress_summaryNo
completed_itemsNo
failed_itemsNo
current_cursorNo
last_evidenceNo
ledger_task_idsNo
workflow_idNo

TDQS

A3.6/5.0
Behavior3/5

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

The description reveals that the tool updates a non-terminal TaskRun and that existing browser tools are unaffected, which adds useful behavioral context. However, it does not disclose authentication requirements, rate limits, or potential side effects beyond the update. With no annotations providing safety hints (all false), the description partially fills the transparency 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 two sentences with a clear front-loaded purpose statement followed by a behavioral note. Every word contributes meaning without redundancy. It is appropriately sized for quick comprehension.

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 10 parameters and no output schema, the description is too brief. It does not explain the return value structure nor detail complex parameters like last_evidence (which includes nested objects) or the relationship between parameters like status and resume_reason. The schema provides some descriptions, but 30% coverage leaves significant 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 description maps several parameters to conceptual actions (e.g., 'progress' to progress_summary, 'item results' to completed_items/failed_items). However, with only 30% schema parameter coverage, the description should clarify all parameters, but it omits ledger_task_ids and workflow_id. The mapping adds value but is incomplete.

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

Purpose5/5

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

The description clearly states the verb 'Update', identifies the resource as 'non-terminal TaskRun', and lists specific elements that can be updated (progress, item results, cursor, evidence, NEEDS_HELP resume). It also distinguishes from sibling tools by noting that browser tools are unaffected, implying this tool is for task-run state updates only.

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 itself does not explicitly state when to use this tool versus alternatives like oc_task_run_needs_help or oc_task_run_complete. However, the input schema for the 'status' parameter provides guidance by restricting allowed values and directing to other tools for non-RUNNING transitions. This indirect guidance is moderately helpful but not front-loaded in the description.

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

oc_task_startA

Create a task-level browser harness envelope, or launch a long-running tool as a background task. Returns a task_id that can be polled with oc_task_get / oc_task_list / oc_task_wait, or aborted with oc_task_cancel. The result is persisted to disk and survives MCP-session loss.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoOptional name of the underlying MCP tool to run in the background. Omit kind to create a task envelope for host-driven browser tool calls.
argsNoArguments forwarded to the underlying tool when kind is set.
objectiveNoHost-declared objective for task-level browser harness tracking.
phaseNoInitial host-declared task phase. Default: explore.
policyNoDeterministic budget policy: maxToolCalls, maxObservationStreak, maxConsecutiveSameTool, maxFailureStreak, maxSameUrlNavigations, maxWallMs, allowedDomains, checkpointEveryCalls.

TDQS

A4.4/5.0
Behavior4/5

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

The description discloses key behavioral traits: it returns a task_id, the result is persisted to disk, and it survives MCP-session loss. These add context beyond the annotations (which only have false hints). No contradiction with annotations is present.

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

Conciseness5/5

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

The description is extremely concise (two sentences) and front-loaded with the primary action. Every sentence provides essential information about purpose, return value, and durability, with no wasted words.

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

Completeness4/5

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

Given the tool's complexity (5 parameters, no output schema, minimal annotations), the description covers the two use cases and the return value. It could be enhanced by explaining the task lifecycle or error handling, but it is sufficiently complete for an agent to understand its basic functionality.

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?

While the input schema already describes all 5 parameters, the description adds meaningful context for the 'kind' parameter by explaining the effect of omitting it ('creates a task envelope for host-driven browser tool calls'). This adds value beyond the schema.

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

Purpose5/5

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

The description clearly states the tool's two purposes: creating a task-level browser harness envelope or launching a long-running tool as a background task. It uses specific verbs ('Create', 'launch') and resource ('task-level browser harness envelope', 'background task'), and distinguishes from sibling oc_task_* tools by explaining the polling/cancellation workflow.

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

Usage Guidelines4/5

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

The description explains when to use the tool (for background tasks or host-driven browser tool calls) and mentions related polling tools (oc_task_get, oc_task_list, oc_task_wait, oc_task_cancel). However, it does not explicitly state when not to use it or provide alternatives for synchronous execution, leaving a minor gap.

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

oc_task_updateB

Update a task envelope phase or note. Does not execute browser actions.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idNo
taskIdNoAlias for task_id.
phaseNo
noteNo

TDQS

B3.3/5.0
Behavior3/5

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

No annotations provided. Description discloses that it does not execute browser actions, indicating a non-destructive metadata update, but lacks info on side effects, permissions, or reversibility.

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, no wasted words. Front-loaded with action, followed by important exclusion. Excellent 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?

Given no output schema and low schema coverage, the description is minimal. It does not clarify that all parameters are optional or describe return values, leaving 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 coverage is only 25%; description mentions 'phase or note' but does not explain the alias relationship between task_id and taskId, nor the enum values for phase. Fails to compensate for low schema coverage.

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

Purpose4/5

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

The description clearly states it updates a task envelope phase or note, and explicitly distinguishes from browser actions. However, 'task envelope' is not further defined, which could cause ambiguity.

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

Usage Guidelines3/5

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

It implies usage for updating task metadata without browser execution, but does not explicitly state when to use vs. alternatives like oc_task_get or oc_task_run_update.

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

oc_task_waitA
Read-onlyIdempotent

Block until the task reaches a terminal state (COMPLETED / FAILED / CANCELLED) or timeout_ms elapses. Default timeout_ms is 60000.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesREQUIRED task_id returned by oc_task_start.
timeout_msNo

TDQS

A4.2/5.0
Behavior4/5

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

Adds 'block' behavior beyond annotations (readOnlyHint=true, idempotentHint=true). Describes timeout behavior. No contradictions; annotations are consistent with a read-only wait 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?

Single clear sentence, front-loaded with purpose and states default. No wasted words.

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

Completeness4/5

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

Covers core behavior and timeout. No output schema, so return value is implicit. Annotations provide safety context. Could mention return value, but adequate for a simple blocking tool.

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

Parameters3/5

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

Schema has 50% description coverage; task_id is described, timeout_ms is not. Description adds default timeout value but not min/max constraints or usage tips. Provides some added value but incomplete.

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

Purpose5/5

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

Clearly states it blocks until a task reaches terminal state or timeout. Verb 'block' and resource 'task' are specific. Distinguishes from siblings like oc_task_get (non-blocking status check).

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?

Implies use when waiting for task completion. Mentions default timeout. No explicit exclusions or alternatives, but sibling tools (e.g., oc_task_get) exist for non-blocking checks.

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

oc_totp_generateA

Generate a current TOTP 2FA code for a domain. Requires TOTP secret to be configured.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to generate TOTP code for (e.g., "github.com")

TDQS

A3.6/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false, destructiveHint=false, etc. The description adds the requirement for a pre-configured secret but no other behavioral traits like error conditions or rate limits. Since annotations are not contradicted, but the description adds little beyond stating a prerequisite, scoring is low.

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 long, front-loaded with the primary action, and contains no unnecessary words. Every sentence 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?

Given the simplicity of the tool (one parameter, no output schema, no nested objects), the description adequately covers purpose and prerequisite. It could mention what happens if the secret is not configured, but overall it is sufficient 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.

Parameters3/5

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

The input schema already provides 100% description coverage for the single parameter (domain), including an example. The description does not add any additional meaning beyond what the schema provides, so baseline score 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action (generate), resource (TOTP 2FA code), and context (for a domain). There is no overlap with sibling tools, as TOTP generation is distinct.

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

Usage Guidelines3/5

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

The description mentions a prerequisite (TOTP secret configured) but does not specify when to use this tool vs alternatives or when not to use it. Usage guidance is minimal.

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

oc_vitalsA
Read-onlyIdempotent

Collect a read-only Web Vitals snapshot from the current page without adding page scripts or package dependencies. Returns LCP, CLS, INP, TTFB, and FCP with Core Web Vitals ratings where browser timing entries are available.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesREQUIRED Tab ID to collect Web Vitals from.
timeoutMsNoMaximum collection time in ms. Default 5000, min 100, max 30000.

Output Schema

ParametersJSON Schema
NameRequiredDescription
actionYes
tabIdYes
vitalsYes
sourceYes
noDependencyYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint. The description adds that it requires no page scripts or package dependencies and returns specific metrics with Core Web Vitals ratings. This adds some context beyond annotations but does not significantly expand behavioral disclosure (e.g., effects on page state or limitations).

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, no wasted words. Purpose is front-loaded, and key details (metrics, no dependencies) are included. Highly concise and well-structured.

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

Completeness4/5

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

Given the presence of an output schema (documenting return values) and comprehensive annotations, the description is nearly complete. It lists returned metrics and Core Web Vitals ratings. Missing context might include whether the snapshot is from a specific tab (tabId) or current state, but that is implied by the parameter.

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% (tabId and timeoutMs have descriptions). The description does not add substantial meaning beyond schema – it mentions 'current page' but tabId is already clear. Slight additional context about Core Web Vitals ratings, but baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool collects a read-only Web Vitals snapshot and lists specific metrics (LCP, CLS, INP, TTFB, FCP). The verb 'Collect' and resource 'Web Vitals snapshot' are specific. However, it does not explicitly differentiate from sibling tools like performance_metrics, which may have overlapping functionality.

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

Usage Guidelines3/5

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

The description implies this is safe and lightweight (read-only, no scripts/dependencies) but provides no explicit guidance on when to use this tool versus alternatives. No when-not-to-use or comparison with other tools (e.g., performance_metrics, oc_observe) is given.

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

page_contentB
Read-onlyIdempotent

Get HTML content from page or element.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID to get content from
selectorNoCSS selector. Omit for full page
outerHTMLNoReturn outerHTML vs innerHTML. Default: true
boundaryMarkersNoWrap page-origin content in <oc:page>. Default true; false disables.

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds no behavioral context beyond 'Get HTML content', missing details like return format, handling of selectors, or edge cases.

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

Conciseness5/5

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

The description is extremely concise with one clear sentence, no redundancy, and front-loaded purpose. 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?

While schema covers parameters, the description omits return value semantics and integration hints. For a simple tool with no output schema, some context about what HTML is returned (full page vs element) would improve completeness.

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

Parameters3/5

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

Schema coverage is 100%, so parameters are well described in the schema. The description adds no additional meaning beyond the schema, maintaining a baseline score.

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

Purpose4/5

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

The description clearly states it retrieves HTML content from a page or element, which is a specific verb+resource. It distinguishes from siblings like 'read_page' which may focus on other aspects, but could be more explicit about its unique value.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'read_page', 'query_dom', or 'inspect'. The description simply states the function without context about prerequisites or exclusions.

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

page_pdfB

Generate PDF from page. Saves to path or returns base64.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID to generate PDF from
pathNoSave path. Omit for base64
formatNoPaper format. Default: A4
landscapeNoLandscape mode. Default: false
printBackgroundNoPrint backgrounds. Default: true
scaleNoRender scale (0.1-2.0). Default: 1
marginTopNoTop margin, e.g. "1cm"
marginRightNoRight margin, e.g. "1cm"
marginBottomNoBottom margin, e.g. "1cm"
marginLeftNoLeft margin, e.g. "1cm"
pageRangesNoPage ranges, e.g. "1-5, 8, 11-13"
displayHeaderFooterNoShow header/footer. Default: false
headerTemplateNoHeader HTML template (needs displayHeaderFooter)
footerTemplateNoFooter HTML template (needs displayHeaderFooter)

TDQS

B3.3/5.0
Behavior2/5

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

Annotations provide minimal behavioral clues (all false). The description adds that the tool generates a PDF and can save to filesystem or return base64, but does not disclose potential side effects, permissions needed, or performance implications beyond the basic action.

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 at 9 words, yet communicates the core purpose and two output options. Every word is necessary and front-loaded.

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

Completeness3/5

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

Given the high parameter count (14) and lack of output schema or annotations, the description is minimal. It covers the fundamental behavior but omits context about default parameter values, page ranges, or format settings that are only in the schema.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description does not add new parameter information beyond what the schema already provides, but it does reinforce the path omission for base64 output.

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

Purpose5/5

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

The description clearly states the tool generates a PDF from a page and specifies two output options: save to path or return base64. It uses a specific verb and resource, and is distinct from sibling tools like page_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 is provided on when to use this tool versus alternatives such as page_screenshot or network_capture. The description does not include context for when PDF output is preferred.

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

page_reloadB

Reload the current page.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID to reload
ignoreCacheNoBypass cache (hard refresh). Default: false

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already indicate non-readOnly and non-destructive behavior, but the description adds no further behavioral context. It does not disclose that reloading causes network requests, may lose unsaved form data, or that the page will be re-rendered.

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

Conciseness4/5

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

The description is very short (one sentence, five words) and front-loaded. It is efficient, though marginally under-specified for a complete definition.

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

Completeness3/5

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

Given the tool's simplicity (2 parameters, no output schema), the description is mostly adequate. However, it omits any mention of return behavior or side effects, such as the page being reloaded and event sequences triggered.

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% for both parameters (tabId and ignoreCache). The description adds no additional meaning beyond what the schema provides, so baseline 3 is appropriate.

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

Purpose5/5

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

The description 'Reload the current page' clearly states the action with a specific verb and resource. It distinguishes itself from sibling tools like 'navigate' (which changes the URL) and 'interact' (which performs actions within the page).

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as 'wait_for' or 'navigate'. No prerequisites or conditions (e.g., page must be fully loaded) are mentioned, and there is no indication of 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.

page_screenshotA

Save page screenshot to file or return as base64. Supports full-page capture, region clipping, and multiple image formats.

When to use: Capturing a screenshot for saving to disk or when the full-page or clipped region is needed. When NOT to use: Use computer(action:"screenshot") for an inline viewport screenshot during interaction.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID to capture
pathNoSave path. Omit for base64 return
fullPageNoCapture entire scrollable page. Default: false
formatNoImage format. Default: png
qualityNoCompression quality 0-100, for jpeg/webp only. Default: 80
clipNoCapture specific region
omitBackgroundNoTransparent background (png only). Default: false

TDQS

A4.2/5.0
Behavior3/5

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

Annotations are all false, so no contradiction. The description adds that the tool can output to file or base64, but does not elaborate on side effects (e.g., file overwriting, error handling) or the exact return value when saving to file. It repeats some parameter details already in 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 very concise with three short sentences. The main purpose is front-loaded, followed by usage guidelines. No redundant words or sentences.

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

Completeness4/5

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

Given the complexity (7 parameters, nested object) and no output schema, the description covers the core functionality well. However, it lacks details about the return value when saving to disk (e.g., file path?) and error scenarios. This is a minor gap for completeness.

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

Parameters3/5

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

Schema coverage is 100%, so the description adds limited extra meaning. It clarifies the dual output mode via the 'path' parameter (save vs. base64) and mentions defaults (format PNG, quality 80), but these are already in the schema. The nested 'clip' object is noted but not explained 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 saves a page screenshot to file or returns as base64, and lists key features like full-page capture, region clipping, and multiple image formats. It distinguishes from sibling tool 'computer(action:"screenshot")' by specifying when not to use.

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?

Explicit 'When to use' and 'When NOT to use' sections provide direct guidance, including a specific alternative (computer action) for inline viewport screenshots. This helps the agent select correctly.

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

performance_metricsC
Read-onlyIdempotent

Get page performance metrics.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID to get metrics from
typeNoMetrics type. Default: all
includeResourcesNoInclude resource timing entries

TDQS

C2.9/5.0
Behavior2/5

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

Description adds no behavioral details beyond annotations (readOnlyHint, idempotentHint). Does not disclose constraints like tabId requirement or that metrics are page-specific.

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?

Single sentence, no wasted content. Could be slightly more informative, but 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?

With 3 parameters, no output schema, and many sibling tools, the description is too sparse. Does not explain output or when to use over similar tools.

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

Parameters3/5

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

Schema coverage is 100% and parameters are well-documented in schema. Description adds no additional meaning beyond the schema, baseline score is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states 'Get page performance metrics' – clear verb and resource. However, it does not differentiate from sibling tools like oc_performance_analyze or oc_performance_insights.

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. No when-to-use or when-not-to-use context provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_domA
Read-onlyIdempotent

Query DOM elements via CSS selector or XPath. Returns tag, attributes, text, position. CSS results include a ref field for use in subsequent calls.

When to use: Precise element lookup by CSS selector or XPath when you know the exact selector. When NOT to use: Use find for natural-language element search or read_page for full DOM structure.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID to query
methodYesQuery method: css or xpath
selectorNo(css) CSS selector
xpathNo(xpath) XPath expression
multipleNoReturn all matches. Default: false
pierceShadowNoSearch inside shadow DOM when no results in light DOM. Default: true
limitNo(multiple) Max results per page. Defaults to 50 for CSS/XPath.
cursorNoOpaque pagination cursor returned as nextCursor from a prior query_dom multiple-result call.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds context about ref field for chaining and implies pagination via cursor/limit, consistent with annotations. No contradictions.

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: first defines functionality, second lists return values, third provides usage guidance. Every sentence is essential and well-placed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters with full schema coverage and annotations, the description adds usage context and output details (ref field). Could mention pagination behavior more explicitly, but sufficient for typical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with good descriptions for each parameter. The description adds minimal extra semantics beyond what the schema provides (e.g., ref field mention but not a parameter). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it queries DOM elements via CSS selector or XPath, returns specific data (tag, attributes, text, position), and notes a ref field. This distinguishes it from siblings like find and read_page.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use (precise element lookup by exact selector) and when NOT to use (use find for natural-language or read_page for full DOM). Provides clear alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_pageA
Read-onlyIdempotent

Get page as DOM, accessibility tree (ax), CSS diagnostics, semantic summary, or clean Markdown (article-shaped).

When to use: Reading page structure, verifying content, extracting the full DOM tree, or reducing article-like pages to Markdown. When NOT to use: Use inspect for targeted state queries or find to locate a specific element.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdNoTab ID to read from
taskIdNoTask id when using a task-scoped browser lane.
laneIdNoTask-scoped browser lane id; validates tabId or defaults to the lane current target.
depthNoMax tree depth. Default: 8 (all), 5 (interactive)
filterNoFilter: interactive for form/button/link only
ref_idNoParent ref for subtree scoping
selectorNoCSS selector (css mode only)
modeNoOutput mode: dom (default), ax, css, semantic, or markdown (clean article extraction).
onlyMainContentNoMarkdown mode only: strip nav/header/footer/aside/ads. Default: true.
includeLinksNoMarkdown mode only: preserve <a> as markdown links. Default: true.
contentFilterNoMarkdown mode only: deterministic fit_markdown filter. Default: none.
queryNoMarkdown mode only: required when contentFilter="bm25".
returnRawNoMarkdown mode only: include raw_markdown in JSON response. Default: false.
returnFitNoMarkdown mode only: include fit_markdown and use it as content when filtering. Default: true when filtered.
filterOptionsNoMarkdown mode only: minWords, maxSections, bm25Threshold, pruneThreshold.
includePaginationNoInclude pagination info. Default: true
cursorNoMarkdown mode only: opaque cursor returned as nextCursor from a prior paginated read_page markdown call.
compressionNoCompression mode. "delta" returns only changes since last read.
planningProfileNoDOM mode only: stable omits decorative/noisy serialization details without mutating the live page. Default: default.
fallbackNoAX mode only: use "dom" to explicitly fall back to DOM output if AX output exceeds the output budget. Default: none.
compactNoAX mode only: return a compact AX snapshot that keeps actionable/ref-bearing nodes, value/state nodes, and ancestors. Default: false, or true when OPENCHROME_PROFILE=fast.
diagnosticsNoInclude structured read_page timing diagnostics in the MCP result metadata. Default: false.
include_metricsNoWhen true, include approximate returned size/token metrics in the emitted payload. Default: false.
boundaryMarkersNoWrap page-origin plaintext in <oc:page>. Default true; false disables.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds context about output modes, compression, fallback, and planning profiles, but doesn't reveal significant behavioral traits beyond what annotations imply. No contradictions.

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?

Description is front-loaded with purpose, followed by concise usage guidelines. Slightly longer due to multiple modes, but well-structured and each sentence 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?

Given the tool's complexity (24 params, no output schema), the description provides sufficient context for agent decision-making, covering usage, alternatives, and key behaviors. Minor gaps like return structure could be inferred.

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?

All 24 parameters are fully described in the schema (100% coverage), so the description adds minimal extra meaning. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves page content in multiple formats (DOM, AX, CSS, semantic, markdown) and explicitly distinguishes from sibling tools inspect and find in the 'When NOT to use' section.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit 'When to use' and 'When NOT to use' sections, naming alternatives and scenarios, which is ideal for guiding an agent's decision.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

request_interceptA
Destructive

Intercept network requests (log, block, modify). preset="optimize-bandwidth" blocks Image/Media/Font/Stylesheet; preset="optimize-bandwidth-light" blocks Image/Media/Font. User block/allow/modify rules run after presets; explicit allow rules win. OPENCHROME_OPTIMIZE_BANDWIDTH= can auto-apply to new targets.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID
actionYesAction to perform
presetNoBandwidth preset: "optimize-bandwidth" blocks Image/Media/Font/Stylesheet; "optimize-bandwidth-light" blocks Image/Media/Font only.
ruleNoRule definition (addRule)
ruleIdNoRule ID (removeRule)
limitNoMax logs to return (getLogs)
dryRunNoPreview enable/addRule rule installation without enabling interception, installing listeners, or mutating rules.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructive and non-read-only behavior. The description adds that user rules run after presets and allow rules win, but does not elaborate on side effects like destroyed state or permissions needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, covering key points in one paragraph. No unnecessary repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (nested objects, multiple actions), the description covers main aspects: presets, rule order, auto-apply. No output schema, but the description adequately explains what to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%. The description adds value beyond schema by detailing preset behavior and dryRun effect, which helps understand parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool intercepts network requests for logging, blocking, or modifying. It lists presets and their effects. However, it does not explicitly differentiate from sibling tools like network_capture_full or network_capture_lite.

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 context on when to use presets and auto-apply via environment variable, but lacks explicit guidance on when to use this tool vs alternatives 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.

storageC
Destructive

Manage browser localStorage and sessionStorage.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID
storageTypeYeslocal or session storage
actionYesAction to perform
keyNoStorage key
valueNoValue to store (string)
dryRunNoPreview-only mode for destructive actions (remove, clear). When true, returns counts and a sample of keys that would be deleted without mutating any state. Default: false.

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint: true and readOnlyHint: false. The description adds no extra behavioral context (e.g., that actions like remove/clear are destructive) but does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, making it concise, but it lacks important details such as the supported actions and the dryRun parameter. It is adequately front-loaded but insufficiently informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 6 parameters, destructive actions, and no output schema, the description is too thin. It omits critical details like available actions and preview modes, making it incomplete for effective tool usage.

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 every parameter has a description in the schema. The description itself provides no additional parameter insight, so it meets the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Manage browser localStorage and sessionStorage,' which communicates the domain but does not enumerate the specific actions (get, set, remove, clear, keys) that the tool supports. This vagueness reduces clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus sibling tools like cookies, memory, or network. The description lacks context for appropriate usage scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tabs_closeA
Destructive

Close one or more tabs by tabId, tabIds, or workerId.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdNoSpecific tab ID to close
tabIdsNoTab IDs to batch close
workerIdNoClose all tabs in this worker (worker preserved)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true, so the description adds only minor context. The schema mentions 'worker preserved' for workerId, but this is not highlighted in the main description. No additional behavioral traits (e.g., reversibility, confirmation) 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that conveys the core functionality. However, it could be slightly more informative (e.g., mentioning worker preservation) without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple destructive tool with no output schema, the description covers the basic purpose but omits details like return type or side effects. It is adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear descriptions. The description merely summarizes the parameters without adding new meaning or constraints beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (close) and resource (tabs), and specifies the targeting options (tabId, tabIds, workerId). This effectively distinguishes it from sibling tools like tabs_context (get info) and tabs_create (create).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for closing tabs but does not explicitly state when to use this tool versus alternatives or provide exclusion criteria. The nuance about worker preservation is only in the schema, not the main description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tabs_contextA
Read-onlyIdempotent

Get session tab IDs grouped by worker.

ParametersJSON Schema
NameRequiredDescriptionDefault
workerIdNoFilter to a specific worker
summaryNoReturn counts only, no tab details

Output Schema

ParametersJSON Schema
NameRequiredDescription
sessionIdYes
defaultWorkerIdNo
workerCountYes
tabCountYes
workersYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description aligns but adds no further behavioral context (e.g., caching, performance implications). It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-structured sentence that immediately conveys the tool's function with no superfluous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with an output schema, the description is adequate. It covers the core functionality, though it could optionally mention the output format or grouping details.

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% for both parameters. The description adds no additional meaning beyond the schema's parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get session tab IDs grouped by worker.' clearly states the action (get), the resource (session tab IDs), and the grouping logic. It distinctively contrasts with sibling tools like tabs_close and tabs_create.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. No context about preferred scenarios, prerequisites, or exclusions is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tabs_createB

Create a new tab with URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to open in the new tab
workerIdNoWorker ID for parallel ops. Default: default
profileDirectoryNoChrome profile directory name (e.g., "Profile 1"). Use list_profiles to see available profiles. Launches a separate Chrome instance for each profile. If omitted, uses the server default. Cannot be combined with workerId.
recallNoOverride OPENCHROME_AUTO_RECALL for this call. true forces domain skill injection; false suppresses it even when the flag is on.
isolatedContextNoOptional BrowserContext name (#848). Named contexts share one Chrome process but isolate cookies/storage/cache. Created on first use, reused later. Names match [A-Za-z0-9_-]{1,64}; "default" is reserved.

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate the tool is not read-only, not destructive, not idempotent, and not open-world. The description adds no further behavioral context (e.g., whether the new tab gains focus, how it interacts with browser windows, or potential side effects). Given annotations exist, the description adds minimal value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no extraneous words or repetition. It is front-loaded and perfectly 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 5 parameters and no output schema, the description is too minimal. It does not explain key aspects such as what happens after creation (e.g., tab focus, window behavior), how profiles and isolated contexts affect the operation, or any prerequisites. The tool is more complex than the description implies.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the input schema fully documents all 5 parameters with descriptions. The tool description only adds 'with URL', which restates the required parameter. This meets the baseline expectation but does not enhance understanding 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 'Create a new tab with URL' clearly states the verb (Create) and resource (new tab), and specifies the required parameter (URL). It distinguishes itself from sibling tools like tabs_close and tabs_context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives (e.g., navigate for changing the current tab, or other tab-related tools). No when-not or alternative context is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

user_agentB

Set or reset browser user agent.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID
presetNoUA preset
customNoCustom UA string (overrides preset)

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, so mutation is expected. Description adds 'reset' behavior but does not specify persistence, scope (tab or session), or side effects. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no unnecessary words. Concise and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with full schema coverage, the description is mostly sufficient. Could mention resetting to default UA or interaction between 'preset' and 'custom', but schema already covers that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers 100% of parameters with descriptions. Description adds no extra meaning beyond schema; 'reset' is implied but not explicitly tied to parameter behavior.

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 ('Set or reset') and the resource ('browser user agent'). It is specific and distinguishes from sibling tools like 'emulate_device' which handle additional device parameters, though not explicitly differentiated.

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 over alternatives (e.g., 'emulate_device') or when not to use it. No context about prerequisites or typical scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_pageA

Composite health check: navigate, wait, capture console errors, return structured summary (title, errors, interactive count, body sample).

When to use: Verifying a page renders correctly without errors in a single call instead of chaining navigate + wait_for + console_capture + read_page. When NOT to use: Use navigate + read_page when you need full DOM content, not just a health summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to validate. http:// and https:// schemes only.
tabIdNoReuse an existing tab. Omit to create a new tab.
waitForSelectorNoOptional CSS selector that must appear before the page is considered ready.
captureConsoleMsNoHow long to listen for console errors after navigation completes. Default: 1500, max: 10000.
bodyTextSampleCharsNoHow much visible body text to include in the summary. Default: 500, max: 2000.
include_metricsNoWhen true, include approximate output size/token metrics for the returned summary and body sample. Default: false.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behavioral traits: it performs navigation (mutation), waits for a selector, captures console errors, and returns a summary. Annotations are not very informative (openWorldHint=true), but the description adds valuable context beyond them. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: one sentence for purpose, two for usage guidance. Every sentence adds value, no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description mentions return fields (title, errors, interactive count, body sample). It covers the core use case well. Minor gap: no mention of error handling on navigation failure, but overall sufficient for the 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?

Input schema has 100% description coverage for all 6 parameters. The description does not add significant meaning beyond the schema, but it contextualizes the parameters within the composite action. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a composite health check combining navigation, waiting, console error capture, and returning a structured summary. It distinguishes itself from sibling tools like navigate and read_page by emphasizing its composite nature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly provides 'When to use' and 'When NOT to use' guidelines, directing the agent to use this tool for a single-call health check instead of chaining multiple tools, and to use navigate + read_page when full DOM content is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vision_findB
Read-onlyIdempotent

Find elements using vision-based screenshot analysis. Returns annotated screenshot with numbered elements.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID to analyze
instructionNoOptional hint about what to look for (for future use)
showGridNoOverlay coordinate grid on screenshot. Default: false
showBoundingBoxesNoShow bounding boxes around elements. Default: true
interactiveOnlyNoOnly show interactive elements (buttons, links, inputs). Default: true
formatNoOutput format: legacy text+image, provider-neutral snapshot JSON, or both. Default: legacy.
includeImageNoInclude annotated image output. Defaults to true for legacy/both and false for snapshot.
occlusionFilterNoWhen true, drops elements whose center is covered by another element via elementFromPoint. Defaults to false to preserve today's output; set to true for stricter accuracy.
iframesNoFrame traversal mode. "all" still respects same-origin policy; cross-origin frames are listed in iframes.skipped.none
modeNoviewport: today's single-shot capture. tiled: full document scrolled in viewport-tall steps; returns per-tile screenshots and a unified element map.viewport
recordTrajectoryNoOpt-in visual trajectory artifact capture for this call. Also enabled by OPENCHROME_VISUAL_TRAJECTORY=1.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, covering safety. The description adds that it performs 'vision-based screenshot analysis' and returns an annotated screenshot, but does not elaborate on the analysis process or potential side effects (though there are none). It adds some context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at two sentences, but it is somewhat vague and lacks detail. It could be restructured to front-load key information like the purpose and output, but the brevity is acceptable given the schema richness.

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 (11 parameters, no output schema), the description is too brief. It does not explain the output format, how 'numbered elements' are represented, or how to interpret the results. The annotations cover safety, but the description fails to provide sufficient operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all parameters are already well-described in the input schema. The tool description does not add any additional meaning or usage guidance for the parameters, providing no extra value beyond what the schema already offers.

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 'Find elements using vision-based screenshot analysis,' which specifies the verb (find) and resource (elements). It distinguishes from sibling tools like 'find' (likely DOM-based) by emphasizing 'vision-based.' It also mentions the return of an annotated screenshot with numbered elements.

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 siblings such as 'find', 'element_pick', or 'image_qa'. There is no mention of use cases, prerequisites, or alternatives, leaving the agent to infer context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wait_forA
Read-onlyIdempotent

Wait for a condition. Strongly prefer 'function', 'selector', or 'url_match' — they return as soon as the condition is true (1 round-trip). Use 'timeout' only as a last resort: it blocks for a fixed duration and returns no information, forcing you to poll with another tool afterwards.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdYesTab ID to wait on
typeYesCondition. PREFER: 'selector' (element appears), 'selector_hidden', 'function' (custom JS predicate, e.g. value="document.querySelectorAll('.error').length>0"), 'url_match', 'navigation'. AVOID 'timeout' — it just sleeps.
valueNoSelector, JS function, URL pattern, or ms
timeoutNoMax wait in ms. Default: 30000
visibleNoRequire visibility (selector). Default: false
pollIntervalMsNoFunction mode only: predicate polling interval in ms for main-frame evaluation. Default 200, min 50, max 5000.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses behavioral traits beyond annotations: certain types return immediately (1 round-trip), timeout blocks and returns no info. This complements annotations (readOnlyHint, idempotentHint) without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, efficient delivery of key usage guidance. No superfluous content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While coverage is high, the description omits return behavior (e.g., what happens on timeout or failure). With no output schema, this gap reduces completeness. Annotations compensate partially.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all parameters. The description does not add new per-parameter meaning beyond reinforcing preferences already in the type enum 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 'Wait for a condition', specifying the verb 'wait' and the resource 'condition'. It distinguishes from sibling tools like 'oc_task_wait' by focusing on page-level conditions, and the parameter context reinforces this.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly guides which condition types to prefer ('function', 'selector', 'url_match') and warns against 'timeout' as a last resort, including rationale. This provides clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workerC

Manage workers. Actions: "create" (isolated context), "list" (show all), "delete" (remove and close tabs).

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction: create, list, or delete
nameNo(create) Worker name
idNo(create) Custom ID. Auto-generated if omitted
workerIdNo(delete) Worker ID to delete

TDQS

C2.7/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructiveHint=false, but description states delete action 'removes and closes tabs,' implying destructive behavior. This contradiction scores a 1 per rules. Additionally, description adds 'isolated context' for create, which is useful, but the contradiction invalidates 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 'Manage workers,' and efficiently lists actions. No wasted words—every sentence 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 no output schema and 4 parameters, the description lacks details on return values, prerequisites, or effects of actions (e.g., what list returns). Incomplete for a fairly complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with all parameters described (action, name, id, workerId). The description adds no new parameter meaning beyond the schema, so 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 clearly states it manages workers with three specific actions (create, list, delete) and provides brief explanations for each. It differentiates from sibling tools like worker_complete and worker_update by focusing on basic CRUD operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as worker_complete or worker_update. The description lacks explicit when/when-not instructions or context for choosing among the actions beyond listing them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

worker_completeC
Destructive

Mark a worker as complete with final results.

ParametersJSON Schema
NameRequiredDescriptionDefault
workerNameYesName of the worker
statusYesFinal status
resultSummaryYesResult summary (max 100 chars)
extractedDataNoFinal extracted data

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true, but the description adds no additional behavioral context (e.g., finality, irreversibility, or if it can be called multiple times). The description carries little extra value beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that is front-loaded. It is efficient, though slightly more detail would improve value without harming conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 required parameters, a complex nested object (extractedData), and no output schema, the description is insufficient. It does not explain the worker lifecycle context, what happens after completion, or how results are structured.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the schema already provides clear parameter descriptions. The description does not add extra meaning beyond framing parameters as 'final results'.

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 marks a worker as complete with final results, distinguishing it from worker_update among siblings. However, it does not specify what 'mark as complete' entails in terms of lifecycle or side effects.

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 worker_update or when not to use it. There is no indication of prerequisites or postconditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

worker_updateB

Report worker progress to the orchestration scratchpad.

ParametersJSON Schema
NameRequiredDescriptionDefault
workerNameYesName of the worker
statusNoWorker status
iterationNoCurrent iteration number
actionNoAction being performed
resultNoResult of the action
extractedDataNoData extracted so far
errorNoError message if any

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are provided (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=false), which set baseline expectations. The description adds that it reports progress, implying a write operation. However, it does not disclose side effects, state dependencies, or concurrency implications beyond what annotations already convey.

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 words. Every word contributes meaning: verb, object, target. It is appropriately sized for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters (1 required), no output schema, and no usage context, the description is too minimal. It lacks information about prerequisites, return behavior, or when to call this tool in a workflow. The agent would need to infer much from context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the input schema already describes all parameters with descriptions and enums. The description adds no additional parameter-level details. Per calibration, baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: 'Report worker progress' to a specific resource ('orchestration scratchpad'). It uses a specific verb and resource, and it distinguishes from sibling tools like worker (likely start) and worker_complete (likely finish), making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. Given siblings like worker and worker_complete, explicit context about the progression from worker to worker_update to worker_complete would be helpful. The absence leaves the agent without decision support.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflow_cleanupA
Destructive

Clean up workflow resources (workers, tabs, scratchpads).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true. The description adds that it targets workers, tabs, and scratchpads, but does not elaborate on the exact effects (e.g., deletion, reset) or reversibility.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, succinct sentence that conveys the essential purpose without extra words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and no output schema, the description provides basic resource types but lacks context on the outcome or state changes. It is adequate but could be more informative about the cleanup process.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, and schema coverage is 100%. The description adds no parameter details, but none are needed. Baseline 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action ('clean up workflow resources') and lists specific resource types (workers, tabs, scratchpads). This distinguishes it from sibling tools like workflow_collect or workflow_init.

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, when not to use, or compare with similar tools like tabs_close or worker.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflow_collectA
Read-onlyIdempotent

Collect and aggregate results from all workers after completion.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds the condition 'after completion' but lacks details on handling of incomplete workers, output format, or side effects. Minimal additional behavioral context beyond 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?

Single sentence, front-loaded with verb 'Collect'. No wasted words. Highly concise for a parameterless tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, so description should explain expected return value or behavior. Only states action and timing. Lacks details on result format, behavior with no workers, or error conditions. Incomplete for full understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters. Schema coverage 100% (empty). Baseline 4 for zero parameters. Description does not add parameter info, which is appropriate since none exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states action (collect and aggregate) on resource (results from all workers) with condition (after completion). Differentiates from sibling workflow_collect_partial by specifying 'all' and 'after completion'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage after workers complete, but no explicit guidance on when to use vs alternatives like workflow_status or worker. No exclusions or scenarios described.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflow_collect_partialA
Read-onlyIdempotent

Collect results from completed workers without waiting for all to finish.

ParametersJSON Schema
NameRequiredDescriptionDefault
onlySuccessfulNoOnly return successful workers. Default: false

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds behavioral context: it collects results and does not wait for all workers to complete. This is consistent and adds value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no fluff. It efficiently conveys the tool's purpose and key behavioral trait (not waiting for all). Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has one parameter, no output schema, and strong annotations, the description is adequately complete. It explains the core behavior, but could benefit from a brief note on the return format. However, sibling tools provide context, making it sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already describes the only parameter ('onlySuccessful') with a clear description. The tool description does not add any additional meaning beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool collects results from completed workers without waiting for all to finish. It uses a specific verb ('collect') and resource ('completed workers'), and implicitly distinguishes from sibling 'workflow_collect' which likely waits for all.

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 specifies when to use this tool ('without waiting for all to finish'), implying it is for partial results. It hints at an alternative (workflow_collect), but does not explicitly state when not to use it or list other alternatives. Still provides clear usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflow_initA

Initialize a workflow with multiple isolated workers for parallel browser ops.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesWorkflow name
workersYesList of workers to create
workerTimeoutMsNoPer-worker timeout in ms. Default: 60000
maxStaleIterationsNoStale update limit before circuit break. Default: 5
globalTimeoutMsNoGlobal workflow timeout in ms. Default: 300000

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate openWorldHint=true but no destructiveness. The description adds the behavioral trait 'isolated workers' but does not explain what isolation means, side effects, or what happens if called multiple times. More context on permissions or resource implications would improve.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the key action and purpose. No wasted words; 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?

While the description covers the core purpose, it lacks details about workflow lifecycle, what initialization triggers (e.g., do workers start immediately?), and return value. For a tool with nested arrays and multiple parameters, more context would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description does not need to add parameter info. The description provides a general statement ('isolated workers'), but the schema already documents all parameters adequately. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Initialize' and the resource 'workflow with multiple isolated workers for parallel browser ops'. It effectively distinguishes from sibling tools like worker_init or workflow_status by emphasizing parallel browser operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives like workflowerated tools. It is implied this is the first step in a workflow lifecycle, but no direct guidance or exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflow_statusA
Read-onlyIdempotent

Get current workflow status and worker states.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeWorkerDetailsNoInclude worker scratchpad details. Default: false
includeLedgerNoInclude compact task drift ledger diagnostics. Default: false

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint, so the description carries a lower burden. However, it adds no context beyond the annotations, such as what 'worker states' includes or the response structure.

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 redundancy. It is front-loaded and directly states the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema and the description doesn't hint at return values or preconditions (e.g., requires an active workflow). For a status tool, more detail on what 'status' includes would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the schema fully documents both parameters. The description adds no extra meaning beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and clearly identifies the resource ('current workflow status and worker states'), which distinguishes it from sibling workflow tools like workflow_cleanup or workflow_collect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no guidance on when to use this tool versus alternatives, such as oc_run_status or workflow_collect. It does not mention prerequisites, context (e.g., requires an active workflow), or when not to call it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.4/5.0
Disambiguation4/5

The descriptions are detailed with 'When to use' and 'When NOT to use' sections, which greatly aids disambiguation. However, the sheer number of tools (118) means some overlap exists (e.g., multiple interaction tools like interact, act, computer), causing potential confusion despite the guidance.

Naming Consistency4/5

Most tools follow a consistent verb_noun snake_case pattern (e.g., execute_plan, list_profiles, tabs_close). The 'oc_' prefix groups internal utilities consistently. Minor deviations exist (e.g., 'act' vs 'interact', 'page_content' as noun_verb), but overall the naming is predictable.

Tool Count2/5

With 118 tools, the server is significantly over-scoped for typical browser automation needs. While each tool has a specific use case, many are highly specialized (e.g., oc_totp_generate, oc_diff) and could be consolidated. The count overwhelms users and suggests a lack of focus.

Completeness5/5

The server covers an exhaustive range of browser automation capabilities: navigation, interaction, crawling, data extraction, performance, recording, task management, workflows, and more. It includes advanced features like context export/import, performance insights, and skill management. Few obvious gaps exist.

Maintenance

ActivityMaintained
ResponsivenessWithin a week

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    F
    maintenance
    Enables AI agents to directly control your real Chrome browser with full context including login sessions, cookies, and open tabs. It provides tools for page scanning, JavaScript execution, CDP control, screenshots, and physical mouse/keyboard input for authentic browser automation.
    20
    239
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Lets AI assistants control your real Chrome browser to perform web tasks like reading pages, taking screenshots, clicking, and typing, using your existing logged-in sessions.
    132
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to fully control Google Chrome: navigate, click, fill forms, inspect DevTools, and manage tabs with parallel execution and session isolation.
    13
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/shaun0927/openchrome'

If you have feedback or need assistance with the MCP directory API, please join our Discord server