PyPen MCP
Provides capabilities for bypassing Cloudflare Turnstile captchas and interacting with Cloudflare-protected sites.
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., "@PyPen MCPCapture network requests from the login page and check for security issues"
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.
PyPen MCP
Model Context Protocol server for browser-based penetration testing using PyDoll.
Overview
PyPen MCP provides a comprehensive set of tools for LLM-powered browser automation and security testing. It leverages PyDoll's Chrome DevTools Protocol integration for reliable, webdriver-free browser control.
Related MCP server: nodriver-proxy-mcp
Features
Browser Management
Launch/close browser instances with configurable options
Navigation control (navigate, back, forward, refresh)
Headless mode, proxy support, custom user agents
Incognito mode and resource blocking
Network Operations
Monitoring: Capture all HTTP traffic, analyze requests/responses
Interception: Block, modify, or mock requests in real-time
Authenticated Requests: Make API calls that inherit browser session/cookies
DOM Manipulation
Find elements by CSS selector, XPath, or attributes
Click, type, scroll, and interact with elements
Extract page source, element text, and HTML
Human-like scrolling with physics simulation
JavaScript Execution
Execute arbitrary JavaScript in browser context
Access localStorage and sessionStorage
Extract global variables, forms, and links
Session Management
Cookie manipulation (get, set, delete, clear)
Import/export cookies in multiple formats
Session-aware HTTP requests
Captcha Handling
Turnstile Bypass: Automatic Cloudflare Turnstile interaction
Human Intervention: Request human help for unsolvable captchas (ReCAPTCHA v2, hCaptcha)
Detection: Identify captcha types on the page
Debugging
Screenshots (full page or elements)
Viewport control
Performance metrics
Element highlighting
Installation
pip install pypen-mcpOr install from source:
git clone https://github.com/your-repo/pypen-mcp
cd pypen-mcp
pip install -e .Configuration
Add to your MCP client configuration:
{
"mcpServers": {
"pypen": {
"command": "pypen-mcp"
}
}
}For development:
{
"mcpServers": {
"pypen": {
"command": "/path/to/pypen-mcp/.venv/bin/pypen-mcp"
}
}
}Usage Examples
Basic Browser Automation
# Launch browser
browser_launch(headless=True)
# Navigate to target
browser_navigate(url="https://example.com")
# Extract page content
dom_get_source()
# Find and interact with elements
dom_find_element(css_selector="#username")
dom_type(selector="#username", text="admin")
dom_click(selector="button[type=submit]")
# Take screenshot for documentation
debug_screenshot(path="/tmp/screenshot.png")
# Close when done
browser_close()Network Monitoring
# Enable traffic capture
network_enable_monitoring()
# Navigate and capture
browser_navigate(url="https://api.example.com")
# Get captured requests
network_get_logs(filter_url="/api/")
# Get response body for specific request
network_get_response_body(request_id="abc123")
# Disable when done
network_disable_monitoring()Request Interception
# Set up interception rules
network_setup_handler(
block_patterns=["analytics", "tracking", "ads"],
modify_headers={"Authorization": "Bearer token123"},
mock_responses={"/api/config": {"status": 200, "body": {"debug": true}}}
)
# Navigate with interception active
browser_navigate(url="https://example.com")Session-Based Requests
# Login via UI (handles complex auth)
browser_navigate(url="https://app.com/login")
dom_type(selector="#email", text="user@example.com")
dom_type(selector="#password", text="password123")
dom_click(selector="button[type=submit]")
# Make authenticated API calls
session_make_request(
url="https://app.com/api/user/profile",
method="GET"
)Captcha Handling
# Enable automatic Turnstile bypass
captcha_enable_turnstile_bypass(time_to_wait_captcha=10.0)
# Navigate to protected site
browser_navigate(url="https://protected-site.com")
# Wait for captcha processing
# ... automation continues ...
# For unsolvable captchas, request human help
captcha_detect_type() # Check what's on page
captcha_request_human_intervention(
captcha_type="recaptcha_v2",
message="Please solve the ReCAPTCHA to continue"
)
# Wait for human to solve
captcha_wait_for_resolution(request_id="abc123", timeout=300)Tool Reference
Browser Tools
Tool | Description |
| Launch browser with options (headless, proxy, etc.) |
| Close the browser instance |
| Navigate to a URL |
| Navigate back in history |
| Navigate forward in history |
| Refresh current page |
| Get current URL and title |
Network Tools
Tool | Description |
| Start capturing HTTP traffic |
| Stop traffic capture |
| Get captured requests (with optional filter) |
| Get response body for a request |
| Enable request interception |
| Disable interception |
| Configure auto interception rules |
DOM Tools
Tool | Description |
| Find element by selector |
| Find multiple elements |
| Get element text content |
| Get element HTML |
| Click an element |
| Type text into input |
| Scroll the page |
| Get full page HTML |
| Wait for element to appear |
JavaScript Tools
Tool | Description |
| Execute JavaScript code |
| Get console logs |
| Extract global variables |
| Get localStorage data |
| Get sessionStorage data |
| Set localStorage value |
| Get all forms with inputs |
| Get all links on page |
Session Tools
Tool | Description |
| Get all cookies |
| Get specific cookie |
| Set a cookie |
| Delete a cookie |
| Clear all cookies |
| Export cookies (json/netscape/header) |
| Import cookies from JSON |
| Make session-authenticated HTTP request |
Captcha Tools
Tool | Description |
| Enable auto Turnstile handling |
| Disable Turnstile handling |
| Detect captcha type on page |
| Auto-handle detected captcha |
| Request human help |
| Get unresolved requests |
| Mark intervention as resolved |
| Wait for human to solve |
Debug Tools
Tool | Description |
| Take page screenshot |
| Get viewport size |
| Set viewport size |
| Get performance metrics |
| Highlight matching elements |
Important Notes
Browser Session Persistence
The browser session persists until explicitly closed with
browser_closeAll operations (DOM, JS, network) use the same active session
Cookies and session state are maintained across navigations
Captcha Success Factors
Turnstile bypass success depends on:
IP Reputation: Use residential proxies with good reputation
Browser Fingerprint: Configure realistic browser options
Behavioral Patterns: Add realistic delays and interactions
Human Intervention Workflow
Detect captcha:
captcha_detect_type()Try auto-handling:
captcha_handle_auto()If fails, request help:
captcha_request_human_intervention()Wait for resolution:
captcha_wait_for_resolution()Continue automation
License
MIT
Available Tools
52 toolsbrowser_closeA
Close the browser instance
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only says 'Close'. It does not disclose whether this destroys the session, requires confirmation, or has irreversible 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?
Extremely concise and front-loaded. The single sentence 'Close the browser instance' is appropriate for a parameterless 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 is largely sufficient. However, it could mention that the browser instance is the one currently managed by the context, but it's still 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?
There are no parameters, so the baseline is 4. The description adds no parameter information, but that is not needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Close the browser instance', which is a clear verb+resource pair. It distinguishes itself from sibling tools like browser_launch.
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 (e.g., not when you want to keep the browser open). The description lacks any when-to-use or when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_get_infoA
Get information about the current page (URL, title)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly states what information is returned (URL, title). Although no annotations are provided, the tool has no parameters and is clearly a read-only getter, so the description adequately discloses its 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?
The description is a single sentence of 10 words, front-loading the purpose with no wasted words. It is optimally 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?
For a simple tool with no parameters and no output schema, the description sufficiently covers what the tool does and what it returns. It does not specify the return format, but the context is straightforward enough for an agent to use 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?
There are zero parameters, and the description adds no param information, but the baseline for 0 parameters is 4. The schema coverage is 100%, so no additional context 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?
The description clearly states the verb 'Get' and resource 'information about the current page', and specifies the exact pieces of information (URL, title). It distinguishes from sibling tools like browser_navigate or dom_click, which perform different actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this tool should be used when the agent needs the URL or title of the current page. It does not explicitly mention when not to use it or alternatives, but the sibling tools cover other browser functions, making the usage context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_go_backA
Navigate back in browser history
| 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 edge cases (e.g., behavior when history is empty) or side effects. With no annotations, the description carries full burden but only provides minimal information.
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 extraneous information. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (no parameters, no output schema), the description is mostly adequate. However, it could mention the history stack or contrast with browser_go_forward for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is 100%. The description adds no parameter info, but baseline 4 is appropriate for no 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 'Navigate back in browser history' clearly states the action (navigate back) and the resource (browser history). It distinguishes from sibling tools like browser_go_forward and browser_navigate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for going back in history but does not provide explicit guidance on when to use this tool versus alternatives like browser_navigate with a back action. No exclusions or context are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_go_forwardA
Navigate forward in browser history
| 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 core action without disclosing side effects, prerequisites, or behavior when no forward 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?
Single sentence is concise, but could potentially include 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?
For a simple tool with no parameters and no output schema, the description is adequate but lacks details on edge cases and integration with other browser 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?
No parameters exist, so schema coverage is 100%. The description adds no further meaning, but baseline is 4 for zero-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 'Navigate forward in browser history' uses a specific verb and resource, and clearly distinguishes from the sibling tool 'browser_go_back'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives like browser_navigate or browser_go_back; usage is only implied from the context of browser history navigation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_launchB
Launch a new browser instance with optional configuration (headless, proxy, user agent, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| headless | No | Run in headless mode | |
| proxy | No | Proxy server URL (e.g., socks5://127.0.0.1:9050) | |
| user_agent | No | Custom user agent string | |
| binary_location | No | Path to Chrome binary | |
| window_size | No | Window size [width, height] | |
| incognito | No | Run in incognito mode | |
| disable_images | No | Disable image loading | |
| arguments | No | Additional browser arguments |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It mentions launching with optional config but does not explain side effects (e.g., whether it closes existing instances), required permissions, or return 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, no wasted words. Front-loaded with clear verb and optional configuration summary.
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 8 optional parameters and no output schema, the description lacks context on where the browser launches, how to reference it, or if it's a singleton. More detail is needed for a resource-creating tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description lists 'headless, proxy, user agent, etc.' but adds no additional meaning beyond the schema parameter 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 'Launch a new browser instance' with optional configuration, which is a specific verb+resource. It distinguishes itself from sibling tools like browser_close or browser_navigate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide guidance on when to use this tool versus alternatives, such as when a new session is needed before navigation. No explicit context or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_refreshA
Refresh 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 should convey behavioral traits like page state reset, but it only states the action without any additional context about effects or requirements.
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, but it lacks structure such as usage examples or additional context that would make it more helpful.
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 output schema, the description sufficiently states the purpose, but could benefit from more context about when a refresh is appropriate.
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 the description need not add parameter details; baseline 4 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 'Refresh the current page' clearly states the action and resource, distinguishing it from navigation siblings like browser_navigate and browser_go_back.
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 refresh versus alternatives such as browser_navigate or browser_go_back; lacks context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
captcha_detect_typeB
Detect what type of captcha is present on the current page. Scans for Cloudflare Turnstile, reCAPTCHA, hCaptcha, and image challenge indicators.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full behavioral burden. It does not state if the tool is read-only, modifies the page, or requires page to be fully loaded. Side effects and error conditions are not mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that efficiently conveys the tool's purpose and scope without 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?
Despite having no parameters, the description lacks information about return format (e.g., what is returned if no captcha is found or multiple types exist). Since no output schema exists, the 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?
The tool has zero parameters, and the description implicitly confirms no input is needed. Baseline for 0 parameters is 4; no additional parameter details are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool detects captcha types on the current page and lists specific captcha systems it scans for. However, it does not differentiate from sibling captcha tools like captcha_get_pending_interventions or captcha_handle_auto.
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 (e.g., captcha_handle_auto). No prerequisites or context for usage are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
captcha_disable_turnstile_bypassA
Disable automatic Turnstile bypass
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not reveal side effects, reversibility, or prerequisites for disabling bypass.
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 concise sentence with no unnecessary words; perfectly 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?
Message is complete for a no-parameter tool; assumes agent understands Turnstile bypass context from sibling tool names.
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; schema coverage is 100% by default, and description is unnecessary for parameter semantics.
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 tool disables automatic Turnstile bypass, distinguishing it from sibling tools like captcha_enable_turnstile_bypass.
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 captcha_enable_turnstile_bypass or other captcha tools; lacks context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
captcha_enable_turnstile_bypassA
Enable automatic Cloudflare Turnstile bypass. Uses PyDoll's built-in mechanism to detect and click the Turnstile checkbox. Success depends on IP reputation and browser fingerprint - this is NOT a magic bypass. Use residential proxies for best results.
| Name | Required | Description | Default |
|---|---|---|---|
| time_to_wait_captcha | No | Seconds to wait for captcha to appear (default: 5.0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It honestly states limitations ('NOT a magic bypass', dependency on IP reputation and fingerprint). It doesn't detail failure modes or side effects, but for a single-parameter tool, this is acceptable.
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: two sentences that front-load the core purpose and immediately follow with usage context. Every sentence adds value with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, no output schema, no annotations), the description is complete. It covers what the tool does, how it works, limitations, and a best practice (use residential proxies). No additional context is needed.
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% and the description restates the parameter purpose ('Seconds to wait for captcha to appear') without adding new meaning beyond the schema. The default value is already in the schema. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Enable automatic Cloudflare Turnstile bypass') and identifies the specific resource ('Cloudflare Turnstile'). It distinguishes itself from sibling tools like captcha_disable_turnstile_bypass and captcha_detect_type by specifying the bypass action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on when to use the tool (to bypass Turnstile) and includes important caveats: success depends on IP reputation and browser fingerprint, and it is not a magic bypass. It recommends using residential proxies for best results. However, it doesn't explicitly contrast with alternatives like captcha_handle_auto or captcha_request_human_intervention.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
captcha_get_pending_interventionsA
Get all pending human intervention requests that have not been resolved
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It indicates a read operation ('get') but does not disclose potential side effects, authorization needs, or any other behavioral traits beyond the basic retrieval of pending items.
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 concisely states the action and resource, front-loading the key information with no unnecessary 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 the tool's simplicity (zero parameters, no output schema), the description sufficiently explains what the tool returns (pending unresolved interventions). No additional context is necessary for an agent 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 tool has zero parameters, and schema description coverage is 100%. The description does not need to add parameter information since there are none. According to guidelines, baseline for 0 parameters 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 clearly states 'Get all pending human intervention requests that have not been resolved'. The verb 'get' and resource 'pending human intervention requests' are specific and distinct from sibling tools like captcha_request_human_intervention or captcha_resolve_intervention, which perform different actions.
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 using this tool to retrieve unresolved interventions but provides no explicit guidance on when to use it versus alternatives, nor any exclusions or prerequisites. It lacks explicit context for usage decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
captcha_handle_autoA
Attempt to automatically handle any detected captcha. For Turnstile: uses built-in bypass. For others (ReCAPTCHA v2, hCaptcha, image challenges): returns need for human intervention.
| Name | Required | Description | Default |
|---|---|---|---|
| timeout | No | Timeout in seconds for automatic handling (default: 30.0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description bears full burden. It discloses auto-handle attempts and outcome based on captcha type (bypass vs. human need), which is transparent and useful for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences, no redundancy, front-loaded with key 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?
Description covers return outcomes (bypass vs. human need) and aligns with sibling tools. Lacks mention of error handling or behavior when no captcha detected, but is adequate for a simple tool without 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?
Schema coverage is 100% and the description adds no extra meaning beyond the schema's description of the timeout parameter. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it attempts automatic captcha handling, specifying behavior for Turnstile (built-in bypass) and other types (human intervention). This differentiates from sibling tools like captcha_detect_type or captcha_request_human_intervention.
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 when to use this tool (for automatic handling) and when human intervention is needed, but does not explicitly name alternative tools or provide when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
captcha_request_human_interventionA
Request human intervention for an unsolvable captcha (e.g., ReCAPTCHA v2 image challenges, hCaptcha puzzles). Creates an intervention request with screenshot. The automation should wait for human to solve.
| Name | Required | Description | Default |
|---|---|---|---|
| captcha_type | Yes | Type of captcha: turnstile, recaptcha_v2, recaptcha_v3, hcaptcha, image_challenge, puzzle, or unknown | |
| message | Yes | Message explaining what the human needs to do | |
| take_screenshot | No | Take a screenshot for reference (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey all behavioral traits. It states the tool creates an intervention request with a screenshot and that automation should wait. However, it does not clarify whether the tool blocks until solved or returns immediately, nor does it mention side effects, required permissions, or how to check resolution. Some behavioral aspects are left implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and includes examples and a usage instruction. Every sentence is informative and necessary, 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 simple nature of the tool and the presence of sibling tools like captcha_wait_for_resolution and captcha_get_pending_interventions, the description is mostly complete. It explains what triggers the tool, what it does, and what the automation should do next. However, it lacks details on the return value or lifecycle (e.g., how to know when intervention is resolved), but these are covered by siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all three parameters. The tool description adds value for 'take_screenshot' by explaining it creates a screenshot, but for 'captcha_type' and 'message' it adds no extra meaning beyond what the schema already provides. 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 clearly states the action ('Request human intervention for an unsolvable captcha'), provides concrete examples (ReCAPTCHA v2, hCaptcha), and distinguishes from siblings like captcha_handle_auto (which automates) and captcha_resolve_intervention (which resolves an existing request). The verb 'request' and resource 'human intervention' are 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?
The description implies usage when a captcha is unsolvable by automation and instructs 'The automation should wait for human to solve.' This gives clear context, though it does not explicitly state when not to use the tool or name alternative tools like captcha_handle_auto. However, the sibling list provides that context implicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
captcha_resolve_interventionA
Mark an intervention request as resolved after human has solved the captcha. This allows the automation to continue.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | Yes | The intervention request ID to resolve | |
| resolution | No | Resolution status (default: 'solved') | solved |
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 resolving allows automation to continue, which is a behavioral trait. However, it lacks details about error handling or prerequisites, earning a mid-range score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences with no wasted words. The purpose is front-loaded in the first sentence.
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 good schema coverage and no output schema, the description is mostly complete. It explains the purpose and timing, though it could mention what happens on failure or invalid request_id.
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 100%, so the baseline is 3. The description adds context about usage timing but does not enhance parameter meaning beyond what the schema provides.
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 'Mark an intervention request as resolved after human has solved the captcha', specifying the verb (resolve) and resource (intervention request). It distinguishes from siblings like captcha_request_human_intervention and captcha_get_pending_interventions.
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 indicates when to use the tool ('after human has solved the captcha'), providing clear context. However, it does not explicitly state when not to use it or mention alternatives like captcha_wait_for_resolution.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
captcha_wait_for_resolutionA
Block until a human intervention is resolved or timeout expires. Use this to pause automation while waiting for human to solve captcha.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | Yes | The intervention request ID to wait for | |
| timeout | No | Maximum seconds to wait (default: 300) | |
| poll_interval | No | Seconds between checks (default: 2) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behavioral traits: it blocks until resolution or timeout, which is essential for an agent to understand the tool's impact. Without annotations, the description carries full burden, and it adequately conveys the blocking nature and timeout behavior, though it could mention implications like thread blocking or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: the first states the core blocking behavior, the second gives a usage context. Front-loaded with essential information and no unnecessary 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 the tool's simplicity (3 params, no output schema, no annotations), the description covers purpose and usage adequately. It could be improved by noting the return value (e.g., resolution details) or clarifying timeout behavior, but it is largely complete for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, meaning each parameter is already described in the schema. The tool description does not add any extra meaning or context beyond what the schema provides, so per the guidelines, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool blocks until human intervention is resolved or timeout expires, with a specific verb (block/wait) and resource (human intervention/captcha resolution). It distinguishes itself from sibling tools like captcha_request_human_intervention (initiates) and captcha_resolve_intervention (resolves) by focusing on waiting.
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 explicitly says 'use this to pause automation while waiting for human to solve captcha,' providing clear guidance on when to use the tool. However, it does not mention when not to use it or discuss alternatives (e.g., captcha_handle_auto), which would strengthen guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
debug_get_performanceB
Get performance metrics from the 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 must disclose all behavioral traits, but it only says 'Get performance metrics' without specifying what metrics, side effects, or performance impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words, achieving maximum conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description lacks details on what metrics are returned, format, or any behavioral constraints, making it incomplete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and schema coverage is 100%, so the description needs no parameter info. 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 clearly states the tool retrieves performance metrics from the page, which is a specific and distinct action among siblings like debug_get_viewport and debug_screenshot.
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 other debug tools, nor does it mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
debug_get_viewportA
Get the current viewport size
| 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 should disclose behavioral traits; it only states what it does without mentioning return format, side effects, or potential errors.
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, efficient sentence with 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 zero parameters and no output schema, the description is minimal; it lacks details about what 'viewport size' includes (e.g., width/height, units).
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, and the schema coverage is 100%; the description need not add parameter info, but it could hint at output format.
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 'Get the current viewport size' clearly states a specific verb and resource, and distinguishes from the sibling 'debug_set_viewport' which sets the viewport.
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 are there any prerequisites or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
debug_highlightB
Highlight all elements matching a selector
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | CSS selector | |
| color | No | Highlight color | red |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavior. It says 'highlight' but does not explain how the highlighting is rendered (e.g., CSS outline, background color change, temporary overlay), whether it persists, or if it can be reverted. This lack of detail impairs an agent's understanding 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 a single, efficient sentence that conveys the core functionality. However, it could be slightly more informative without losing conciseness, such as mentioning the optional color 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 tool's simplicity and lack of output schema or annotations, the description is minimally adequate but leaves gaps: it doesn't specify the visual effect of highlighting, duration, or interaction with other tools. An agent would benefit from knowing that highlighting is non-persistent and used for visual debugging.
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?
Both parameters are already well-described in the schema (selector: 'CSS selector', color: 'Highlight color' with default). The description adds no additional semantic meaning beyond the schema's coverage, which is 100%, earning a baseline score of 3.
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: highlighting elements by selector. It uses a specific verb ('highlight') and resource ('elements matching a selector'), and is distinct from sibling tools like dom_find_element (which finds without highlighting) or debug_screenshot (which captures image).
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 dom_find_element or debug_set_viewport. The description does not specify use cases or context, nor does it mention any prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
debug_screenshotA
Take a screenshot of the current page. Returns the image directly. MUST be called after every dom_click to observe the result.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It states 'Returns the image directly' but lacks details on side effects, permissions, or output format (e.g., base64). Adequate but 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?
Two concise sentences with no fluff. The essential information is front-loaded and every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool, the description covers purpose, return value, and usage context. However, it does not specify the image format (e.g., base64 PNG), which could be helpful for 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?
The tool has no parameters, making the schema coverage 100%. Baseline for 0 parameters is 4, and the description adds no further param info, which is acceptable.
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 'Take a screenshot of the current page' with a specific verb and resource, clearly distinguishing it from siblings like 'debug_get_viewport'.
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 an explicit usage directive: 'MUST be called after every dom_click to observe the result.' While it doesn't mention when not to use or list alternatives, it gives clear context for a simple tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
debug_set_viewportB
Set the viewport size
| Name | Required | Description | Default |
|---|---|---|---|
| width | Yes | Viewport width | |
| height | Yes | Viewport height |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description bears full responsibility for behavioral disclosure. It only states the action without detailing side effects, such as whether it triggers a layout change or is destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (2 required integer parameters, no output schema), the description plus schema are sufficient for an agent to understand the tool's function. However, a note about default values or constraints would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already describes 'width' and 'height' as integers for viewport dimensions. The description adds no extra 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 'Set the viewport size' clearly states the action (set) and resource (viewport size). It effectively distinguishes from sibling 'debug_get_viewport' which retrieves the viewport.
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 it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dom_clickB
Click on an element. IMPORTANT: You SHOULD either call debug_screenshot or view the source after every click to observe the result of the interaction.
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | CSS selector or XPath | |
| timeout | No | Timeout in seconds |
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 fails to disclose critical behavioral traits such as whether scrolling into view is performed, if it waits for the element to be interactable, or what happens on failure (timeout, not found). Only a post-action observation hint is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the action. The second sentence is an important contextual instruction. No redundant or extraneous content.
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 click tool with 2 parameters and no output schema, the description covers the basic action and a post-action recommendation. However, it lacks details on error handling, timeout behavior, and element interactivity expectations, leaving noticeable 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%, so both parameters (selector, timeout) are already described. The description adds no extra meaning beyond clarifying the tool's action. 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 'Click on an element' clearly states the verb and resource. It distinguishes the basic click action from sibling tools like 'dom_type' or 'dom_find_element', but does not explicitly differentiate its scope or use cases.
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 a post-action guideline to call 'debug_screenshot' or view source after clicks. However, it does not specify when to use this tool versus alternatives (e.g., 'dom_type' for input interactions, 'js_execute' for programmatic clicks) 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.
dom_find_elementC
Find an element on the page using various selectors
| Name | Required | Description | Default |
|---|---|---|---|
| tag_name | No | HTML tag name | |
| id | No | Element ID | |
| class_name | No | CSS class name | |
| name | No | Name attribute | |
| text | No | Text content to match | |
| css_selector | No | CSS selector | |
| xpath | No | XPath expression | |
| timeout | No | Timeout in seconds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description is too brief: it does not disclose what happens if element is not found, whether it waits, or 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?
Single sentence is concise but under-specified for an 8-parameter tool. Could include more detail 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?
No output schema, so description should explain return value and behavior. It does not, nor does it clarify distinction from dom_find_elements.
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% with well-described parameters, so description does not need to add much. 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?
Description clearly states verb (find) and resource (element on page) but does not explicitly differentiate from sibling 'dom_find_elements', which likely finds multiple 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?
No guidance on when to use this tool versus dom_find_elements or other selectors. No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dom_find_elementsC
Find multiple elements on the page
| Name | Required | Description | Default |
|---|---|---|---|
| tag_name | No | HTML tag name | |
| class_name | No | CSS class name | |
| css_selector | No | CSS selector | |
| xpath | No | XPath expression | |
| timeout | No | Timeout in seconds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description only states 'find multiple elements', omitting key behaviors such as what happens when elements are not found, whether it waits (though a timeout parameter exists), or how multiple selectors are combined. The agent has no insight into return type or error handling.
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, front-loaded with the core action. However, it is too brief to be fully useful, though it achieves conciseness at the cost of completeness.
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 zero behavioral hints, the description is severely incomplete. It fails to explain return format, error states, or parameter interaction. For a tool with 5 parameters and no annotations, the agent needs far more context 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?
Despite 100% schema coverage, the description adds no extra meaning to the parameters. It does not explain how selectors interact (AND/OR), how timeout is used, or that selectors are optional. The description relies entirely on the schema, which is adequate but not enhanced.
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 'Find multiple elements on the page' clearly states the verb 'find' and the resource 'multiple elements'. It implicitly distinguishes from the sibling 'dom_find_element' (singular), but does not explicitly highlight the difference.
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 over alternatives like 'dom_find_element', 'dom_click', or selectors. The description does not mention context, prerequisites, or when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dom_get_htmlB
Get the outer HTML of an element
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | CSS selector or XPath | |
| timeout | No | Timeout in seconds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behavior. It does not mention waiting for element appearance (despite timeout parameter), error handling, or whether it returns null or throws on missing element.
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, clear sentence with no fluff. Efficient 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?
Lacks explanation of return value (expected to be outer HTML string) and error behavior. Without output schema, description should clarify what is returned.
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% with descriptions for both parameters. The description adds no extra semantics beyond what schema already provides.
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 'Get' and the resource 'outer HTML of an element'. It distinguishes from siblings like dom_get_text (text) and dom_get_source (full page source).
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 over alternatives like dom_get_text or dom_get_source. No context about prerequisites or typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dom_get_sourceB
Get the full page HTML source
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description should disclose behavioral traits. It fails to mention performance impact, whether the source includes dynamic content, or if it requires the page to be fully loaded. The description is truthful but insufficiently informative.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, directly stating the function. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no annotations, the description is too minimal. It does not explain what the returned data looks like or any constraints (e.g., entire page, including iframes). Sibling tools like dom_get_html and debug_screenshot are not differentiated.
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 description coverage is 100%. The description adds no additional meaning beyond the schema, but the baseline is 4 for zero-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 'Get the full page HTML source' uses a specific verb and resource, clearly indicating the tool retrieves the entire page HTML. This distinguishes it from sibling tools like dom_get_html (specific element) and dom_get_text (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?
No guidance is provided on when to use this tool versus alternatives such as dom_get_html or debug_screenshot. The description lacks any when-to-use or when-not-to-use context, leaving the agent to infer usage 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.
dom_get_textB
Get the text content of an element
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | CSS selector or XPath | |
| timeout | No | Timeout in seconds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks behavioral details such as error handling for missing elements or timeout effects. No annotations are provided to compensate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words. It is concise but could benefit from slightly more context.
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 minimal behavioral info, the description is incomplete for a tool that may require error handling or usage nuance.
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 100%, so the schema fully documents parameters. The description adds no additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'text content of an element'. It distinguishes from sibling tools like dom_get_html and dom_get_source.
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 dom_get_html for HTML or dom_get_source for page source. Usage is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dom_scrollB
Scroll the page
| Name | Required | Description | Default |
|---|---|---|---|
| direction | No | Scroll direction (down, up, bottom, top) | down |
| amount | No | Pixels to scroll |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for disclosing behavioral traits. It only states 'Scroll the page' without mentioning whether it scrolls the main viewport, handles overflow containers, or any side effects. This is insufficient for an agent to understand potential impacts.
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, efficiently conveying the core purpose. It is front-loaded and avoids unnecessary words, though it could benefit from slightly more detail 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?
For a tool with no output schema and simple parameters, the description is minimal. It does not explain return values, error cases, or behavior for edge inputs (e.g., out-of-viewport scrolling). Contextual completeness is lacking.
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?
Both parameters (direction, amount) have full schema descriptions, so schema coverage is 100%. The description adds no additional meaning beyond the schema, earning a baseline score of 3.
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 'Scroll the page' clearly states the action (scroll) and the resource (page). It is a specific verb+resource that distinguishes this tool from sibling DOM actions like dom_click or dom_type.
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 versus alternatives like browser_navigate or other DOM tools, nor does it mention any prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dom_typeC
Type text into an input element
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | CSS selector or XPath | |
| text | Yes | Text to type | |
| clear_first | No | Clear input before typing | |
| timeout | No | Timeout in seconds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose important behaviors such as whether input events are triggered, if clear_first defaults to false, or if a timeout is applied. Agent must infer from schema.
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 is concise but omits necessary details. Could be restructured to include key behaviors without adding length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should explain return value or side effects. It also fails to clarify that the tool uses the supplied selector to find the element, which is critical for 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 provides 100% coverage for parameter descriptions. The tool description adds no additional context beyond the schema, so baseline score 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 clearly states the action ('type text') and targets 'input element', distinguishing it from click or navigation tools. However, it does not specify if it works on other editable elements like contenteditable or textareas.
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 over alternatives like js_execute or when element visibility is required. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dom_wait_forB
Wait for an element to appear on the page
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | CSS selector or XPath | |
| timeout | No | Timeout in seconds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavior such as timeout handling (e.g., error vs return), polling frequency, or visibility criteria. It only says 'wait for an element to appear', leaving many behavioral traits undefined.
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, well front-loaded, but could be slightly expanded without losing conciseness (e.g., mentioning timeout). Still effective.
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 (wait for element, 2 params, no output schema), the description is minimally adequate. However, it lacks details on return behavior on timeout or success, and does not leverage the absence of annotations to add 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 coverage is 100% with both parameters described. The description adds no new meaning beyond the schema, as 'Wait for an element' aligns with the selector parameter. 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 clearly states the action ('Wait for') and the resource ('element to appear on the page'), which is specific and distinguishes it from sibling tools like dom_click or dom_find_element.
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 vs alternatives like dom_find_element or js_execute for checking element presence, nor does it mention use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
js_executeB
Execute JavaScript in the browser context
| Name | Required | Description | Default |
|---|---|---|---|
| script | Yes | JavaScript code to execute |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description omits critical behavioral traits like return value, error handling, execution limitations, or permission requirements. Minimal disclosure for a code execution 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?
Single sentence with no waste. Could benefit from a bit more detail (e.g., return value), but it is concise 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 (one param, no output schema), the description is minimally complete. However, it lacks any hints about use cases, prerequisites, or examples, leaving room for improvement.
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 already describes the 'script' parameter as 'JavaScript code to execute'. The description adds no additional meaning, but schema coverage is 100%, so 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 'Execute JavaScript in the browser context' clearly states the action and resource, distinguishing it from sibling tools like js_get_console_logs or dom_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?
No information on when to use this tool vs alternatives (e.g., js_get_global_vars for reading, or dom_click for UI actions). Lacks any context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
js_get_console_logsB
Get console logs from the 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 should disclose behavioral traits like whether logs are cleared, format, or prerequisites. It only states 'get console logs' without any additional 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 clear sentence, concise and front-loaded. However, it could include slightly more detail 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 no output schema and no annotations, the description should explain return format or behavior. It does not, leaving the agent uncertain about what to expect from the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. Per guidelines, 0 parameters baseline is 4. Description adds nothing beyond schema, but that is acceptable since schema is empty.
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 retrieves console logs from the browser, distinguishing it from sibling tools like js_execute or network_get_logs. However, it lacks explicit differentiation from other logging tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as network_get_logs or js_execute. The description provides no context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
js_get_formsA
Get all forms on the page with their inputs
| 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 implies read-only behavior but does not explicitly state side effects or safety. Adequate for a simple getter.
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 clear sentence with front-loaded 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?
No output schema, so description should clarify return format. It mentions 'with their inputs' but lacks detail on structure (e.g., array of objects). Adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, and schema coverage is 100%. Description adds no parameter details beyond the schema, meeting baseline expectations.
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 retrieves all forms and their inputs, distinguishing it from sibling tools like dom_find_element or dom_get_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?
No guidance on when to use this tool versus alternatives such as dom_find_element for specific form elements or js_execute for custom JS.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
js_get_global_varsA
Extract global JavaScript variables
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full behavioral transparency burden. It does not disclose side effects, execution context, or output details (e.g., whether it runs in the page's JS context or returns all window properties).
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, with no redundant words. Appropriately sized for a parameterless 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?
The description explains the core action but lacks details like what 'global variables' means in the browser context, how the output is structured, or any constraints. Adequate for a simple tool but could be improved.
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 (schema coverage 100%). Baseline for 0 params is 4; the description adds no parameter info but also needs none.
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 'Extract global JavaScript variables' uses a specific verb (Extract) and resource (global JavaScript variables), clearly distinguishing it from sibling tools like js_get_console_logs or js_get_forms.
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 (e.g., js_execute, js_get_local_storage). The description does not provide context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
js_get_linksA
Get all links on the page
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It lacks details on what constitutes a 'link' (e.g., anchor tags, area elements, link tags), the output format (array of URLs, objects, or something else), or whether relative URLs are resolved. This is insufficient for an agent to anticipate 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?
The description is a single short sentence that conveys the core purpose without any unnecessary words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description is adequate but could be more complete. It does not indicate the expected return value format or any edge cases (e.g., no links found). For a simple tool, it meets minimum viability but lacks depth.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so schema_description_coverage is 100%. The description adds no parameter information, but none is needed. Baseline for zero parameters is 4, which is appropriate here.
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 'Get all links on the page' clearly states the verb (get), the resource (all links), and the scope (on the page). It distinguishes this tool from sibling tools like js_get_forms or dom_find_elements, which target different page 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 provides no guidance on when to use this tool versus alternatives such as dom_find_elements with a CSS selector for anchor tags, or network_get_logs for link-related network requests. No when-not-to-use or sibling comparisons are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
js_get_local_storageA
Get all localStorage data
| 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 convey behavioral traits, but it only states 'Get all localStorage data'. It does not disclose any side effects, permissions needed, data format, or error 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?
The description is a single, clear sentence that efficiently communicates the tool's purpose without unnecessary 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 the tool has no parameters and no output schema, the description is minimally adequate but lacks details about the return format or potential errors, leaving some ambiguity.
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 does not need to explain them. Baseline for 0 parameters is 4, and the description is adequate as it is.
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 'Get' and the resource 'all localStorage data', making the tool's function unambiguous. It also distinguishes from sibling tools like 'js_get_session_storage' (different storage) and 'js_set_local_storage' (write 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 is provided on when to use this tool versus alternatives, such as when to prefer localStorage over sessionStorage, or any context on prerequisites or side effects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
js_get_session_storageA
Get all sessionStorage data
| 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 must carry behavioral transparency. It states 'Get all sessionStorage data' but does not disclose details like scope (e.g., current origin), data format, or behavior if no sessionStorage exists. Adequate but 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?
Extremely concise and front-loaded: a single sentence that clearly communicates the tool's purpose. 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 the tool's simplicity (no parameters, no output schema, no annotations), the description is largely complete. It could benefit from mentioning return format or scope, but for a straightforward getter, it's sufficient.
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 does not add parameter info, but with zero parameters, baseline is 4. No additional meaning 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 'Get all sessionStorage data', specifying verb 'Get' and resource 'sessionStorage data'. It effectively distinguishes from sibling tools like js_get_local_storage, as session and local storage are different.
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 js_get_local_storage or session_get_cookies. The description lacks context about appropriate use cases or comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
js_set_local_storageC
Set a localStorage value
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Storage key | |
| value | Yes | Storage value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description does not disclose that this modifies browser state, persists data, or any potential side effects. For a write operation, more behavioral context (e.g., persistence, quotas) is expected.
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 but is too minimal; it conveys the basic function but lacks detail that would make it more useful. It is not verbose but also not sufficiently informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple but the description lacks context about use cases, persistence of localStorage, and relationship to sibling storage tools. Without output schema or annotations, more detail is needed for 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 coverage is 100% with descriptions for key and value. The description adds no extra semantic meaning beyond 'key' and 'value' already in the schema. 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?
Description states 'Set a localStorage value' which clearly indicates the action (set) and resource (localStorage value). It is specific enough to differentiate from sibling tool js_get_local_storage. However, it could be more precise about the nature of localStorage (e.g., browser storage).
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 session storage or cookies. Sibling tools include js_get_local_storage and js_get_session_storage, but the description does not clarify when to choose this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
network_disable_interceptionB
Disable request interception
| 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 the full burden. It only states 'disable request interception' without explaining what happens (e.g., clears all rules, stops blocking), side effects, or idempotency. This is insufficient for an agent to understand the tool's 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?
The description is extremely concise—one phrase—and front-loaded. It has no wasted words, though it could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is simple with no parameters or output schema, the description is adequate but lacks context about the lifecycle of interception, such as the need to enable interception first or the scope of disabling. Slightly more detail would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and the description adds no parameter information, which is acceptable since there are none to describe. The baseline for 0 parameters 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 clearly states the action 'disable' and the resource 'request interception'. It directly conveys the purpose, but does not differentiate it from sibling tools like network_enable_interception.
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., network_enable_monitoring). It does not mention prerequisites, such as interception being enabled first, or any conditions for safe usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
network_disable_monitoringB
Disable network event monitoring
| 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 fully disclose behavior, but it only states the action. It does not explain effects like whether logs are cleared, if monitoring stops immediately, or if the operation is reversible. The agent lacks critical context for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no redundant words. However, it could be improved by including brief context without becoming verbose. It is efficient but minimal.
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 does not explain return values, side effects, or prerequisites. For a simple toggle, the agent may need to know if the tool is safe to call multiple times or if it requires prior enablement.
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, and schema description coverage is 100%. The description adds no parameter-level detail, which is acceptable given zero parameters, but it also fails to provide any additional meaning beyond the tool name. Baseline 3 applies due to high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'disable' and the resource 'network event monitoring', making the tool's purpose unambiguous. It effectively distinguishes from siblings like network_enable_monitoring by specifying the action opposite to enable.
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 such as network_enable_monitoring or network_disable_interception. No context about prerequisites or typical scenarios is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
network_enable_interceptionB
Enable request/response interception
| Name | Required | Description | Default |
|---|---|---|---|
| resource_type | No | Resource type to intercept (Image, Script, XHR, etc.) | |
| request_stage | No | Stage to intercept at (Request or Response) | Request |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral impacts, but it only states the function. It does not explain side effects (e.g., modification of network traffic), required session state, or how interception integrates with other tools.
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 front-loaded but could benefit from slight expansion to improve clarity 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?
The description is too brief given the tool's role in a network interception workflow. It does not mention related steps (e.g., setup handler, disable interception) or return values, leaving the agent without 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 coverage is 100% with descriptions for both parameters, so baseline is 3. The description adds no additional parameter meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Enable') and the resource ('request/response interception'). It differentiates from sibling tools like network_disable_interception (opposite) and network_enable_monitoring (different 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?
No guidance is provided on when to use this tool versus alternatives, prerequisites, or workflow context. The description lacks any 'when to use' or 'when not to use' information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
network_enable_monitoringB
Enable network event monitoring to capture all HTTP traffic
| 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, but it only says 'enable monitoring' and 'capture all HTTP traffic'. It does not mention side effects, performance impact, or whether it overrides previous settings.
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 clear and front-loaded with the action and purpose. 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 no parameters or output schema, the description is adequate but lacks context about prerequisites, immediate effects, or how it interacts with other network tools. It could be more complete for an agent to use 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?
There are no parameters, and the schema coverage is 100% (empty). The description correctly implies that no arguments are needed, which is sufficient. The baseline for zero parameters 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 clearly states the verb 'Enable' and the resource 'network event monitoring', and specifies the scope 'capture all HTTP traffic'. It distinguishes from siblings like 'network_disable_monitoring'.
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 'network_enable_interception' or 'network_get_logs'. There is no explicit differentiation or when-not-to-use advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
network_get_logsA
Get captured network logs, optionally filtered by URL pattern
| Name | Required | Description | Default |
|---|---|---|---|
| filter_url | No | URL pattern to filter logs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It states 'Get captured network logs', implying read-only access, but does not mention side effects, authorization needs, or that logs must be pre-captured (e.g., via network_enable_monitoring).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 10 words, immediately stating the verb and resource. No unnecessary information or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description should explain what the logs contain (e.g., request details, timestamps). It also fails to mention that logs must be captured prior (e.g., enabling monitoring). This omission limits the tool's usability.
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% and the description merely mirrors the schema ('optionally filtered by URL pattern'). No additional semantics, syntax details, or examples are provided beyond what the schema already offers.
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 ('Get'), the resource ('captured network logs'), and an optional filter. It distinguishes from sibling tools like network_get_response_body which retrieves a specific response body.
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 (to retrieve logs) but provides no explicit guidance on when to use this tool vs alternatives, nor does it mention prerequisites like enabling network monitoring first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
network_get_response_bodyB
Get the response body for a specific request ID
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | Yes | Request ID from network logs |
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 does not disclose what happens if the request_id is invalid, whether network monitoring must be active, or if the response body is returned as a string or other format. Critical behavioral traits are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence. It is concise but could be slightly expanded to include usage tips without becoming verbose. As it stands, it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers the basic purpose. However, it lacks context about prerequisites (e.g., network monitoring state) and return format, leaving gaps in 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 coverage is 100% with the parameter 'request_id' described as 'Request ID from network logs'. The description adds no additional meaning beyond the schema, but it also doesn't mislead. 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 clearly states that the tool retrieves the response body for a specific request ID, which is a specific verb+resource combination. It distinguishes itself from siblings like network_get_logs which retrieves all logs, and network_setup_handler which sets up handlers. The purpose is immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor are any prerequisites mentioned (e.g., network monitoring must be enabled). The agent receives no context about appropriate invocation conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
network_setup_handlerB
Set up automatic interception handler with blocking, modification, and mocking rules
| Name | Required | Description | Default |
|---|---|---|---|
| block_patterns | No | URL patterns to block | |
| modify_headers | No | Headers to add/modify for all requests | |
| mock_responses | No | URL patterns and mock response data |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions rule types but does not disclose side effects such as overwriting previous rules, failure modes, or whether prior setup is needed. Lacks 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?
Single, front-loaded sentence with no extraneous words. Efficient and direct.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should provide more context about lifecycle (e.g., that this is a prerequisite for interception) and return behavior. Currently incomplete for a setup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and description adds marginal value by summarizing parameter purposes. However, it largely repeats schema descriptions without further detail on format or constraints, so 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?
Description clearly states the verb 'Set up' and resource 'automatic interception handler', and specifies three types of rules: blocking, modification, and mocking. This distinguishes it from siblings like network_enable_interception which just toggles interception on/off.
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?
Description implies use for initial configuration, but does not explicitly state when to use this vs alternatives like network_enable_interception or network_disable_interception. No guidance on prerequisites or ordering.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session_clear_cookiesC
Clear all cookies
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description lacks behavioral details. It does not disclose whether clearing cookies affects only the current domain, all domains, or has side effects on ongoing sessions. The description offers no transparency beyond the verb 'Clear'.
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 phrase, which is concise but lacks necessary details. While it is front-loaded, it does not earn its place by providing valuable information beyond the tool name.
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 insufficient. It does not explain the scope of 'all cookies', whether the action is reversible, or what happens to the browsing session. For a simple but potentially destructive action, more context is needed.
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 is empty. The description adds no further meaning, but per guidelines, 0 parameters yields a baseline of 4. The description does not contradict 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 'Clear all cookies' clearly states the action and resource, effectively distinguishing from sibling tools like session_delete_cookie. However, it is somewhat generic and could specify the scope (e.g., all cookies for the current domain or all cookies in the session).
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 mention when to use this tool versus alternatives like session_delete_cookie or session_export_cookies, nor does it specify prerequisites or side effects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session_delete_cookieB
Delete a cookie by name
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Cookie name | |
| domain | No | Cookie domain |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description fails to disclose behavioral traits like whether the cookie must exist, permanence of deletion, or domain handling.
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 words. Efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple deletion tool with 2 params and no output schema, but lacks context on domain usage and behavior expectations.
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%, so baseline 3. Description adds no extra meaning beyond schema; 'by name' is already in 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?
Description clearly states 'Delete a cookie by name', specifying verb and resource with method, distinguishing it from siblings like session_clear_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?
No guidance on when to use this vs sibling tools (e.g., session_clear_cookies for all cookies), or when not to use it (e.g., if domain is needed).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session_export_cookiesB
Export cookies in various formats (json, netscape, header)
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Export format (json, netscape, header) | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behavioral traits. It only lists formats but does not mention if the export is destructive, if it clears cookies, or what subset of cookies is exported (all session cookies?). Minimal 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?
Single sentence that directly states purpose and available options. No fluff or 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 one-parameter tool with no output schema, the description is mostly complete. It covers the basic functionality, though it could mention that all cookies are exported and that the browser state is unaffected.
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% with one parameter 'format' and its description. The description repeats the same info from the schema without adding extra meaning or context like default behavior or format differences.
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 exports cookies, specifies three formats (json, netscape, header), and the tool name reinforces the action. It distinguishes from siblings like session_get_cookies (which likely retrieves without export) and session_import_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?
No guidance on when to use this tool vs alternatives like session_get_cookies or session_import_cookies. No context about selecting a format or potential use cases (e.g., debugging, sharing).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session_get_cookieB
Get a specific cookie by name
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Cookie name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states 'Get'. It does not disclose error handling (e.g., if cookie not found), scope (current session or page), 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, front-loaded sentence with no extraneous words, achieving high conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter getter, the description is adequate but lacks context about the cookie source (current session) and behavior on missing cookie.
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% with the parameter 'name' described. The description adds no additional semantics beyond the schema, earning baseline 3.
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 ('Get') and the resource ('specific cookie by name'), distinguishing it from the sibling 'session_get_cookies' which retrieves all 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?
No guidance is provided on when to use this tool compared to alternatives like session_get_cookies, or any prerequisites (e.g., needing an active browser session).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session_get_cookiesB
Get all cookies from the browser
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It fails to mention whether the tool requires authentication, if it clears or modifies state, or what the return format looks like. The description is too sparse to inform the agent about side effects or 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 a single concise sentence that immediately conveys the tool's purpose. No extraneous words, front-loaded with the 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 the presence of many sibling tools and the lack of annotations or output schema, the description is insufficient. It does not explain the return shape, error conditions, or potential side effects, leaving the agent with incomplete information.
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 baseline is 4. The description adds value by specifying the output ('cookies') even though the schema is empty, but it does not provide additional detail about the cookie format or structure.
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 ('Get all cookies') and the resource ('from the browser'), distinguishing it from the sibling tool 'session_get_cookie' which retrieves a single cookie.
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 versus alternatives like 'session_get_cookie' or 'session_export_cookies', nor does it mention any prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session_import_cookiesB
Import cookies from JSON string
| Name | Required | Description | Default |
|---|---|---|---|
| cookies_json | Yes | JSON array of cookies |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only says 'Import cookies from JSON string' with no annotations. It does not disclose whether cookies are appended or replaced, validation behavior, error handling, or authentication requirements, which is insufficient 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?
The description is a single sentence that is front-loaded and free of filler. It is concise, though it may be too brief for the functionality involved.
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 low complexity (1 param, no output schema) and the presence of many sibling cookie tools, the description fails to provide enough context on behavior, error states, or distinction from similar tools, making it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the sole parameter has a clear description in the schema). The tool description adds no extra meaning beyond what the schema already provides, so 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 clearly states it imports cookies from a JSON string. The verb 'Import' and resource 'cookies from JSON string' are specific, and it distinguishes from sibling tools like session_export_cookies and session_set_cookie.
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 session_set_cookie or session_clear_cookies. The description does not mention use cases, prerequisites, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session_make_requestC
Make an HTTP request using the browser's session (inherits cookies/auth)
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Request URL | |
| method | No | HTTP method | GET |
| headers | No | Request headers | |
| body | No | Request body | |
| params | No | Query parameters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description only mentions inheriting cookies/auth but omits critical behaviors like redirect handling, response format, error handling, rate limits, or method support. For an HTTP request tool, 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?
Single sentence, front-loaded key information (purpose and context), no wasted words. Efficient and clear.
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?
No output schema, and description lacks details on return values, error handling, or examples. For a tool with 5 parameters and nested objects, the description is too sparse to be considered complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add extra meaning beyond the schema's parameter descriptions aside from the session context. No improvement over schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool makes an HTTP request using the browser's session, inheriting cookies/auth. It distinguishes from sibling session and network tools by specifying the request-making action with session context.
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 network_enable_interception or browser_navigate. No prerequisites or when-not-to-use are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session_set_cookieC
Set a cookie in the browser
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Cookie name | |
| value | Yes | Cookie value | |
| domain | No | Cookie domain | |
| path | No | Cookie path | / |
| secure | No | Secure flag | |
| http_only | No | HttpOnly flag |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behaviors like overwriting existing cookies or domain restrictions. It only says 'Set a cookie', leaving important traits undocumented.
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 at 6 words, but lacks necessary context. It is not verbose, but trades completeness 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?
For a tool with 6 parameters and no output schema, the description is incomplete. It does not explain return values, side effects, or interaction with other session 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%, so the baseline is 3. The description adds no meaning beyond the schema, which adequately documents all 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 'Set a cookie in the browser' clearly states the action and resource. It differentiates from siblings like session_get_cookie (get vs set) but could be more specific about create/update behavior.
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 session_delete_cookie or session_clear_cookies. The description does not provide context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clear, distinct purpose, with prefixes like browser_, captcha_, debug_, dom_, js_, network_, session_ grouping related functionality. No two tools perform the same action, and even within groups, tools are well-differentiated.
All tool names follow a consistent snake_case convention with a prefix indicating the functional domain. This makes it easy for an agent to predict tool names and understand their roles.
52 tools is on the high side, but the server covers a broad scope of browser automation features (browser control, DOM, JS, network, sessions, captchas). The count is appropriate for the comprehensive capability set, though slightly above the ideal range.
The tool surface is remarkably complete: browser lifecycle, navigation, DOM interactions, debugging, JavaScript execution, network monitoring/interception, cookie/session management, and captcha handling all have dedicated tools. No obvious gaps for the intended domain.
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
Stealth web automation for AI agents. Login, signup, navigate, screenshot.
Stealth web automation for AI agents. Login, signup, navigate, screenshot.
AI-powered browser automation — navigate, click, fill forms, and extract data from any website.
Provides cloud browser automation capabilities using Stagehand and Browserbase, enabling LLMs to i…
Related MCP Servers
- AlicenseBqualityBmaintenanceEnables LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environment10277299MIT
- AlicenseAqualityDmaintenanceGives AI agents a browser that bypasses bot detection, a MITM proxy for traffic interception, and a Python sandbox to autonomously write and execute security exploits.393MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to automate and debug real Chromium browsers with capabilities like screenshots, video recording, performance analysis, visual regression testing, and OCR text extraction.13
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to fully control a browser for web automation, including navigation, clicking, typing, scrolling, screenshots, and DOM inspection, with session persistence and anti-bot bypass.14MIT
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/eyenoticeall/PyPen'
If you have feedback or need assistance with the MCP directory API, please join our Discord server