Playwright MCP
Server Quality Checklist
Latest release: v1.0.0
- Disambiguation4/5
Most tools have distinct purposes targeting specific web automation actions like clicking, navigating, or handling dialogs, but some overlap exists between browser_snapshot and browser_take_screenshot, and browser_wait_for is broad. The descriptions help clarify, but an agent might occasionally misselect between similar tools like these.
Naming Consistency5/5All tool names follow a consistent snake_case pattern with a 'browser_' prefix and clear verb_noun combinations, such as browser_click, browser_navigate, and browser_take_screenshot. This predictability makes it easy for agents to understand and use the toolset without confusion.
Tool Count3/5With 22 tools, the count is borderline high for a web automation server, as it might feel heavy and could potentially be streamlined. However, given Playwright's comprehensive functionality, it's reasonable but approaches the upper limit of what's well-scoped.
Completeness5/5The toolset provides complete coverage for web automation tasks, including navigation, interaction (click, type, drag), form handling, file uploads, dialogs, screenshots, network monitoring, and browser management. There are no obvious gaps, supporting full CRUD-like operations for browser-based workflows.
Average 3.4/5 across 22 of 22 tools scored. Lowest: 2.2/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 0 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under Apache 2.0.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=false, destructiveHint=true, and openWorldHint=true, indicating this is a mutating, potentially destructive operation with open-ended effects. The description adds no behavioral context beyond these annotations—it doesn't explain what gets destroyed (e.g., dialog state, user input), what permissions are needed, or any rate limits. However, it doesn't contradict the annotations, so it meets the lower bar with annotations present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness2/5Is the description appropriately sized, front-loaded, and free of redundancy?
While concise with only three words, the description is under-specified rather than efficiently structured. It fails to front-load essential information and doesn't use its limited space to convey meaningful context. Every word should earn its place, but 'Handle a dialog' provides minimal value beyond the tool name itself.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with destructiveHint=true, no output schema, and complex browser interaction context, the description is incomplete. It doesn't explain what a 'dialog' refers to in the browser context, what the tool returns, error conditions, or how it fits with sibling tools. The annotations help but don't compensate for the lack of operational context in the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for both parameters (accept and promptText). The description adds no additional meaning about parameters beyond what the schema provides—it doesn't explain when promptText is required, what happens if accept is false, or how these parameters interact with different dialog types. This meets the baseline of 3 given the comprehensive schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose2/5Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Handle a dialog' is a tautology that merely restates the tool name, providing no specific information about what the tool actually does. It doesn't specify what type of dialog (e.g., JavaScript alert, confirmation, prompt) or what handling entails, nor does it distinguish this from sibling tools like browser_click or browser_press_key that might also interact with browser UI elements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines1/5Does 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. It doesn't mention what triggers a dialog, when this tool is appropriate, or how it relates to sibling tools like browser_evaluate or browser_run_code that might generate dialogs. There's no context about prerequisites or timing considerations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, destructiveHint=false, and openWorldHint=true, covering safety and scope. The description adds minimal context beyond this, stating it 'returns all console messages' but not detailing format, ordering, or limitations (e.g., buffer size, real-time vs. historical). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence ('Returns all console messages'), which is front-loaded and wastes no words. It efficiently conveys the core purpose without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (interacting with browser console), lack of output schema, and minimal annotations, the description is insufficient. It doesn't explain return format (e.g., array of objects with properties like message, level, timestamp), potential for empty results, or how it integrates with browser state, leaving gaps for agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the 'level' parameter fully documented in the schema (enum, default, description). The description doesn't add any parameter-specific information beyond what's in the schema, so it meets the baseline for high coverage without extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose3/5Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Returns all console messages' clearly states the verb ('returns') and resource ('console messages'), but it's vague about scope and doesn't differentiate from siblings like browser_network_requests. It doesn't specify whether this returns messages from the current page, all tabs, or a specific timeframe.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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. It doesn't mention prerequisites (e.g., requires an active browser session), timing considerations (e.g., after page load), or how it relates to sibling tools like browser_evaluate or browser_run_code for debugging purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=false (mutation), destructiveHint=true (potentially destructive), and openWorldHint=true (dynamic environment). The description adds minimal behavioral context beyond this—it implies batch operation ('multiple form fields') but doesn't disclose risks like form submission side effects, error handling, or that 'ref' requires exact page snapshot references. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise at three words, front-loaded with the core action. Every word earns its place—'fill' specifies the action, 'multiple' indicates batch capability, and 'form fields' identifies the target. No wasted verbiage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation tool (destructiveHint=true) with no output schema, the description is inadequate. It doesn't explain what happens after filling (e.g., form submission, validation), error scenarios, or dependencies (e.g., requires browser_snapshot for 'ref'). Given the complexity and risk, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with detailed parameter documentation in the schema itself. The description adds no additional meaning about parameters beyond implying batch processing ('multiple'), which is already clear from the array type in the schema. Baseline 3 is appropriate as the schema carries the full burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Fill multiple form fields' clearly states the verb ('fill') and resource ('form fields'), distinguishing it from siblings like browser_type (single field typing) or browser_select_option (dropdown selection). However, it doesn't explicitly mention that this is for browser automation or that it handles multiple field types, which the schema reveals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like browser_type (for single text fields) or browser_select_option (for dropdowns). The description doesn't mention prerequisites (e.g., needing a browser snapshot first) or exclusions (e.g., not for non-form elements).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a destructive (destructiveHint: true) and open-world (openWorldHint: true) operation, but the description adds minimal context beyond that. It doesn't explain what 'destructive' means in this context (e.g., navigating away from current page loses state) or mention potential side effects like page loads or navigation errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just three words, front-loading the core action without any wasted text. Every word earns its place, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no output schema and rich annotations, the description is insufficient. It doesn't explain what happens after navigation (e.g., page load completion, potential errors) or how it interacts with other browser tools, leaving gaps in understanding the tool's full behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the input schema fully documents the single 'url' parameter. The description adds no additional meaning beyond what's in the schema, so it meets the baseline for high coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Navigate to a URL' clearly states the verb ('Navigate') and resource ('URL'), making the purpose immediately understandable. However, it doesn't distinguish this tool from its sibling 'browser_navigate_back', which also involves navigation but in a different direction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'browser_navigate_back' or other browser interaction tools. There's no mention of prerequisites (e.g., needing an open browser session) or typical use cases (e.g., loading a webpage).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true and readOnlyHint=false, which the description doesn't contradict. The description adds value by specifying the action is for dropdowns, but it doesn't elaborate on behavioral traits like whether it triggers page changes, requires specific permissions, or handles errors. With annotations covering safety, it provides some context but could be more detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded and appropriately sized for the tool's purpose, making it easy to scan and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has annotations (destructive, openWorld) but no output schema, the description is minimal. It covers the basic action but lacks details on return values, error handling, or integration with other browser tools. For a destructive operation in browser automation, more context would be helpful, but it's adequate as a starting point.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are fully documented in the schema. The description doesn't add any meaning beyond what the schema provides, such as explaining how 'values' interact with dropdowns or the relationship between 'element' and 'ref'. Baseline 3 is appropriate as the schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose3/5Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Select an option in a dropdown' clearly states the action (select) and target (dropdown), but it's vague about the context (browser automation) and doesn't distinguish from siblings like browser_fill_form or browser_click. It restates the title 'Select option' without adding specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't clarify if this is for dropdowns only, how it differs from browser_fill_form for form inputs, or prerequisites like needing a page snapshot. The description lacks any usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide significant behavioral information (destructiveHint: true, readOnlyHint: false, openWorldHint: true). The description adds minimal value beyond this, only stating the basic action. It doesn't elaborate on what 'destructive' means in this context (e.g., could trigger navigation, form submission, or JavaScript events), nor does it mention rate limits or authentication needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just four words, with zero wasted language. It's front-loaded with the core action and target. Every word earns its place, making it efficient for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (destructive web interaction with 5 parameters) and rich annotations, the description is minimally adequate. However, with no output schema and a potentially complex behavioral impact (destructive actions on web pages), the description could do more to explain typical outcomes or error conditions. It meets minimum requirements but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are well-documented in the schema itself. The description adds no additional parameter information beyond what's in the schema. The baseline score of 3 reflects adequate parameter documentation through the schema alone, with no extra value from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Perform click on a web page' clearly states the action (click) and target (web page), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like browser_hover or browser_press_key, which also involve web page interactions. The description is specific but lacks sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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. There's no mention of when to choose browser_click over browser_press_key for button presses, or browser_hover for mouse movements without clicking. No context about prerequisites or typical use cases is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is a destructive, non-read-only operation with open-world hints, which the description doesn't contradict. However, the description adds minimal behavioral context beyond annotations—it mentions the drag-and-drop action but doesn't detail effects like UI changes, error handling, or interaction constraints. With annotations covering safety and scope, the description provides some value but is not rich in behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It's front-loaded with the core action and efficiently conveys the essential purpose without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (destructive interaction with four required parameters) and lack of output schema, the description is minimal but adequate. It covers the basic action but doesn't address outcomes, error cases, or integration with sibling tools like browser_snapshot for obtaining references. With annotations providing safety and scope hints, it's passable but could be more comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented in the schema. The description doesn't add any semantic details beyond implying two elements are involved, which is already clear from the parameter names. This meets the baseline for high schema coverage without enhancing parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('perform drag and drop') and the target ('between two elements'), which is specific and actionable. However, it doesn't explicitly differentiate from sibling tools like browser_click or browser_hover, which also involve element interaction but with different behaviors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like browser_click or browser_hover, nor does it mention prerequisites such as needing a page snapshot or element references. It lacks context about typical use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=false, destructiveHint=true, and openWorldHint=true, indicating a write operation with potential side effects. The description adds that it can upload 'one or multiple files' and implies a file chooser interaction if paths are omitted, but doesn't elaborate on authentication, rate limits, or specific destructive outcomes beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action ('upload files') and adds a useful detail about handling multiple files, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (file upload with potential side effects), annotations cover safety aspects, but the description lacks details on error handling, supported file types, or interaction with browser state. With no output schema, it doesn't explain return values, leaving gaps for an agent to infer behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the 'paths' parameter fully documented in the schema. The description adds no additional parameter semantics beyond what the schema provides, such as file format constraints or upload behavior details, so it meets the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('upload') and resource ('files'), specifying it can handle 'one or multiple files'. It distinguishes from sibling tools like browser_navigate or browser_type by focusing on file uploads, though it doesn't explicitly differentiate from all siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 doesn't mention prerequisites, context (e.g., browser state), or exclusions, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and non-destructive behavior, so the description doesn't need to repeat that. It adds context about the scope ('since loading the page'), which is useful. However, it lacks details on return format, pagination, or potential limitations like memory constraints for large request logs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core functionality without unnecessary words. Every part of the sentence contributes directly to understanding the tool's purpose, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter, no output schema) and rich annotations, the description is adequate but minimal. It covers the basic action and scope but doesn't address potential behavioral nuances like how requests are formatted or if there are time-based limitations, leaving some gaps for an agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents the single parameter 'includeStatic'. The description doesn't add any parameter-specific information beyond what's in the schema, such as examples or edge cases, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('returns') and resource ('all network requests since loading the page'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'browser_console_messages' or 'browser_snapshot', which also retrieve browser data but for different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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. It doesn't mention scenarios where network request data is needed over other browser monitoring tools, nor does it specify prerequisites like requiring a loaded page, which is implied but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true and readOnlyHint=false, which the description doesn't contradict (it implies an action). However, the description adds no behavioral context beyond what annotations provide, such as effects on browser state or interaction requirements. No contradiction is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It's front-loaded and efficiently conveys the core action, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, high schema coverage) and annotations covering safety (destructive), the description is minimally adequate. However, it lacks output information or richer context about keyboard interactions, which could be helpful for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'key' parameter well-documented. The description adds no additional meaning or examples beyond the schema, so it meets the baseline for high schema coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Press a key on the keyboard' clearly states the action (press) and target (key on keyboard), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'browser_type' which might involve keyboard input, but the specificity is adequate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'browser_type' or 'browser_fill_form'. It lacks context about appropriate scenarios, prerequisites, or exclusions, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true and readOnlyHint=false, which the description does not contradict. However, the description adds minimal behavioral context beyond annotations—it does not explain what 'resize' entails (e.g., whether it affects viewport, triggers events, or has side effects like reloading). With annotations covering safety, a baseline score is appropriate, but more detail would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence—'Resize the browser window'—with no unnecessary words. It is front-loaded and efficiently conveys the core action, making it easy for an AI agent to parse quickly without clutter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (a destructive operation with two parameters), annotations provide safety hints, but there is no output schema. The description is minimal and does not address potential outcomes, errors, or dependencies (e.g., needing an open browser). It is adequate as a basic descriptor but lacks depth for full contextual understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for 'width' and 'height' parameters. The description does not add any meaning beyond the schema (e.g., units, valid ranges, or default behaviors). According to the rules, with high schema coverage, the baseline score is 3, as the schema adequately documents parameters without extra description input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Resize the browser window' clearly states the verb ('Resize') and resource ('browser window'), making the purpose immediately understandable. However, it does not differentiate this tool from its siblings (e.g., browser_snapshot or browser_take_screenshot, which also relate to browser window manipulation), so it falls short of a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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. For example, it does not mention whether this is for testing layouts, simulating device sizes, or other contexts, nor does it reference sibling tools like browser_snapshot for capturing the resized window. This lack of contextual usage information limits its effectiveness for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=false, openWorldHint=true, and destructiveHint=true. The description adds context about the multi-action nature (list, create, close, select) and implies destructive behavior for 'close' action. However, it doesn't elaborate on rate limits, authentication needs, or specific destructive consequences beyond what annotations already indicate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence) and front-loaded with all key information. Every word earns its place by listing the four possible actions. No redundant or verbose language is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (multiple actions with different behaviors), rich annotations, and 100% schema coverage, the description is minimally adequate. However, it lacks output information (no output schema provided) and doesn't explain result formats or error conditions. For a multi-action tool with destructive operations, more context would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear parameter documentation. The description adds no additional parameter semantics beyond what's in the schema. It mentions the actions but doesn't explain parameter usage, constraints, or interactions beyond the schema's enum and description. Baseline 3 is appropriate given complete schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs (list, create, close, select) and resource (browser tab). It distinguishes from siblings by focusing on tab management rather than navigation, interaction, or monitoring. However, it doesn't explicitly differentiate from all siblings (e.g., browser_close could be ambiguous).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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. It doesn't mention when to use browser_tabs versus browser_close for closing tabs, or when to use browser_navigate versus creating a new tab. No context about prerequisites, sequencing, or exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=false, destructiveHint=true, and openWorldHint=true, indicating this is a write operation with potential side effects in an unpredictable environment. The description adds minimal behavioral context beyond annotations - it mentions typing text but doesn't explain what 'editable element' means, how permissions work, or potential consequences. No contradiction with annotations exists, but the description doesn't compensate for the lack of output schema or rich behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core functionality without unnecessary words. It's front-loaded with the essential action and target. Every word earns its place, making it easy for an agent to quickly understand the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with 5 parameters and no output schema, the description is minimally adequate. It states what the tool does but doesn't provide enough context about how it works, what constitutes success/failure, or what the agent should expect. The annotations help with safety profiling, but the description doesn't fully compensate for the complexity of browser automation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all parameters well-documented in the schema itself. The description adds no additional parameter semantics beyond what's already in the schema - it doesn't explain the relationship between 'element' and 'ref', when to use 'submit' or 'slowly', or provide examples. With complete schema coverage, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Type text') and target ('into editable element'), providing a specific verb+resource combination. It distinguishes from siblings like browser_click or browser_press_key by focusing on text input rather than clicking or key pressing. However, it doesn't explicitly differentiate from browser_fill_form, which might have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like browser_fill_form or browser_press_key. There's no mention of prerequisites, context requirements, or specific scenarios where this tool is preferred over siblings. The agent must infer usage from the tool name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, destructiveHint=false, and openWorldHint=true, which already convey safety and flexibility. The description adds that it waits for text changes or time, but doesn't specify behavioral details like timeout behavior, concurrency, or error handling. No contradiction with annotations exists, so it meets the lower bar with minimal added context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core functionality without unnecessary words. Every part earns its place by covering the key actions (wait for text appear/disappear or time pass), making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no output schema) and rich annotations, the description is adequate but incomplete. It covers what the tool does but lacks details on return values, error conditions, or interaction with sibling tools, leaving gaps for the agent to navigate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for time, text, and textGone parameters. The description mentions these concepts but doesn't add semantic details beyond the schema, such as how parameters interact (e.g., exclusive use) or default behaviors. Baseline 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as waiting for text to appear/disappear or for time to pass, which is specific and actionable. However, it doesn't explicitly differentiate from sibling tools like browser_wait_for_selector or browser_wait_for_timeout (if they existed), though among the actual siblings listed, it's distinct as the only waiting tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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. It doesn't mention prerequisites (e.g., needing an active browser session) or compare to other waiting mechanisms in the browser toolset. This leaves the agent to infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true (implying it changes browser state) and readOnlyHint=false (confirming it's not read-only), which the description doesn't contradict. The description adds minimal behavioral context beyond this, such as not specifying if it waits for page load or handles errors like no history, but doesn't provide misleading information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any fluff. It's front-loaded and wastes no words, making it easy to understand at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (0 parameters, no output schema) and annotations covering key behavioral traits (destructive, not read-only), the description is adequate but lacks completeness. It doesn't address potential nuances like error conditions (e.g., no previous page) or integration with browser state, which could be helpful for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0 parameters and 100% schema description coverage, the baseline is 4 as there are no parameters to document. The description doesn't need to compensate for any parameter gaps, and it appropriately avoids unnecessary parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Go back') and target ('to the previous page'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'browser_navigate' (which goes to a specific URL) or 'browser_tabs' (which might involve tab navigation), leaving room for improvement in sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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. It doesn't mention prerequisites (e.g., needing a browser session with history), exclusions (e.g., not usable on the first page), or comparisons to siblings like 'browser_navigate' for forward navigation or 'browser_tabs' for tab switching, offering minimal usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=false, destructiveHint=true, and openWorldHint=true, indicating this is a potentially dangerous write operation with unpredictable outcomes. The description adds context by specifying it evaluates JavaScript 'on page or element,' which clarifies the scope beyond what annotations provide. However, it doesn't elaborate on specific risks, side effects, or execution environment details that would be helpful given the destructive nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that immediately communicates the core functionality. Every word earns its place with no redundancy or unnecessary elaboration. It's perfectly front-loaded and appropriately sized for a tool with good schema documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (JavaScript evaluation with destructive potential), the description is minimally adequate. Annotations cover safety aspects, and the schema fully documents parameters, but there's no output schema to explain return values. The description doesn't address execution context, error handling, or security implications that would be valuable for such a powerful tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear documentation for all three parameters. The description adds minimal value beyond the schema, only implying that 'element' and 'ref' parameters relate to targeting specific elements. It doesn't explain parameter interactions or provide examples of valid JavaScript expressions, so it meets but doesn't exceed the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Evaluate') and resource ('JavaScript expression on page or element'), making the purpose immediately understandable. It distinguishes this from siblings like browser_click or browser_type by focusing on JavaScript evaluation rather than UI interaction. However, it doesn't explicitly differentiate from browser_run_code, which might be a similar sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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. It doesn't mention when to choose browser_evaluate over browser_run_code (a likely similar sibling) or other JavaScript execution tools. There's no context about appropriate use cases, prerequisites, or limitations beyond what's implied by the parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=false, openWorldHint=true, and destructiveHint=true, indicating this is a mutable, open-world, and potentially destructive operation. The description adds value by specifying 'hover over element on page,' which implies mouse interaction that could trigger page changes (consistent with destructiveHint). It doesn't contradict annotations and adds context about the action type, though more detail on effects (e.g., may trigger JavaScript events) would enhance it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with 'Hover over element on page,' a single sentence that efficiently conveys the core action without unnecessary words. It is front-loaded with the key verb 'Hover,' making it easy to scan. Every word earns its place, and there is no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (interactive browser action), annotations cover safety and world hints, and schema fully documents parameters, the description is minimally adequate. However, it lacks details on output (no schema provided), potential side effects (e.g., page state changes), or prerequisites (e.g., needing a page snapshot first). For a destructive tool, more context on behavior would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for both parameters: 'element' as a human-readable description for permission and 'ref' as an exact target reference. The description adds no additional parameter semantics beyond what the schema provides, such as examples or usage tips. With high schema coverage, the baseline score of 3 is appropriate as the schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Hover over element on page' clearly states the action (hover) and target (element on page), making the purpose immediately understandable. It distinguishes from siblings like browser_click or browser_type by specifying the hover interaction rather than click or keyboard input. However, it doesn't explicitly differentiate from all siblings (e.g., browser_drag also involves mouse movement).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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. It doesn't mention when hovering is appropriate (e.g., to trigger tooltips, dropdowns, or hover effects) versus clicking or other interactions, nor does it reference sibling tools like browser_click for different actions. Usage context is implied but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true and openWorldHint=true, which the description doesn't contradict. It adds valuable context by specifying that the code is a JavaScript function invoked with a 'page' argument, clarifying execution behavior beyond the annotations. However, it doesn't mention potential risks like infinite loops or resource consumption.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just three words, front-loading the essential action. Every word earns its place by specifying the tool's core function without redundancy or fluff, making it efficient for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (executing arbitrary code with destructive potential) and lack of output schema, the description is minimally adequate. It identifies the tool's purpose but lacks details on return values, error handling, or safety considerations, leaving gaps for the agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, providing a clear example of the 'code' parameter. The description adds minimal semantics beyond this, only restating 'Playwright code snippet' without elaborating on constraints or best practices. Baseline 3 is appropriate given the schema's thorough documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Run') and resource ('Playwright code snippet'), making the purpose immediately understandable. It distinguishes from siblings by focusing on executing arbitrary code rather than specific actions like 'browser_click' or 'browser_navigate', though it doesn't explicitly contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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. With many sibling tools for specific browser interactions (e.g., browser_click, browser_type), it fails to indicate scenarios where running custom Playwright code is preferable over using dedicated tools, leaving the agent without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, destructiveHint=false, and openWorldHint=true, indicating a safe, read-only operation that doesn't modify the page. The description adds value by specifying it captures an 'accessibility snapshot' and compares it to a screenshot, but it doesn't disclose additional behavioral traits like what data is included in the snapshot, potential rate limits, or authentication needs. With annotations covering safety, the description adds some context but not rich behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two short sentences: 'Capture accessibility snapshot of the current page, this is better than screenshot.' It's front-loaded with the core purpose and includes a comparative note. There's zero waste, and every sentence earns its place by clarifying the tool's function and differentiating it from a sibling.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (simple operation with 1 parameter), annotations provide safety info, and schema covers parameters fully, but there's no output schema. The description is minimal and doesn't explain what an accessibility snapshot returns or its format, which is a gap since output isn't documented elsewhere. It's adequate for a basic tool but lacks details on output behavior, making it incomplete for full understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 100% description coverage, documenting that 'filename' saves the snapshot to a markdown file instead of returning it in the response. The description doesn't add any parameter semantics beyond what the schema provides, as it mentions no parameters. With high schema coverage, the baseline is 3, and the description doesn't compensate or add extra meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Capture accessibility snapshot of the current page' specifies the verb (capture) and resource (accessibility snapshot of current page). It distinguishes from sibling 'browser_take_screenshot' by mentioning 'this is better than screenshot,' though it doesn't fully explain what an accessibility snapshot entails. The purpose is clear but could be more specific about what an accessibility snapshot includes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by contrasting with 'browser_take_screenshot' ('this is better than screenshot'), suggesting this tool is preferred for accessibility purposes over a visual screenshot. However, it doesn't explicitly state when to use this tool versus alternatives like 'browser_take_screenshot' or other browser tools, nor does it provide context on prerequisites or exclusions. The guidance is implied but lacks specificity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description 'Close the page' aligns with the destructiveHint=true annotation, indicating it terminates the page. It adds context beyond annotations by specifying what gets closed (the page), though it doesn't detail side effects like potential data loss or if it affects other tabs. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just three words, front-loading the essential action without any fluff. Every word ('Close the page') directly contributes to understanding the tool's function, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, destructive operation) and lack of output schema, the description is minimally adequate. It states the action but doesn't cover behavioral nuances like confirmation dialogs or post-closure state, which could be helpful for an agent in a browser automation context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0 parameters and 100% schema description coverage, the baseline is 4. The description doesn't need to explain parameters, and it appropriately doesn't add unnecessary details, maintaining clarity for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Close the page' clearly states the action (close) and target (the page), making the purpose immediately understandable. However, it doesn't distinguish this from potential sibling tools like browser_tabs (which might manage multiple tabs) or explicitly mention it closes the current browser page versus other browser windows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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. It doesn't specify if this should be used after completing tasks, to clean up resources, or in what context it's appropriate compared to other browser navigation tools like browser_navigate or browser_tabs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, destructiveHint=false, and openWorldHint=true, indicating a safe, non-destructive operation. The description adds valuable context about the tool's limitations ('You can't perform actions based on the screenshot'), which isn't covered by annotations. However, it doesn't mention potential rate limits or performance implications of full-page screenshots.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise with just two sentences. The first sentence states the core purpose, and the second provides crucial usage guidance. Every word earns its place with zero wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (5 parameters, no output schema) and excellent annotations (readOnlyHint, destructiveHint, openWorldHint), the description provides good contextual completeness. It covers purpose, differentiation from siblings, and behavioral constraints. The main gap is lack of information about return values (no output schema), but the description compensates reasonably well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the input schema already fully documents all 5 parameters. The description doesn't add any additional parameter semantics beyond what's in the schema, so it meets the baseline of 3 where the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Take a screenshot') and resource ('current page'). It explicitly distinguishes from sibling browser_snapshot by stating 'use browser_snapshot for actions,' establishing clear differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool versus alternatives: 'use browser_snapshot for actions.' This clearly indicates this tool is for capturing screenshots only, not for performing actions based on them, which helps the agent choose correctly among browser-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable context about when to call the tool (in response to installation errors), which goes beyond what annotations provide. Annotations already indicate this is a destructive, non-read-only operation with open-world characteristics, but the description provides practical usage context that helps the agent understand when this destructive operation is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (two sentences) with zero wasted words. The first sentence states the purpose, the second provides usage guidance - both sentences earn their place by providing essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with comprehensive annotations, the description provides complete guidance on purpose and usage context. While there's no output schema, the description doesn't need to explain return values for an installation operation. The only minor gap is not explicitly mentioning what happens after installation completes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0 parameters and 100% schema description coverage, the baseline would be 4. The description appropriately doesn't discuss parameters since there are none, and the schema fully documents the empty parameter structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Install') and resource ('browser specified in the config'), and distinguishes it from all sibling tools which perform browser interaction operations rather than installation. It provides a concrete purpose that goes beyond just restating the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('if you get an error about the browser not being installed'), providing clear contextual guidance. It also implicitly distinguishes from sibling tools by focusing on installation rather than browser interaction operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
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/nzjami/mcpPlaywright'
If you have feedback or need assistance with the MCP directory API, please join our Discord server