Skip to main content
Glama

selenium-mcp

Selenium MCP server for AI agents — 39 tools for real-browser automation: navigation, clicking, typing, assertions, screenshots, multi-session management, page snapshots with stable element refs, persistent selector hints, and batched multi-step execution.

npm version npm downloads CI license node

Built with TypeScript, the official MCP SDK, and Selenium WebDriver — strict zod input validation, explicit waits, and structured responses designed for LLM agents.

One-Click Install

Install in Cursor Install in VS Code Install in VS Code Insiders

Setup

claude mcp add selenium -- npx -y @gaforov/selenium-mcp@latest

Add to your client's MCP config (e.g. claude_desktop_config.json or .cursor/mcp.json):

{
  "mcpServers": {
    "selenium": {
      "command": "npx",
      "args": ["-y", "@gaforov/selenium-mcp@latest"]
    }
  }
}
code --add-mcp '{"name":"selenium","command":"npx","args":["-y","@gaforov/selenium-mcp@latest"]}'
goose session --with-extension "npx -y @gaforov/selenium-mcp@latest"

Settings → Tools → AI Assistant → Model Context Protocol → Add, with command npx and arguments -y @gaforov/selenium-mcp@latest. Full walkthrough in docs/CLIENT_INTEGRATION.md.

git clone https://github.com/gaforov/selenium-mcp.git
cd selenium-mcp
npm install
npm run build

Then point your MCP client at node /absolute/path/to/selenium-mcp/dist/server.js.

Related MCP server: openmcp

Example Usage

Ask your AI agent:

Use selenium-mcp to open Chrome, go to https://example.com, read the page title, take a screenshot, and close the browser.

The agent chains start_browsernavigateget_titletake_screenshotstop_browser on its own — no scripting needed.

Requirements

  • Node.js 20+

  • Chrome, Firefox, or Edge installed (Selenium Manager provisions the matching driver automatically)

How it compares

Most Selenium MCP servers wrap WebDriver's basic commands. This one adds the layer that makes agents reliable:

Capability

selenium-mcp

Typical Selenium MCP servers

Page snapshot with stable element refs (capture_page)

rare

Persistent per-domain selector memory (selector_hint_*)

Parallel multi-session browsing

rare

Batched multi-step execution in one call

Built-in test assertions

some

Tool-call tracing (NDJSON audit log)

Strict input validation + structured errors

varies

Why selenium-mcp

  • Snapshot-first workflowscapture_page returns a page snapshot with stable element refs the agent can act on directly, no brittle selector guessing

  • Selector hints — persist working locators per domain so repeat automations get faster and more reliable over time

  • Batched executionbatch_execute runs constrained multi-step sequences in a single tool call, cutting round-trips

  • Multi-session — create, select, list, and destroy parallel browser sessions

  • Agent-friendly errors — every response is structured and validated with zod, so agents can recover instead of stalling

  • Optional tracing — NDJSON trace of every tool call for debugging and auditing

Tools (39)

Category

Tools

Browser lifecycle

start_browser, stop_browser, session_create, session_select, session_list, session_destroy

Navigation

open_url, navigate, get_current_url, get_title

Element discovery

find_element, wait_for_element, wait_until_visible, capture_page, get_page_source

Interaction

click, retry_click, interact (hover/double/right-click), type, press_key, upload_file

Reading

get_text, get_attribute

Assertions

assert_text, assert_visible, assert_attribute

Scripting

execute_script, batch_execute

Selector hints

selector_hint_save, selector_hint_get, selector_hint_list, selector_hint_delete

Windows & context

window, frame, alert

Cookies

add_cookie, get_cookies, delete_cookie

Capture

take_screenshot

Full parameter documentation: docs/TOOL_REFERENCE.md

MCP Resources

  • browser-status://current — live browser/session status

  • accessibility://current — accessibility snapshot of the current page

Optional Tracing

Enable lightweight NDJSON tracing of all tool calls:

SELENIUM_MCP_TRACE=true
SELENIUM_MCP_TRACE_PATH=./logs/selenium-mcp-trace.ndjson

If SELENIUM_MCP_TRACE_PATH is omitted, the default is logs/selenium-mcp-trace.ndjson.

Documentation

Contributing

Contributions are welcome — bug reports, feature requests, and pull requests. See CONTRIBUTING.md to get started.

npm run typecheck
npm run build
npm test

License

MIT. See LICENSE.

Available Tools

39 tools
alertC

Handle browser alert, confirm, or prompt dialogs.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNo
actionYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It merely says 'handle' without disclosing that actions like accept/dismiss are destructive or that send_text requires a text parameter. The schema provides the actions, but the description adds no behavioral context.

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

Conciseness3/5

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

The description is very short (6 words) but under-specified. While conciseness is good, it sacrifices essential detail; it could be equally concise while including the available actions.

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

Completeness2/5

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

Given the tool's complexity (multiple actions, conditional parameter), the description is incomplete. It does not mention that get_text retrieves dialog text, nor does it provide any return value information (no output schema).

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

Parameters1/5

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

Schema coverage is 0%, yet the description does not mention any parameters. It fails to explain the required 'action' parameter with its enum values or the optional 'text' parameter needed for send_text, leaving the agent without guidance.

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

Purpose4/5

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

The description clearly identifies the tool as handling browser alert, confirm, or prompt dialogs, which distinguishes it from sibling tools like click or navigate. However, it could specify the exact actions (get text, accept, dismiss, send text) for greater clarity.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like execute_script or find_element. The description lacks context about prerequisites or scenarios best suited for this tool.

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

assert_attributeC

Assert an element attribute/property equals, contains, or matches a regular expression.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoequals
nameYes
expectedYes
selectorYes
timeoutMsNo

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 fails to disclose behavioral traits such as waiting behavior, error handling on assertion failure, or whether it returns a boolean. The timeoutMs parameter hints at waiting but is not explained.

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

Conciseness3/5

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

The description is a single sentence, making it concise, but it lacks structure and key details that would fit in a brief summary. It is under-informative rather than efficiently informative.

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

Completeness2/5

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

