llm-wiki-chrome
This server exposes a bounded browser-execution surface for Chrome tabs the user explicitly shares via the LLM Wiki extension.
Check connector status and list explicitly shared HTTPS tabs (
browser_status,browser_tabs).Manage exact shared tabs: focus, open same-origin tabs, navigate, reload, history back/forward, and close them.
Read page state via accessibility snapshots, viewport/region/full-page screenshots, semantic element geometry, and bounded waits.
Interact semantically: click, hover, type text, select options, drag, send key chords, scroll, and scroll-to-element.
Handle dialogs, upload/download files within registered machine-local roots, and trigger local password-manager UI without receiving secrets.
Capture bounded diagnostics: logs, scalar console events, request metadata, and performance metrics.
Record typed workflow drafts and schedule in-memory read-only snapshots while the grant is live.
Provides tools for controlling an explicitly shared Google Chrome tab through a local extension, including accessibility snapshots, screenshots, clicking, typing, navigation, scrolling, and other bounded browser actions.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@llm-wiki-chrome@llm-wiki-chrome take a screenshot of the current shared tab"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
LLM Wiki for Chrome
Public, content-free execution substrate for targeted llm-wiki adapters. It provides one Chrome extension, one allowlisted Native Messaging host, a private Unix-socket relay, and a versioned typed-job contract.
The extension and local connector source are public. Browser grants, page data, credentials, private result slots, and runtime sockets remain local and are never repository content. Public source availability is not a Chrome Web Store release or permission to publish user data.
This is not an autonomous natural-language browser agent. It exposes a small structured agent tool surface—shared tabs, accessibility snapshot, viewport screenshot, semantic click, private text insertion, key chord, and scroll—and compiles every call into the same exact-target typed protocol. It does not accept arbitrary JavaScript, raw CDP methods, downloaded code, ambient browser access, or page-authored actions. Provider-specific adapters still own stronger routing, authentication, journals, recovery, idempotency, and final read-back verification for consequential workflows.

