mcp-chrome-server
Provides browser automation capabilities for Google Chrome, including navigation, element manipulation, login automation (with CAPTCHA and 2FA handling), and credential management via system keychain.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-chrome-serverlog in to my GitHub account"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Chrome Server
A Chrome server based on MCP (Model-Controller-Prompt) for browser automation.
Installation
Prerequisites
Python 3.12
Google Chrome browser installed
uv (Python package installer) or Docker
Installing via Smithery
npx -y @smithery/cli install @dlwjdtn535/mcp-chrome-server --client claudeConfiguration Setup
Choose one of the following setup methods based on your environment:
1. Using uv (Recommended)
Windows Setup:
{
"mcpServers": {
"mcp-chrome-server": {
"command": "uv",
"args": [
"run",
"--directory",
"%LOCALAPPDATA%\\Programs\\mcp-chrome-server\\src",
"mcp-chrome-server"
],
"env": {
"CHROME_PROFILE_PATH": "%LOCALAPPDATA%\\Google\\Chrome\\User Data"
}
}
}
}macOS Setup:
{
"mcpServers": {
"mcp-chrome-server": {
"command": "uv",
"args": [
"run",
"--directory",
"/usr/local/bin/mcp-chrome-server/src",
"mcp-chrome-server"
],
"env": {
"CHROME_PROFILE_PATH": "$HOME/Library/Application Support/Google/Chrome"
}
}
}
}Linux Setup:
{
"mcpServers": {
"mcp-chrome-server": {
"command": "uv",
"args": [
"run",
"--directory",
"/usr/local/bin/mcp-chrome-server/src",
"mcp-chrome-server"
],
"env": {
"CHROME_PROFILE_PATH": "$HOME/.config/google-chrome"
}
}
}
}Related MCP server: monkeysee
Configuration
Chrome Profile Paths
Default Chrome profile paths for each operating system:
OS | Path |
Windows |
|
macOS |
|
Linux |
|
Important Notes
Close all running Chrome instances before starting the automation server
Ensure proper permissions for the Chrome profile directory
For Docker setup, make sure the volume mount path matches your system's Chrome profile path
Credential Management
Securely store and manage login information using the system keychain:
# Save credentials
result = tool_save_credentials(
site="example.com",
username="your_username",
password="your_password"
)
# Retrieve saved credentials
result = tool_get_credentials(
site="example.com",
username="your_username"
)Key Features
Browser Control
# Open browser
result = tool_open_browser()
# Navigate to URL
result = tool_navigate(url="https://example.com")
# Close browser
result = tool_close_browser()Web Login
result = tool_web_login(
url="https://example.com/login",
credentials={
"username": "your_username",
"password": "your_password"
},
selectors={
"username": "#id",
"password": "#pw",
"submit": ".login-button"
}
)Special handling:
Waits for user to solve CAPTCHA when detected
Automatic detection of 2-factor authentication
Detailed analysis of login failure scenarios
Element Manipulation
# Click element
result = tool_click(selector=".button")
# Type text
result = tool_type(
selector="#input-field",
text="Hello, World!"
)
# Get text
result = tool_get_text(selector=".content")
# Get multiple elements
result = tool_get_elements(selector=".items")Important Considerations
Chrome Profile Usage
Verify correct profile path configuration
Close all other Chrome windows using the profile
Automation Detection Prevention
Simulation of natural user behavior
Maintain appropriate delays between login attempts
Security
Always use system keychain for important credentials
Never expose credentials directly in environment variables or configuration files
Available Tools
36 toolstool_add_cookieD
Add a cookie.
| Name | Required | Description | Default |
|---|---|---|---|
| cookie | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and a one-word description, there is no disclosure of critical behavioral traits. Does it overwrite existing cookies? Is it idempotent? What happens on failure? None of this is addressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While extremely short, the description is under-specified rather than concise. It omits necessary details and fails to earn its place with substantive information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of an object parameter with no output schema and no annotations, the description is vastly incomplete. It does not specify cookie structure, behavior, or return values, making it nearly useless for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'cookie' is an object with additionalProperties: true, meaning no structure is enforced. The description adds no meaning or constraints beyond the schema. Schema description coverage is 0%, and the description fails to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description 'Add a cookie.' is a tautology that restates the tool name without adding specificity. It does not distinguish this tool from siblings like tool_delete_cookie or tool_get_cookies, resulting in minimal purpose clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance provided on when to use this tool versus alternatives (e.g., tool_delete_cookie for removal, tool_get_cookies for retrieval). No context about prerequisites 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.
tool_backA
Navigate back in the browser history.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is transparent about the basic action but does not disclose any additional behavioral traits. For a simple tool with no annotations, this is adequate but could mention that it goes back one step in history or that it may fail if no history exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded and to the point. Every word is meaningful, with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema), the description is complete enough for its context. It could be slightly improved by noting that it only goes back one step, but it is not necessary for correctness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is 100%. The description does not need to add parameter information. Baseline for 0 parameters is 4, so this score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly uses a specific verb ('navigate') and resource ('browser history'), making the tool's purpose immediately understandable. It distinguishes itself from its sibling tools like 'tool_forward' which does the opposite.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (when you want to go back in history) but provides no explicit guidance on when to use this tool over alternatives like 'tool_navigate' or 'tool_forward'. No exclusion criteria or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_clickA
Click an element on the page.
This tool finds and clicks an element on the page using either CSS selector
or XPath. It will wait for the element to be clickable before attempting
to click it.
Args:
selector (str): The selector to find the element
by (str, optional): The selector type. Either "css" or "xpath". Defaults to "css"
Returns:
Dict[str, Any]: A dictionary containing:
- success (bool): Whether the operation was successful
- message (str): Status message
Example:
{"tool": "click", "args": {"selector": "#submit-button"}}
{"tool": "click", "args": {"selector": "//button[@type='submit']", "by": "xpath"}}
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | ||
| by | No | css |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses waiting for the element to be clickable, which is useful behavioral info. However, it lacks details on error handling or behavior when element not found. No annotations are provided to supplement this.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with args, returns, and example, though slightly verbose. It is front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description fully explains return values. It covers all necessary aspects for a click tool: selector types, waiting behavior, and status messages.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description adds meaning by explaining both parameters, including defaults and examples, compensating for the lack of schema docs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it clicks an element using CSS or XPath, distinguishing it from sibling tools like tool_type (typing) or tool_get_elements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (to click an element) but does not explicitly mention when not to use or provide alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_close_browserA
Close the browser instance.
This tool closes the current Chrome browser window and cleans up resources.
It's safe to call this even if no browser is open.
Returns:
Dict[str, Any]: A dictionary containing:
- success (bool): Whether the operation was successful
- message (str): Status message
Example:
{"tool": "close_browser"}
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behaviors: it closes the browser, cleans up resources, and is safe to call when no browser exists. It also describes return values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise, front-loaded with the main action, and every sentence adds important information. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity and no output schema, the description fully covers what the tool does, its safety, and return format, making it complete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description adds value by detailing return structure and providing an example, which compensates for the lack of output schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Close the browser instance' and explains it cleans up resources. It clearly distinguishes from other browser manipulation tools like navigation or window management.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes it's safe to call even if no browser is open, implying idempotent usage. However, it does not contrast with alternatives like closing via script or other methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_delete_all_cookiesA
Delete all cookies.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must fully disclose behavioral traits. While 'delete all cookies' implies a destructive action, it fails to warn about irreversible data loss, impact on session state, or the fact that cookies are cleared from the current browser context. This lack of transparency for a mutation tool is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that conveys the tool's purpose without extraneous words. Every word earns its place, and the structure is front-loaded with the action and target.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema), the description is largely sufficient. It tells the agent what the tool does. However, it could briefly note the side effect (e.g., 'aliases session') or usage scenario, but overall it is complete enough for a trivial operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters, the schema provides no constraints. The description adds no parameter-specific meaning, but nothing is needed. The baseline score of 4 applies because there are no parameters to document, and the description adequately states the tool's function without needing to elaborate on inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete all cookies' clearly states the action (delete) and the resource (all cookies). It distinguishes itself from sibling tools like tool_delete_cookie (specific cookie) and tool_get_cookies (retrieval), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like tool_delete_cookie or tool_get_cookies. The description does not mention prerequisites, context, or situations where clearing all cookies is appropriate, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_delete_cookieC
Delete a specific cookie.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure. It only states the basic operation without mentioning side effects (e.g., state changes, error handling for missing cookies, domain requirements). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is short, it is under-specification rather than efficient conciseness. It lacks structure and essential details, making it less useful than a slightly longer but informative description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (1 param, no output schema) the description could be sufficient, but missing behavioral and usage context, especially with many sibling tools, leaves it incomplete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description adds nothing about the 'name' parameter (e.g., case sensitivity, exact match, format). The parameter remains entirely opaque, offering no added value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete a specific cookie' clearly states the action and resource, distinguishing it from siblings like tool_delete_all_cookies. However, it lacks specificity about what constitutes a 'specific cookie' (e.g., by domain/path), preventing a top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like tool_delete_all_cookies or when a cookie context is needed. The agent has no context for appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_execute_scriptC
Execute JavaScript code.
| Name | Required | Description | Default |
|---|---|---|---|
| script | Yes | ||
| args | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must fully disclose behavior. It does not mention potential side effects, security implications, return values, or execution scope (e.g., global/window). This is a significant omission for a tool that executes arbitrary code.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is short, it is under-specified rather than appropriately concise. Essential information is missing, and it does not front-load critical details like parameter usage or return behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's potential power (executing arbitrary code), the description is extremely incomplete. It lacks information on return values, error handling, permissions, and the execution context, making it insufficient for safe and correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description adds no meaning to the two parameters ('script' and 'args'). It does not explain what 'args' are or how they relate to the script, leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Execute JavaScript code' clearly identifies the action (execute) and resource (JavaScript code). It is distinct from sibling tools like tool_click or tool_navigate, though it lacks context about the execution environment (e.g., browser).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't mention that this is for custom scripting or debugging, nor does it suggest appropriate contexts or exclude inappropriate ones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_forwardB
Navigate forward in the browser history.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It does not mention preconditions (e.g., existing forward history), side effects (e.g., page loading), errors, or return values. This is minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, lean sentence (5 words) with no unnecessary content. It could add useful context without becoming verbose, but as is, it is efficiently concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, no output schema, and simple functionality, the description is minimally adequate. However, it omits behavioral context (e.g., when it fails), which a simple tool could benefit from.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100%. The description does not need to explain parameters; it is clear about the tool's action. Baseline 4 for zero parameters is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Navigate forward in the browser history' clearly states the action (navigate) and resource (browser history), distinguishing it from sibling tools like tool_back (backward) and tool_navigate (specific URL).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool, such as requiring prior navigation steps or explaining that it only works if there is forward history. No alternatives or conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_fullscreen_windowB
Switch the browser window to full screen.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden. It only states the action without disclosing effects on other windows, reversibility, or how to exit full screen. This is insufficient 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no fluff. While it could benefit from additional context, it earns a 4 for being efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the description is somewhat complete but lacks mention of exit behavior or impact on existing windows. It is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the input schema has 100% coverage (empty). The description is adequate and does not need to add parameter details. Baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Switch' and clearly identifies the resource 'browser window' and the target state 'full screen'. It effectively distinguishes from sibling tools like 'tool_maximize_window' and 'tool_minimize_window'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as maximizing the window or setting a custom size. The agent lacks context to choose the correct tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_get_cookiesA
Return all cookies from the current page.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It states a read operation but does not explicitly confirm no side effects or disclose potential issues (e.g., empty list if no cookies). The behavior is simple and inferred, but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One straightforward sentence with no wasted words. It is appropriately front-loaded and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple parameter-less tool, but it does not mention the return format (e.g., list of cookie objects) which would be helpful given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0 parameters with 100% coverage, so the baseline is 4. The description adds no parameter information, which is acceptable since none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Return all cookies from the current page' uses a specific verb ('Return') and resource ('all cookies'), clearly distinguishing it from sibling cookie tools that add, delete, or modify cookies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for reading cookies, but does not explicitly say when not to use it or name alternatives. However, the sibling list includes explicit cookie-modifying tools, so the purpose is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_get_credentialsC
Retrieve stored credentials from system keychain
Args:
site: Website domain
username: User's username
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | ||
| username | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must fully disclose behavior. It does not mention that the operation is read-only, what happens if credentials are not found, or any security implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (two sentences) and front-loads the purpose. However, it sacrifices essential details for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should explain the return value (e.g., credentials object or null). It fails to do so, leaving the return type ambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description merely restates parameter names with vague natural language ('Website domain', 'User's username'). No format, constraints, or examples are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Retrieve stored credentials') and resource ('system keychain'). It distinguishes from sibling tools like 'tool_save_credentials' implicitly, but does not explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., 'tool_web_login', 'tool_save_credentials'). No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_get_current_urlA
Return the current page's URL.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description bears full burden. It merely states the action without disclosing behaviors like error conditions or return type.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded, no redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with no parameters and no output schema, the description is mostly complete, though it could mention that a page must be loaded or that the result is a string.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. The description adds no parameter info, which is acceptable given zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Return the current page's URL' clearly states the verb 'Return' and the resource 'current page's URL', and it is distinct from sibling tools like tool_get_title or tool_get_text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when or when not to use this tool compared to siblings. The purpose is implied but not elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_get_elementsA
Get multiple elements matching a selector.
This tool finds all elements matching the selector and returns their text
content and HTML.
Args:
selector (str): The selector to find the elements
by (str, optional): The selector type. Either "css" or "xpath". Defaults to "css"
Returns:
Dict[str, Any]: A dictionary containing:
- success (bool): Whether the operation was successful
- message (str): Status message
- data (List[Dict]): List of elements, each containing:
- text (str): The text content of the element
- html (str): The outer HTML of the element
Example:
{"tool": "get_elements", "args": {"selector": ".item"}}
{"tool": "get_elements", "args": {"selector": "//li[@class='item']", "by": "xpath"}}
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | ||
| by | No | css |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It explains the tool returns text and HTML for each element, but does not disclose behavior for edge cases like no matching elements, invalid selectors, or performance implications. The return structure is documented, which is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with Args, Returns, and Example sections. It is relatively concise, though the Args and Returns details could be slightly more compact. Overall, it communicates effectively without unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description adequately documents the return type and structure. It provides a complete overview of inputs and outputs. However, it lacks discussion of error handling or what occurs when no elements are found, which would enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, so the description adds significant value. It explains that 'selector' is used to find elements and 'by' specifies the selector type ('css' or 'xpath') with a default of 'css'. Examples further clarify usage. However, it could mention valid values for 'by' more explicitly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get multiple elements matching a selector' and specifies it returns text content and HTML. Among sibling tools like get_text or get_page_source, it is distinct in retrieving multiple elements with both text and HTML.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides examples but no explicit guidance on when to use this tool versus alternatives (e.g., get_text for single element, get_page_source for full HTML). It does not state when not to use or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_get_logC
Retrieve browser logs.
| Name | Required | Description | Default |
|---|---|---|---|
| log_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose any behavioral traits like whether logs are cleared, what log types are available, or performance implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While extremely short (2 words), this is under-specification rather than conciseness. It lacks essential details to be truly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and only one parameter, the description is severely incomplete. The agent lacks information about valid log_type values, return format, and side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has a single parameter 'log_type' with no description, and the tool description does not mention it. With 0% schema description coverage, the description fails to add meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Retrieve browser logs,' which clearly identifies the tool's action and resource. It distinguishes itself from sibling tools like get_cookies and get_current_url by focusing on logs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as when to retrieve logs versus other browser data like cookies or credentials.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_get_page_sourceA
Return the current page's HTML source.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for behavioral disclosure. It only states a simple return, omitting details like whether the source is the original or reflects dynamic changes, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is perfectly concise and front-loaded. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless, simple retrieval tool with no output schema, the description is mostly adequate. However, adding context about the dynamic nature of the source would improve clarity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the baseline is 4. The description does not need to add parameter information, but it could hint at the nature of the output, which it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Return' and resource 'current page's HTML source', distinguishing it from sibling tools like tool_get_current_url or tool_get_text. It is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or limitations. The agent must infer usage context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_get_textA
Get text from an element.
This tool finds an element and returns its text content.
Args:
selector (str): The selector to find the element
by (str, optional): The selector type. Either "css" or "xpath". Defaults to "css"
Returns:
Dict[str, Any]: A dictionary containing:
- success (bool): Whether the operation was successful
- message (str): Status message
- data (str): The text content of the element
Example:
{"tool": "get_text", "args": {"selector": "h1"}}
{"tool": "get_text", "args": {"selector": "//div[@class='content']", "by": "xpath"}}
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | ||
| by | No | css |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It explains the return value structure but does not cover error behavior, such as what happens if the element is not found. The tool appears non-destructive but missing error-handling details reduces transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-line summary, followed by Args, Returns, and examples. Every sentence is necessary and adds value, with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and no output schema, the description is fairly complete. It explains the purpose, parameters, and return format. However, it could clarify that it returns text from the first matching element, but that is implicitly clear from the examples.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by providing a brief description for each parameter, including type, possible values for 'by', and default. This adds meaning beyond the schema's property titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get text from an element.' It specifies the action (get) and resource (text from an element), and differentiates from sibling tools like tool_get_elements by focusing on text content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides examples and parameter descriptions but lacks explicit guidance on when to use this tool vs alternatives. It does not mention when not to use it or differentiate from other retrieval tools like tool_get_page_source.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_get_titleA
Return the current page's title.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description only states the basic action without disclosing behavioral traits such as error conditions, timeouts, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded, with no wasted words. Perfectly concise for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description adequately states the return value (title). However, it does not address edge cases like empty pages or error states, leaving minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (0 parameters). The description adds meaning by specifying it retrieves the 'current page's title', which is not evident from the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Return') and resource ('the current page's title'), clearly distinguishing it from sibling tools like tool_get_current_url and tool_get_text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description does not mention when it should be preferred over similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_get_window_handlesB
Return all window handles.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose behavioral traits beyond what is implied, such as whether it returns a list or the format. No annotations are provided, so the description carries the full burden but is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence, but could include more behavioral context without being verbose. Appropriate for a simple getter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description is minimally complete but lacks explanation of what window handles are or how to use them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema description coverage is 100%. The description need not add parameter information; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Return all window handles.' clearly states the verb and resource, distinguishing it from sibling tools like tool_switch_to_window which switches to a handle.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as tool_get_current_url or tool_switch_to_window. Lacks context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_get_window_sizeA
Return the current browser window size.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Read-only operation implied; no annotations, but description sufficiently communicates non-destructive behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded, no unnecessary text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks specification of return format (e.g., object with width and height); output schema missing, so description should cover this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, schema coverage 100%; baseline 4 applies as description adds no parameter info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it returns the current browser window size, distinct from siblings like set_window_size, maximize_window, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use or when to prefer alternatives like get_window_handles; it's generic but acceptable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_implicitly_waitC
Set implicitly wait time.
| Name | Required | Description | Default |
|---|---|---|---|
| seconds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only says 'Set', implying mutation, but does not explain the side effects, such as affecting all subsequent element searches or needing to be set before navigation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise at one sentence. However, brevity sacrifices clarity and completeness. It could be improved with a bit more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one parameter, no output schema), the description should explain the concept of implicit wait, typical usage (e.g., set once before locating elements), and the effect on driver behavior. It fails to provide sufficient context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The parameter 'seconds' is an integer without explanation. The description adds no meaning, e.g., what range or default value is expected.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Set implicitly wait time.' states a verb and resource, but the term 'implicitly wait time' is jargon that may not be clear to all agents. It doesn't differentiate from sibling tools like 'set_page_load_timeout' or 'set_script_timeout', which also set wait times.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention context, prerequisites, or when not to use implicit waits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_maximize_windowB
Maximize the browser window.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behaviors, but it only states the basic action. It does not mention idempotency, behavior when already maximized, or any side effects on other windows.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no wasted words. It is appropriately sized, though slightly more structure could be added.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is too minimal. It lacks context on behavior differences from siblings (e.g., fullscreen vs maximize) and does not mention whether the action is reversible or if it affects other windows.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100% by default. The description adds no parameter info, but per guidelines, 0 parameters earns a baseline of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Maximize the browser window' clearly states the action and target. It distinguishes from siblings like tool_minimize_window and tool_fullscreen_window, as maximize is a distinct window state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not indicate when to use this tool over alternatives like tool_fullscreen_window or tool_set_window_size, nor does it mention any preconditions 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.
tool_minimize_windowB
Minimize the browser window.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose any behavioral details beyond the basic action. It fails to specify what happens to the window state (e.g., becomes minimized to taskbar) or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no unnecessary words. However, it could be slightly more informative without sacrificing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no annotations, the description is minimally adequate. It tells what the tool does but lacks context such as the effect on the window or typical use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema coverage is 100% (trivially). According to guidelines, baseline for 0 parameters is 4. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action 'Minimize' and the resource 'browser window'. It effectively distinguishes from sibling tools like tool_maximize_window and tool_fullscreen_window by specifying the exact operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance provided on when to use this tool versus alternatives like 'maximize' or 'fullscreen'. The description merely states the action without context on appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_open_browserA
Open a new Chrome browser instance.
This tool initializes a new Chrome browser window. If a browser instance
already exists, it will reuse that instance.
Returns:
Dict[str, Any]: A dictionary containing:
- success (bool): Whether the operation was successful
- message (str): Status message
Example:
{"tool": "open_browser"}
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses that it initializes a new window and reuses an existing instance if present, which is important behavioral context. It also describes the return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (4 sentences), front-loaded with purpose, and includes an example with minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, no output schema, and sibling tools providing context, the description fully covers the tool's behavior, return value, and usage expectation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and schema coverage is 100%. The description does not add parameter info because none exist, but baseline is 4 for no-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it opens a new Chrome browser instance and distinguishes from sibling tools that manipulate an existing instance, e.g., tool_navigate, tool_click.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when a browser is needed, and the sibling tools list provides context for alternatives. However, it does not explicitly state when not to use or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_refreshB
Refresh the current page.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the basic behavior (reload the page) but lacks details on side effects (e.g., loss of unsaved form data, page re-rendering). Without annotations, the description carries the full burden, and this is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence that immediately conveys the tool's core function. It is front-loaded and contains no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters, no output schema, and no annotations, the description is minimally sufficient. However, it lacks contextual details about the refresh behavior (e.g., clearing cache, side effects) that would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and 100% schema coverage, the description does not need to add parameter information. The schema already fully defines the input, so the baseline of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Refresh the current page' clearly states the action (refresh) and the target (current page), making the tool's purpose easily understood. It is distinct from siblings like 'navigate' or 'back' because it implies reloading the same page.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'navigate' or 'forward'. There is no mention of prerequisites, exclusions, 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.
tool_sampleC
Set Sample execution timeout.
| Name | Required | Description | Default |
|---|---|---|---|
| seconds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description does not disclose side effects, permissions, or whether the timeout affects future calls. Merely states action without 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise (4 words) but loses necessary detail. Front-loaded but insufficient for effective use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and low schema coverage, description fails to explain return value, effect on browser, or relationship to sibling timeout tools. Incomplete for a single-parameter setter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has one integer parameter 'seconds' with 0% description coverage. Description does not explain what the timeout applies to or units. Agent must infer meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'Set Sample execution timeout' with verb 'Set' and resource 'Sample execution timeout'. However, 'Sample' is ambiguous and not differentiated from sibling timeout tools like tool_set_page_load_timeout.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives or prerequisites. Does not mention that it may be for a specific sample context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_save_credentialsC
Securely save credentials
Args:
site: Website domain
username: User's username
password: Password
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | ||
| username | Yes | ||
| password | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description must disclose behavior. 'Securely save' is vague; it doesn't mention overwriting behavior, persistence, or side effects. Missing details for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is very short and to the point, with no wasted words. However, it lacks structure like examples or behavioral breakdown.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters, no output schema, and no annotations, the description is incomplete. It doesn't explain return value, error handling, or if browser context is required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%. Description adds minimal value: 'Website domain', 'User's username', 'Password' barely expand on parameter names. No constraints or format hints provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool saves credentials securely. It distinguishes from siblings like tool_get_credentials (retrieves) and tool_web_login (performs login), though not explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 tool_web_login or when prerequisites are needed. It implies usage for storing credentials but lacks exclusions or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_set_page_load_timeoutC
Set page load timeout.
| Name | Required | Description | Default |
|---|---|---|---|
| seconds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does not disclose behavioral traits like whether the timeout is global, if it throws errors, or affects other timeouts. The description is too brief to inform the agent of side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence, but it sacrifices necessary detail. It is not wasteful, but it under-delivers for a tool configuration parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It does not explain the purpose of setting a page load timeout, how it interacts with browser behavior, or any prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description adds no meaning to the 'seconds' parameter. It does not explain units, range, default, or consequences of setting different values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Set' and the resource 'page load timeout', which is specific. It distinguishes from sibling 'tool_set_script_timeout' by targeting page load rather than script execution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool, such as before navigation or when dealing with slow pages. No mention of alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_set_script_timeoutC
Set script execution timeout.
| Name | Required | Description | Default |
|---|---|---|---|
| seconds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description only states the setting action. It does not disclose scope (e.g., per-session or per-page), side effects, error handling, or default behavior. The agent would not know whether this timeout applies globally or to subsequent script calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise. However, it sacrifices necessary detail for brevity. It is front-loaded but insufficiently informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter and no output schema, the description should at least explain the parameter units and scope. It fails to do so, leaving the agent uncertain about how to use it correctly, especially with similar sibling tools present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, yet the description does not mention the 'seconds' parameter, its unit, range, or effect. The agent must infer that it expects an integer representing seconds, but no confirmation is given. The description adds no value to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'Set' and resource 'script execution timeout', clearly indicating the action. However, it does not differentiate from the sibling tool 'tool_set_page_load_timeout', and is vague about what 'script execution timeout' means in context. It avoids tautology 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidelines are provided on when to use this tool versus alternatives like 'tool_set_page_load_timeout' or other timeout-related tools. The description does not mention prerequisites, typical use cases, 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.
tool_set_window_sizeC
Set the browser window size.
| Name | Required | Description | Default |
|---|---|---|---|
| width | Yes | ||
| height | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states the action but does not mention whether the size applies to the current window, if it is persistent, or if there are constraints (e.g., minimum/maximum sizes). A simple 'set' operation lacks details about side effects or prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise. However, it is too brief and sacrifices necessary detail; a slightly longer description could improve clarity without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 required integer parameters, no output schema, no annotations), the description fails to provide enough context. It does not explain what 'set' implies (e.g., resizing the browser viewport) or how it relates to other window size tools. The agent lacks information to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, meaning no parameter descriptions. The description does not compensate by explaining that 'width' and 'height' refer to pixel dimensions, valid ranges, or behavior if values are out of bounds. The agent must infer from parameter names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Set the browser window size' uses a specific verb and resource, clearly indicating the action. It distinguishes from sibling tools like 'tool_get_window_size' or 'tool_maximize_window' by its focus on setting dimensions rather than reading or adjusting to extremes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'tool_maximize_window' or 'tool_fullscreen_window'. The description lacks context such as setting a specific size for layout testing or ensuring consistency across sessions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_switch_to_default_contentD
Switch back to default content.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose any behavioral traits (e.g., side effects, required state, safety). The tool's action is ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (one sentence) and front-loaded, but it is overly terse and lacks necessary context. It could be expanded without losing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description should provide more context. It does not explain what 'default content' is, nor its relationship to other tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (empty schema), so the description adds no meaning beyond the schema. The description states the tool's behavior with zero parameters, which is adequate but not extra.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Switch back to default content' is vague; it does not specify what 'default content' refers to (e.g., main page, root frame). Among siblings like switch_to_frame and switch_to_window, the purpose is implied but not explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like switch_to_frame or switch_to_window. No context or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_switch_to_frameC
Switch to a specific frame.
| Name | Required | Description | Default |
|---|---|---|---|
| frame_reference | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose any behavioral traits, such as what happens to the current context, whether the frame is identified by index or name, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but may be too minimal. It lacks structure and does not provide enough information for an agent to use it effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one required parameter, no output schema, and no annotations, the description is severely incomplete. It fails to explain the tool's purpose in the context of browser 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning to the 'frame_reference' parameter. It does not explain what values are acceptable (e.g., frame name, id, index) or how they are used.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool's action (switch to a frame) and resource (frame), which is clear. However, it does not specify the type of frame (e.g., iframe) or differentiate from switching to default content or windows, which could be improved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like switch_to_window or switch_to_default_content. An agent would need to infer usage from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_switch_to_windowC
Switch to a specific window.
| Name | Required | Description | Default |
|---|---|---|---|
| window_handle | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for behavioral disclosure. It only states the basic function without explaining side effects (e.g., focus changes, failure behavior if handle is invalid) or safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but overly terse. It lacks essential detail, making it less useful despite its brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of browser window management and the existence of sibling tools for obtaining handles and switching frames, the description is insufficient. It omits return value information (no output schema) and fails to link to related tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, meaning the description adds no information about the 'window_handle' parameter beyond the schema. The description fails to explain what a valid handle is, how to obtain it, or any constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (switch) and resource (specific window), which is distinct from the multiple frame-related sibling tools. However, it does not explicitly differentiate from other window-related tools or define what 'switch' entails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like tool_switch_to_frame or tool_switch_to_default_content. There is no mention of prerequisites (e.g., obtaining window handles first) or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_take_screenshotC
Save a screenshot of the current page.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It fails to disclose where the screenshot is saved, the file format, default filename behavior, or any side effects on the page state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence) but is under-specified, missing essential details that would make it useful. It is front-loaded but fails to convey important information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one optional parameter, no output schema), the description should explain the parameter, default behavior, and output. It does not, leaving significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, and the description does not explain the 'filename' parameter at all. The parameter's default value and type are given in the schema, but its purpose is not clarified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'save a screenshot of the current page', which is a specific verb and resource. However, it does not differentiate from the sibling 'tool_sample', which might also capture page content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'tool_sample' or other browser manipulation tools. The description lacks context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_typeA
Type text into an element.
This tool finds an input element and types the specified text into it.
It will clear any existing text in the element before typing.
Args:
selector (str): The selector to find the element
text (str): The text to type into the element
by (str, optional): The selector type. Either "css" or "xpath". Defaults to "css"
Returns:
Dict[str, Any]: A dictionary containing:
- success (bool): Whether the operation was successful
- message (str): Status message
Example:
{"tool": "type", "args": {"selector": "#search-input", "text": "search query"}}
{"tool": "type", "args": {"selector": "//input[@name='q']", "text": "search", "by": "xpath"}}
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | ||
| text | Yes | ||
| by | No | css |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that it clears existing text, uses default selector type, and returns success/message. Missing details on error handling (e.g., element not found) or preconditions like element visibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (short description, args, returns, example). It is concise and front-loaded with the primary action. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains inputs and return structure adequately. However, it could mention implicit requirements (e.g., element must exist and be interactable) to achieve full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the tool description provides complete meaning for each parameter: selector finds the element, text is the input, by specifies css or xpath. This fully compensates for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Type text into an element.' The verb 'type' and resource 'element' are specific. Among siblings like tool_click and tool_get_text, this tool is uniquely identified for text input.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the behavior of clearing existing text and defaults to CSS selector. It provides an example for both CSS and XPath. However, it does not explicitly state when not to use this tool or compare it to alternatives like tool_execute_script for complex inputs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_web_loginA
Perform website login
This tool attempts to log in to the provided URL. It waits for automatic
input prevention (CAPTCHA) to be detected before allowing the user to manually resolve it.
Args:
url (str): Login page URL
credentials (Dict[str, str]): Login credentials
- username: User ID
- password: Password
selectors (Dict[str, str]): CSS selectors for login form elements
- username: ID input field selector
- password: Password input field selector
- submit: Login button selector
auth_type (str, optional): Authentication type. Defaults to "form"
- form: Regular form-based login
- oauth: OAuth authentication
- api: API-based authentication
wait_for (Optional[str], optional): CSS selector for element to wait for after login
Returns:
Dict[str, Any]: Login result
- success (bool): Login success status
- message (str): Status message
- session_data (Dict): Login success session information
- cookies: Cookie information
- localStorage: Local storage data
- sessionStorage: Session storage data
Special handling:
1. CAPTCHA detection
- If reCAPTCHA or standard CAPTCHA is detected, wait for user to manually resolve
- Automatically continue login process after resolution
2. Naver login
- Automatic detection of various special situations like automatic input prevention, 2-step authentication
- Detailed error message analysis and return
Example:
>>> result = tool_web_login(
... url="https://nid.naver.com/nidlogin.login",
... credentials={
... "username": "your_username",
... "password": "your_password"
... },
... selectors={
... "username": "#id",
... "password": "#pw",
... "submit": ".btn_login"
... }
... )
>>> if not result["success"] and "CAPTCHA" in result["message"]:
... # Wait for user input for CAPTCHA resolution
... print("Please solve the CAPTCHA in the browser")
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| credentials | Yes | ||
| selectors | Yes | ||
| auth_type | No | form | |
| wait_for | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behaviors: it attempts login, waits for CAPTCHA auto-detection, and continues after user resolution. It also mentions Naver-specific handling. However, it does not cover failure modes like incorrect credentials or network issues.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections for overview, parameters, returns, special handling, and an example. Every sentence is informative and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, parameters, return values, and special handling for CAPTCHA and Naver. It does not mention page navigation or explicit waiting behavior, but given the complexity, it is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully explains each parameter: url, credentials (with subfields), selectors (with subfields), auth_type (with options and default), and wait_for (purpose). This adds substantial meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Perform website login' and explains the tool's purpose. It distinguishes itself from sibling browser automation tools by focusing solely on login functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (for logging into websites) and mentions special cases like CAPTCHA and Naver login. It does not explicitly state when not to use it, but the context and sibling list make its primary use clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes (e.g., navigate, click, type), but tool_web_login overlaps with multiple basic tools and could cause ambiguity. Additionally, tool_get_text and tool_get_elements have similar functionality.
All tools follow a consistent 'tool_verb_noun' snake_case pattern. While tool_web_login deviates slightly, the overall pattern is uniform and predictable.
36 tools is excessive for a browser automation server. Many low-level tools (e.g., tool_implicitly_wait, tool_set_page_load_timeout) could be combined or made optional, leading to unnecessary complexity.
Covers core browser actions (navigation, clicking, typing, cookies, frames, windows) but lacks explicit element wait conditions, alert handling, and attribute retrieval. The login tool partially addresses high-level needs.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted real Google Chrome MCP with per-user persistent state. Navigate, click, type, screenshot.
Stealth web browser for agents: search, fetch, click, download and type in persistent MCP sessions.
Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.
Stealth web automation for AI agents. Login, signup, navigate, screenshot.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables browser automation using the Selenium WebDriver through MCP, supporting browser management, element location, and both basic and advanced user interactions.907427MIT
- AlicenseNot gradedqualityBmaintenanceEnables MCP clients to drive a real, logged-in Chrome browser for web automation tasks like navigation, clicking, typing, and screenshotting.101MIT
- AlicenseNot gradedqualityCmaintenanceEnables browser automation over MCP using a real Chrome browser with existing profile, supporting real tabs, downloads, cookies, and RPA workflows.104MIT
- FlicenseNot gradedqualityCmaintenanceEnables MCP clients to control a real local browser window for web automation tasks such as clicking, typing, scrolling, and taking screenshots.11
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dlwjdtn535/mcp-chrome-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server