Without annotations, output schema, or parameter descriptions, the 5-parameter tool with a nested object is under-documented. The description does not explain the tool's role in test automation or how it interacts with other tools.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain any parameters beyond their names. Terms like 'selector', 'name', and 'mode' are left undefined, and the format of 'expected' for regex is not clarified.

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

Purpose5/5

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

The description clearly states the action (assert) and the resource (element attribute/property), and specifies three comparison modes (equals, contains, matches), distinguishing it from sibling tools like assert_text and assert_visible.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. The purpose is stated but without context of usage scenarios.

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

assert_textC

Assert visible element text equals, contains, or matches a regular expression.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNocontains
trimNo
expectedYes
selectorYes
timeoutMsNo

TDQS

C2.6/5.0
Behavior2/5

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

Description states 'visible element text' but does not explain whether it waits for visibility, how trim affects comparison, case sensitivity, error behavior on mismatch, or the return value. With no annotations, these gaps are critical.

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

Conciseness3/5

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

Single sentence is concise but lacks structure; it does not separate primary action from parameter details. While front-loaded with the verb, it sacrifices completeness for brevity.

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

Completeness1/5

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

Given 5 parameters (including nested selector), no output schema, and no annotations, the description is grossly incomplete. An agent cannot infer how to construct the selector, what 'trim' does, timeout behavior, or the assertion result.

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

Parameters1/5

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

With 0% schema coverage, the description must explain parameters. It only indirectly mentions 'mode' via the three operations, but omits 'selector', 'expected', 'trim', and 'timeoutMs' entirely, providing no meaningful semantic value.

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

Purpose5/5

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

Description clearly states the tool asserts visible element text with three comparison modes (equals, contains, matches), distinguishing it from siblings like assert_attribute (asserts attribute) and get_text (retrieves without assertion).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. For example, when to choose 'equals' over 'contains' or when to use assert_text vs. assert_visible is not addressed, leaving the agent without decision logic.

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

assert_visibleC

Assert an element becomes visible.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYes
timeoutMsNo

TDQS

C2.2/5.0
Behavior2/5

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

No annotations provided, so description must carry full burden. It does not disclose whether the tool waits for visibility or throws on failure, what happens if element is not found, or if it returns a value. The phrase 'becomes visible' hints at waiting, but is not explicit.

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

Conciseness3/5

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

The description is extremely concise (one sentence) but lacks necessary detail. It is not front-loaded with key information, and the brevity sacrifices clarity rather than enhancing it.

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

Completeness2/5

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

Given the complexity (nested selector, timeout) and lack of annotations/output schema, the description is incomplete. It doesn't address return values, error behavior, or how it relates to sibling assertion tools.

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

Parameters1/5

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

Schema description coverage is 0%, so description must compensate. The description does not explain any parameters: no mention of 'selector' structure or 'timeoutMs' meaning, default, or constraints. Parameters are entirely undocumented in the description.

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

Purpose3/5

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

The description 'Assert an element becomes visible' states the verb and resource but is vague. It doesn't differentiate from sibling 'wait_until_visible', which may also check visibility. The timeout parameter implies waiting, but the description doesn't clarify if it waits or asserts immediately.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'wait_until_visible' or 'assert_attribute'. Missing context about prerequisites (e.g., browser must be started) or typical use cases.

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

batch_executeC

Execute a constrained sequence of browser actions in one call. Supported actions: navigate, wait_for_element, click, type, execute_script.

ParametersJSON Schema
NameRequiredDescriptionDefault
stepsYes
stopOnErrorNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It only lists supported actions and says 'constrained sequence' but fails to explain constraints (e.g., max 10 steps, stopOnError default), what happens on failure, or whether state is preserved between steps. The schema contains details but the description adds minimal behavioral context.

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

Conciseness3/5

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

The description is very short and front-loaded with action, which is good for scanning. However, it is overly terse; a few more sentences explaining parameters or usage context would improve completeness without sacrificing conciseness.

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

Completeness2/5

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

Given the complexity of the input schema (multiple action types with varying properties) and the lack of output schema, the description is insufficient. It does not address how to construct the steps parameter, selector format, or error handling. Sibling tools provide individual actions, but no context is given for when to batch them.

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

Parameters1/5

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

Schema description coverage is 0%, meaning the description must add meaning for the parameters. The description does not mention 'steps' or 'stopOnError' at all, only lists action types. This leaves the agent without any explanation of the parameter structure, which is complex (array of discriminated unions).

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?

Clearly states it executes a constrained sequence of browser actions in one call and lists supported actions. However, it doesn't explicitly differentiate from calling individual sibling tools sequentially, though 'in one call' implies batching.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus individual action tools like click, navigate, etc. The description implies batching multiple actions but does not provide criteria for choosing batch over single actions or mention when not to use.

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

capture_pageB

Capture page structure with stable refs (e1, e2, ...) and reusable selectors for follow-up actions.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxElementsNo

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only mentions 'capture structure' without explaining side effects (e.g., does it modify the DOM?), performance impact, or any destructive potential. The lack of detail undermines transparency.

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

Conciseness5/5

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

The description is a single sentence with no wasted words. It conveys the core purpose efficiently and is appropriately front-loaded with the key action.

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

Completeness2/5

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

Given the tool has only one parameter and no output schema or annotations, the description should provide more context about what 'stable refs' means, how they are returned, and usage patterns. The minimal description leaves ambiguity about the tool's output and integration with follow-up actions.

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

Parameters1/5

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

The input schema has one parameter 'maxElements' with no description. The tool description does not mention any parameter, so it provides zero additional meaning beyond the schema. With 0% schema coverage, the description must compensate but fails entirely.

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

Purpose5/5

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

The description uses 'capture page structure with stable refs...' which clearly states the verb-resource combo. It distinguishes from sibling tools like 'take_screenshot' or 'find_element' by emphasizing reusable selectors and stable references.

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

Usage Guidelines3/5

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

The description implies use for obtaining stable references for future actions, but does not explicitly state when to use this tool versus alternatives like 'find_element' or 'selector_hint_save'. No exclusion criteria are given.

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

clickC

Click an element after waiting for it to be visible and enabled.