Installation, collaboration, security, and troubleshooting guide →
Click-to-collaborate flow
The extension does not need persistent site access or per-page Chrome host registration. The user opens an HTTPS page and clicks the extension action. Its Chrome-facing name is LLM Wiki for Chrome; browser-executor terminology is kept only for the internal protocol and implementation. That Chrome user gesture creates a fresh ephemeral collaboration grant bound to the exact tab, URL, and origin. Clicking additional tabs builds an explicit workspace of up to 16 grants; the executor never enumerates unrelated tabs. Same-origin navigation rotates the exact grant ID and URL so stale programs fail closed. A grant is revoked when the tab leaves its origin, closes, or the user stops that tab or the whole workspace in the side panel.
An active grant is visible on the page as a fixed green outline and
LLM WIKI • CONTROLLED pill, plus an ON action badge. The marker is packaged,
noninteractive, content-blind, and injected only after the extension click; it
is removed when the grant is revoked and never receives page or job content.
The action listener receives Chrome's activeTab grant and synchronously opens
the side panel for that exact tab. Panel load confirms the action-created grant;
a relayed panel message never tries to open the panel or manufacture a user
gesture. Its connect button is a status/retry control, not a substitute for the
toolbar gesture that creates activeTab authority. The
connected state means the grant has been published through the live local
connector, so the agent can detect readiness with browser_status without
asking the user to inspect extension internals.
The local agent and targeted adapters retrieve the private workspace through the native socket. A direct agent must first list the exact clicked grants and name one collaboration ID on every tool call. The server then compiles a fixed typed program and fails closed if the grant or page has changed. The click authorizes bounded reads and structured interaction on that exact tab; it never grants ambient browser access. Consequential provider workflows still use a targeted adapter for stronger preconditions and independent verification.
Adapter code still has to be installed and trusted once. The collaboration grant replaces per-resource registration and provider OAuth only for workflows that can inspect and verify through the browser UI. A targeted adapter may keep a first-party API as an optional stronger verification path.
Mutation programs may bind a provider-owned revision fingerprint with
assert_ax_private_sha256. The executor recomputes the bounded accessibility
projection on the exact exposed tab immediately before the governed mutation
boundary and fails closed on drift. The expected hash remains a private value;
neither it nor the projected page content is shown in the side panel.
Provider adapters use the bundled client directly:
from browser_executor.client import BrowserExecutorClient
executor = BrowserExecutorClient()
collaboration = executor.collaboration_for_url(expected_url)
if collaboration is None:
raise RuntimeError("click the extension on the target page")
# Bind collaboration_id, url, and origin into the signed typed program.
result = executor.run(program, private_values=private_values)Codex and other MCP clients use the provider-neutral direct collaboration surface instead of constructing programs themselves:
.venv/bin/python adapter.py mcp-serverThe MCP server publishes a fixed structured tool inventory covering explicit tab lifecycle, exact same-origin navigation, waits, accessibility snapshots, viewport/region/full-page screenshots, element geometry, click/hover/type/ select/drag/key/scroll, bounded diagnostics, registered-root file transfer, password-manager UI activation, and in-memory workflow drafting. It has no arbitrary program, CSS selector, script, natural-language execution tool, or unrelated-tab query. Page content is returned only to the calling local agent for the active request and is not persisted by this repository or shown in the side panel.
Related MCP server: Chrome MCP Control Center
Release status
Release 0.1.1 adds lazy native-host discovery retries,
an importable-client path for isolated provider adapters, background-window-safe
exact-tab execution, dead-client cancellation, bounded command and job
watchdogs, semantic document-boundary keys, root-frame-only provider programs,
child-frame accessibility quarantine, and bounded scrolling collection anchored
to an allowlisted provider DOM target. It does not weaken the exact grant, tab,
URL, active-tab, or revision checks.
Release 0.1.0 consolidates the first bounded execution slice:
strict program hashing and validation;
cross-language policy-decision tests for the Python client and MV3 validator;
exact HTTPS target and bounded action declarations;
click-created active-tab grants with no persistent host permissions;
a bounded multi-tab collaboration workspace with private exact-URL lookup;
per-Chrome-instance native sockets aggregated by the local client, so several Chrome profiles or processes cannot overwrite one another's shared tabs;
a fixed page outline/pill and toolbar badge showing exactly which tabs are controlled;
a green
LLM Wikitab group containing only explicit grants;same-origin open/navigate/history/reload, exact-tab focus/close, semantic waits, hover, option selection, drag/drop, and scroll-to-element primitives;
bounded activation settling, retrying private-value assertions, and adaptive viewport JPEG quality for transient browser/UI state;
flattened, bounded accessibility collection across attached child-frame targets, with session-bound geometry and interactions; semantic AX discovery also covers open shadow trees without enabling arbitrary DOM traversal;
region and dimension-capped full-page screenshots, semantic element geometry, and bounded performance metrics;
machine-local upload/download roots with realpath checks, completed-download verification, danger-state enforcement, streaming hashes, and no implicit filesystem authority;
manual, approved-plan, and automatic bounded authorization modes with protected actions always falling back to local confirmation and a content-free session decision counter;
content-free completion/attention notifications;
cancellable in-memory read-only snapshot schedules whose private results are retrieved once and whose authority expires with the MCP process or tab grant;
in-memory recording of already-typed agent actions into a hash-bound, review-required, deliberately non-replayable provider-driver draft;
password-manager UI activation that never receives a credential value; and
a provider-driver SDK that binds targeted adapters to the exact grant, approved plan hash, one mutation callback, and adapter-owned postcondition verification;
action-listener tab grant, side-panel status/retry control, and content-free agent readiness tool;
a content-free side-panel workspace, progress meter, per-tab revocation, and cancellation;
separate read and mutation capabilities;
one governed mutation callback in the Python client;
stable extension identity and exact native-host origin;
private local state, short socket paths, message limits, and one active job;
exact-tab activation and reviewed same-origin navigation;
a direct local MCP agent surface that makes an extension click immediately discoverable and controllable by the agent without a provider OAuth grant;
allowlisted DOM and accessibility-tree reads, waits, and private extraction;
byte-capped private viewport JPEG capture with no executor-side persistence;
bounded viewport scrolling, deduplicating long-list collection, and private AX link/description extraction;
bounded exact-tab browser-log capture through private result slots;
bounded exact-tab request metadata capture that strips query strings and ignores headers, bodies, cookies, initiators, and security details;
bounded exact-tab console-API capture that retains only scalar arguments and never evaluates or dereferences remote objects;
typed click, focus, key-chord, private text-insertion, and retrying private-value assertion actions;
cancellation, target-focus drift detection, result-size limits, and best-effort debugger cleanup (cancellation stops at the next bounded action and cannot roll back a mutation that already started);
one-shot pre-mutation authorization before a provider effect; and
a route-free llm-wiki self-test manifest; and
a content-free extension status panel with connected, running, authorization, and failure states.
The release is still an execution substrate, not a provider workflow. Targeted adapters remain responsible for provider semantics, revision checks, durable journals, idempotency, and independent read-back verification.
Repository boundary
Allowed tracked material:
executable code and extension assets;
protocol schemas and security documentation; and
synthetic fixtures and deterministic tests.
Never commit real resource URLs or identifiers, page text, screenshots, captures, plans, receipts, extracted results, cookies, credentials, browser storage, or provider corpora. Runtime inputs and outputs stay in the targeted adapter's separately controlled data plane and should remain in memory whenever possible.
Architecture
local agent through fixed MCP tools OR a targeted provider adapter
-> select one exact user-created click grant from the private collaboration workspace
-> deterministic typed program + exact approved plan hash
-> BrowserExecutorClient over a private Unix socket
-> allowlisted Native Messaging host
-> shared MV3 extension on the exact user-exposed tab
-> one-shot before-mutation challenge when required
-> private result slots returned only to the targeted adapterllm-wiki may see this repository's route-free self-test adapter
manifest, but it never routes an external edit or research request directly to
the executor.
Packaging and installation
The installable product is split at Chrome's security boundary:
llm-wiki-chromenative companion: the Python client, fixed MCP server, Native Messaging host, installer, diagnostics, and packaged extension assets;LLM Wiki for Chrome: the public-source MV3 extension ZIP. Chrome Web Store publication remains a separate release step requiring explicit approval; loading the unpacked path remains the development workflow.
The stable Homebrew formula is available from nvk/tap:
brew install nvk/tap/llm-wiki-chrome
llm-wiki-chrome install
llm-wiki-chrome doctorinstall writes the exact-origin Native Messaging registration. It does not
install a daemon: Chrome starts the host on demand and communicates with it over
standard input/output. Each Chrome host creates a private per-process socket
under the deterministic /tmp/llm-wiki-chrome-<uid>/ runtime directory. The
CLI, MCP server, and targeted adapters discover those sockets automatically.
There is no normal socket argument, port, pairing code, or environment variable.
The existing environment override remains only for exceptional sandboxed or
development setups.
For an unpacked development installation, ask the package for the exact path:
llm-wiki-chrome extension-pathTargeted adapters that run in isolated Python environments can resolve the package root without copying source into their virtual environment:
llm-wiki-chrome client-pathLoad that directory from chrome://extensions and run llm-wiki-chrome doctor.
healthy: true confirms the package and Native Messaging registration;
connected: true appears while Chrome has the extension's native port open.
Uninstall only the native companion registration with:
llm-wiki-chrome uninstallFile transfer is disabled by default. Enable only explicit machine-local roots
in ~/.config/llm-wiki/browser-executor.json:
{
"upload_roots": ["/absolute/private/staging/uploads"],
"download_roots": ["/absolute/private/staging/downloads"]
}Every path rejects a final symlink, resolves its parent chain, and must stay inside a registered root. Upload values travel only in private slots. Downloads must be complete, accepted as safe by Chrome, inside a registered root, and are hashed by the local companion before being returned to the caller.
The side panel offers Manual, Approved plan, and Automatic bounded jobs.
The default is Approved plan. File upload, dialog handling, and credential-
broker activation remain protected actions and always require local manual
confirmation. Authorization history is a content-free session counter rather
than a page-content log.
Workflow recording captures only typed operations already requested through
the fixed MCP surface. browser_record_stop returns an in-memory, hash-bound,
review-required draft. The generic executor never replays it; a targeted
adapter must review, compile, authorize, journal, and independently verify a
versioned provider workflow. The direct surface permits only bounded in-memory
scheduling of a read-only snapshot while the exact grant and MCP process remain
live. Durable or recurring scheduling, mutations, recovery, and journals remain
in the targeted adapter or external scheduler, never in the extension's intent
layer.
Targeted adapters can centralize the execution boundary with
browser_executor.driver.ProviderDriverSession, which rejects plan-hash or
exact-grant drift and requires an adapter-owned status: verified postcondition.
Build a deterministic, content-free Chrome Web Store ZIP without publishing it:
python3 scripts/package_extension.pyNo release, tag, store upload, or installed upgrade is performed by these build commands.
Development
python3 -m venv .venv
.venv/bin/python -m unittest discover -s tests -v
.venv/bin/python -m compileall -q adapter.py browser_executor tests
node --check extension/service-worker.js
node --check extension/protocol.mjs
node --check extension/executor.mjs
node --check extension/sidepanel.jsThe deterministic suite is complemented by an isolated real-browser smoke test. It requires a matching Chrome for Testing and ChromeDriver pair and an exact approved read target supplied at runtime; it does not touch the normal Chrome profile or print, persist, or return the captured viewport:
LLM_WIKI_BROWSER_E2E_TARGET_URL='<exact approved HTTPS target>' \
.venv/bin/python tests/chrome/run_extension_e2e.py \
--chrome '/path/to/Google Chrome for Testing' \
--chromedriver '/path/to/chromedriver'The harness copies the unpacked extension into a temporary directory, adds a test-only extension page, runs the signed read program in headless Chrome, and returns only content-free counters. Chrome binaries are not downloaded or installed by the repository.
The self-test is content-free:
.venv/bin/python adapter.py describe
.venv/bin/python adapter.py execute --request /private/request.json \
--response /private/response.jsonInstall the source checkout's native host once and register its MCP command:
.venv/bin/python adapter.py install
codex mcp add llm-wiki-browser \
-- .venv/bin/python adapter.py mcp-serverRestarting an agent session after registration makes the fixed tool inventory available.
Chrome still exposes nothing until the user clicks the extension on a specific
HTTPS tab, and stopping the collaboration revokes the grant. An exceptional
runtime that cannot access the private default /tmp directory may set
LLM_WIKI_BROWSER_EXECUTOR_NATIVE_SOCKET consistently for both commands, but
that is not part of the packaged user flow.
browser-install writes an exact-origin Native Messaging manifest and launcher.
Use it only during an explicit installation or migration task. Loading the
unpacked extension, changing a normal Chrome profile, and upgrading an installed
copy are not part of the test suite and require explicit user direction.
Security model
The executor validates a canonical program hash, plan hash, active
collaboration ID, fixed driver identity/version, exact target, capability, limits, action vocabulary,
private slots, and result allowlist independently in Python and the extension.
There are no persistent host permissions, <all_urls> access, or content
scripts; Chrome's activeTab grant is created only by the user's extension
click. The interpreter has a fixed CDP method
allowlist and does not accept Runtime.evaluate, raw methods, scripts, or
page-generated actions.
The fixed CDP allowlist also includes paired Log.enable/Log.disable and
Network.enable/Network.disable windows. The latter retains only bounded
private request method, origin/path, resource type, status, MIME, cache, and
failure scalars; it strips query strings and never retains headers, bodies,
cookies, initiators, security details, or request IDs. Neither capability
exposes raw diagnostic methods or request interception. A separate paired
Runtime.enable/Runtime.disable window retains only bounded private
Runtime.consoleAPICalled types, timestamps, and scalar arguments. It ignores
contexts, stacks, descriptions, previews, and object IDs and never allows
evaluation, compilation, function calls, script execution, or property access.
Each Chrome native-host process binds a unique private socket below the one
configured base path. The client discovers only those strictly named sockets,
aggregates their explicit collaboration workspaces, and routes a job to the
single host that owns its exact grant. This prevents multiple Chrome profiles
from replacing one another's relay while preserving one exact tab per job.
The executor is trusted local code, not an operating-system sandbox. Targeted adapters remain responsible for authorizing every consequential provider effect and proving the provider's final state independently. Direct mutation tools cross one internal one-shot boundary but deliberately do not claim provider transactional guarantees. See SECURITY.md.
Available Tools
34 toolsbrowser_clickB
Click one uniquely identified accessibility-tree control in an explicitly shared tab.
| Name | Required | Description | Default |
|---|---|---|---|
| locator | Yes | A semantic accessibility-tree locator; arbitrary CSS and executable scripts are not accepted. | |
| collaboration_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It fails to describe what happens on success or failure, whether the tool waits for an element, any side effects (e.g., navigation, state changes), or required permissions. The single sentence offers no transparency 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately states the verb and resource. It contains no filler or redundant text, and every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (nested locator object with many properties), lack of output schema, and no annotations, the description is too sparse. It omits critical context: how to uniquely identify a control, definition of 'explicitly shared tab', expected return values, and error scenarios. An agent would need additional knowledge to use this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter-level information. The schema covers 50% of parameters (locator has a schema description; collaboration_id has only a regex pattern). The description does not explain how to construct the locator, the meaning of 'unique', or the purpose of collaboration_id, leaving the agent to infer from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Click') and the resource ('accessibility-tree control'), with specific qualifiers ('uniquely identified', 'explicitly shared tab') that distinguish it from sibling tools like browser_hover or browser_select.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., browser_hover, browser_click vs. browser_select) and does not mention prerequisites, error conditions, or when not to use it. The only contextual hint is 'explicitly shared tab', which is insufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_closeC
Close one exact explicitly shared tab through a governed mutation boundary.
| Name | Required | Description | Default |
|---|---|---|---|
| collaboration_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavioral traits. It mentions a mutation boundary but does not explain what that entails (e.g., permissions, side effects, reversibility). The agent cannot assess safety or impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence. However, it sacrifices clarity for brevity. Every word should earn its place, but jargon like 'governed mutation boundary' adds little.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (single required param, no output schema), the description should clarify return behavior, error conditions, and prerequisites. It fails to do so, leaving the agent guessing about success signals.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and there is only one parameter (collaboration_id) with a regex pattern. The description adds no meaning to this parameter—it does not explain what a collaboration_id is, how to obtain it, or why it is needed for closure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Close one exact explicitly shared tab through a governed mutation boundary.' The verb 'Close' and resource 'tab' are clear. It distinguishes from siblings like browser_open, but the meaning of 'governed mutation boundary' is somewhat vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like browser_navigate, browser_focus, or closing via dialogs. The 'exactly explicitly shared' phrasing is confusing and doesn't 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.
browser_credential_fillA
Focus a field and invoke a local password-manager UI without receiving the secret.
| Name | Required | Description | Default |
|---|---|---|---|
| broker | Yes | ||
| locator | Yes | A semantic accessibility-tree locator; arbitrary CSS and executable scripts are not accepted. | |
| collaboration_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the disclosure burden. It reveals a critical behavioral trait: the tool never receives the secret. This goes beyond typical expectations and is valuable safety information, though it does not detail what happens after the UI is invoked (e.g., blocking behavior, user interaction required).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence of 14 words conveys the core action and safety constraint. Every word earns its place with no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has nested objects and an enum, with no output schema. The description covers purpose and the key safety aspect, but omits expected behavior after invoking the UI (immediate return vs. waiting for user action) and potential failure modes. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, and the description provides no additional parameter explanations. The locator's schema description is helpful, but the description overall does not compensate for the low coverage—broker choices and collaboration_id semantics are left entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: "Focus a field and invoke a local password-manager UI" — a specific verb and resource. It also distinguishes itself from siblings by adding the key constraint "without receiving the secret," which sets it apart from browser_type or browser_focus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for credential filling without exposing secrets, providing clear context. However, it does not explicitly name alternatives (e.g., browser_type, browser_focus) or state when not to use the tool, so guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_diagnosticsC
Capture bounded logs, scalar console events, request metadata, and performance metrics.
| Name | Required | Description | Default |
|---|---|---|---|
| duration_ms | No | ||
| collaboration_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description partially discloses behavior by listing the captured data types. However, it does not state whether the operation is read-only, whether it has side effects, or what the output format is. 'Bounded logs' is ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence (10 words) with a clear verb at the start. However, its brevity sacrifices necessary detail, making it efficient but incomplete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has two parameters, no output schema, and no annotations, the description fails to cover return values, parameter roles, or how the diagnostic data is provided. It is materially incomplete for reliable agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no information about the two parameters (collaboration_id, duration_ms). The agent is left to infer their meaning from names and schema constraints alone, which is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Capture' and lists distinct resources (logs, console events, request metadata, performance metrics). It clearly distinguishes from sibling browser tools that focus on interaction (click, navigate, type) rather than diagnostics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., browser_record_start, browser_snapshot). There is no mention of prerequisites, context, or exclusions, leaving the agent without decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_dialogB
Accept or dismiss a browser modal dialog; prompt text stays in a private slot.
| Name | Required | Description | Default |
|---|---|---|---|
| accept | Yes | ||
| prompt_text | No | ||
| collaboration_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It states the tool accepts or dismisses dialogs and notes prompt text is stored privately, which hints at immutability, but doesn't disclose side effects (e.g., what happens to the page after dismissal, or if the operation is destructive). Some behavioral context is added 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at one sentence with two clear actions. It is front-loaded with purpose, and every part adds information, though the 'private slot' phrase could be more straightforward.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides a basic understanding for a modal dialog tool, but lacks completeness for a 3-parameter tool with no output schema. It doesn't explain what 'accept' boolean does (true=accept, false=dismiss), when 'prompt_text' is needed, or the return behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the 3 parameters. It mentions 'accept' and 'prompt text' implicitly through context, but doesn't explain the role of 'collaboration_id' or when to provide 'prompt_text'. The description adds minimal value beyond what the schema shows (e.g., boolean accept, string prompt_text).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('accept or dismiss') and resource ('browser modal dialog'). It distinguishes from siblings by focusing on dialog handling, which is unique among the listed tools. The mention of 'prompt text stays in a private slot' adds specificity but could be clearer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for browser modal dialogs, but provides no explicit guidance on when to use it versus alternatives (e.g., no mention of checking for a dialog first or handling timeouts). No when-not-to-use or sibling differentiation is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_downloadC
Click a semantic download control and verify completed files against registered roots.
| Name | Required | Description | Default |
|---|---|---|---|
| locator | Yes | A semantic accessibility-tree locator; arbitrary CSS and executable scripts are not accepted. | |
| timeout_ms | No | ||
| collaboration_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It mentions clicking and verifying downloads but does not disclose side effects, timeout behavior, return values, or what happens on failure. This is insufficient for a mutation-like tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant words. It efficiently conveys the core action and verification step.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool's apparent complexity (nested locator, download verification, no output schema), the description omits essential context such as expected return format, error handling, and the meaning of 'registered roots'. It is far from complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, and the tool description adds no parameter-specific meaning. The locator schema is described as semantic, but the description does not explain how parameters like 'locator' or 'timeout_ms' are used in the download context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool clicks a semantic download control and verifies completed files, with a specific verb and resource. It distinguishes itself from generic browser_click by adding download verification, though 'registered roots' is ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 browser_click or browser_upload. The description does not mention prerequisites, exclusions, or specific scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_dragC
Drag one semantic element to another using bounded pointer steps.
| Name | Required | Description | Default |
|---|---|---|---|
| steps | No | ||
| locator | Yes | A semantic accessibility-tree locator; arbitrary CSS and executable scripts are not accepted. | |
| destination | Yes | A semantic accessibility-tree locator; arbitrary CSS and executable scripts are not accepted. | |
| collaboration_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It mentions 'using bounded pointer steps' but does not explain what steps are, whether DOM events are triggered, visual effects, error conditions, or performance implications. The phrase is insufficient for an agent to anticipate side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no redundancy. Every word earns its place, though it could benefit from a second sentence covering usage constraints without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters including two complex nested objects, no output schema, and no annotations, a one-sentence description is far from complete. It omits failure modes, behavior when elements are not found, step granularity, and return value. Significant gaps remain for the agent to safely invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (locator/destination have inline descriptions). The description adds no new information about parameters. The 'steps' parameter lacks any semantic guidance beyond its numeric bounds. The description fails to compensate for the uncovered half.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('drag') and the operands ('one semantic element to another') using a specific verb and resource. No other sibling tool performs drag, so it is well-differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no prerequisites (e.g., source/target must be visible), and no exclusion criteria. The agent must infer usage context entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_focusA
Focus one explicitly shared tab without reading or mutating its page.
| Name | Required | Description | Default |
|---|---|---|---|
| collaboration_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It clearly states the tool does not read or mutate the page, which is valuable. However, it does not disclose other behavioral traits such as whether focus fails silently if the tab is not shared, whether it toggles focus, or any error conditions. Additional 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single 11-word sentence that is front-loaded with the action and efficiently conveys the core purpose and key non-behaviors. Every word earns its place, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covers the basic purpose and safety profile (no read/mutate). However, it omits explanation of the parameter, prerequisites (what qualifies as 'explicitly shared'), error handling, and return behavior, leaving gaps for an AI agent that needs to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention the sole parameter 'collaboration_id' at all. It only vaguely references 'one explicitly shared tab' without linking to the parameter. The agent must infer meaning solely from the parameter name and its pattern, which is insufficient for a tool that requires correct identification of a shared tab.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the verb 'Focus' and the resource 'one explicitly shared tab', and clarifies it does not read or mutate the page. This distinguishes it from sibling tools like browser_open (opens new tab), browser_tabs (list tabs), and browser_click (interacts), making its purpose highly 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for bringing a shared tab into focus without side effects, but does not explicitly state when to use it versus alternatives (e.g., browser_open for creating a new focused tab, or browser_click to bring a tab into focus via interaction). No exclusions or prerequisites are provided, so usage guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_full_page_screenshotB
Capture a dimension- and byte-capped full-page JPEG from an explicitly shared tab.
| Name | Required | Description | Default |
|---|---|---|---|
| quality | No | ||
| collaboration_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the output format (JPEG) and existence of caps, but omits critical behavioral details: whether scrolling occurs automatically, how dynamic content is handled, error states (e.g., tab not shared), or side effects. The phrase 'explicitly shared tab' is vague and does not clarify the sharing mechanism or prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single 13-word sentence with no redundancy. It is front-loaded with the action verb and uses minimal words to convey the core function and constraints. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 parameters and no output schema, the description is too sparse. It lacks information about prerequisites (how to share a tab), the meaning of dimension/byte caps, return format details, and potential failure modes. Sibling tool names hint at full-page capture, but integration context is insufficient for reliable use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description must compensate. It explains collaboration_id implicitly as the identifier for the 'explicitly shared tab', which adds meaning beyond the pattern. However, the quality parameter is completely unaddressed. The description partially covers one of two parameters, earning a middle score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb ('Capture') and resource ('full-page JPEG from an explicitly shared tab'). It clearly distinguishes from siblings like browser_screenshot (viewport) and browser_region_screenshot (region) by specifying 'full-page'. The constraints 'dimension- and byte-capped' further clarify the tool's scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The mention of 'explicitly shared tab' hints at a prerequisite but does not explain it. There is no indication of when not to use it, what sibling tools are better suited for other scenarios, or any usage context beyond the core action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_geometryC
Return bounded private geometry for semantic elements in an explicitly shared tab.
| Name | Required | Description | Default |
|---|---|---|---|
| locator | Yes | A semantic accessibility-tree locator; arbitrary CSS and executable scripts are not accepted. | |
| max_items | No | ||
| collaboration_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the return value but fails to disclose important traits such as authentication requirements (e.g., must the tab be part of a collaboration session?), error handling for non-shared tabs, rate limits, or the meaning of 'private' and 'bounded.' Minimal transparency for a tool with complex prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single 12-word sentence, making it concise and efficient. It front-loads the key action and output. However, the brevity comes at the cost of completeness; a second sentence clarifying the geometry type or prerequisite would improve it without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (nested schema, 3 parameters, no output schema, no annotations, many sibling tools), the description is significantly incomplete. It does not explain what 'bounded private geometry' means operationally, how the collaboration_id is obtained, how the locator is constructed, or what the return format looks like. The agent lacks enough context to use this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (only the locator field has a description). The tool description adds no explanation for any of the three parameters (collaboration_id, locator, max_items). It does not clarify how collaboration_id relates to sharing, how locator filters elements, or the purpose of max_items. The description fails to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Return') and resource ('bounded private geometry for semantic elements') with context ('explicitly shared tab'). This distinguishes it from visual capture tools like browser_screenshot or browser_snapshot. However, the term 'bounded private geometry' could be more explicit (e.g., bounding boxes or coordinates) to remove ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like browser_snapshot, browser_screenshot, or browser_diagnostics. It only mentions 'explicitly shared tab' as a prerequisite but does not state when the agent should prefer this tool or what conditions exclude its use. No explicit when-not or alternative tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_historyC
Go back or forward only when the caller supplies the exact expected same-origin URL.
| Name | Required | Description | Default |
|---|---|---|---|
| direction | Yes | ||
| expected_url | Yes | ||
| collaboration_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals a key constraint: the tool only performs the action if the supplied URL exactly matches and is same-origin. However, it does not disclose what happens when the condition fails (error, no-op), nor does it mention any side effects like changing the history stack. The single constraint is useful but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 12 words, front-loading the core action and constraint. It is concise and avoids redundancy. However, it could be restructured to also cover parameter roles or usage context without losing brevity. A slightly expanded version would improve completeness while maintaining conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 3 required parameters, no output schema, and no annotations. The description is extremely brief and does not explain return values, error handling, prerequisites (e.g., a page must be loaded), or the effect of the tool on browser state. Given the tool's simplicity, a short description is acceptable, but it lacks essential details for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for undocumented parameters. It only mentions 'expected_url' implicitly but does not explain the meaning or allowed values of 'direction' (back/forward), the role of 'collaboration_id', or the format constraints for 'expected_url'. The description adds minimal value beyond the schema's enum and patterns.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: navigating browser history back or forward. The condition 'only when the caller supplies the exact expected same-origin URL' adds specificity. It distinguishes from siblings like browser_navigate (which goes to a new URL) and browser_reload (reloads current page). The verb 'go back or forward' paired with 'browser history' is clear, though slightly terse.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention when not to use it, prerequisites, or compare with sibling tools such as browser_navigate, browser_reload, or browser_scroll. The implied usage (back/forward navigation) is clear but lacks any exclusionary context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_hoverB
Hover one uniquely identified semantic element in an explicitly shared tab.
| Name | Required | Description | Default |
|---|---|---|---|
| locator | Yes | A semantic accessibility-tree locator; arbitrary CSS and executable scripts are not accepted. | |
| collaboration_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for disclosing behavioral traits. It only states 'hover' without explaining whether the action triggers side effects (tooltips, hover styles), is reversible, or requires specific element states (visible, enabled). No constraints or side effects are mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that immediately conveys the core action and constraints. Every word is necessary; no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a complex locator schema and no output schema, the description is too sparse. It does not explain hover behavior, return values (if any), failure scenarios, or how the locator is used. The complex nested locator object would benefit from usage examples or parameter guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (locator has a helpful description about being a semantic accessibility-tree locator; collaboration_id has none). The tool-level description adds no parameter meaning beyond the schema. Baseline 3 is appropriate since coverage is not low, but the description does not compensate for the missing collaboration_id guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('hover') and the target ('one uniquely identified semantic element in an explicitly shared tab'). This specific verb+resource combination distinguishes browser_hover from sibling tools like browser_click, browser_focus, and browser_scroll.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use hover versus alternative interaction methods (click, focus) or what preconditions must be met (e.g., element visibility). The description does not mention when not to use this tool or suggest alternative tools for related tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_keyC
Dispatch one bounded key chord to an explicitly shared tab. Modifier and Enter/Tab chords can commit or submit a focused form; this crosses the governed mutation boundary.
| Name | Required | Description | Default |
|---|---|---|---|
| keys | Yes | ||
| collaboration_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits, but it only offers vague hints about committing or submitting focused forms. Key traits like whether the key chord is sent synchronously, what happens if the tab is not shared, or whether this is destructive to any state are missing. The phrase 'governed mutation boundary' is jargon without explanation, leaving the agent unaware of side effects 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, which is concise, but the second sentence is dense and uses jargon ('governed mutation boundary') without payoff. The first sentence clearly states the core action. It is not bloated, but the structure does not front-load critical usage information for quick scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given two parameters, no output schema, no annotations, and a moderately complex action (key chord dispatch with boundary crossing), the description is incomplete. It fails to mention return values (e.g., success indicator), error conditions (e.g., invalid key, unshared tab), or behavior with modifier keys. The agent has to guess whether this tool supports backspace, arrow keys, or control sequences beyond Enter/Tab.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it provides no detail about each parameter. The keys parameter is not explained (e.g., accepted key names, chord formatting), and collaboration_id's meaning is left undefined. With two required parameters and zero schema documentation, the description adds no semantic value beyond 'keys exist'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool dispatches a bounded key chord to an explicitly shared tab. It uses specific verbs and resources (dispatch key chord, shared tab) and distinguishes from sibling tools that handle other actions like clicking, typing, or navigation. However, the phrase 'Modifier and Enter/Tab chords can commit or submit a focused form' is somewhat ambiguous and could be clearer about the primary action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like browser_type or browser_click. The description mentions crossing a 'governed mutation boundary' but does not clarify prerequisites (e.g., tab must be explicitly shared via browser_open?) or exclusions. The context around form submission is hinted but not actionable for an AI agent deciding between sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_openB
Open and explicitly grant a new tab on the same origin as an existing shared tab.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| collaboration_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for disclosing behavioral traits. It states the constraint of same origin but does not explain what happens if the URL is invalid, whether the new tab gains focus, or the meaning of 'explicitly grant'. Key behaviors like error handling and permissions are omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 15 words, front-loading the key action and constraint. There is no redundancy or unnecessary detail; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations, output schema, and schema descriptions, the description should compensate by explaining parameters, return values, and side effects. It only covers the core purpose and constraint, leaving significant gaps that an agent needs to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the parameters. The 'url' parameter is partially inferred (the URL to open), but 'collaboration_id' is completely unexplained—its purpose (identifying the shared tab) is not mentioned. The description adds minimal value beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Open' and the resource 'new tab', with a specific constraint 'on the same origin as an existing shared tab'. This distinguishes it from siblings like browser_navigate (which works on the current tab) and browser_tabs (which lists tabs). The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that the tool should be used to open a new tab on the same origin as an existing shared tab, but it does not explicitly state when to use it versus alternatives like browser_navigate or browser_focus. No exclusions or prerequisites are provided, 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.
browser_record_startC
Start an in-memory typed workflow draft.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It only says 'Start' and provides no information about side effects, prerequisites, persistence, return values, or what happens if a recording is already in progress. The phrase 'in-memory' hints at non-persistence but is insufficiently elaborated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise five-word sentence with no wasted words. It is front-loaded and structurally efficient, though the brevity harms other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters), a short description could suffice, but this one lacks essential context about the workflow draft lifecycle, how to stop/stall it, or what 'typed' means. With no output schema and ambiguous terms, an agent cannot confidently infer behavior. Sibling tools like 'browser_record_stop' exist but are not referenced, leaving the workflow incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema is empty (100% coverage). The description does not need to document parameters, and the baseline for 0-parameter tools is 4. No additional parameter semantics are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a verb ('Start') and a resource ('in-memory typed workflow draft'), which is not a tautology. However, 'typed workflow draft' is ambiguous and provides little context for what the tool actually accomplishes in a browser automation context. It trivially differentiates from sibling 'record_stop' and 'record_status' by being the start action, but this is not explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. It does not mention sibling tools like 'browser_record_stop' or 'browser_record_status', nor does it specify any prerequisites or scenarios. Usage context is entirely implied by the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_record_statusC
Return content-free recording state.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It states 'content-free recording state' but doesn't explain what 'recording state' means, whether it's read-only or mutating, or what happens if recording is not active. This is a significant gap for state retrieval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise and front-loaded. It uses minimal words but could be more informative without losing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there are no parameters, no output schema, and no annotations, the description should provide more context about what the returned recording state looks like (e.g., is it a boolean, a status string?) and how it relates to other recording tools. The description is incomplete for a standalone tool among 34 siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and 100% schema description coverage (since there are no params to describe). The description adds clarity by indicating the tool returns 'recording state' but is 'content-free,' which helps set expectations. Since there are no parameters, no additional parameter details are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says 'Return content-free recording state,' which gives a vague purpose. It mentions 'recording state' but doesn't specify what 'content-free' means or what the tool does with respect to recording, making it unclear how it differs from other browser tools like browser_record_status or browser_record_start.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 browser_record_start or browser_record_stop. The description does not mention any prerequisites or exclusions, 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.
browser_record_stopA
Stop recording and return a review-required workflow draft.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for disclosing behavior. It mentions returning a 'review-required workflow draft' but omits side effects (e.g., whether the recording session ends permanently) or error conditions (e.g., no active recording). The behavioral impact is inadequately communicated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the action and result with no extraneous words. Every part is essential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description is minimally adequate. It states the main action and return value but lacks important context such as prerequisites (e.g., must have an active recording) and implications of 'review-required'. More details would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and the schema coverage is 100%. The baseline score for zero parameters is 4, and the description does not need to add parameter details. It correctly handles the absence of inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Stop recording') and the result ('return a review-required workflow draft'). It uses specific verbs and a distinct resource, effectively distinguishing it from siblings like browser_record_start and browser_record_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide guidance on when to use or not use this tool. It lacks explicit prerequisites (e.g., 'use after starting a recording') or exclusions (e.g., 'not for checking status'). The sibling context alone is insufficient for clear usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_region_screenshotC
Capture one bounded document region from an explicitly shared tab.
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | ||
| y | Yes | ||
| width | Yes | ||
| height | Yes | ||
| quality | No | ||
| collaboration_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits. It mentions 'explicitly shared tab' but does not state whether the operation is read-only, what the output format is, or any side effects. The description is too sparse to provide adequate transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, making it concise. However, it is under-specified for the complexity of the tool (6 parameters, no schema descriptions). The brevity sacrifices necessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high parameter count, lack of output schema, and many sibling tools, the description is far from complete. It does not explain the coordinate system, the meaning of 'explicitly shared tab', the quality parameter, or the return value. The agent would have insufficient context to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the schema provides no parameter descriptions. The tool description does not explain any parameters (x, y, width, height, quality, collaboration_id). The phrase 'bounded document region' weakly implies the meaning of coordinates and dimensions, but it is insufficient to guide proper parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Capture one bounded document region from an explicitly shared tab', using a specific verb and resource. It implicitly distinguishes from sibling tools like browser_screenshot or browser_full_page_screenshot by specifying 'bounded document region', but it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 browser_screenshot or browser_full_page_screenshot. It does not mention prerequisites (e.g., tab must be shared) or scenarios where this tool is not appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_reloadA
Reload one explicitly shared exact tab, optionally bypassing cache.
| Name | Required | Description | Default |
|---|---|---|---|
| ignore_cache | No | ||
| collaboration_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral disclosure. It explains the effect (reloads a tab) and the optional bypass-cache behavior. However, it does not mention whether unsaved form data is lost, whether pending downloads are interrupted, or if any permissions are needed. It covers the core action but lacks depth on 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with 9 words, with no filler. Every word serves a purpose: 'reload' (action), 'one explicitly shared exact tab' (scope), 'optionally bypassing cache' (modifier). This is exemplary conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero schema coverage, no annotations, and a simple 2-parameter tool, the description provides a minimal viable specification. It explains what the tool does and the optional behavior, but lacks parameter-level detail for the required collaboration_id and does not explain the return value (since no output schema). It is sufficient for a simple tool but not rich.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions 'bypassing cache' implicitly for ignore_cache, but does not explain how the bypass works or the implications. The required parameter collaboration_id is not explained at all – the agent must infer its meaning (identifying the tab to reload) from context. This is a moderate gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('reload'), the target ('one explicitly shared exact tab'), and the optional modifier ('bypass cache'). This unequivocally distinguishes the tool from siblings like browser_navigate (which changes URL) and browser_open (which opens new tabs).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use it ('reload an explicitly shared exact tab'). However, it does not provide explicit exclusions or direct comparison to alternatives, such as when to use browser_navigate with the same URL versus reload, or when to use ignore_cache. This leaves some ambiguity for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_schedule_cancelC
Cancel one pending in-memory read-only schedule.
| Name | Required | Description | Default |
|---|---|---|---|
| schedule_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must fully disclose behavioral traits. It states the schedule is 'pending in-memory read-only,' implying non-persistent and safe to cancel, but does not address what happens after cancellation (e.g., is the schedule removed entirely? can it be recreated?). It lacks details on side effects, such as whether associated resources are affected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that conveys the essential action and scope with no extraneous 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a cancellation tool with no annotations, output schema, or sibling differentiation, the description is incomplete. It lacks explanation of return values, error states, or interaction with other browser scheduling tools. The agent would not know if cancellation is idempotent or what success looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter (schedule_id) with no description and 0% schema description coverage. The tool description does not explain what a 'pending in-memory read-only schedule' is or how to obtain the schedule_id. However, the parameter name is self-explanatory and the regex pattern provides implicit guidance. The baseline is 1 due to no schema coverage, but the description partially compensates by clarifying the schedule type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific verb (Cancel) and resource (pending in-memory read-only schedule), making its function distinct. It differentiates this tool from siblings like browser_schedule_snapshot or browser_schedule_status by focusing on cancellation. However, it could be slightly more specific about what type of schedule is being cancelled (e.g., a snapshot schedule).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like browser_schedule_status or browser_schedule_result. It does not mention prerequisites (e.g., the schedule must exist), when to avoid use, or how it relates to other scheduling tools. This is a critical gap for a cancellation action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_schedule_resultC
Retrieve and remove one completed private read-only scheduled result.
| Name | Required | Description | Default |
|---|---|---|---|
| schedule_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. The phrase 'Retrieve and remove' implies a destructive action, but it does not specify what happens upon removal, error handling, idempotency, or authentication requirements. The description is insufficient for an agent to understand 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, making it technically concise. However, the brevity comes at the cost of missing critical information. It is not appropriately sized for the tool's complexity and lack of supporting annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations, output schema, and any parameter descriptions, the description is the sole source of context. It fails to explain the return value, side effects, error conditions, or prerequisites. The tool's behavior is inadequately specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage for the single parameter schedule_id. The description does not mention the parameter at all, leaving the agent to infer meaning solely from the name and pattern. The description adds no value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Retrieve and remove') and the resource ('completed private read-only scheduled result'), which gives a specific verb+resource pairing. However, it does not differentiate this tool from siblings like browser_schedule_status or browser_schedule_cancel, which could also involve 'scheduled result' in different ways.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. No context, prerequisites, or conditions are mentioned. The description is a single sentence without any usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_schedule_snapshotC
Schedule one in-memory read-only snapshot while the exact grant and MCP process remain live.
| Name | Required | Description | Default |
|---|---|---|---|
| max_items | No | ||
| delay_seconds | Yes | ||
| collaboration_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It mentions 'in-memory read-only' but does not explain what happens if the process ends, how to retrieve the snapshot, whether a previous scheduled snapshot is replaced, or any rate limits. The vague phrase about 'exact grant and MCP process' is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it leaves out essential details. Conciseness is not a virtue when it sacrifices completeness; the sentence does not earn its place because it is too vague to be useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (scheduling, 3 parameters, no output schema, no annotations), the description is severely incomplete. It does not explain the snapshot lifecycle, parameter semantics, or how to use the result. The tool is part of a family (snapshot, schedule, status, cancel, result), but the description isolates it without context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description adds no information about the three parameters (collaboration_id, delay_seconds, max_items). It does not clarify their purpose, format, or constraints beyond what parameter names imply. This is a critical gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as scheduling a snapshot ('schedule one... snapshot'), distinguishing it from the immediate 'browser_snapshot' sibling. However, the phrase 'while the exact grant and MCP process remain live' is unclear and reduces precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use scheduling versus immediate snapshot, or how this tool relates to sibling tools like browser_schedule_status, browser_schedule_cancel, or browser_schedule_result. The description does not mention prerequisites, alternatives, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_schedule_statusA
Return content-free state for in-memory read-only schedules.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool is 'read-only' and returns a 'content-free state', which indicates no side effects. However, it does not disclose potential error conditions, rate limits, or what the 'state' values look like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence of eight words. Every word is necessary and there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool with no output schema, the description is mostly adequate but could be improved by listing possible state values (e.g., 'active', 'completed') to fully inform the agent of what the 'content-free state' entails.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so baseline is 4. The description adds value by clarifying that the tool returns a 'content-free state', giving the agent expectation beyond the empty schema. This is more than a mere restatement of the name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Return' and resource 'content-free state for in-memory read-only schedules'. It is specific enough to distinguish this tool from siblings like browser_schedule_result and browser_schedule_snapshot, which return full result data or take snapshots respectively.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use cases (checking schedule state without full content) but does not explicitly state when to use this tool versus alternatives like browser_schedule_result, nor does it 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.
browser_screenshotC
Capture the current viewport of one explicitly shared tab as a private JPEG result.
| Name | Required | Description | Default |
|---|---|---|---|
| quality | No | ||
| collaboration_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It reveals basic behavior ('capture current viewport', 'private JPEG result') but omits important traits: whether it works on background/inactive tabs, permission requirements, error behavior if no tab is shared, impact on page state, or the actual dimensions captured.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no redundancy. It front-loads the action and key constraints. However, the brevity sacrifices necessary detail, making it efficient but not fully informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 2 unannotated parameters, no output schema, and 33 siblings including multiple screenshot tools, the description is incomplete. It fails to clarify the return format (beyond 'private JPEG'), error handling, or differences from tools like browser_snapshot and browser_full_page_screenshot.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not mention either parameter ('quality' or 'collaboration_id'). The agent receives no explanation that collaboration_id identifies the shared tab or that quality controls JPEG compression, forcing reliance on parameter names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Capture'), the resource ('current viewport of one explicitly shared tab'), and the output format ('private JPEG result'). It distinguishes this tool from siblings like browser_full_page_screenshot and browser_region_screenshot by specifying 'viewport' and 'one explicitly shared tab'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., full_page_screenshot, region_screenshot, snapshot). It mentions 'explicitly shared tab' but does not explain prerequisites, limitations, 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.
browser_scrollC
Scroll the viewport of one explicitly shared tab by a bounded distance.
| Name | Required | Description | Default |
|---|---|---|---|
| direction | Yes | ||
| distance_px | No | ||
| collaboration_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. It mentions 'bounded distance' but does not disclose whether the scroll is smooth or instant, what happens if the page is shorter than the distance, or how collaboration_id validity is handled. No return value or side effects are described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single 10-word sentence, which is concise. However, conciseness comes at the cost of missing critical information. It earns its place by stating the purpose but does not provide enough content for a tool with 3 parameters and no annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no output schema, no annotations, and 31 sibling tools, the description is severely incomplete. It does not address the collaboration_id requirement, contrast with browser_scroll_to, or explain return behavior. The agent would lack sufficient context to use this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only hints at distance_px via 'bounded distance' but fails to explain direction (up/down) or collaboration_id. The schema provides enums and constraints but no descriptions, and the tool description adds no meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'scroll' and the resource 'viewport of one explicitly shared tab', with 'bounded distance' hinting at the distance_px parameter. This distinguishes it from sibling tools like browser_scroll_to, which likely scrolls to a specific element. However, the phrase 'explicitly shared tab' is vague and could be clarified.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 browser_scroll_to, or on prerequisites such as ensuring the tab is 'explicitly shared'. The description does not mention when not to use it or any context-specific recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_scroll_toC
Scroll one semantic element into view in an explicitly shared tab.
| Name | Required | Description | Default |
|---|---|---|---|
| locator | Yes | A semantic accessibility-tree locator; arbitrary CSS and executable scripts are not accepted. | |
| collaboration_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions scrolling a semantic element into view but does not describe what happens if the element is not found, how scrolling behaves (smooth vs instant), whether it modifies the browser state, or any error conditions. The phrase 'explicitly shared tab' is vague and lacks operational detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 10 words, which is concise. However, it is so brief that it omits important details. It could be expanded to include key behavioral and usage notes without becoming verbose. The structure is front-loaded but not sufficiently informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the locator parameter (nested object with many properties) and the absence of an output schema or annotations, the description is too sparse. It fails to explain what constitutes a 'semantic element', how the locator should be constructed, or how the tool interacts with the browser's accessibility tree. The sibling 'browser_scroll' exists but no differentiation is provided. The description is not complete enough for an agent to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%; the locator object already has a good schema description ('A semantic accessibility-tree locator; arbitrary CSS and executable scripts are not accepted.'). The tool description adds the context 'explicitly shared tab' which hints at the role of collaboration_id. However, it does not further explain the locator's properties or how to use them effectively. Overall, the description provides marginal added value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Scroll one semantic element into view in an explicitly shared tab.' It specifies the verb (scroll), the object (one semantic element), and the context (explicitly shared tab). This is specific enough to distinguish from generic scrolling, though it does not explicitly differentiate from the sibling tool 'browser_scroll'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'browser_scroll' or 'browser_focus'. There is no mention of prerequisites, conditions for use, or when not to use it. The agent is left to infer usage context from the name and schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_selectC
Open a semantic selector and choose one semantic option.
| Name | Required | Description | Default |
|---|---|---|---|
| locator | Yes | A semantic accessibility-tree locator; arbitrary CSS and executable scripts are not accepted. | |
| option_locator | Yes | A semantic accessibility-tree locator; arbitrary CSS and executable scripts are not accepted. | |
| collaboration_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavioral traits. It only states the basic action but omits critical details: does it wait for the selector to appear? What happens if the option is not found? Is state mutated? No error behavior, timing, or side effects are mentioned, making the tool opaque for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence that communicates the core action efficiently. It is front-loaded and free of redundancy. However, it may be too terse for a tool with nested parameters and no annotations, sacrificing necessary detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema, three parameters (including two complex nested objects), and no annotations, the description is severely incomplete. It does not explain return values, error states, or the lifecycle of the selector (e.g., does it close after selection?). The agent lacks critical context to use the tool reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% (2 of 3 parameters have descriptions). The description adds value by explaining that locator and option_locator accept only semantic accessibility-tree locators and reject CSS/scripts, which is not apparent from the property names alone. However, collaboration_id lacks description and the added semantic constraint is minimal. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool opens a semantic selector and chooses a semantic option. It uses specific verbs ('open' and 'choose') and identifies the resource (semantic selector/option). However, it does not explicitly differentiate from sibling tools like browser_click, which could also interact with selectors, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 browser_click or browser_hover. The description lacks any mention of prerequisites, typical use cases, or when not to use this tool, leaving the agent without decision-making support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_snapshotB
Read a bounded accessibility-tree projection from one explicitly shared tab.
| Name | Required | Description | Default |
|---|---|---|---|
| max_items | No | ||
| collaboration_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. It states 'Read' (non-destructive), 'bounded' (with a max_items parameter), and 'accessibility-tree projection' (structured output, not screenshot). However, it doesn't describe what happens if the collaboration_id is invalid, whether the operation is expensive, if there are rate limits, or if the tool modifies any state. The description provides basic safety context but lacks depth for a tool with no other metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence that front-loads the key action and subject. Every word contributes meaning: 'Read' (non-destructive), 'bounded' (size-limited), 'accessibility-tree projection' (structured output), 'explicitly shared tab' (scope). There is no wasted text, but the sentence could be slightly more readable by breaking or adding context. It earns a 4 for being efficient yet clear enough.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 parameters, no output schema, and no annotations, the description is incomplete for safe and effective use. It doesn't describe the return format, error conditions, prerequisites (e.g., needing a valid collaboration_id from a prior tool), or how this projection differs from a full accessibility tree. The browser_tabs sibling likely provides tab IDs, but the link is missing. A tool reading shared tab state needs more context about lifecycle and dependencies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the JSON schema has no textual descriptions for parameters. The description adds meaning: 'collaboration_id' is identified as identifying 'one explicitly shared tab', and 'max_items' is contextualized as a 'bounded' constraint on the projection. However, it doesn't explain what max_items unit is (items=nodes?), what a reasonable value range implies, or how collaboration_id is obtained. The baseline for 0% coverage is low, and the description partially compensates but leaves gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ('Read') and nouns ('accessibility-tree projection', 'shared tab'), clearly indicating the tool reads a structured accessibility view from a specific context. However, it doesn't distinguish this tool from siblings like browser_diagnostics, browser_screenshot, or browser_schedule_snapshot, which could also relate to capturing information from a tab. The term 'bounded' and 'explicitly shared' adds clarity, but the exact scope (vs other read tools) is ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No context is provided about when to use this tool versus alternatives such as browser_screenshot (visual capture), browser_status (general status), or browser_schedule_snapshot (scheduled counterpart). There is no indication of prerequisites (e.g., must call browser_open first, or collaboration_id must be valid) or when not to use it. The agent making a choice among many sibling tools is left with minimal decision guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_statusA
Check whether the local connector is online and how many tabs are explicitly shared.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for transparency. It clearly indicates this is a read-only check (no side effects) and what specific information it provides (online status, explicit tab count). The description adds value beyond what annotations would typically provide by naming the exact outputs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that front-loads the key action ('Check') and concisely states the two outputs (online status, explicit tab count). Every word earns its place with no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has zero parameters and no output schema, the description adequately covers its purpose and behavior. It tells the agent exactly what to expect. The only minor gap is not mentioning what 'online' means in terms of response status, but that's likely implicit in the return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters (0 required, 100% coverage by default), so the description does not need to explain param details. It correctly implies no user input is needed, which is exactly right for a status check. The score is elevated because the description makes it clear what the tool returns despite having no output schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool does: check the local connector's online status and count of explicitly shared tabs. It uses a specific verb 'check' and names the resource 'local connector' and feature 'explicitly shared tabs'. This differentiates it from sibling tools like browser_tabs (which likely lists all tabs) or browser_diagnostics (which may do more comprehensive checks).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for checking connectivity and tab-sharing state, but it does not explicitly state when to use it versus alternatives like browser_diagnostics or browser_tabs. No guidance is given on prerequisites (e.g., connector must be configured) or scenarios where this tool is ideal vs. others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_tabsA
List only HTTPS tabs the user explicitly shared by clicking the LLM Wiki Browser Executor extension. Call this first; never infer or fabricate a collaboration ID.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses key behavioral traits: the tool only returns HTTPS tabs that were explicitly shared, and warns against fabricating IDs. It does not mention side effects or return format, but the behavior is well-specified for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no waste. The main action ('List only HTTPS tabs...') is front-loaded. Every phrase adds value, and the structure is minimal yet complete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description covers essential aspects: what is listed, constraints, and ordering. Lacking return format specification is a minor gap, but the tool's simplicity mitigates this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and schema coverage is 100% (vacuously). The description adds context about the tool's purpose but cannot add parameter semantics. Baseline is 4, as there is no need for parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists only HTTPS tabs explicitly shared via a specific extension, with a strong focus on distinguishing from sibling tools by specifying constraints like 'HTTPS' and 'explicitly shared'. It also includes a clear directive about not inferring or fabricating a collaboration ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: 'Call this first' and 'never infer or fabricate a collaboration ID.' While it doesn't name alternative tools, the context of sibling tools makes it clear this is the tab-listing tool. The instruction is actionable and sets clear boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_typeC
Focus one semantic control and insert private text in an explicitly shared tab; this does not submit the form.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| locator | Yes | A semantic accessibility-tree locator; arbitrary CSS and executable scripts are not accepted. | |
| replace_all | No | ||
| collaboration_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only states 'this does not submit the form', which is one behavioral trait. Missing are details about effects on focus, behavior on failure, what 'private text' means, and whether the action is atomic or reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one sentence) and front-loaded with the action. However, it is overly terse, sacrificing clarity and completeness. It earns a 3 for being concise but not well-structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (4 parameters, nested locator object, no output schema, many sibling tools), the description is severely incomplete. It does not explain the required collaboration_id, the meaning of 'private text', the effect of replace_all, or the locator's role. The description is insufficient 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (25%), and the tool description adds no parameter-level information. None of the four parameters are explained in the description. The locator's schema description is present but not repeated in the tool description. The description does not compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: focus a semantic control and insert text. It distinguishes from siblings like browser_click or browser_key by specifying the combination of focusing and typing. The phrase 'private text' is confusing but does not obscure the core purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks any guidance on when to use this tool versus alternatives. It mentions 'explicitly shared tab' as a context but does not explain prerequisites, when not to use it, or compare to sibling tools like browser_key or browser_focus.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_uploadC
Set one file input from paths inside machine-local registered upload roots.
| Name | Required | Description | Default |
|---|---|---|---|
| paths | Yes | ||
| locator | Yes | A semantic accessibility-tree locator; arbitrary CSS and executable scripts are not accepted. | |
| collaboration_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. The description does not disclose behavioral traits such as whether the tool overwrites the current file input, whether it supports multiple files (though the schema allows up to 16 paths), whether it waits for upload completion, or what happens if a path is invalid. It also lacks any mention of authentication 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short at one sentence, which is efficient. However, it lacks front-loading of critical constraints and could be better organized with additional context at the expense of length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the tool (3 parameters including a complex locator object, no annotations, no output schema), the description is severely incomplete. It does not explain how paths map to file inputs, what 'registered upload roots' are, or what the return value indicates. The agent would likely need to guess or fail, especially without documentation on collaboration_id usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 33% (only the 'locator' field has a description). The description does not add meaning for 'paths' or 'collaboration_id' beyond what the schema provides (e.g., format of paths, relationship to upload roots). Since coverage is low, the description should compensate but does so only minimally by mentioning 'machine-local registered upload roots'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('set one file input') and the resource ('paths inside machine-local registered upload roots'). It distinguishes from sibling tools like browser_download and browser_click, as uploading files via file input is a distinct operation. However, it could more explicitly contrast with other file-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. It does not mention prerequisites like needing a pre-existing file input element on the page, or that the upload roots must be pre-registered. No 'when not to use' or alternative tool suggestions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_waitB
Wait for one bounded semantic condition in an explicitly shared tab.
| Name | Required | Description | Default |
|---|---|---|---|
| locator | Yes | A semantic accessibility-tree locator; arbitrary CSS and executable scripts are not accepted. | |
| timeout_ms | No | ||
| collaboration_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It does not mention that the tool is non-destructive, if it modifies state, or what happens on timeout (e.g., error vs. return). The term 'bounded' is vague and could imply a limit, but the description does not clarify how the condition is enforced or what behavior occurs when it is not met.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately conveys the core purpose and context ('explicitly shared tab'). It avoids unnecessary details and front-loads the key action. The word 'bounded' could be replaced with a more common term like 'limited' for clarity, but overall it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no output schema, and complex nested locator object, the description is minimal but covers the essential purpose and use case. However, it lacks details on return behavior, timeout handling, and interaction with the browser state, which a tool with a nested schema and no annotations should ideally provide. Adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The parameter locator has a description explaining it is a 'semantic accessibility-tree locator' and explicitly excludes CSS and scripts, adding meaning beyond the schema structure. timeout_ms and collaboration_id rely entirely on schema defaults and patterns. With schema coverage at 33% (only locator has description), the description partially compensates by clarifying the locator's nature.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses 'wait' as a specific verb and 'bounded semantic condition' as the resource, distinguishing it clearly from other browser tools like 'click' or 'navigate'. The phrase 'explicitly shared tab' adds context about the target environment. However, 'bounded' is somewhat technical and could be clarified.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used for waiting on a condition in a shared tab, but does not explicitly state when to use this tool versus alternatives like browser_snapshot or browser_dialog for checking page states. No 'when not to use' guidance is provided, and there are no sibling references for differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
34 tool updates
v0.0.1- First observed
browser_click - First observed
browser_close - First observed
browser_credential_fill - First observed
browser_diagnostics - First observed
browser_dialog - First observed
browser_download - First observed
browser_drag - First observed
browser_focus - First observed
browser_full_page_screenshot - First observed
browser_geometry - First observed
browser_history - First observed
browser_hover - First observed
browser_key - First observed
browser_navigate - First observed
browser_open - First observed
browser_record_start - First observed
browser_record_status - First observed
browser_record_stop - First observed
browser_region_screenshot - First observed
browser_reload - First observed
browser_schedule_cancel - First observed
browser_schedule_result - First observed
browser_schedule_snapshot - First observed
browser_schedule_status - First observed
browser_screenshot - First observed
browser_scroll - First observed
browser_scroll_to - First observed
browser_select - First observed
browser_snapshot - First observed
browser_status - First observed
browser_tabs - First observed
browser_type - First observed
browser_upload - First observed
browser_wait
TDQS
Every tool targets a distinct browser action, from navigation and interaction to recording and scheduling. Detailed descriptions clearly differentiate similar operations like screenshots vs. snapshots, making confusion unlikely.
All tools follow the browser_verb or browser_verb_noun pattern in lowercase snake_case, with no mixing of conventions. The naming is predictable and uniform across all 34 tools.
34 tools cover a wide range of browser automation tasks, including diagnostics, recording, and scheduling. While on the higher side, each tool serves a distinct purpose and the count is reasonable for the domain's scope.
The tool set covers core browser workflows: navigation, interaction, screenshot, form handling, upload/download, and tab management. Minor omissions like direct JavaScript execution or page source retrieval are likely intentional for security, so the surface is well-scoped for its constrained environment.
Maintenance
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
Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Stealth web browser for agents: search, fetch, click, download and type in persistent MCP sessions.
Related MCP Servers
- AlicenseAqualityCmaintenanceAgent-native browser control MCP server that enables AI agents to browse and interact with web pages via accessibility tree snapshots and ref ID-based commands.152MIT
- FlicenseCqualityAmaintenanceEnables safe automation of Chrome browser through a local MCP server and Chrome extension, allowing LLMs to control browser tabs, pages, and computer-use actions with permission controls.50-
- FlicenseNot gradedqualityCmaintenanceMCP server that wraps agent-browser to let LLMs control a real browser, providing tools for navigation, interaction, reading page content, accessibility snapshots, screenshots, and session management.1-

browser-relayofficial
AlicenseNot gradedqualityCmaintenanceMCP server that drives a user's real Chrome browser via a WebSocket-connected MV3 extension, enabling tab management, navigation, page interaction, screenshots, and script evaluation through natural language.9MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/nvk/llm-wiki-chrome'
If you have feedback or need assistance with the MCP directory API, please join our Discord server