Skip to main content
Glama
Antigravity Browser Operator

Antigravity Browser Operator

Browser Operator ⚑

Connects your live Google Chrome browser directly to AI Agents and MCP clients without restarting Chrome, bypassing the need for guest profiles or remote debugging flags.

Built with a Manifest V3 Chrome Extension (chrome.tabs, chrome.scripting, chrome.debugger) and a local Model Context Protocol (MCP) Server communicating over an authenticated local WebSocket bridge (ws://127.0.0.1:8765).


🌟 How it Works

graph LR
  A["AI Agent / MCP Client"] -->|MCP stdio| B["Local MCP Server (Node.js)"]
  B <-->|Authenticated WS ws://127.0.0.1:8765| C["Chrome Extension (Manifest V3)"]
  C <-->|chrome.tabs & scripting API| D["Your Live Chrome (Any Website / Web App)"]

Unlike traditional debugging flags (--remote-debugging-port), this architecture works seamlessly inside your existing Chrome instance with:

  • βœ… No Chrome restarts required

  • βœ… Works across ANY website & web application (Gmail, LinkedIn, GitHub, AWS, ChatGPT, etc.)

  • βœ… All active logins & sessions preserved

  • βœ… Full session cookies & 2FA intact

  • βœ… Instant tab switching, clicking, typing, scrolling, and DOM extraction


Related MCP server: agent-chrome

πŸ”’ Security Architecture

To protect your browser against unauthorized local access and malicious websites, the bridge implements multi-layered security controls:

  1. Cryptographic Token Authentication (Shared Secret):

    • All connections to the local WebSocket bridge require a 256-bit entropy token.

    • Automatically generated and securely stored at ~/.browser-operator/token.

    • Unauthenticated or invalid connections are dropped immediately (4001 Unauthorized).

    • Run npm run token to view your security token.

  2. Cross-Site WebSocket Hijacking (CSWSH) Prevention:

    • Web browsers do not enforce Same-Origin Policy on WebSockets by default. To prevent malicious websites visited in your browser from attempting to connect to 127.0.0.1:8765, the bridge inspects the Origin header.

    • Any connection originating from a web page (http:// or https://) is immediately terminated (4003 Forbidden).

    • Only the trusted Chrome Extension origin (chrome-extension://) and local Node.js backend processes are permitted.


πŸš€ Quick Setup (1 Minute)

1. Load the Chrome Extension:

  1. Open Google Chrome and go to chrome://extensions.

  2. Toggle on Developer mode (top right corner).

  3. Click Load unpacked (top left).

  4. Select the extension folder from this project:

    C:\Users\r123t\Documents\www\browser-operator\extension
  5. You'll see the ⚑ Browser Operator icon appear in your Chrome toolbar.

2. Pair with Security Token:

  1. Get your security token by running:

    npm run token

    (or copy it from ~/.browser-operator/token)

  2. Click the Browser Operator icon in Chrome.

  3. Paste the token into the Security Token field and click Save Token.

  4. The status badge will turn green: Connected and Authenticated.


πŸ› οΈ MCP Tools Provided

Tool Name

Description

browser_list_profiles

Lists all Google Chrome user profiles detected on this computer, showing folder names, emails, extension status, and real-time connection state.

browser_launch_profile

Launches a specific Google Chrome user profile window directly by name, folder, or email.

browser_list_tabs

Returns all open tabs across your Chrome windows (ID, title, URL, active state).

browser_select_tab

Focuses / switches to a specific tab by ID.

browser_navigate

Navigates the current tab to any URL and waits for page load.

browser_get_dom

Extracts title, URL, visible text, links, and indexed interactive elements with numerical ref IDs ([1], [2], ...).

browser_click

Clicks elements using an indexed ref (recommended), CSS selector, or visible text (smart-matches buttons/links/inputs and skips scripts/styles).

browser_type

Types into input / text fields by ref or CSS selector with optional Enter keypress.

browser_select_option

Selects an option from a <select> dropdown or custom listbox by ref or selector with value or text.

browser_set_checked

Sets the checked state (true/false) of a checkbox, radio, or toggle switch by ref or selector.

browser_screenshot

Captures visible screenshot of any tab and saves as a PNG/JPEG image to disk (supports Set-of-Marks annotate: true).

browser_scroll

Scrolls tab up or down smoothly.

browser_evaluate

Executes arbitrary JavaScript inside the page context.

browser_upload_file

Uploads local files to file inputs autonomously via Chrome DevTools Protocol & DataTransfer without opening OS file picker.

browser_new_tab

Opens a new tab with a given URL.

browser_close_tab

Closes any specific tab.


πŸ“„ License

MIT Β© Hashan Walauwatta

Available Tools

25 tools
browser_batch_actionsA

Executes multiple sequential browser actions (click, type, wait, scroll, select_option, set_checked, navigate) in a single turn without round-trip LLM pauses. Drastically speeds up multi-step tasks, form filling, and searching.

NameRequiredDescriptionDefault
tabIdNoOptional tab ID.
actionsYesArray of actions to execute sequentially. Supported types: "click" (ref, selector, text), "type" (ref, selector, text, pressEnter), "wait" (ms), "scroll" (direction, amount), "select_option" (ref, value, text), "set_checked" (ref, checked), "navigate" (url).

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full behavioral burden. It does disclose the key trait that actions run sequentially in a single turn without intermediate LLM pauses, which is genuinely useful context beyond the schema. However, it says nothing about failure semantics (does a failing action abort the remaining queue?), whether results are reported per action, or whether implicit waits/timeouts apply β€” significant omissions for a mutating compound tool.

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

Conciseness4/5

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

Two sentences, front-loaded with the what and immediately followed by the why. The second sentence is somewhat promotional ('Drastically speeds up') but justifies batch usage, so it earns most of its place; only minor trimming is warranted.

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

Completeness3/5

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

The tool is moderately complex β€” a compound executor standing in for seven sibling actions β€” with two parameters, no annotations, and no output schema. Given that, the definition is adequate on the happy path but incomplete on error handling and return shape, which an agent needs in order to decide whether to batch or fall back to individual calls.

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

Parameters3/5

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

Schema description coverage is 100%, with the actions array already documenting every supported type and its fields, so the baseline is 3. The description adds no meaning beyond the schema β€” it never explains tabId (e.g., whether it defaults to the active tab) or the ordering guarantee for the queue beyond the word 'sequential', which the schema also states.

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

Purpose5/5

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

The description opens with a specific verb and resource ('Executes multiple sequential browser actions') and enumerates the supported action types (click, type, wait, scroll, select_option, set_checked, navigate). This clearly distinguishes it from the single-action siblings like browser_click, browser_type, and browser_scroll without requiring the reader to open the schema.

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

Usage Guidelines4/5

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

It gives clear triggering context β€” 'multi-step tasks, form filling, and searching' β€” plus the motivating condition (avoiding round-trip LLM pauses). What is missing is an explicit statement of when to prefer the individual sibling tools over batching, or any exclusion such as not batching actions that depend on page state between steps.

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

browser_clickC

Clicks an element on the active or specified tab using an indexed ref, CSS selector, or visible text.

NameRequiredDescriptionDefault
xNoX pixel coordinate to click.
yNoY pixel coordinate to click.
refNoIndexed reference ID of the element (e.g. "1", "2") assigned by browser_get_dom.
textNoVisible text inside element to click.
tabIdNoOptional tab ID.
selectorNoCSS selector of element to click.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description bears the full behavioral burden and provides almost nothing: it does not say whether the click waits for the element, scrolls it into view, whether the tab must be focused or foregrounded, or what happens when no matching element exists. For a mutation-performing browser action this is a substantial gap.

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

Conciseness4/5

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

A single front-loaded sentence with no filler; the verb and target come first. It is efficient, though the enumeration of locator modes it does include is incomplete relative to the six-parameter schema.

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

Completeness3/5

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

With no annotations, no output schema, and zero required parameters, the definition should clarify what happens when no locator is supplied and how the call reports success or failure. None of that is present, leaving the agent to guess at the most failure-prone aspects of a six-parameter click tool.

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

Parameters3/5

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

Schema coverage is 100%, so all six parameters are already documented, which sets the baseline at 3. The description adds a small amount beyond the schema by implying the three locator strategies (ref, selector, text) are interchangeable targeting options and by noting the tab may be active or specified, though it silently omits the x/y coordinate mode that the schema exposes.

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

Purpose4/5

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

States a specific verb and resource ('Clicks an element') plus scope ('on the active or specified tab'), which clearly separates it from siblings like browser_type, browser_select_option, and browser_scroll. No sibling is named as an alternative, but the action is unambiguous.

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

Usage Guidelines2/5

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

The sentence lists which locator styles are accepted but gives no guidance on when to prefer one over another, no precedence rule when several are supplied, and no mention of when to use browser_type or browser_select_option instead. An agent must infer everything about selection strategy.

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

browser_close_tabB

Closes a specific tab in the user’s Chrome browser by tab ID.

NameRequiredDescriptionDefault
tabIdYesThe numeric ID of the tab to close.

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the operation but omits important context for a destructive action: whether the tab is permanently removed, what happens to unsaved state, how errors are handled, or whether permissions are required.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It states the action, target, environment, and mechanism efficiently.

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

Completeness3/5

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

For a simple one-parameter tool with full schema coverage, the description covers the basic operation. However, it omits usage context and any behavioral details, which would be more important given the absence of annotations and output schema.

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

Parameters3/5

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

Schema description coverage is 100%, and the single tabId parameter is already documented in the schema as 'The numeric ID of the tab to close.' The description's phrase 'by tab ID' merely repeats that information, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb and resource: 'Closes a specific tab.' The action 'close' is clearly distinct from sibling operations like browser_list_tabs, browser_select_tab, and browser_new_tab, so an agent can identify the tool's role without opening the schema.

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

Usage Guidelines2/5

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

The description gives no explicit when-to-use or when-not-to-use guidance. It does not mention alternatives such as browser_select_tab or browser_list_tabs, nor does it explain when closing a tab is appropriate versus switching to or listing tabs.

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

browser_evaluateB

Executes arbitrary JavaScript in the context of the active or specified tab and returns the result.

NameRequiredDescriptionDefault
tabIdNoOptional tab ID.
scriptYesJavaScript code to execute.

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It notes that a result is returned, but for an arbitrary-code-execution tool it omits critical traits: that the script can mutate page state, what happens on error/timeout, how results are serialized, and any security or sandbox constraints.

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

Conciseness5/5

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

A single front-loaded sentence with zero waste; the action and scope come first and nothing is padded.

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

Completeness3/5

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

Adequate for a two-parameter tool with full schema coverage and a documented script parameter, but no output schema and no annotations means the risky, error-prone aspects of arbitrary JS execution go undisclosed.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds minimal meaning by clarifying that tabId targets the active tab by default and a specified tab otherwise, but offers no syntax or format detail beyond the schema.

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

Purpose5/5

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

States a specific verb (executes), resource (arbitrary JavaScript), and scope (context of the active or specified tab), plus the return behavior. This clearly distinguishes it from sibling interaction tools like browser_get_dom, browser_click, and browser_type.

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

Usage Guidelines2/5

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

The description never says when to use this tool versus alternatives such as browser_get_dom for DOM extraction or browser_click for interaction. No prerequisites, exclusions, or routing guidance are provided.

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

browser_find_recipeA

Searches the agent’s muscle memory for existing recipes on a domain or task. Returns stored action sequences ready to run via browser_batch_actions.

NameRequiredDescriptionDefault
queryNoSearch keywords describing the desired task (e.g. "upload", "search").
domainNoOptional domain to filter recipes (e.g. "facebook.com").

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the return shape at a high level ('stored action sequences') and that results are filtered by domain or task, but says nothing about behavior when no recipe matches, whether this is a pure read, or how many recipes come back.

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

Conciseness5/5

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

Two short sentences with zero filler: the first defines the search surface, the second defines the return and its downstream consumer. Front-loaded with the action verb and free of hedging.

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

Completeness4/5

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

No output schema exists, so the description must characterize returns β€” it does so by identifying recipes as runnable action sequences for browser_batch_actions. Minor remaining gap: the empty-result case and how to fall back (e.g., learn a new recipe) are unstated.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters are already documented with examples. The description only restates the axes ('domain or task') the schema already defines, adding no filtering semantics, defaults, or interaction rules between query and domain.

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

Purpose4/5

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

States a specific verb and resource ('searches ... for existing recipes on a domain or task') and names the payload it returns ('stored action sequences'). It also implicitly distinguishes itself from browser_save_recipe by being the retrieval side, though it never names that sibling or browser_get_site_memory.

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

Usage Guidelines3/5

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

The phrase 'ready to run via browser_batch_actions' gives a clear follow-up path, so usage is implied: find a recipe, then batch-run it. However, there is no explicit when-to-use/when-not guidance and no differentiation from the closely related browser_get_site_memory sibling.

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

browser_get_console_logsB

Retrieves recent console logs, warnings, runtime errors, and unhandled promise rejections from the page.

NameRequiredDescriptionDefault
clearNoWhether to clear the console log buffer after reading (default: false).
tabIdNoOptional tab ID.
typesNoFilter logs by type (default: returns all types).

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses that unhandled promise rejections are captured (beyond plain console output), but says nothing about the bounded nature of "recent" (buffer size or retention), that the read is non-destructive unless `clear` is set, or what targeting happens when no tabId is supplied.

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

Conciseness5/5

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

A single front-loaded sentence with no filler; the enumeration of captured categories is the most valuable information and appears immediately after the verb. Nothing would be gained by trimming it further.

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

Completeness3/5

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

For a three-parameter read tool with no output schema and no annotations, the description covers what is captured but not what an entry looks like or how many are returned. An agent can call it correctly but cannot predict the response shape or the buffer limit.

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

Parameters3/5

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

Schema description coverage is 100%, so `clear`, `tabId`, and `types` are already documented in the schema; the baseline of 3 applies. The description adds only the vague notion of "recent" and nothing about type filtering semantics or which tab is defaulted to.

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

Purpose4/5

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

States a specific verb and resource ("Retrieves recent console logs") and enumerates the captured categories β€” warnings, runtime errors, unhandled promise rejections β€” which tells an agent exactly what data this surfaces. It never names the closest sibling (browser_get_network_logs), so differentiation relies on the tool name rather than the description.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of prerequisites such as being attached to a tab, and no routing to alternatives like browser_get_network_logs or browser_evaluate. Usage is only inferable from the word "console," which is the same level of guidance a bare name provides.

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

browser_get_domB

Extracts the page title, URL, token-dense compact DOM representation, indexed interactive elements with refs, and clean text of the tab.

NameRequiredDescriptionDefault
tabIdNoOptional tab ID.
includeLinksNoWhether to include standalone links array (defaults to false as elements already index links).
maxTextLengthNoMaximum characters of body text to extract (defaults to 3000 to save tokens).

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full burden. It implies a read-only extraction but never says so, and it omits how the tab is resolved when tabId is absent, what happens if the tab is closed or still loading, and how the text truncation interacts with the returned DOM.

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

Conciseness4/5

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

A single front-loaded sentence with no filler; every clause names a distinct output artifact. It is dense but readable, and nothing is wasted.

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

Completeness4/5

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

With no output schema, the description does the necessary work of enumerating the return payload, which is the main thing an agent needs here. Only the default-tab resolution and failure modes remain unstated, which are secondary for a three-optional-parameter read tool.

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

Parameters3/5

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

Schema coverage is 100%, so all three parameters are already documented, including the token-saving default of 3000 characters. The description's phrase "token-dense compact DOM" reinforces the token-economy rationale but adds no syntax or format detail beyond the schema.

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

Purpose4/5

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

States a specific verb ("Extracts") and enumerates the exact artifacts returned: page title, URL, compact DOM, indexed interactive elements with refs, and clean text. An agent can distinguish this read/inspection tool from siblings like browser_screenshot or browser_evaluate, though no sibling is named explicitly.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance, and no mention of the natural pairing with browser_click via the returned refs. The agent must infer that this is the discovery step before interaction.

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

browser_get_network_logsA

Retrieves recent network activity (Fetch, XHR, resource requests, status codes, failed requests, and response times).

NameRequiredDescriptionDefault
clearNoWhether to clear the network log buffer after reading (default: false).
limitNoMaximum number of requests to return (default: 50).
tabIdNoOptional tab ID.
failedOnlyNoWhen true, returns only failed HTTP requests (status 4xx, 5xx, or network errors).

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full burden. It does convey the read-only retrieval nature and the word 'recent' hints at a bounded buffer, but it says nothing about the capture window, whether logs are per-tab or global, whether they accumulate across navigations, or what happens when the buffer is empty or the tab ID is unknown.

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

Conciseness5/5

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

A single front-loaded sentence: verb, resource, then a parenthetical inventory of the returned fields. No filler, no restatement of the tool name, and the enumerations earn their place by telling the agent what evidence is available.

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

Completeness4/5

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

With no output schema, the description usefully compensates by enumerating the returned data fields (status codes, failed requests, response times), and the schema fully documents the four parameters. What is missing is operational context β€” when to prefer it over console logs and how the log buffer behaves β€” which keeps it from a 5.

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

Parameters3/5

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

Schema description coverage is 100% β€” every parameter (clear, limit, tabId, failedOnly) has an inline description covering default and semantics. The description adds no parameter detail beyond that, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb+resource (retrieves network activity) and enumerates exactly what kinds of entries come back (Fetch, XHR, resource requests, status codes, failures, timings), so an agent knows this is the network-log reader and not the console-log reader. It does not explicitly name the nearest sibling, browser_get_console_logs, so it stops short of a 5.

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

Usage Guidelines3/5

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

Usage is only implied by the resource name: an agent can infer 'call this when debugging network traffic or failed requests.' There is no explicit when-to-use statement, no mention of the alternative (browser_get_console_logs or browser_evaluate), and no note about preconditions such as the tab needing to exist or traffic needing to have occurred.

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

browser_get_site_memoryA

Retrieves all learned knowledge, known quirks, and saved recipes for a specific domain or the active tab.

NameRequiredDescriptionDefault
tabIdNoOptional tab ID to extract domain from active tab.
domainNoWebsite domain or URL to inspect memory for.

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full burden: "Retrieves" establishes this is a non-mutating read, and it names the categories of content returned. It does not disclose what happens when no memory exists for a domain, whether results are capped, or how the knowledge is structured, which matters because there is no output schema.

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

Conciseness5/5

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

One sentence, front-loaded with the verb and scope, with zero filler. Nothing could be removed without losing information.

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

Completeness3/5

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

For a two-optional-parameter read tool with no annotations and no output schema, the description covers purpose and selector choice but leaves the return shape and empty-state behavior unexplained. Adequate, but an agent cannot predict what it will receive.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are already documented; the phrase "a specific domain or the active tab" adds the useful signal that the two parameters are alternative selectors rather than cumulative. Beyond that it adds no format or precedence detail, so the baseline of 3 applies.

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

Purpose4/5

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

Uses a specific verb ("Retrieves") and enumerates the resource concretely: learned knowledge, known quirks, and saved recipes for a domain. It is clearly distinct from write-side siblings like browser_learn_site_quirk and browser_save_recipe, but it never names or contrasts itself with browser_find_recipe, which is the closest read-side alternative.

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

Usage Guidelines3/5

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

"for a specific domain or the active tab" implies the two ways to invoke it, but there is no explicit guidance on when to use this tool versus browser_find_recipe or when to prefer domain over tabId. Usage is inferable rather than stated.

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

browser_handle_dialogA

Handles, accepts, or dismisses browser native JavaScript modal dialogs (alerts, confirms, prompts, and "Leave site?" beforeunload dialogs) using Chrome DevTools Protocol.

NameRequiredDescriptionDefault
tabIdNoTarget tab ID (optional, defaults to active tab).
acceptNoWhether to accept (click Leave/OK/Yes) or dismiss (click Cancel/No). Defaults to true.
promptTextNoOptional prompt text to enter into the dialog.

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are supplied, so the description must carry the behavioral load, and it does disclose the accept-vs-dismiss semantics and that prompt text can be entered. However it omits operationally important behavior: what happens if no dialog is open (error vs no-op), whether unhandled dialogs block subsequent commands, and any timing/wait requirement. Those gaps matter for a tool whose whole purpose is unblocking a page.

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

Conciseness4/5

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

A single front-loaded sentence with the verb and dialog taxonomy up front and zero redundancy. The trailing 'using Chrome DevTools Protocol' is implementation detail that adds little for the selecting agent, keeping it just short of a 5.

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

Completeness3/5

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

For a 3-optional-parameter, no-output-schema tool, the description covers what the tool acts on and how accept/dismiss work, which is close to sufficient. What is missing is the failure/precondition story β€” whether it errors when no dialog exists and whether dialogs block other browser commands β€” which is the main thing an agent needs to call this correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters (tabId, accept, promptText) are already fully documented in the schema, including defaults. The description adds no meaning beyond that baseline β€” it does not, for example, clarify that promptText is ignored for alert/confirm dialogs.

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

Purpose5/5

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

States a specific verb set (handles/accepts/dismisses) and a precisely bounded resource: native JavaScript modal dialogs, with the four concrete types enumerated (alert, confirm, prompt, beforeunload). No sibling tool touches native dialogs, so an agent can route here unambiguously.

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

Usage Guidelines3/5

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

Usage is only implied β€” an agent must infer that this is the tool to call when a dialog is blocking the page. There is no explicit 'call this when you see an alert/confirm' trigger, no mention of what to do instead if no dialog is present, and no guidance on sequencing relative to browser_click or browser_navigate, which are the actions that typically spawn dialogs.

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

browser_launch_profileA

Launches a specific Google Chrome user profile window directly by name, folder directory (e.g. "Profile 13", "Default"), or email, optionally navigating to an initial URL. Bypasses the Chrome profile picker dialog entirely.

NameRequiredDescriptionDefault
urlNoOptional initial URL to open in the newly launched Chrome profile window.
profileYesThe profile name (e.g. "Work", "Hashan", "Clean"), folder name ("Profile 13", "Default"), or user email ("hashanwalawwatta@gmail.com").

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the behavioral burden by itself. It does disclose a non-obvious trait β€” that it skips the profile picker and opens the window directly β€” and accepts three identifier forms. It omits what happens when the profile name does not match, whether Chrome must already be installed/running, and what the caller receives back (no output schema exists to answer that).

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

Conciseness4/5

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

Two tight sentences, front-loaded with the action and followed by the picker-bypass detail; nothing is filler. Slightly redundant in re-listing the identifier forms that the schema already states.

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

Completeness4/5

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

For a two-parameter launch tool with no annotations and no output schema, the description covers action, input forms, and the optional URL case adequately. The main residual gap is return value/error behavior when the profile is not found or the launch fails.

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

Parameters3/5

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

Schema coverage is 100% and both parameters are already documented in the schema, including the three accepted profile identifier forms (name, folder like "Profile 13", email). The description restates the same forms rather than adding new semantics such as case sensitivity or match precedence when a name and folder collide, so the baseline of 3 applies.

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

Purpose4/5

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

Uses a specific verb+resource ("Launches a ... Google Chrome user profile window") and even states the exact mechanism being bypassed ("Bypasses the Chrome profile picker dialog entirely"). It does not explicitly name the sibling it is distinct from β€” browser_list_profiles, the obvious discovery counterpart β€” so the differentiation is implied rather than stated.

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

Usage Guidelines3/5

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

The description makes the use case reasonably clear: open a new Chrome window already loaded in a named profile. However, it gives no explicit guidance on when to prefer this over browser_new_tab/browser_navigate, and no note that browser_list_profiles should be called first to discover valid profile identifiers.

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

browser_learn_site_quirkB

Records a site-specific quirk, pitfall, selector tip, or bypass rule into the long-term knowledge library.

NameRequiredDescriptionDefault
quirkYesThe observed quirk or behavior (e.g. "Search box uses div[role=textbox] not input").
adviceNoRecommended solution or strategy for future agents.
domainYesWebsite domain (e.g. "facebook.com", "youtube.com").
categoryNoCategory of quirk.
selectorNoOptional reliable CSS selector.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full behavioral burden, and it only conveys durability ('long-term knowledge library'). It says nothing about whether entries are deduplicated or overwritten, whether a domain/session must be active, whether the write is idempotent, or what confirmation comes back. For a persistence/write tool with zero annotation coverage, that is a meaningful gap.

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

Conciseness4/5

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

A single front-loaded sentence with the verb and resource up front and no filler. It is slightly redundant in re-enumerating quirk types that the schema's enum and property descriptions already cover, but the wording is efficient.

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

Completeness3/5

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

With five fully documented parameters and no output schema, the description only needs to add behavior, not return values. It leaves idempotency, duplicate handling, and retrieval expectations unstated, which matters for a knowledge-library write tool that pairs with browser_get_site_memory.

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

Parameters3/5

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

Schema description coverage is 100% with examples and an enum for category, so the schema already carries the parameter meaning. The description adds no syntax, format, or prioritization guidance (e.g., how specific 'domain' should be, when to supply 'advice' vs 'selector') beyond what the schema states.

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

Purpose4/5

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

The description uses a specific verb ('Records') and names the resource precisely ('site-specific quirk, pitfall, selector tip, or bypass rule') as well as the destination ('long-term knowledge library'). It is clearly distinguishable from read-side siblings like browser_get_site_memory and from browser_save_recipe, though it never names those siblings explicitly.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer it should call this after discovering a site-specific pitfall, but the description never states when to use this versus browser_save_recipe or browser_get_site_memory. No exclusions, prerequisites, or 'do not use for X' guidance is given.

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

browser_list_profilesB

Lists all Google Chrome user profiles detected on this computer (e.g. Personal, Work, Clean, Hashan), showing profile folder names ("Default", "Profile 13"), profile display names, emails, whether the Browser Operator extension is installed, and real-time WebSocket connection status.

NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It helpfully discloses the output fields including profile names, emails, extension presence, and real-time WebSocket status, which is valuable for a zero-parameter list tool. However, it does not explicitly state that the operation is read-only, whether it has any side effects, or what permissions or prerequisites are required.

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

Conciseness4/5

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

The description is a single front-loaded sentence that clearly states the action before enumerating returned details. It is dense but every clause appears to serve the purpose of describing return values, though the parenthetical examples add some length.

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

Completeness4/5

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

For a simple zero-parameter listing tool with no output schema and no annotations, the description provides substantial detail about what information is returned. It could be more complete by clarifying prerequisites such as Chrome running or extension requirements, but it is largely sufficient for correct invocation.

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

Parameters4/5

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

The tool has zero parameters, so there is no parameter semantics to explain. The baseline score for a zero-parameter tool is 4, and the description appropriately does not discuss parameters.

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

Purpose4/5

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

The description uses the specific verb 'Lists' and clearly identifies the resource as all Google Chrome user profiles detected on this computer. It details the returned fields, making the purpose understandable without opening the schema. However, it does not explicitly distinguish itself from related sibling tools such as browser_launch_profile.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus alternatives like browser_launch_profile. The use case is implied by the description of listing profiles, but no conditions, exclusions, or alternative recommendations are provided.

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

browser_list_tabsA

Lists all open tabs across all active Chrome windows and profiles, returning tab ID, title, URL, active status, and profile name.

NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description must carry the full behavioral burden. 'Lists' implies a non-destructive read and the enumerated return fields help, but it doesn't state that it is read-only, whether a browser/profile must already be running, tab ordering, or whether background/minimized tabs are included.

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

Conciseness5/5

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

A single front-loaded sentence with the scope up front and the return payload at the end; no filler or redundancy.

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

Completeness4/5

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

For a zero-parameter read tool with no output schema, describing the returned fields (tab ID, title, URL, active status, profile name) covers the main gap an agent would have. Only the preconditions for calling it, such as requiring a launched profile, are left unstated.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4 and there is nothing for the description to clarify. It correctly avoids inventing parameter behavior.

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

Purpose5/5

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

States a specific verb and resource ('Lists all open tabs') plus scope ('across all active Chrome windows and profiles') and even enumerates the returned fields. It is clearly distinguishable from browser_list_profiles and browser_select_tab without opening any schema.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer this is the discovery step before select/close/navigate, but the description never says when to use it versus browser_list_profiles or how it relates to browser_select_tab. No exclusions or prerequisites are stated.

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

browser_navigateA

Navigates the specified or active tab in the user’s Chrome browser to a URL and waits for page load.

NameRequiredDescriptionDefault
urlYesThe URL to navigate to.
tabIdNoOptional tab ID. If omitted, navigates the active tab.
waitUntilNoWait condition: "interactive" (default, fast - resolves as soon as DOM is ready) or "complete" (waits for all background ads/trackers).

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose one real behavioral trait: the call blocks until page load completes. It says nothing about what happens on navigation failure (bad URL, timeout, blocked page), whether an error is thrown or returned, or whether any auth/profile state is required.

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

Conciseness5/5

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

A single front-loaded sentence with the verb, scope, and blocking behavior in one pass; no filler, no restatement of the name, nothing that could be cut without losing information.

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

Completeness4/5

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

For a simple three-parameter navigation tool with no output schema, the description covers what the tool does and that it waits for load. The remaining gap is failure semantics β€” what an agent should expect when navigation does not succeed β€” which is material for an agent that must recover from errors.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters β€” including the waitUntil enum semantics β€” are already fully documented in the schema. The description's 'specified or active tab' only restates the tabId default behavior, adding no new meaning beyond structured fields.

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

Purpose4/5

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

States a specific verb (navigates) and resource (tab in the user's Chrome browser) plus the target (a URL), which is unambiguous. It does not name the sibling it is not β€” notably browser_new_tab, which is the obvious confusion point β€” so sibling differentiation is only implicit.

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

Usage Guidelines3/5

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

The phrase 'specified or active tab' implies this tool drives an existing tab rather than opening one, which hints at when to use it versus browser_new_tab. However, there is no explicit when-to-use/when-not guidance, no mention of prerequisites such as a launched profile, and no named alternative.

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

browser_new_tabB

Opens a new tab in the user’s Chrome browser with a specified URL, optionally in a designated profile.

NameRequiredDescriptionDefault
urlYesThe URL to open.
profileNoOptional profile name or folder (e.g. "Work", "Clean") to open this tab in.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full behavioral burden, and it discloses little beyond the basic action. It does not say whether a browser session must already be running, whether the named profile must first be launched via browser_launch_profile, whether the new tab becomes the active tab, or how failures (bad URL, unknown profile) are handled.

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

Conciseness4/5

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

A single well-formed sentence with the action front-loaded and no filler. It could be marginally improved by appending the key alternative or prerequisite, but nothing in it is wasted.

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

Completeness3/5

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

The tool is simple (2 params, full schema coverage, no output schema), so the description need not explain return values. However, for a browser-automation tool with no annotations, the missing prerequisites (existing session, profile availability, tab activation) are real gaps an agent would want covered.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are already documented, including the profile examples ('Work', 'Clean'). The description's phrase 'optionally in a designated profile' simply restates the schema without adding format, defaulting, or validation semantics, so the baseline 3 applies.

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

Purpose4/5

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

The description gives a specific verb and resource β€” 'Opens a new tab in the user's Chrome browser' β€” plus the scope of a URL and optional profile. It is clear what the tool does, but it never distinguishes itself from close siblings like browser_navigate (navigate existing tab) or browser_launch_profile, so the agent must infer which one to reach for.

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

Usage Guidelines3/5

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

Usage is only implied: the word 'new' suggests using this instead of navigating the current tab, and 'optionally in a designated profile' hints at multi-profile scenarios. There is no explicit when-to-use or when-not-to-use statement and no mention of browser_navigate or browser_launch_profile as alternatives.

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

browser_save_recipeA

Saves a successful multi-step workflow/macro into the agent’s muscle memory. Stored recipes can be recalled and executed in seconds for repetitive site tasks.

NameRequiredDescriptionDefault
nameYesUnique identifier name for this workflow (e.g. "search_daraz_item", "upload_facebook_reel").
notesNoOptional tips or timing notes.
domainYesDomain name for this recipe (e.g. "facebook.com", "google.com").
actionsYesArray of batch actions (click, type, wait, scroll, select_option, set_checked) that form the recipe.
descriptionNoWhat this recipe accomplishes.

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full load. It usefully discloses that the write is persistent and later retrievable ('recalled and executed in seconds'), which is real behavioral context beyond the schema. However it is silent on the important mutation traits: what happens if a recipe with the same name already exists (overwrite vs. error), where the recipe is stored, and whether it is scoped per profile or globally.

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

Conciseness5/5

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

Two short sentences with zero redundancy, front-loading the core action before the value proposition. Nothing is padded.

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

Completeness3/5

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

For a five-parameter persistent-write tool with no annotations and no output schema, the description covers the what and why but omits the operational details an agent needs: name-collision behavior, storage scope, and what is returned on save. Adequate but with clear gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter including nested action semantics is already documented in the schema (name, domain, actions, notes, description). The description adds no further meaning to individual parameters, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb+resource: it saves a multi-step workflow/macro as a persistent 'recipe'. The framing as 'muscle memory' and the note that recipes are recalled later makes the write-side role clear against the sibling browser_find_recipe, which is the read side. It stops short of naming that sibling explicitly.

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

Usage Guidelines3/5

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

The phrase 'for repetitive site tasks' implies when to use it, but there is no explicit guidance such as 'use after browser_batch_actions succeeds' or 'use browser_find_recipe to recall'. No exclusions or prerequisites are stated.

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

browser_screenshotB

Captures a visible screenshot of the active or specified tab in Chrome and saves it as an image on disk.

NameRequiredDescriptionDefault
tabIdNoOptional tab ID.
formatNoImage format (defaults to "jpeg" for fast lightweight transfer).
qualityNoCompression quality 1-100 (defaults to 80 for jpeg).
annotateNoWhen true, paints visual Set-of-Marks (SoM) numbered badges matching element refs directly onto the screenshot before capturing, perfect for multimodal visual reasoning.
savePathNoOptional file path to save the image. If omitted, saves to project screenshots folder.

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose two useful traits: the capture is 'visible' (viewport-limited, not full-page) and it writes a file to disk. It omits what is returned (file path vs. image payload), overwrite behavior on savePath collisions, and failure modes for an invalid tabId.

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

Conciseness5/5

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

A single front-loaded sentence that identifies the action, target, and persistence behavior with no filler. Nothing in it is redundant or out of order.

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

Completeness3/5

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

Five all-optional parameters and no output schema mean the description should clarify what the caller gets back and whether the write is safe to repeat; neither is addressed. The stated purpose and disk-write disclosure make it viable, but not complete for a tool that mutates the filesystem.

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

Parameters3/5

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

Schema description coverage is 100%, so all five parameters including format, quality, annotate, and savePath defaults are already documented in the schema. The only added meaning is the 'active or specified tab' phrasing, which implicitly explains what happens when tabId is omitted; that is a marginal contribution over structured data.

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

Purpose4/5

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

The description names a specific verb (captures) and resource (screenshot of a tab in Chrome), plus scope ('active or specified tab') and the side effect (saves as an image on disk). It does not explicitly contrast with any sibling, but no sibling overlaps in function, so an agent can place it accurately.

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

Usage Guidelines2/5

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

The description states what it does but never says when to reach for it versus alternatives such as browser_get_dom or browser_evaluate for page inspection, nor any conditions or exclusions. The only implied usage cue is 'active or specified tab', which is about targeting, not tool selection.

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

browser_scrollC

Scrolls the active or specified tab up or down.

NameRequiredDescriptionDefault
tabIdNoOptional tab ID.
amountNoPixel amount to scroll.
directionNoDirection to scroll.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden and falls short: it does not state what happens when tabId is omitted, what the default scroll amount or direction is, whether scrolling is smooth or instant, or whether the tab must be focused first. 'Active or specified tab' is the only behavioral hint.

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

Conciseness4/5

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

One short, front-loaded sentence with no filler. It is efficient, though the terseness borders on under-specification rather than tightness.

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

Completeness3/5

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

For a simple three-parameter action tool with no output schema and no required parameters, the description is minimally adequate but omits defaults for the optional amount/direction/tabId, which an agent needs to call it predictably.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters are already documented in the schema; the baseline of 3 applies. The description adds no format, default, or unit detail beyond what the schema states.

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

Purpose4/5

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

States a specific verb ('scrolls') and resource ('the active or specified tab') with the axis of motion ('up or down'). No sibling performs scrolling, so differentiation is implicit; only the lack of explicit scope detail (viewport vs. page) keeps it from a 5.

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

Usage Guidelines2/5

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

The description offers no when-to-use guidance, no prerequisites, and never references alternatives (e.g., browser_evaluate with scrollIntoView). An agent must infer entirely that this is the tool for viewport movement.

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

browser_select_optionB

Selects an option from a dropdown or listbox on the active or specified tab.

NameRequiredDescriptionDefault
refNoIndexed reference ID of the select element.
textNoVisible label text of the option to select.
tabIdNoOptional tab ID.
valueNoValue of the option to select.
selectorNoCSS selector of the select element.

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full burden, yet it only states the target ('active or specified tab'). It says nothing about whether the action waits for the element, fires change events, handles disabled or multi-select options, or what happens on failure. For a UI-mutating browser automation tool with zero annotation coverage, this is a substantial gap.

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

Conciseness5/5

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

A single front-loaded sentence with no filler; the resource and target scope appear immediately. Nothing could be trimmed without losing content.

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

Completeness3/5

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

With five optional parameters, no annotations, and no output schema, the description leaves the key calling ambiguity unresolved: whether to identify the element by ref or CSS selector and whether to select by visible text or value. It is minimally viable but not complete for an agent that must choose among these combinations.

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

Parameters3/5

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

Schema description coverage is 100%, so all five parameters are already documented, which sets the baseline at 3. The description's 'active or specified tab' merely restates that tabId is optional and adds nothing about how ref vs. selector or text vs. value should be chosen when zero parameters are required.

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

Purpose4/5

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

Names a specific verb ('Selects') and resource ('an option from a <select> dropdown or listbox'), which is enough to distinguish it from browser_click or browser_set_checked. It doesn't explicitly say how it differs from those siblings, keeping it short of a 5.

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

Usage Guidelines3/5

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

The phrase '<select> dropdown or listbox' implicitly scopes usage to native select elements, implying browser_click for custom widgets, but this is left for the agent to infer. There is no explicit when-not guidance or named alternative, so usage is only implied.

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

browser_select_tabB

Switches to / focuses a specific tab in the user’s Chrome browser by tab ID.

NameRequiredDescriptionDefault
tabIdYesThe numeric ID of the tab to focus.

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it discloses the core effect (focus/switch to the tab). It omits edge behavior such as what happens if the tab ID is invalid or whether the Chrome window is brought to the foreground. Minimum viable for a simple focus operation, but thin on behavioral depth.

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

Conciseness5/5

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

A single front-loaded sentence with no filler. The action and its target are stated immediately.

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

Completeness3/5

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

For a one-parameter tool with no output schema, the description covers the essential action. However, it gives no indication of error conditions or where the tab ID originates, leaving minor gaps for an agent.

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

Parameters3/5

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

Schema description coverage is 100%, so the single tabId parameter is already fully documented by the schema. The phrase 'by tab ID' reinforces but adds no new meaning. Baseline 3 is appropriate.

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

Purpose4/5

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

States a specific verb (switches/focuses), resource (a specific tab), and mechanism (by tab ID). It reads clearly against siblings like browser_new_tab and browser_close_tab, though it never explicitly names them.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no reference to alternatives. It does not tell the agent that the tab ID must first come from browser_list_tabs, nor when to prefer this over browser_navigate or browser_new_tab.

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

browser_set_checkedB

Sets the checked state of a checkbox, radio button, or switch toggle.

NameRequiredDescriptionDefault
refNoIndexed reference ID of the checkbox/radio element.
tabIdNoOptional tab ID.
checkedNoDesired checked state (true or false). Default is true.
selectorNoCSS selector of the checkbox/radio element.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full transparency burden, but it discloses almost no behavior. It does not say whether events such as change/input are dispatched, what happens if the element is already in the requested state, whether setting checked=false on a radio button is a no-op or discards the group selection, or how errors are surfaced.

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

Conciseness5/5

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

A single front-loaded sentence with zero filler; every word contributes to identifying the resource and the types of widgets affected.

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

Completeness3/5

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

The parameter surface is small and fully described by the schema, so the definition is close to callable. However, with no annotations and no output schema, the missing behavioral detail about event dispatch, radio semantics, and return value leaves real gaps for a multi-parameter mutation tool.

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

Parameters3/5

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

Schema description coverage is 100%, so both the ref and selector targeting options and the checked default of true are already documented in the schema. The description adds nothing about precedence between ref and selector when both are given, or about the optional tabId. Baseline 3 applies.

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

Purpose4/5

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

The description uses a specific verb ('Sets') with a specific resource and enumerates the affected widget types: checkbox, radio button, and switch toggle. An agent can immediately tell this mutates form-control state. It stops short of a 5 because it does not say how it differs from the nearby browser_click or browser_select_option siblings.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no statement of when to prefer this over browser_click on a checkbox or over browser_select_option, and no prerequisites such as whether the element must be visible or in the current tab. The agent must infer the routing decision 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_typeC

Types text into an input or textarea element on the active or specified tab.

NameRequiredDescriptionDefault
refNoIndexed reference ID of the input element (e.g. "1", "2") assigned by browser_get_dom.
textYesText to type.
tabIdNoOptional tab ID.
selectorNoCSS selector of input element.
pressEnterNoWhether to press Enter after typing.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full burden of behavioral disclosure and does not meet it. It never states whether typing replaces or appends to existing content, whether the element is focused first, or what happens if the element is missing or not editable β€” all material for a mutation-style action.

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

Conciseness4/5

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

A single front-loaded sentence with no wasted words. It is efficient, though the terseness borders on under-specification given the tool's five parameters.

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

Completeness2/5

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

For a five-parameter interaction tool with no annotations and no output schema, the description is thin. It omits target-selection precedence, the browser_get_dom prerequisite for refs, and any failure behavior, leaving the agent to infer how to call it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so each of the five parameters (ref, text, tabId, selector, pressEnter) is already documented in the schema. The description adds no extra meaning, such as whether ref and selector are mutually exclusive or which takes precedence β€” the baseline 3 is appropriate here.

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

Purpose4/5

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

States a specific verb ('Types') and resource ('text into an input or textarea element'), which distinguishes it from siblings like browser_click, browser_set_checked, and browser_select_option. It does not, however, clarify how the target is chosen (ref vs selector) or how it relates to browser_get_dom, which produces the refs it consumes.

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

Usage Guidelines2/5

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

There is no explicit when-to-use guidance and no mention of alternatives or prerequisites. Critically, an agent is not told that a ref must typically first be obtained via browser_get_dom, nor when to prefer ref over selector.

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

browser_upload_fileB

Uploads a local file to a file input on the active or specified tab completely autonomously without opening OS file picker.

NameRequiredDescriptionDefault
refNoOptional indexed reference ID from browser_get_dom.
tabIdNoOptional tab ID.
filePathYesAbsolute local file path to upload (e.g. D:\facebook-ai-agent\assets\cover.jpg).
selectorNoOptional CSS selector of the file input (defaults to input[type="file"]).

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses that no OS file picker is opened and the upload is autonomous, but omits failure behavior, whether it dispatches change/input events (critical for JS frameworks), and permission or path-validation constraints.

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

Conciseness4/5

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

A single front-loaded sentence with the core behavior stated first. 'Completely autonomously without opening OS file picker' is slightly redundant phrasing but every clause carries information.

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

Completeness3/5

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

For a four-parameter automation tool with no annotations and no output schema, the description covers the headline behavior but leaves out what an agent needs to recover from failure or to know how the upload is injected. Adequate but with clear gaps.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all four parameters thoroughly, including examples and defaults. The description only echoes the tab scoping and file-input target, adding no syntax or precedence detail beyond the schema; baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Uploads a local file to a file input') with clear scope ('active or specified tab'), which distinguishes it from generic input tools like browser_type and browser_click. It does not name any sibling explicitly, so it falls short of a 5.

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

Usage Guidelines3/5

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

Usage is only implied: an agent infers it should be used when a page has a file input. There is no guidance on when to prefer this over browser_click on a picker button, no note on ref vs selector vs tabId precedence, and no stated preconditions.

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

browser_wait_forB

Waits for an element to appear, become visible, clickable, hidden, or waits for network idle (pending API requests to finish).

NameRequiredDescriptionDefault
refNoIndexed reference ID of the element to wait for.
textNoVisible text content of the element to wait for.
stateNoCondition state to wait for (default: "visible"). Use "network_idle" to wait until background API/fetch requests settle.
tabIdNoOptional tab ID.
timeoutNoMaximum milliseconds to wait (default: 10000ms).
selectorNoCSS selector of the element to wait for.

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations supplied, the description carries full behavioral burden. It does disclose the wait semantics and that network idle means pending API/fetch requests finish, but it never states what happens on timeout (throw, return false, silent success), whether the call blocks the agent, or whether selecting among ref/selector/text changes behavior.

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

Conciseness4/5

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

A single front-loaded sentence with no filler; the condition list is packed efficiently into one clause. It is slightly awkward syntactically ('or waits for network idle' breaks the parallel structure of the state list), but nothing is wasted.

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

Completeness3/5

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

Six optional parameters, no annotations, and no output schema mean the description is the only place to explain failure behavior and how the mutually exclusive element locators (ref vs selector vs text) interact. It explains the conditions but not the outcome of a failed wait, which is the main thing an agent needs to handle.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents ref, text, state, tabId, timeout, and selector, making 3 the baseline. The description's only added meaning, the parenthetical about pending API/fetch requests, is already present in the schema's own enum description, so nothing new is contributed.

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

Purpose4/5

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

Names a specific verb (waits for) and a specific resource (an element) plus the network-idle mode, which clearly distinguishes it from action siblings like browser_click or browser_get_dom. The one gap: 'appear' is not one of the enumerated states in the schema, so the purpose is slightly looser than the schema allows, and no sibling is named for contrast.

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

Usage Guidelines2/5

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

There is no explicit when-to-use or when-not-to-use guidance, no mention of what to do instead of this tool (e.g., polling, browser_evaluate), and no statement of prerequisites such as a tab/context existing or a prior browser_navigate. Usage is only weakly implied by the list of states.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 20 tool updatesv1.4.0
    • Addedbrowser_batch_actions
    • Changedbrowser_click3 fields changed
      • addedInput schema / properties / ref
        Added value: +{
        +  "description": "Indexed reference ID of the element (e.g. \"1\", \"2\") assigned by browser_get_dom.",
        +  "type": "string"
        +}
      • addedInput schema / properties / x
        Added value: +{
        +  "description": "X pixel coordinate to click.",
        +  "type": "number"
        +}
      • addedInput schema / properties / y
        Added value: +{
        +  "description": "Y pixel coordinate to click.",
        +  "type": "number"
        +}
    • Addedbrowser_find_recipe
    • Addedbrowser_get_console_logs
    • Changedbrowser_get_dom2 fields changed
      • addedInput schema / properties / includeLinks
        Added value: +{
        +  "description": "Whether to include standalone links array (defaults to false as elements already index links).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / maxTextLength
        Added value: +{
        +  "description": "Maximum characters of body text to extract (defaults to 3000 to save tokens).",
        +  "type": "number"
        +}
    • Addedbrowser_get_network_logs
    • Addedbrowser_get_site_memory
    • Addedbrowser_handle_dialog
    • Addedbrowser_launch_profile
    • Addedbrowser_learn_site_quirk
    • Addedbrowser_list_profiles
    • Changedbrowser_navigate1 field changed
      • addedInput schema / properties / waitUntil
        Added value: +{
        +  "description": "Wait condition: \"interactive\" (default, fast - resolves as soon as DOM is ready) or \"complete\" (waits for all background ads/trackers).",
        +  "enum": [
        +    "interactive",
        +    "complete"
        +  ],
        +  "type": "string"
        +}
    • Changedbrowser_new_tab1 field changed
      • addedInput schema / properties / profile
        Added value: +{
        +  "description": "Optional profile name or folder (e.g. \"Work\", \"Clean\") to open this tab in.",
        +  "type": "string"
        +}
    • Addedbrowser_save_recipe
    • Changedbrowser_screenshot4 fields changed
      • addedInput schema / properties / annotate
        Added value: +{
        +  "description": "When true, paints visual Set-of-Marks (SoM) numbered badges matching element refs directly onto the screenshot before capturing, perfect for multimodal visual reasoning.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / format
        Added value: +{
        +  "description": "Image format (defaults to \"jpeg\" for fast lightweight transfer).",
        +  "enum": [
        +    "jpeg",
        +    "png"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / quality
        Added value: +{
        +  "description": "Compression quality 1-100 (defaults to 80 for jpeg).",
        +  "type": "number"
        +}
      • addedInput schema / properties / savePath
        Added value: +{
        +  "description": "Optional file path to save the image. If omitted, saves to project screenshots folder.",
        +  "type": "string"
        +}
    • Addedbrowser_select_option
    • Addedbrowser_set_checked
    • Changedbrowser_type1 field changed
      • addedInput schema / properties / ref
        Added value: +{
        +  "description": "Indexed reference ID of the input element (e.g. \"1\", \"2\") assigned by browser_get_dom.",
        +  "type": "string"
        +}
    • Addedbrowser_upload_file
    • Addedbrowser_wait_for
  2. 11 tool updatesv1.0.1
    • First observedbrowser_click
    • First observedbrowser_close_tab
    • First observedbrowser_evaluate
    • First observedbrowser_get_dom
    • First observedbrowser_list_tabs
    • First observedbrowser_navigate
    • First observedbrowser_new_tab
    • First observedbrowser_screenshot
    • First observedbrowser_scroll
    • First observedbrowser_select_tab
    • First observedbrowser_type

TDQS

B3.3/5.0

Scored across 25 tools

Disambiguation4/5

Most tools map to a single distinct browser action (click, type, scroll, navigate, screenshot), so selection is usually unambiguous. The main fuzziness is in the memory group β€” save_recipe, learn_site_quirk, find_recipe, and get_site_memory overlap in that all store/retrieve per-domain knowledge β€” and batch_actions partially duplicates the granular action tools, though descriptions clarify the distinction.

Naming Consistency4/5

Every tool carries the `browser_` prefix and uses snake_case, giving a predictable namespace. Minor deviations exist where the second token is a noun rather than a verb (browser_new_tab, browser_batch_actions), but overall the verb_noun pattern holds well.

Tool Count3/5

At 25 tools this sits at the heavy end of the scale for a browser automation server. Core actions are justified, but the recipe/quirks/memory trio plus logs, profiles, and dialogs push the surface beyond a tight, well-earned set.

Completeness4/5

Coverage is broad: navigation, tab lifecycle, profiles, interaction, dialogs, uploads, screenshots, DOM extraction, JS eval, and diagnostics. Gaps remain for keyboard key presses (Enter/Tab/Escape), hover and drag-and-drop, history back/forward, and iframe traversal, which agents will hit on real sites.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Lets local AI agents drive the Chrome browser a user already has open, including signed-in sessions, by listing tabs, reading page text and actionable elements, then clicking, filling, selecting, scrolling, navigating, and capturing viewport screenshots without exporting cookies. Runs as a dependency-free local stdio process over Native Messaging, with per-tab leases, automatic reconnection, and pause/write-action controls.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to drive the user's real, already-logged-in Chrome browser locally, so they can read and navigate pages, click, type, fill forms, take screenshots, and inspect cookies, tabs, console, and network traffic without headless browsers or remote-debugging ports.
    1 npm
    ISC
  • A
    license
    Not graded
    quality
    A
    maintenance
    Lets AI coding tools drive the real, already-logged-in Chrome browser over local stdioβ€”snapshotting and reading pages, clicking, typing, managing tabs, capturing screenshots, and inspecting network, console, storage, and cookiesβ€”without opening a remote-debugging port. It installs as a Chrome extension plus native-messaging bridge, so agents work in the user's authenticated sessions while passing bot detection.
    1 npm
    ISC