ParametersJSON Schema
NameRequiredDescriptionDefault
refNo
selectorNo
timeoutMsNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral details. It partially does by mentioning waiting for visibility and enablement, but omits information about error handling (e.g., if element not found), side effects, or return value. This is insufficient for a safety-critical action like clicking.

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

Conciseness3/5

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

The description is a single sentence, front-loaded and without fluff. However, given the tool's complexity (3 parameters, nested objects), it is too brief to be effective. Conciseness should not come at the cost of completeness.

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

Completeness2/5

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

The description lacks essential information such as how to choose between ref and selector, the meaning of timeoutMs, and any return value or errors. With no output schema and no parameter descriptions, this single sentence is insufficient for an agent to use the tool reliably.

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

Parameters1/5

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

Schema description coverage is 0%, meaning the schema itself provides no parameter explanations. The description adds no meaning to the parameters (ref, selector, timeoutMs). Users are left to infer how to specify elements or set timeout, which is inadequate.

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

Purpose4/5

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

The description clearly states the action ('click') and the precondition ('waiting for it to be visible and enabled'), which defines its purpose. It distinguishes from sibling tools like 'retry_click' by implying a one-time click after ensuring element readiness, but could be more explicit about when to use this vs. alternatives.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as 'retry_click' or 'interact'. The description implies a general click scenario but lacks context-specific usage instructions or caveats.

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

execute_scriptC

Execute synchronous JavaScript in the current page context.

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
scriptYes

TDQS

C2.6/5.0
Behavior2/5

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

Describes execution as synchronous and in page context, but with no annotations provided, the description should disclose side effects, blocking behavior, security implications, and return value characteristics. It falls short of full transparency.

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

Conciseness4/5

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

Single sentence is concise and front-loaded with the key action. However, it may be excessively concise given the tool's complexity, sacrificing necessary detail.

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

Completeness2/5

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

Without annotations, output schema, or parameter descriptions, the minimal description leaves significant gaps about return values, error handling, scope, and permissible scripts. Incomplete for a tool with two parameters.

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

Parameters1/5

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

Schema description coverage is 0% and the description does not explain the purpose of 'script' or 'args' beyond what is inferable from names. An agent cannot understand how to correctly use parameters from this description alone.

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?

Clearly states the verb 'Execute' and the resource 'synchronous JavaScript in the current page context'. It distinguishes from sibling tools that handle element interactions, navigation, etc., but could be more explicit about being arbitrary JavaScript execution.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus other tools (e.g., for direct DOM manipulation vs. element-specific actions). Lacks any when-not-to-use or prerequisite context.

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

find_elementC

Find an element and return basic metadata. Alias-friendly discovery tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYes
timeoutMsNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations exist, so the description must fully disclose behavior. It mentions returning 'basic metadata' but does not specify what metadata (e.g., tag, attributes, location). It also does not indicate whether the tool waits for the element or the timeout behavior, leaving significant gaps.

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

Conciseness3/5

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

The description is very concise with two short sentences, but it sacrifices completeness for brevity. While front-loaded with the verb, the lack of detail makes it minimally adequate.

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

Completeness2/5

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

Given the presence of a nested parameter, no output schema, and no annotations, the description is too sparse. It does not explain the return value (beyond 'metadata'), behavior for non-existent elements, or timeouts. The tool's complexity requires more detail.

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

Parameters1/5

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

The schema has 0% description coverage, meaning no human-readable explanations for parameters. The description fails to explain how to use the 'selector' object (e.g., 'by' field values, 'value' string) or the 'timeoutMs' parameter. It provides no additional meaning beyond the schema.

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

Purpose4/5

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

The description clearly states the action (find), resource (element), and that it returns basic metadata, which conveys its core function. However, it does not differentiate from sibling tools like 'wait_for_element' or 'get_text', which also locate elements. The phrase 'alias-friendly discovery tool' hints at flexibility but lacks specificity.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives. With many sibling tools for element interaction (click, get_text, wait_for_element), the absence of usage context or exclusions reduces agent decision accuracy.

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

frameB

Switch browser frame focus by index, name/id, selector, parent, or default content.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexNo
actionYes
nameOrIdNo
selectorNo
timeoutMsNo

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only states the switching action but does not describe side effects, error behavior, return values, or requirements (e.g., frame existence).

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

Conciseness4/5

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

The description is a single, efficient sentence that front-loads the action and lists key methods. While it could benefit from more structure, it has no wasted words.

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

Completeness2/5

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

Given the tool's complexity (5 parameters, nested object, no output schema), the description is insufficient. It does not explain what happens after switching, error handling, or return values, leaving the agent with incomplete context.

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

Parameters3/5

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

With 0% schema description coverage and 5 parameters, the description adds some meaning by listing the switching methods (index, nameOrId, selector, parent, default). However, it does not explain the selector nested object, timeoutMs, or parameter formats/constraints.

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

Purpose5/5

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

The description clearly states the verb 'Switch' and the resource 'browser frame focus', and enumerates the methods (by index, name/id, selector, parent, default content). It is specific and distinguishes from sibling tools, which are mostly other actions like clicking or navigating.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'interact' or 'click'. There is no mention of prerequisites (e.g., frame must exist) or exclusions.

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

get_attributeC

Read an attribute or property value from an element.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
selectorYes
timeoutMsNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations exist, so the description must convey behavioral traits. It does not disclose any side effects, requirements, or limitations (e.g., whether it waits for elements, exceptions). Only a read operation is implied, but not explicitly stated as safe.

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

Conciseness3/5

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

The description is one concise sentence, but it is too brief to add value beyond the tool name. It earns its place but lacks structure or context.

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

Completeness1/5

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

Given 3 parameters (including a nested object), no output schema, and no annotations, the description fails to provide essential context. It does not explain return values, usage examples, or parameter dependencies, leaving the tool underspecified.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning to parameters. It does not explain 'selector', 'name', or 'timeoutMs'. The agent must infer from the schema alone, which is insufficient for correct usage.

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

Purpose4/5

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

