Playwright MCP
Server Quality Checklist
Latest release: v0.0.80
- Disambiguation4/5
Most tools map cleanly to distinct browser actions (click, hover, drag, select, navigate, resize). The few close boundaries—browser_type vs browser_fill_form, or browser_evaluate vs browser_run_code_unsafe—are clarified by their descriptions.
Naming Consistency4/5All tool names use a consistent browser_ prefix and snake_case convention. Most follow a verb_noun pattern, though a few like browser_tabs, browser_snapshot, and browser_network_requests are noun-style state queries rather than actions.
Tool Count3/5At 24 tools, the set sits at the heavy end of the typical range for an MCP server. The tools are mostly non-redundant and serve a broad browser automation purpose, but the count is large enough to feel somewhat unwieldy.
Completeness4/5The set covers the major browser automation operations well: navigation, clicking, typing, form filling, screenshots, snapshots, tabs, dialogs, network inspection, file upload, and drag-and-drop. Minor gaps like forward navigation, reload, and cookie/localStorage management can be worked around with browser_evaluate.
Average 3.4/5 across 24 of 24 tools scored. Lowest: 2.2/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 1 commit in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
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
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive and non-read-only behavior, but the description adds no useful behavioral context. It does not explain side effects of accepting, behavior for dismissed dialogs, or how promptText is used for prompt dialogs.
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?
The description is short but under-specified rather than efficiently informative. It simply restates the tool name and does not use its space to convey any additional operational meaning.
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 browser action with no output schema, the description is too minimal to support correct invocation. It omits when dialog handling is needed, how promptText should be used, and what effects accepting or not accepting has.
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 fully documents both parameters with 100% coverage, so the baseline applies. The description itself adds no parameter detail, but the schema already explains accept and promptText adequately.
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' exactly restates the tool name/title and uses the generic verb 'handle' without explaining what handling entails. It does not clarify whether the tool accepts, dismisses, or fills in dialog text, nor does it distinguish it from other browser tools.
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?
There is no guidance on when to use this tool, such as when a native browser dialog appears, nor any mention of alternatives or exclusions. The description provides no practical selection context beyond what the tool name implies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate that this is not read-only and is potentially destructive, so the description does not need to restate that. However, the description adds no additional behavioral context, such as whether clicks can trigger navigation, form submission, or page state changes beyond what the annotations already convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise and front-loaded, with no wasted words. It loses a point because it is so minimal that it provides little beyond the tool name and annotations.
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 five-parameter schema, no output schema, and many sibling browser tools, the description is too thin. It does not explain when to click, what side effects may occur, or how this differs from hover, press_key, or other interaction tools.
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 all five parameters. The description itself adds no extra meaning to the parameters, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Perform click') and the resource ('web page'), so an agent knows what the tool does. It does not explicitly distinguish it from sibling tools like browser_hover or browser_press_key, but the basic purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives, such as browser_hover, browser_type, or browser_press_key. The description does not mention any prerequisites, exclusions, or a preferred context for clicking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the operation is read-only and non-destructive. The description adds almost no behavioral context beyond the generic 'Returns all console messages' and fails to disclose key traits such as level inheritance, the 'all' flag only affecting navigation boundaries, and the filename parameter changing the output behavior. This is a meaningful gap for a tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler words. It is concise, though almost too terse to be useful, omitting qualifications that would help the agent understand the tool's actual scope.
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 that there is no output schema, the description should clarify return types and behavioral nuances. It does not mention the effect of the filename parameter, the 'level' hierarchy, or the difference between session-wide and navigation-scoped messages, leaving important operational details undocumented.
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 all three parameters. The description contributes no additional parameter meaning, which matches the baseline expectation when the schema already does the heavy lifting.
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 identifies the tool as returning console messages, with a specific verb ('Returns') and resource ('console messages'). However, it does not differentiate the tool from siblings like browser_network_requests, and the word 'all' is somewhat misleading given the default level and all-flag behavior.
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 is no mention of scenarios, exclusions, or references to sibling tools, leaving the agent to infer appropriate 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.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-read-only, destructive operation, but the description adds no behavioral context beyond the word 'upload'. It does not state side effects, how the file chooser is handled, or what happens after upload.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence with no filler. It is efficient, though very sparse; the minimalism is more of a completeness issue than a conciseness issue.
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?
There is no mention of return values, prerequisites, or suitable call contexts. With no output schema and only a terse description, an agent gets the basic action but not enough to confidently invoke it alongside 23 sibling tools.
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%, and the paths parameter explains absolute paths, single/multiple files, and cancellation behavior. The description only paraphrases the schema without adding new meaning, so baseline 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 uses a specific verb ('Upload') and resource ('files'), and clarifies single-or-multiple. It is immediately understandable and distinct from most browser siblings, though it does not explain what receiving context is used.
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 given about when to use this tool over alternatives such as browser_drop, or whether it should be called while a file chooser is open. The schema hint about cancellation is useful but does not appear in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=false and destructiveHint=true, while the description adds no behavioral context beyond the basic action. It does not mention side effects of hovering, such as UI state changes or permission implications, but it also does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, succinct sentence with no filler words. It is appropriately small for a simple tool, though it borders on under-specification rather than achieving strong structural efficiency.
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 straightforward hover action, the schema and annotations cover the target parameter and safety profile. The description is missing usage guidance and behavioral effects, but the overall context is sufficient for basic invocation.
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 baseline of 3 applies. The description does not add extra meaning to `target` or `element`, but the schema already explains both parameters adequately.
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 uses a clear verb and resource ('Hover over element on page') that accurately conveys the action. It does not explicitly differentiate from sibling tools like browser_click or browser_drop, but the semantic is distinct enough for an agent to understand the intent.
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?
There is no guidance about when to use this tool versus alternatives, no exclusions, and no mention of hover-specific scenarios such as revealing tooltips or opening menus. The agent must infer usage solely from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal that this is a mutating operation (destructiveHint=true, readOnlyHint=false). The description adds no behavioral context beyond that, such as how resizing affects the viewport, whether values are in pixels, or how it affects subsequent browser interactions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. It is concise and easy to parse, though it earns its place mainly by restating the tool's name.
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 that changes browser state and has no output schema, the description is too thin. It omits operational context such as whether this resizes the viewport or the outer window, any dimension limits, and how the resize affects subsequent browser actions. The schema covers parameters, but not the overall context.
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 fully describes both width and height with 100% coverage, so the baseline of 3 applies. The description adds no extra meaning about units, constraints, or how width and height relate to each other.
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 states a specific verb and target ('Resize the browser window'), and the resizing action is unique among the sibling tools, so an agent can distinguish it from navigation, clicking, and tab management. However, it largely restates the tool name and gives no detail about the scope or effect of resizing.
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 about when to use browser_resize versus alternatives, when not to use it, or how it relates to other browser-control tools. The description leaves all usage decisions to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds essentially no behavioral context beyond the annotations. It does not disclose whether navigation waits for full page load, replaces the current page, preserves state, or fails on invalid URLs. The annotations mark destructive and open-world behavior, but the description offers no additional operational detail.
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 one short sentence with no filler or unnecessary detail. It is front-loaded and appropriately sized for a tool with a single parameter.
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 simple one-parameter tool, this is minimally viable, and the annotations partially compensate for missing safety details. However, there is no output schema and the description does not mention return behavior, waiting semantics, or side effects, leaving some ambiguity 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?
Schema coverage is 100% and the single 'url' parameter is already described in the schema. The description only repeats 'URL' and adds no additional meaning, format constraints, or edge-case guidance.
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 states a clear verb and resource: 'Navigate to a URL.' However, it does not explicitly differentiate this from sibling tools like browser_navigate_back; an agent may need to infer which navigation tool is intended.
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 when-to-use or when-not-to-use guidance is provided. The description does not mention alternatives such as browser_navigate_back or explain when browser_navigate is the appropriate choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With destructiveHint=true and readOnlyHint=false, the annotations already indicate this action can mutate state. The description adds no behavioral context beyond the hint, such as possible effects like triggering shortcuts, navigation, or needing an active element.
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 filler, repetition, or unnecessary detail. It is appropriately sized for such a simple tool.
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 one-parameter tool with complete schema documentation and safety annotations, the description is minimally viable. However, it does not explain when to use this tool, what happens after pressing a key, or how it relates to siblings like browser_type.
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 covers the only parameter (key) with a clear description and examples like ArrowLeft or a. Since schema coverage is 100%, the description does not need to add parameter meaning, and it does not provide extra detail beyond the schema.
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 states a specific verb and resource: 'Press a key on the keyboard.' It clearly identifies the tool's function, though it does not explicitly differentiate it from siblings like browser_type or browser_click.
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 does not mention cases where browser_type would be more appropriate, nor does it describe context such as focus requirements or typical use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true and readOnlyHint=false, so the description adds no additional behavioral context. It does not mention irreversible effects, session implications, or what happens to the page content. Since the annotation carries the safety profile, the description contributes nothing beyond that.
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 exactly two words—'Close the page'—which is maximally concise and front-loaded. There is no wasted text, and it immediately conveys the core action.
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 simple destructive operation with no parameters and no output schema, the description is mostly adequate. However, it does not clarify whether 'page' means the current tab or the entire browser, and it omits any mention of side effects like unsaved changes being lost. Given the annotation title says 'Close browser,' there is slight ambiguity, but the description is not severely deficient.
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?
The tool has zero parameters, and schema description coverage is 100% (vacuously). With no parameters to explain, the baseline for this dimension is 4, and the description correctly omits any 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 phrase 'Close the page' clearly identifies the action (close) and resource (page), distinguishing it from the sibling tools like navigate, click, or hover. It is specific enough to convey the operation, though it doesn't explicitly differentiate from a hypothetical 'close browser' 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?
No guidance is provided about when to use this tool versus alternatives, nor are any exclusions or prerequisites mentioned. The description merely states what it does without any contextual instruction for an 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 already declare destructiveHint=true and readOnlyHint=false, so the description does not need to repeat that selecting an option mutates state. It adds no additional behavioral context beyond the action itself—it does not mention side effects like triggering change events or altering form state, nor any permission requirements. Since annotations cover the safety profile, the minimal description is acceptable but not enriching.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single sentence with no wasted words. It efficiently captures the core action. It is front-loaded with the action verb. However, it is so brief that it omits potentially useful context like the fact that it handles single and multiple selections (which is already in the schema) or any notes about dropdown behavior, but for pure conciseness it scores high.
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 schema covers all parameters and annotations indicate destructiveness, the description is minimally complete. However, it lacks contextual guidance on when to use this tool (e.g., after taking a snapshot to get the target reference), any prerequisites, or post-conditions. For a destructive action, an agent might need more info about what changes occur, but the existing structured data provides the safety flags, so this is acceptable but not thorough.
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?
All three parameters (target, values, element) are fully described in the input schema with clear meanings (target reference, array of values, permission description). The tool description adds no additional semantic detail beyond what the schema provides, so it meets the baseline but does not enhance understanding of parameter relationships or usage nuances.
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 states the specific action: 'Select an option in a dropdown' with a clear verb and resource. It is unambiguous about the tool's function and distinguishes it from sibling browser interaction tools (click, type, hover) that operate on different UI elements. However, it does not explicitly differentiate from other selection-like tools, but given the sibling list, no other tool handles dropdowns specifically, so it is clear enough.
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, nor does it mention any prerequisites or exclusions. There is no indication of when a dropdown might require this tool instead of other interaction methods (e.g., clicking the dropdown and typing). An agent would have no context to decide between this and browser_click or browser_type in some scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry destructiveHint=true and readOnlyHint=false, signaling a mutating operation. The description adds only the 'editable element' scope and does not disclose behavioral traits such as replacing existing text, triggering input events, or requiring permission through the 'element' parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise, front-loaded sentence with no filler or repetition. It is economical, though the brevity comes at the cost of behavioral detail.
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?
Full schema coverage and annotations provide enough structured information for a basic call, and no output schema exists to explain. Still, for a destructive 5-parameter mutation tool, the description could usefully mention that typing may replace content or trigger key handlers.
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 five parameters are already documented with their individual purposes. The description itself introduces no additional parameter-level nuance, so it correctly sits at the baseline.
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 names a concrete action ('Type text') and a resource ('editable element'), making the tool's function immediately understandable. It doesn't explicitly differentiate it from siblings like browser_fill_form or browser_press_key, but the verb+target phrasing is clear.
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 phrase 'editable element' implies the tool is intended for text entry into input fields or contenteditable regions rather than general keyboard shortcuts. However, it doesn't provide explicit when-to-use guidance, exclusions, or comparisons with sibling tools.
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 signal that the tool is destructive (destructiveHint=true) and not read-only, so the safety profile is covered. The description adds that this is a two-element gesture, but it stops short of explaining what happens on drop or what side effects to expect.
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?
A single, direct sentence states the action and the objects involved with no wasted words. The key information is front-loaded.
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 small tool with full schema coverage and annotations, the description is functional. It lacks any note on permissions, visibility requirements, or expected behavior after the drop, but the structured data covers most invocation details.
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?
Input schema covers 100% of parameters with meaningful descriptions (startTarget/endTarget, startElement/endElement). The description adds only the 'between two elements' relationship, which is helpful but not necessary given 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?
Description uses a specific verb ('Perform drag and drop') and names the resources ('between two elements'), making the core action clear. It does not explicitly distinguish browser_drag from the similarly named sibling browser_drop, so it is clear but not differentiated.
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 given on when to choose this tool rather than siblings like browser_click, browser_hover, or especially browser_drop. There are no stated prerequisites, caveats, or alternative conditions.
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?
The annotations already communicate destructiveHint=true and readOnlyHint=false, which cover the safety profile. The description adds that evaluation can target a page or element, but it does not disclose side effects, execution context, or whether arbitrary code can mutate page state. 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 a single front-loaded sentence with no filler or repetition. Every word contributes to identifying the operation, making it highly concise and easy 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?
The schema covers parameters and the annotations cover destructiveness, so the core invocation is viable. However, there is no output schema, and the description does not explain return shapes, error behavior, execution context, or how this differs from running unsafe code. It is adequate but has clear 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 the schema already documents all four parameters. The description only loosely maps to function, target, and element without adding meaning beyond the schema. This matches the baseline for fully covered schemas.
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 uses a specific verb and resource: 'Evaluate JavaScript expression on page or element'. It clearly states what the tool does. However, it does not explicitly distinguish itself from the sibling browser_run_code_unsafe, which also appears to execute JavaScript, so it does not earn a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance about when to use this tool versus browser_run_code_unsafe or any other sibling. It does not mention situations where element targeting is required, nor when the filename parameter should be used instead of returned text. There is no 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.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate readOnlyHint=false and destructiveHint=true, so the mutation/destructive profile is covered. The description does not add behavioral context such as whether the form is submitted, which side effects occur, or why the action may be destructive, but it does not contradict the 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,front-loaded sentence with no filler or repetition. It communicates the essential action in the fewest possible words.
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?
The rich input schema and annotations provide a minimally usable picture of how to invoke the tool. However, with no output schema and no guidance on when to prefer this over sibling tools, the description alone is not fully complete for correct tool selection.
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 each parameter already has explicit documentation in the input schema. The description adds no parameter-level meaning beyond indicating that multiple form fields can be filled at once.
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' uses a specific verb and resource, making the core action clear. The word 'multiple' hints at batch behavior and loosely distinguishes it from single-field tools like browser_type or browser_select_option, but it does not explicitly name those 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 about when to use this tool versus alternatives such as browser_type, browser_select_option, or browser_click. The 'multiple' qualifier implies a batch or form-filling scenario, but this is not stated explicitly enough to help an agent choose correctly.
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 carry readOnlyHint=false, openWorldHint=true, and destructiveHint=true. The description's mention of 'close' aligns with the destructive hint, but it adds no extra behavioral context such as side effects of selecting a tab or irreversibility of close. No contradiction exists, so a baseline 3 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 a single compact sentence that front-loads the key operations. Every word contributes meaning, and there is no filler or redundant restatement of the annotations or title.
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 simple 3-parameter tool with full schema coverage, the description captures all supported operations and the schema fills in parameter specifics. It does not describe what 'list' returns and gives no guidance on when to use this tool, but the core invocation information is present.
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%, and the schema already documents url, index, and the action enum with clear meanings. The tool description does not add parameter details, so it earns the baseline 3 for relying on the schema.
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 lists four concrete operations ('List, create, close, or select') applied to a clear resource ('browser tab'), so an agent can tell the tool manages tabs. It does not explicitly distinguish itself from sibling tools like browser_navigate or browser_close, so it misses the top score for sibling differentiation.
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 given about when to use browser_tabs versus sibling tools such as browser_navigate, browser_close, or browser_find. The action enum implies some usage, but the description itself provides no context 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 already declare readOnlyHint=true and destructiveHint=false, which are consistent with the description's 'Capture accessibility snapshot' (a read operation). The description does not contradict annotations and adds a small behavioral note that it is 'better than screenshot' (implying richer content than a visual). However, it does not disclose details like output format, performance implications, or the fact that it captures the whole page. With annotations covering the safety profile, the description adds limited extra 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.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that immediately states the tool's purpose and the key advantage over a screenshot. There is no redundant or fluff content, and the essential information is front-loaded.
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 tool with optional parameters and no output schema, the description is relatively minimal. It does not explain the structure of the returned accessibility snapshot or when to use it in a workflow. However, the parameter schemas are thorough, and the annotations cover safety. Given the tool's simplicity, it is adequate but lacks detail about the output format and usage scenarios, leaving room for improvement.
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 four parameters are fully documented in the input schema. The tool description itself adds no additional parameter semantics. As a result, the baseline of 3 applies because the schema handles parameter understanding entirely.
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 states a specific verb ('Capture') and resource ('accessibility snapshot of the current page'), and adds a comparative hint ('better than screenshot') that distinguishes it from the sibling browser_take_screenshot. It does not explicitly differentiate from other siblings but is clear and specific enough to convey its core function.
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 phrase 'this is better than screenshot' implicitly suggests using it when an accessibility snapshot is preferred over a visual screenshot. However, it gives no explicit guidance on when NOT to use it or which alternative to choose otherwise. There are many sibling tools, but no reference to them, so usage context is only partially addressed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral detail beyond what the annotations already declare. The annotations state readOnlyHint=false and destructiveHint=true, which already signals that the tool may have side effects. The description merely restates the action without elaborating on potential outcomes (e.g., unsaved form data loss, behavior when history is empty, or that it alters the current page state).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no superfluous words. It is front-loaded and immediately communicates the tool's function. It earns its place with zero waste.
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 simplicity (no parameters, no output schema, minimal complexity), the description is largely sufficient for an agent to understand the action. Minor missing context could include that it operates on the current tab's history, but that is likely implied in a browser context. Overall, it is complete enough for safe invocation.
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?
The tool has zero parameters, so the baseline is 4 per the rubric. The description correctly adds nothing about parameters because there are none to explain. The schema coverage is trivially 100%, and the description does not need to compensate.
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 states a specific verb ('go back') and resource ('previous page in the history'), which unambiguously defines the tool's action. It distinguishes from sibling tools like browser_navigate (which presumably goes to a specific URL) and browser_tabs (which manages tabs). The meaning is instantly clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/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 does not mention that browser_navigate can be used for direct URL navigation, nor does it specify exclusions such as 'when there is no history' or that it only applies to the current tab. There is no context about when to prefer this over other navigation 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?
Annotations already mark the tool as destructive and not read-only. The description adds crucial context beyond the annotations by specifying that code executes in the Playwright server process and is RCE-equivalent. This clarifies the severity and location of execution, which is highly valuable.
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, information-dense sentence that leads with the action and resource, then delivers the critical safety warning. Every word earns its place, with no redundant or filler content.
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 tool with only two parameters, rich annotations, and a 100% covered schema, the description covers the most important operational context: server-side execution, arbitrary JavaScript, and RCE risk. The lack of an explicit return-value description is minor given the code-driven return and absence of an output schema.
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 both 'code' and 'filename' thoroughly documented, including an example for 'code'. The tool description provides no additional parameter-level detail, so the schema carries the full burden and a 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 tool "Run[s] a Playwright code snippet" and identifies the dangerous nature: it "executes arbitrary JavaScript in the Playwright server process and is RCE-equivalent." This distinguishes it from page-context tools like browser_evaluate, though it does not explicitly name a sibling.
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 strongly communicates that the tool is unsafe and RCE-equivalent, implying it should only be used when necessary. However, it does not explicitly say when to prefer this tool over alternatives such as browser_evaluate, nor does it state any exclusions or prerequisites.
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 destructive=true, readOnly=false, and openWorld=true. The description adds useful context beyond annotations by clarifying that the drop is simulated 'as if from outside the page' and that paths/data are mutually required. It does not disclose permission requirements or the side effects of a drop, but the destructive annotation already flags risk.
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, front-loaded sentence that states the core action first, then the required constraint. Every phrase earns its place; there is no wasted wording or unnecessary repetition of schema details.
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?
Combined with a fully documented schema and safety-relevant annotations, the description is sufficient for a basic call. However, it lacks guidance on when to prefer paths over data, what happens if both are supplied, or how target/element interact. It is adequate but could be more complete for a browser-interaction tool.
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?
Schema coverage is 100%, so the schema documents all parameters well. The description adds value by stating the non-obvious constraint that 'at least one' of paths or data must be provided, which the schema itself does not enforce since only target is required. It also implicitly maps paths and data to the two input modes mentioned.
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 names a specific action ('Drop'), a resource ('onto an element'), and the two supported input forms ('files or MIME-typed data'). The phrase 'as if dragged from outside the page' clearly distinguishes this from browser_drag (internal drag) and browser_file_upload. The at-least-one constraint further sharpens the tool's purpose.
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 the use case — simulating an external drag-and-drop — which helps an agent choose this over browser_drag. However, it does not explicitly mention when not to use it, nor does it name sibling alternatives like browser_file_upload or browser_drag. The usage guidance is adequate but left mostly to inference.
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 state readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the three operating modes, which is useful, but it does not disclose important behavior such as polling, timeout limits, or what happens if a condition is already satisfied when the call starts.
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?
One concise sentence with no filler, and the primary action ('wait for') is front-loaded. Every part of the sentence contributes to understanding the tool's function.
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?
The tool is relatively simple and the annotations cover safety, but the description leaves ambiguity about combinations of text, textGone, and time, and about what happens when none of the conditions are met. Since there are no required parameters, an agent needs more guidance on expected input combinations.
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 schema already documents each parameter. The description paraphrases the same meanings rather than adding new semantics, and it does not clarify whether parameters can be combined or are mutually exclusive.
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 uses a specific verb ('wait') and names concrete resources: text appearing, text disappearing, and elapsed time. It clearly differentiates this tool from the other browser action siblings just by stating these three focus areas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells an agent when to use the tool: when you need to block until text appears, until text disappears, or until a duration has passed. It does not explicitly mention alternative tools, but no sibling tool fills the same waiting role, so the omission is minor.
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 declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds that the tool returns headers and body and can be narrowed to one part, which is useful but not particularly deep. No contradiction or hidden destructive behavior is disclosed or left ambiguous.
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?
Two short sentences carry all essential information: what is returned, how to narrow it, and where the index comes from. There is no filler, and the most important behavioral constraint is front-loaded.
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 read-only retrieval tool, the description plus schema is largely sufficient: the user knows what to pass, where the index originates, and what kind of data to expect. The absence of an output schema is mitigated by the explicit mention of headers and body, though exact response structure is not specified.
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 schema already explains `index`, `part`, and `filename`. The description adds meaningful context by saying the index is the number from browser_network_requests and that `part` changes the result, but it does not substantially expand on what the schema already provides.
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 states a specific verb ('Returns'), a specific resource ('full details of a single network request'), and the optional scoping to a part. It is clearly distinguished from the sibling browser_network_requests, which lists requests, by saying 'Use the number from browser_network_requests.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit context: the index comes from browser_network_requests, and `part` narrows the return to a single section. It does not explicitly enumerate when not to use this tool versus alternatives, but the reference to the sibling tool makes the intended workflow clear.
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 cover read-only and non-destructive behavior. The description adds useful behavioral detail about return format, surrounding context, path-from-root presentation, and cost characteristics. It is consistent with the annotations, with no contradictions.
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?
One dense, well-structured sentence that front-loads the action and then provides the output shape and the key trade-off. There is no filler or redundancy; every clause earns its place.
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?
The description explains return shape and the main use case, and annotations cover safety. However, since neither parameter is marked required in the schema, the description could more explicitly instruct the agent to provide exactly one of text or regex.
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 coverage is 100%; both text and regex are already documented with mutual exclusivity and regex flag syntax. The description adds no parameter-level meaning beyond restating that either text or regex is used, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search'), a clear resource ('the accessibility snapshot of the current page'), and a well-defined result (matching snapshot nodes with surrounding context and refs). It also distinguishes itself from the whole-snapshot sibling by explaining its narrower focus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear when-to-use condition: this is 'cheaper than capturing the whole snapshot when you only need to locate an element and its ref.' It implicitly contrasts with browser_snapshot but does not explicitly name the sibling or state when NOT to use this tool, so it stops short of full guidance.
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 and destructiveHint=false, so safety is covered without repetition. The description adds valuable behavioral context: the results are numbered, scoped to page load, and intended to be consumed by browser_network_request. Missing pagination or snapshot semantics is a minor gap given the tool's simplicity.
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?
Two sentences with no filler. The first sentence front-loads the core action and temporal scope; the second sentence gives the essential follow-up instruction. Every word earns its place.
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 list/detail tool with no output schema, the description sufficiently explains return shape (numbered list), scope (since page load), and the next step (pass a number to browser_network_request). The schema covers parameter details. It is complete enough, though exact text/format of the list is left implicit.
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 schema already documents filter, static, and filename. The description adds little direct parameter meaning, though the numbered-list phrasing explains how results connect to the sibling detail tool. Per baseline, this is adequate but not exceptional.
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 states a specific verb and resource: 'Returns a numbered list of network requests since loading the page.' It also clearly differentiates itself from the sibling browser_network_request by pointing to it as the detail-fetching counterpart. An agent can immediately tell the list operation from the detail operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description routes the agent to browser_network_request when full details are needed, which is the key alternative for this list/detail pair. It does not enumerate when-not-to-use conditions against unrelated browser tools, but the usage context is clear enough for correct selection.
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 declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds a key behavioral trait: the output is not interactive ('You can't perform actions based on the screenshot'), which is not captured by annotations. This adds meaningful context about the tool's limitations beyond the structured data.
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?
Two concise sentences with no redundant phrasing. The core purpose is stated first, followed by a critical limitation and alternative, maximizing informativeness per word.
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 read-only screenshot tool with comprehensive schema documentation and safety annotations, the description covers the essential decision points: when to use it and when not to. It doesn't explain return formats or error handling, but those are less critical given the tool's simplicity and the annotations' coverage.
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 descriptions for all 6 parameters. The description adds no parameter-specific information, and the baseline of 3 is appropriate since the schema fully documents parameters.
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?
States a specific verb ('Take') and resource ('screenshot of the current page'). Explicitly distinguishes from browser_snapshot by stating what it is not for ('You can't perform actions based on the screenshot'), making it clear which tool to use for captures vs. interactions.
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?
Provides explicit when-not-to-use guidance: 'You can't perform actions based on the screenshot' and directs to the alternative 'use browser_snapshot for actions'. This clearly routes an agent to the correct tool for interactive needs while implying this tool is for visual captures.
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/nludd25/playwright-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server