The description states 'Read an attribute or property value from an element,' which clearly identifies the verb and resource. However, it does not differentiate from sibling tools like get_text or assert_attribute, leaving room for ambiguity in a crowded toolset.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., get_text, assert_attribute). No exclusions or context provided, making it hard for an agent to choose appropriately.

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

get_cookiesA

Get all cookies or one cookie by name.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided; description only states action. No disclosure of behavioral traits like return format, error handling, or destructive effects. Minimal behavioral information.

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

Conciseness5/5

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

Single sentence, 10 words, front-loaded with key information. No redundant or extraneous 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?

Adequate for a simple retrieval tool with one parameter. However, lacks details on return behavior when cookie is not found or the format of the returned data. Given no output schema, description could be more complete.

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

Parameters4/5

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

Schema coverage is 0%, so description must compensate. It explains that omitting name retrieves all cookies, while providing name retrieves one. This adds meaningful conditional behavior beyond the schema's property definition.

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

Purpose5/5

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

Description clearly states it retrieves all cookies or one by name. Verb 'get' and resource 'cookies' are specific. Siblings add/delete cookies are distinct, so purpose is unambiguous.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives, but the context of cookie-related siblings (add_cookie, delete_cookie) implies usage. The conditional behavior based on the name parameter is implied but not stated.

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

get_current_urlA

Return the current browser URL.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

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

No annotations provided, so the description bears the full burden. It fails to disclose potential failure modes (e.g., if no page loaded) or side effects, remaining minimal.

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

Conciseness5/5

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

Single, front-loaded sentence with no extraneous words. Every word earns its place.

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

Completeness4/5

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

For a zero-parameter, no-output-schema tool, the description is mostly adequate. It could specify the return type or format (e.g., 'string'), but the core function is clear.

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

Parameters4/5

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

No parameters exist; baseline is 4. The description is consistent but adds no parameter-specific value since there are none.

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 'Return the current browser URL' uses a specific verb 'Return' and clear resource 'current browser URL', distinguishing it from sibling tools like get_title, get_page_source, etc.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool vs alternatives. For a simple getter, the context is implied but not stated, lacking exclusion or alternative mentions.

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

get_page_sourceB

Return the current page source, optionally truncated for LLM-friendly output.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxLengthNo

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It mentions optional truncation but omits details: how truncation occurs (by character count?), what happens if source exceeds maxLength, return format, encoding, or error scenarios (e.g., browser not started). Partial but incomplete disclosure.

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

Conciseness5/5

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

Single, front-loaded sentence with no extraneous detail. Every word earns its place.

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

Completeness2/5

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

Given lack of output schema and annotations, the description is minimal. For a tool returning potentially large HTML, more detail on return format, truncation behavior, and when to use this vs textual alternatives would improve completeness.

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

Parameters2/5

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

Schema coverage is 0%, so description must add meaning. It mentions truncation but does not explicitly link the maxLength parameter to controlling truncation length. The default (50000) and range are in schema but not explained in context. Adds marginal value.

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

Purpose5/5

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

The description clearly states 'Return the current page source, optionally truncated for LLM-friendly output.' It specifies the verb (return) and resource (page source), and distinguishes from siblings like get_text (visible text) and get_attribute (attribute values).

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

Usage Guidelines2/5

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

No explicit guidance on when to use vs alternatives (e.g., get_text, get_current_url). Context of use is implied but not contrasted with sibling tools, leaving the agent to infer.

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

get_textC

Read visible text from an element.

ParametersJSON Schema
NameRequiredDescriptionDefault
refNo
trimNo
selectorNo
timeoutMsNo

TDQS

C2.8/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It specifies 'visible text' implying hidden text is ignored, but does not disclose behavior on element not found, waiting, or what 'visible' means precisely. Some transparency, but not comprehensive.

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

Conciseness3/5

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

The single-sentence description is concise and front-loaded with the core purpose, but it is too brief given the tool has 4 parameters and no additional context. It earns its place but lacks structure.

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

Completeness1/5

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

Given the tool's complexity (4 parameters, nested object, no output schema, no annotations), the description is severely incomplete. It omits parameter explanations, return value, and behavioral details.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must compensate by explaining parameters. It mentions none of the 4 parameters (ref, trim, selector, timeoutMs), adding no value beyond the schema.

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

Purpose5/5

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

The description 'Read visible text from an element' uses a specific verb and resource, clearly distinguishing it from sibling tools like get_attribute (reads attributes) or get_title (reads document title).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool vs alternatives like get_attribute or execute_script, nor does it specify when not to use it or mention prerequisites.

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

get_titleA

Return the current page title.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. It only states the output (return current page title) but omits details like what happens if no title exists, whether it accesses the document.title or something else, or any side effects. This is insufficient for a tool with no annotations.

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

Conciseness5/5

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

One sentence, no filler, perfectly sized for a simple, parameterless tool. Every word adds value.

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

Completeness4/5

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

Given the simplicity (no parameters, no output schema), the description is mostly complete. However, minor detail about the source of the title (e.g., document.title) would improve completeness for agents unfamiliar with browser automation.

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?

With zero parameters, the schema coverage is trivially 100%. According to guidelines, baseline is 4 for 0 params. The description adds no parameter info, but none is needed.

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 'Return the current page title' uses a specific verb 'Return' and resource 'page title', which is distinct from sibling tools like 'get_text' or 'get_current_url'. It clearly identifies what the tool does without ambiguity.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as 'get_text' or 'get_current_url'. The description does not mention context or exclusions, leaving the agent to infer usage from the tool name and siblings.

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

interactD

Perform a mouse action on an element.

ParametersJSON Schema
NameRequiredDescriptionDefault
refNo
actionYes
selectorNo
timeoutMsNo

TDQS

D1.8/5.0
Behavior1/5

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

No annotations provided, and description only states the action without disclosing behavioral traits such as waiting, scrolling, error handling, or side effects. The schema includes a timeout parameter but description does not mention it.

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

Conciseness2/5

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

The description is a single sentence, which is brief but severely under-specified. It lacks essential information, making it inadequate rather than concise.

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

Completeness1/5

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

Given the complexity of the input schema (nested selector, multiple parameters) and the presence of many sibling tools, the description is entirely insufficient. No output schema exists, and no behavioral context is provided.

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

Parameters1/5

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

Schema coverage is 0%, and description adds no meaning to any parameter. It does not explain 'ref', 'action', 'selector', or 'timeoutMs'. The action enum is documented only in schema, not in description.

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

Purpose3/5

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

Description states 'Perform a mouse action on an element,' which gives a basic purpose but is vague. It does not differentiate from sibling tools like 'click' which is a specific mouse action. The action enum in schema clarifies the range, but description alone is insufficient.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'click' or 'hover' siblings. No mention of prerequisites, limitations, or when not to use it.

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

open_urlC

Navigate the active browser session to a URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the basic action but does not discuss page load behavior, error handling, waiting timeouts, or side effects (e.g., clearing any state). This is insufficient for safe use.

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

Conciseness5/5

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

The description is a single, clear sentence with no extraneous information. It efficiently conveys the core functionality.

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

Completeness3/5

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

For a tool with one parameter and no output schema or annotations, the description is minimally adequate. It covers the basic purpose but lacks key behavioral context (e.g., whether navigation waits, effects on page history). Given low complexity, a score of 3 is appropriate.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should add meaning to the parameter. It mentions 'to a URL' but does not elaborate on format constraints, requirements (e.g., must be absolute URL, include protocol), or how invalid URLs are handled. The schema provides 'format: uri' but the description adds little value.

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

Purpose4/5

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

The description clearly states the action ('navigate') and the resource ('active browser session to a URL'), making the purpose straightforward. However, it does not distinguish from the sibling tool 'navigate', which may perform a similar function.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., 'navigate', 'click' with a link). There is no mention of context, prerequisites, or situations where using this tool is not appropriate.

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

press_keyC

Press a keyboard key against the active element.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations provided. The description is overly brief, omitting details such as whether the press is a single keydown/keyup or hold, or if it requires the element to be focused. Behavior beyond the basic action is undisclosed.

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

Conciseness5/5

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

The description is a single sentence with no waste. It is front-loaded and to the point.

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

Completeness2/5

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

Despite being a simple tool with one parameter and no output schema, the description lacks context about return value, error conditions, and potential side effects. It does not compensate for missing annotations.

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

Parameters2/5

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

The only parameter 'key' is described only as 'keyboard key', with no format details (e.g., character vs. key name) or examples. Schema has 0% coverage, and the description fails to add meaningful semantic context.

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

Purpose4/5

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

The description clearly states the verb 'press' and resource 'keyboard key against active element'. It distinguishes from sibling tools like 'click' (mouse) and 'type' (text entry), though it could be more precise about the nature of the key press.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'type' or 'click'. No prerequisites or context for active element focus are mentioned.

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

retry_clickA

Retry a click for transient UI failures such as stale or intercepted elements.

ParametersJSON Schema
NameRequiredDescriptionDefault
delayMsNo
attemptsNo
selectorYes
timeoutMsNo

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It discloses the core behavior of retrying clicks but does not detail what happens on final failure, whether errors are thrown, or the exact retry mechanism (e.g., delay behavior). The parameters hint at these but are not described.

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

Conciseness5/5

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

The description is a single sentence that front-loads the purpose. No extra words or redundant information. It is appropriately sized for the tool's simplicity.

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

Completeness2/5

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

Given the tool has 4 parameters, nested objects, no output schema, and no annotations, the description is insufficient. It does not mention default values, error handling, or return values. The agent would lack key information for correct usage.

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

Parameters2/5

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

Schema description coverage is 0%, and the description adds no information about parameters. It does not explain the meaning or usage of delayMs, attempts, timeoutMs, or the selector object. The parameter names are somewhat self-explanatory, but the description fails to compensate for the lack of schema descriptions.

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

Purpose5/5

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

The description clearly states the tool retries a click for transient UI failures, using a specific verb and resource. It distinguishes from the sibling click tool by explicitly mentioning retry and transient failures.

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

Usage Guidelines4/5

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

The description specifies when to use the tool ('for transient UI failures such as stale or intercepted elements'), providing clear context. However, it does not explicitly mention when not to use it or directly compare to alternatives like click.

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

selector_hint_deleteC

Delete a selector hint by key and domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes
domainNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so description must bear full burden. It indicates a destructive action but lacks details on irreversibility, error cases, or side effects.

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

Conciseness4/5

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

Single sentence is very concise, but it omits important details that could be included without sacrificing brevity.

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

Completeness2/5

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

Given no annotations and no output schema, the description is insufficient for an agent to fully understand the tool's behavior, error conditions, and implications of deletion.

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

Parameters2/5

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

Schema description coverage is 0%, so description should compensate. It mentions 'by key and domain' but does not explain the meaning of the parameters, required/optional behavior, or validation constraints.

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

Purpose5/5

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

Description clearly states the action (delete) and the resource (selector hint) with identifiers (key and domain), distinguishing it from sibling tools like selector_hint_get, selector_hint_list, and selector_hint_save.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs. alternatives, no prerequisites, and no mention of potential consequences or conditions for deletion.

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

selector_hint_getC

Resolve a selector hint by key and domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes
domainNo

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are present, and the description does not disclose whether this is a read operation, if it requires authentication, or any side effects. 'Resolve' implies a lookup, but this is not explicitly stated.

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 unnecessary words. It efficiently conveys the core action.

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

Completeness2/5

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

Given the lack of output schema, annotations, and detailed parameter info, the description is insufficient for an agent to fully understand the tool's behavior, such as what the resolved hint looks like or error handling for missing keys.

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

Parameters2/5

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

With 0% schema description coverage, the description should add meaning for the parameters 'key' and 'domain', but it only says 'by key and domain' without explaining their purpose, format, or allowed values. The schema provides length constraints but no semantic context.

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

Purpose4/5

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

The description uses the specific verb 'resolve' and names the resource 'selector hint', which clearly distinguishes it from sibling tools like 'selector_hint_delete' and 'selector_hint_list'. However, 'resolve' could be more explicit (e.g., retrieve the hint value).

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'selector_hint_list' or 'selector_hint_save'. The description only states what it does, not the context or prerequisites.

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

selector_hint_listB

List selector hints, optionally filtered by domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNo

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description should disclose behavioral traits. It only states the basic operation without detailing behavior like returning all hints if no domain, read-only nature, or pagination.

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

Conciseness5/5

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

The description is a single sentence, front-loaded with the action and resource. No unnecessary words; concise and to the point.

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

Completeness2/5

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

The tool is simple, but the description omits expected output format (e.g., list of hint objects, properties). No output schema exists, so the description should fill this gap.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It clarifies the domain parameter is optional and used for filtering, but does not explain expected format or values, leaving ambiguity.

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

Purpose5/5

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

The description clearly states the verb 'list' and resource 'selector hints', and distinguishes from sibling tools like selector_hint_delete, selector_hint_get, and selector_hint_save by action. The optional domain filter adds specificity.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, such as selector_hint_get. No mention of prerequisites or context for filtering.

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

selector_hint_saveC

Persist a named selector hint for a domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes
domainNo
selectorYes

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 must disclose behavioral traits. It does not state side effects (overwrite?), constraints, or persistence semantics.

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

Conciseness3/5

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

The description is extremely concise (one sentence), but it omits necessary details. It is front-loaded but incomplete.

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

Completeness2/5

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

No output schema, complex nested input, and 0% schema coverage. The description does not mention return values, error conditions, or behavior on success/failure.

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

Parameters2/5

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

The description does not explain parameter roles beyond their names. With 0% schema coverage, it should clarify the meaning of 'key', 'domain', and 'selector' structure, but fails to do so.

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

Purpose5/5

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

The description uses 'Persist' (save) and 'named selector hint' which clearly indicates the action and resource. It distinguishes from sibling tools like delete, get, list.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives. Does not mention prerequisites, such as whether domain is required or what happens if key already exists.

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

session_createC

Create a new browser session and select it as active.

ParametersJSON Schema
NameRequiredDescriptionDefault
browserNochrome
headlessNo
sessionIdNo
windowSizeNo
browserArgsNo
scriptTimeoutMsNo
pageLoadTimeoutMsNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, and the description only mentions creation and activation. It does not disclose side effects (e.g., whether it replaces an existing active session), permissions needed, or resource limits.

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

Conciseness5/5

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

One sentence, no wasted words; immediately conveys core functionality.

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

Completeness2/5

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

Given 7 parameters, nested objects, no output schema, and no annotations, the description is too terse. It does not explain what a browser session is, return values, or connect to sibling tools.

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

Parameters3/5

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

Schema description coverage is 0%, but the schema itself is detailed with types, defaults, and constraints. However, the description adds no additional meaning beyond what is already in the schema, such as the purpose of browserArgs or windowSize.

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

Purpose4/5

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

The description clearly states the verb 'create' and the resource 'browser session', and adds that it is selected as active. This distinguishes it from sibling tools like session_select, though it does not explicitly contrast with start_browser.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like session_select or start_browser. The description lacks context on prerequisites or limitations.

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

session_destroyC

Destroy a specific browser session.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavioral traits. It only says 'destroy', implying deletion, but does not mention side effects (e.g., whether the session must be current, if data is lost, or if it's reversible).

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

Conciseness5/5

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

Single sentence with no filler. Front-loaded verb and resource. Every word earns its place.

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

Completeness2/5

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

Given the lack of annotations, output schema, and parameter details, the description is insufficient for an agent to safely use this destructive tool. It omits prerequisites, side effects, and return behavior.

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

Parameters1/5

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

The schema has 1 parameter (sessionId) with 0% description coverage. The description does not explain the parameter's meaning, format, or how to obtain it. The word 'specific' hints at sessionId but adds no concrete value.

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

Purpose5/5

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

The description clearly states the action ('destroy') and the resource ('a specific browser session'), distinguishing it from sibling tools like session_create or session_list. No tautology; it's concise and informative.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., session_select, stop_browser). Does not specify context like whether the session must be active or what happens to associated resources.

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

session_listB

List all active browser sessions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It implies a read-only operation by the word 'list' but does not explicitly state that no side effects occur, nor does it describe the format of the returned session information.

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

Conciseness5/5

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

The description is extremely concise, consisting of a single sentence that contains no superfluous words. It is appropriately front-loaded.

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

Completeness2/5

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

Given the lack of output schema and annotations, the description should provide more context about what 'sessions' entails and what details are returned (e.g., IDs or URLs). It is incomplete for effective use.

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?

There are no parameters, so the description does not need to add parameter semantics. Baseline 4 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: listing all active browser sessions. It distinguishes itself from sibling tools like session_create, session_destroy, and session_select by using the verb 'list'.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. For instance, it doesn't explain that it should be used before session_select to see available sessions.

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

session_selectB

Select an existing browser session as active.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It does not disclose what 'active' means, side effects on subsequent actions, error handling for invalid sessionId, or whether the operation is idempotent. The description is too minimal for a mutation-like tool.

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

Conciseness5/5

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

The description is a single, clear sentence with no wasted words. It is front-loaded with the action and resource.

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

Completeness3/5

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

For a simple tool with one parameter and no output schema, the description covers the basic purpose. However, it lacks details on return value, error conditions, and the concept of 'active' session, making it minimally adequate.

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

Parameters2/5

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

Schema description coverage is 0%, and the description adds no meaning beyond the parameter name 'sessionId'. It does not explain the type, format, or expected values beyond what the schema already provides (string, minLength 1).

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

Purpose5/5

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

The description clearly states the verb 'Select' and the resource 'existing browser session', with the outcome 'as active'. It is specific and distinguishes this tool from sibling tools like session_create (creates a new session) and session_list (lists sessions).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., session_create, session_list). It does not mention prerequisites (e.g., that a session must exist) or contexts where selection is appropriate.

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

start_browserC

Start a Selenium browser session.

ParametersJSON Schema
NameRequiredDescriptionDefault
browserNochrome
headlessNo
windowSizeNo
browserArgsNo
scriptTimeoutMsNo
pageLoadTimeoutMsNo

TDQS

C2.4/5.0
Behavior2/5

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

The description lacks disclosure of key behavioral traits. It does not explain side effects (e.g., launching a new browser process), whether multiple sessions are allowed, or what happens on repeated calls. There is no return value description, and no annotations exist to compensate.

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

Conciseness2/5

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

The description is extremely concise at one sentence, but it sacrifices necessary detail. It is not appropriately sized for the complexity of the tool, as it omits critical usage and behavioral context.

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

Completeness2/5

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

Given the tool's complexity (6 parameters, no output schema, many sibling tools), the description is incomplete. It does not explain what the tool returns, how to configure the browser, or how it fits into a workflow.

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

Parameters1/5

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

With 0% schema description coverage and 6 parameters (including a nested object), the description adds no meaning beyond the schema. It fails to explain the role of parameters like 'browserArgs', 'scriptTimeoutMs', or the 'windowSize' object, leaving the agent to guess.

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

Purpose4/5

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

The description clearly states the action (start) and resource (Selenium browser session). It is specific enough to distinguish from sibling tools, as only this tool initiates a browser session.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool or when alternatives might be preferred. It does not mention that starting a browser is a prerequisite for other browser actions, nor does it discuss scenarios like reusing a session.

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

stop_browserA

Stop the active Selenium browser session if one exists.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

Without annotations, the description carries full burden. It correctly indicates the action is stopping a session and handles the no-session case, but does not disclose any side effects (e.g., loss of state, irreversible action).

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

Conciseness5/5

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

A single sentence that conveys the core purpose efficiently. No wasted words; the action and condition are front-loaded.

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

Completeness5/5

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

For a zero-parameter, low-complexity tool with no output schema, the description is complete. It covers the action and the precondition (session existence).

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 and the schema coverage is 100% (empty). With no parameters, baseline is 4; the description adds no parameter information, which 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 verb 'Stop' combined with the resource 'active Selenium browser session' is specific and unambiguous. It clearly distinguishes from siblings like 'start_browser' and 'window'.

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

Usage Guidelines3/5

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

The description implies usage after a session exists but provides no explicit when-to-use or when-not-to-use guidance. The conditional 'if one exists' hints at handling but lacks clear context or alternatives.

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

take_screenshotB

Capture a PNG screenshot and optionally save it to disk.

ParametersJSON Schema
NameRequiredDescriptionDefault
savePathNo
includeBase64No

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only mentions optional saving. It does not disclose what the tool returns (e.g., base64 string), whether it requires a running browser, or the effect of includeBase64. This is insufficient for the agent to understand the tool's full behavior.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no extraneous words. It efficiently conveys the core purpose.

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

Completeness2/5

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

Given no output schema, the description should explain what the tool returns. It does not. The agent cannot know if the tool returns a screenshot as base64, a file path, or something else. Also, it lacks context about required environment (e.g., a running browser).

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

Parameters2/5

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

Schema description coverage is 0%, so description must add meaning. It only hints at savePath with 'optionally save to disk' and completely ignores includeBase64. The agent gets no clarity on what includeBase64 controls or the default behavior.

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

Purpose5/5

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

The description clearly states the verb 'capture', resource 'screenshot', format 'PNG', and optional saving to disk. It is specific and distinguishes from sibling tools, which are all different browser actions.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, typical use cases, or exclusions.

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

typeC

Type text into an element after waiting for visibility.

ParametersJSON Schema
NameRequiredDescriptionDefault
refNo
textYes
submitNo
selectorNo
timeoutMsNo
clearFirstNo

TDQS

C2.8/5.0
Behavior2/5

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

The description only discloses that the tool waits for visibility before typing. It omits other behaviors like clearing existing text (clearFirst default true), submitting after typing (submit default), or timeout handling. With no annotations, this is insufficient.

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

Conciseness4/5

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

The description is a single, well-structured sentence. It is concise and front-loaded with the core action, though it could include more details without becoming verbose.

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

Completeness2/5

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

Given the tool's complexity (6 parameters including nested object, no output schema, no annotations), the description is too minimal. It fails to explain parameter usage, return behavior, error conditions, or prerequisites.

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

Parameters1/5

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

Schema description coverage is 0% (no parameter descriptions in schema). The description does not explain any of the six parameters, such as ref vs selector, submit, clearFirst, or timeoutMs. It adds no value beyond the schema.

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

Purpose5/5

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

The description clearly states the tool types text into an element, with the condition 'after waiting for visibility.' It uses a specific verb and resource, and the condition differentiates it from sibling tools like click or press_key.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., press_key, click). There are no usage scenarios, prerequisites, or exclusions mentioned.

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

upload_fileC

Send an absolute file path to a file input element.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYes
selectorYes
timeoutMsNo

TDQS

C2.8/5.0
Behavior2/5

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

No annotations provided. Description does not disclose important behaviors like requiring an existing absolute path, waiting conditions, or support for multiple files. Only states the basic action.

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

Conciseness5/5

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

Single sentence, no extraneous words, front-loaded with action and object.

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

Completeness2/5

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

Despite having a nested object parameter and no output schema, the description is too brief. Does not cover selector syntax, file path requirements, or timeout behavior.

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

Parameters2/5

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

Schema coverage is 0%. Description adds minimal value by mentioning 'absolute file path', but does not explain the selector object structure or timeout parameter meaning.

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

Purpose4/5

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

Description clearly states it sends a file path to a file input, distinguishing it from text input tools like 'type'. However, the verb 'Send' is slightly vague for a file upload.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'interact' or 'type'. No context on prerequisites or common usage.

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

wait_for_elementC

Wait for an element to exist, with optional visibility requirement.

ParametersJSON Schema
NameRequiredDescriptionDefault
visibleNo
selectorYes
timeoutMsNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility. It fails to disclose behavior on timeout, element not found, or visibility checks. The minimal statement 'wait for an element to exist' lacks concrete behavioral traits.

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

Conciseness3/5

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

The description is very concise (one sentence), but it sacrifices completeness for brevity. It could be more structured to include key details without being overly long.

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

Completeness2/5

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

Given the tool's complexity (nested selector, multiple similar siblings, no output schema), the description is inadequate. It does not cover return values, error handling, or comparison to 'wait_until_visible'.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning to parameters. It does not explain 'selector', 'visible', or 'timeoutMs' beyond their schema definitions. The description should compensate but does not.

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

Purpose4/5

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

The description clearly states it waits for an element to exist with optional visibility. However, it does not differentiate from the sibling 'wait_until_visible', which likely targets visibility specifically. The verb+resource is clear, but sibling distinction is missing.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'wait_until_visible'. There is no mention of prerequisites, when-not, or exclusions. The context of existing comparable tools is ignored.

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

wait_until_visibleC

Wait for an element to be visible.

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYes
timeoutMsNo

TDQS

C2.3/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It only states the basic action but does not disclose timeout behavior, error handling, or side effects (e.g., scrolling to make the element visible).

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

Conciseness2/5

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

The description is very concise (one sentence) but is under-specified. It does not include necessary details about parameters or behavior, making it insufficiently informative.

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

Completeness1/5

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

Given the complexity of a nested 'selector' object and a timeout parameter, the description is vastly incomplete. It lacks any information about return values, error conditions, or how the tool interacts with the page state.

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

Parameters1/5

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

Schema description coverage is 0%. The description does not mention any parameters (selector, timeoutMs) or how to structure the selector object. This leaves the agent with no guidance beyond the schema.

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

Purpose4/5

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

The description clearly states the verb 'Wait' and the resource 'an element to be visible'. This provides a clear purpose. However, it does not differentiate from the sibling tool 'wait_for_element' which may have a similar function.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives like 'wait_for_element' or 'assert_visible'. There is no mention of use cases, prerequisites, or conditions.

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

windowC

Manage browser windows and tabs.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
handleNo

TDQS

C2.1/5.0
Behavior1/5

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

With no annotations provided, the description must disclose behavioral traits. It only states 'Manage browser windows and tabs,' which gives no information about mutability, side effects, or dependencies. Important details like whether actions affect the current session, require an active browser, or have irreversible effects are omitted.

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

Conciseness2/5

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

The description is extremely concise at 6 words, but this brevity sacrifices informativeness. It is front-loaded with the verb, but the lack of detail makes it under-specified. Effective conciseness would retain clarity while providing necessary context; here it fails to do so.

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

Completeness1/5

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

Given the tool's complexity (multiple action types, optional handle parameter) and the absence of an output schema, the description is severely incomplete. It does not cover return values, edge cases, or prerequisites. An agent would struggle to use it correctly without exploring the schema or external documentation.

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

Parameters1/5

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

Schema description coverage is 0%, meaning the description does not explain the parameters. The two parameters (action and handle) are not defined in the description. The action enum values are listed in the schema but not explained semantically. The handle parameter's purpose is entirely unclear without additional context.

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

Purpose4/5

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

The description 'Manage browser windows and tabs' clearly identifies the verb (manage) and resource (browser windows and tabs). It conveys the general purpose, though it does not differentiate from sibling tools like navigate or open_url, which also manage browser state. The action enum in the schema provides specificity, but the description alone is moderately clear.

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

Usage Guidelines2/5

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

No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives like navigate or start_browser. There is no mention of prerequisites, conditions, or exclusions. The agent must infer usage from the schema or context.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 14 tool updatesv0.2.0
    • Addedbatch_execute
    • Addedcapture_page
    • Changedclick2 fields changed
      • addedInput schema / properties / ref
        Added value: +{
        +  "minLength": 1,
        +  "type": "string"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "selector"
        -]
    • Changedget_text2 fields changed
      • addedInput schema / properties / ref
        Added value: +{
        +  "minLength": 1,
        +  "type": "string"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "selector"
        -]
    • Changedinteract2 fields changed
      • addedInput schema / properties / ref
        Added value: +{
        +  "minLength": 1,
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "action",
        -  "selector"
        -]New value: +[
        +  "action"
        +]
    • Addedselector_hint_delete
    • Addedselector_hint_get
    • Addedselector_hint_list
    • Addedselector_hint_save
    • Addedsession_create
    • Addedsession_destroy
    • Addedsession_list
    • Addedsession_select
    • Changedtype2 fields changed
      • addedInput schema / properties / ref
        Added value: +{
        +  "minLength": 1,
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "selector",
        -  "text"
        -]New value: +[
        +  "text"
        +]
  2. 29 tool updatesv0.1.2
    • First observedadd_cookie
    • First observedalert
    • First observedassert_attribute
    • First observedassert_text
    • First observedassert_visible
    • First observedclick
    • First observeddelete_cookie
    • First observedexecute_script
    • First observedfind_element
    • First observedframe
    • First observedget_attribute
    • First observedget_cookies
    • First observedget_current_url
    • First observedget_page_source
    • First observedget_text
    • First observedget_title
    • First observedinteract
    • First observednavigate
    • First observedopen_url
    • First observedpress_key
    • First observedretry_click
    • First observedstart_browser
    • First observedstop_browser
    • First observedtake_screenshot
    • First observedtype
    • First observedupload_file
    • First observedwait_for_element
    • First observedwait_until_visible
    • First observedwindow

TDQS

B3/5.0
Disambiguation4/5

Most tools have distinct purposes, but 'navigate' and 'open_url' perform identical functions, and 'wait_for_element' and 'wait_until_visible' overlap significantly, potentially causing misselection.

Naming Consistency4/5

Overall consistent verb_noun snake_case pattern, but 'alert' and 'frame' are single nouns rather than verbs, creating minor inconsistency.

Tool Count3/5

29 tools is high for a browser automation server; some tools are redundant (navigate/open_url, wait_for_element/wait_until_visible), suggesting scope could be trimmed.

Completeness4/5

Covers core browser automation workflows (lifecycle, navigation, element interaction, cookies, screenshots, etc.), but lacks scrolling and advanced element selection tools.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to automate web tasks such as browsing, clicking, typing, and taking screenshots via the Model Context Protocol.
    1
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Enables AI-powered browser automation controlled through natural language, integrating Playwright with the Model Context Protocol to perform web interactions like navigation, form filling, and screenshots.
    10
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gaforov/selenium-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server