Skip to main content
Glama
doucej

playwright-mcp-server

by doucej

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation5/5

    Each tool targets a distinct browser action: navigation, input, extraction, evaluation, and state management. Type and fill are clearly differentiated by append vs. replace, and other tools like get_text and get_html have distinct return types.

    Naming Consistency4/5

    All names use lowercase snake_case with imperative verbs. Most follow a verb_noun pattern (open_page, get_text), but a few are bare verbs (click, reload, hover), which is a minor deviation rather than a major inconsistency.

    Tool Count3/5

    With 19 tools, the set is on the heavier side and crosses into the 'feels heavy' range. While browser automation justifies many actions, some tools like save_state and load_state seem auxiliary and could potentially be combined or omitted.

    Completeness4/5

    The set covers core browser workflows: navigation, interaction, extraction, waiting, screenshots, and state persistence. Minor gaps exist (e.g., no explicit drag-and-drop or dialog handling), but these can be worked around using evaluate or other tools.

  • Average 3.8/5 across 19 of 19 tools scored. Lowest: 2.9/5.

    See the Tool Scores section below for per-tool breakdowns.

    • 0 of 1 community issues answered or closed 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 MIT License.

  • 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.json to 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?

    With no annotations, the description carries full behavioral disclosure burden. It only states the basic action, omitting details like whether the element is scrolled into view, whether hover events are triggered, what happens if the element is not visible, or whether the tool waits for actionability.

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

    Conciseness4/5

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

    The description is a single, compact sentence that conveys the primary purpose without wasted words. It is concise and easy to parse, though it is brief to the point of under-specification.

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

    Completeness2/5

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

    Given the simple tool (1 parameter, no annotations, no output schema), the description is minimal but leaves out important operational context such as hover behavior in dynamic pages, coordination with other automation steps, and any side effects. The absence of any usage guidance or behavioral notes makes it incomplete for reliable agent decision-making.

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

    Parameters3/5

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

    The sole parameter 'selector' is fully described in the schema as 'CSS or XPath selector.' The tool description adds no additional parameter meaning, but schema coverage is 100%, so the baseline of 3 is appropriate.

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

    Purpose4/5

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

    The description 'Move the mouse over an element' clearly states the action using a specific verb and resource. It is distinct from sibling tools like 'click' and 'press' by specifying the hover action, though it does not explicitly differentiate itself.

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

    Usage Guidelines2/5

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

    No guidance is given on when to use hover versus alternatives like 'click' or 'type'. The description lacks context such as 'use hover to reveal tooltips or dropdown menus' or any mention of element actionability prerequisites.

    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?

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It only reveals that it targets the first matching element, but does not mention behavior for missing elements, missing attributes, or error conditions, which is insufficient for a tool with no annotation support.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence with no filler. Every word contributes to the core action, making it highly concise and easy to parse.

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

    Completeness2/5

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

    Given no output schema and no annotations, the description does not explain return types, null behavior, or edge cases. It mentions 'value' but not whether it returns a string, what happens when no element matches, or if the attribute is missing, leaving significant gaps for a tool with no richer context.

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

    Parameters3/5

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

    The schema covers both parameters at 100% with clear descriptions (CSS or XPath selector, attribute name with examples). The tool description adds no additional parameter semantics beyond the schema, so the baseline of 3 is appropriate.

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

    Purpose5/5

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

    The description uses the specific verb 'Return' combined with the resource 'value of an attribute on the first element matching the selector.' This clearly distinguishes it from sibling tools like get_text, get_html, and get_url, which return different data types.

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

    Usage Guidelines2/5

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

    No guidance is provided about when to use this tool versus alternatives such as get_text or get_html. There are no exclusions, prerequisites, or situational context, leaving the agent to infer usage solely from the name and sibling list.

    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?

    No annotations are provided, so the description must disclose behavior. It only mentions 'first element' but does not explain what happens if the element is not found, whether it waits for element presence, or any side effects. This leaves important behavioral traits undisclosed.

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

    Conciseness5/5

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

    The description is a single, concise sentence with no fluff, front-loading the action immediately and earning a top score.

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

    Completeness3/5

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

    For a simple click tool with one parameter, the description covers the core action but omits usage context and edge-case behavior. Given no annotations or output schema, it is minimally complete but has gaps.

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

    Parameters3/5

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

    The schema already provides 100% coverage with 'CSS or XPath selector.' The description adds no new semantic detail about the selector parameter, just refers to it generically. Baseline 3 applies.

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

    Purpose5/5

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

    The description clearly states the action ('Click') and the target ('the first element matching the given selector'), making it distinct from siblings like hover or press. It is specific and unambiguous.

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

    Usage Guidelines2/5

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

    There is no guidance on when to use this tool versus alternatives like hover or press, nor any mention of preconditions such as page load or element visibility. The description only states what it does, not when to choose it.

    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?

    No annotations are provided, so the description must carry the full burden of behavioral disclosure. It states only that the tool waits for an element to be present, but it does not disclose what happens on timeout (throw, return false, etc.), whether it polls or uses events, or what the return value is. This is a significant gap for a wait operation.

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

    Conciseness5/5

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

    The description is a single short sentence that immediately conveys the core function. There is no redundancy or unnecessary detail. It is an excellent example of concise writing.

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

    Completeness3/5

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

    The tool is relatively simple, and the schema documents the parameters well. However, because there is no output schema and no annotations, the description should at least mention the return value or timeout behavior to be complete. This missing information makes the description adequate but not thorough.

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

    Parameters3/5

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

    Schema coverage is 100%: all three parameters (selector, state, timeout) have descriptions in the input schema. The tool description adds no additional meaning beyond 'element matching the selector', which is already captured in the selector parameter description. Per the baseline, a score of 3 is appropriate when the schema fully documents parameters.

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

    Purpose5/5

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

    The description clearly states the action ('Wait') and the target ('an element matching the selector'). It unambiguously differentiates this from sibling tools like click, type, or get_text, which perform other operations. The purpose is immediately obvious.

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

    Usage Guidelines3/5

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

    The description implies a usage scenario: wait for an element to appear before interacting with it. However, it does not explicitly state when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. The guidance is minimal and relies on the tool's name and context.

    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?

    No annotations are provided, so the description carries the full burden. It discloses the 'first matching element' behavior and the default, but does not state what happens if no element matches, potential errors, or any side effects. This leaves significant behavioral aspects unknown.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence that communicates the core action and the default behavior. Every word earns its place, with no redundancy or fluff.

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

    Completeness4/5

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

    For a simple read tool with one optional parameter and no output schema, the description covers the essential behavior. It could mention error handling for no-match scenarios, but given the low complexity and helpful default behavior, it is largely complete.

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

    Parameters3/5

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

    The schema already documents the selector parameter with its type, optionality, and default (body). The description adds 'first matching element' constraint but this is tool behavior, not parameter semantics. With 100% schema coverage, a score of 3 is the appropriate baseline.

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

    Purpose5/5

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

    The description clearly states the tool's function: returning the inner HTML of the first matching element. It distinguishes itself from siblings like get_text and get_attribute by specifying 'inner HTML'. The default to <body> is an additional clarifying scope detail.

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

    Usage Guidelines3/5

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

    It provides context that the selector is optional and defaults to body, which is a usage hint. However, it does not explicitly say when to use this tool instead of alternatives or mention any exclusions, 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.

  • Behavior3/5

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

    With no annotations, the description carries the transparency burden. It adds useful behavioral nuance: 'visible' text (not hidden) and 'first element' (not all matches). However, it does not disclose what happens when no element matches, whether it waits for the element, or the exact return value when no match occurs.

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

    Conciseness5/5

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

    The description is a single, concise sentence that is front-loaded with the action and use case. No filler words, and every part earns its place.

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

    Completeness4/5

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

    For a simple tool with one parameter and no output schema, the description covers both the input (selector) and the return value (visible text). It omits error behavior, but given the low complexity and sibling context, this is acceptable.

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

    Parameters3/5

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

    The schema already fully describes the single parameter with 100% coverage, so the baseline is 3. The description adds no further semantic detail about the selector (e.g., how it is used), merely restating that the element must 'match the selector.'

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

    Purpose5/5

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

    The description clearly states the action ('Return'), the resource ('visible text content'), and the scope ('first element matching the selector'). This distinguishes it from sibling tools like get_html (returns HTML) and get_attribute (returns an attribute value).

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

    Usage Guidelines2/5

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

    No guidance is given about when to use this tool versus alternatives such as get_html or get_attribute. It only implies its use for visible text, but it does not explicitly state exclusions or compare with siblings.

    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?

    No annotations exist, so the description must carry the full burden of behavioral disclosure. It only states the basic action without mentioning side effects such as loss of unsaved form data, clearing of transient state, or that the page is re-fetched from the server. This is minimal transparency for an action that can disrupt 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/5

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

    The description is a single, clear sentence with no filler. It is front-loaded and perfectly sized for the tool's simplicity.

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

    Completeness4/5

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

    Given the zero-parameter schema, lack of output schema, and straightforward action, the description is sufficiently complete for the agent to know what the tool does and how to invoke it. Some context on expected behavior (e.g., whether it waits for page load) could improve completeness, but it is not critical for basic use.

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

    Parameters4/5

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

    The tool has zero parameters, and the schema is empty. The baseline for no parameters is 4, and the description correctly implies that no inputs are needed. Nothing extra is required.

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

    Purpose5/5

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

    The description 'Reload the current page.' uses a specific verb (reload) and a clear resource (current page). It clearly distinguishes from sibling tools like go_forward, go_back, and open_page, as none of those imply refreshing the current document.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives. There are no exclusions, prerequisites, or notes on when reload is appropriate (e.g., vs. re-opening the page). The implied usage is clear, but no explicit direction is given.

    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 no annotations, the description carries the full burden of behavioral disclosure. It discloses the core action but omits important details such as behavior when there is no forward history, whether it waits for page load, or any error conditions. This is minimal disclosure and leaves the agent with uncertainties.

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

    Conciseness5/5

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

    The description is a single focused sentence with no filler, front-loading the action. It is concise and structured effectively, earning full marks.

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

    Completeness3/5

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

    Given the tool's simplicity, the description captures the primary function. However, it lacks edge-case behavior (e.g., what happens if there is no forward history) and return-value expectations, leaving some gaps. It is minimally adequate for a simple browser navigation command.

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

    Parameters4/5

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

    The tool has zero parameters, so schema coverage is 100% and there is no parameter information to provide. The description adds no parameter details, but none are needed. Baseline 4 applies for zero-parameter tools.

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

    Purpose5/5

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

    The description uses a specific verb ('navigate forward') and resource ('browser history'), clearly distinguishing it from sibling tools like go_back and reload. It is unambiguous and directly conveys the action.

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

    Usage Guidelines3/5

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

    The description implies the tool is for moving forward in browser history but does not explicitly state when to use it over go_back or mention prerequisites like having previously navigated back. No exclusions or alternatives are named, so guidance is only implied.

    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?

    With no annotations, the description carries the transparency burden. It adds useful context (page context, JSON serializability) but does not disclose error handling, potential side effects of executing arbitrary code, or whether the script runs in an isolated world.

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

    Conciseness5/5

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

    A single, direct sentence that conveys all essential information without filler. The key facts are front-loaded.

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

    Completeness4/5

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

    For a simple, single-parameter tool, the description covers the main purpose and output format. It lacks error behavior and side-effect warnings, but these are not explicitly required for completeness given the tool's simplicity.

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

    Parameters3/5

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

    Schema coverage is 100% and the script parameter is well-documented with IIFE guidance. The description adds that returns are JSON-serializable but does not introduce new parameter semantics beyond the schema.

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

    Purpose5/5

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

    The description clearly states the action 'Execute', the target 'a JavaScript expression', the context 'in the page context', and the outcome 'return the result as JSON'. This distinctly separates it from sibling tools that handle navigation, interaction, or extraction.

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

    Usage Guidelines3/5

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

    No explicit guidance is given on when to prefer this tool over siblings. The usage is implied from the nature of the tool (running custom JS), but there are no stated exclusions or alternatives.

    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?

    With no annotations, the description carries the burden of describing behavior. It states the core action but does not disclose potential side effects, such as waiting for page load, or behavior when there is no history. This is a minimal viable disclosure.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence with no unnecessary words. It is maximally concise while conveying the essential purpose.

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

    Completeness4/5

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

    Given the tool's simplicity (no params, no output schema), the description is largely complete. It lacks mention of edge cases like empty history, but this is a minor omission for such a simple action.

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

    Parameters4/5

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

    The tool has zero parameters and the schema is empty. Baseline for 0 params is 4; no additional parameter explanation is needed.

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

    Purpose5/5

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

    The description clearly states the action ('navigate back') and the target ('browser history'). It is specific and distinguishes the tool from siblings like go_forward and open_page.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives. It does not mention when not to use it or any conditions that must be met (e.g., having history to navigate back through).

    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?

    No annotations are provided, so the description carries the full burden. It discloses the core action and selection mechanism ('by value'), but does not mention side effects (e.g., triggering change events), error behavior if the option is not found, or whether it waits for the element. This is a basic, but not fully transparent, description.

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

    Conciseness5/5

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

    The description is a single, concise sentence that states the tool's purpose without any fluff or repetition. Every word contributes meaning: 'Select', 'option', '<select> element', 'by value'. It is front-loaded and easy to parse.

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

    Completeness3/5

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

    Given the tool's simplicity (2 params, no output schema, no annotations), the description is adequate but not complete. It covers the essential action and target, but lacks details about return values, waiting behavior, or error handling. An agent might need to assume default behaviors, which could lead to incorrect invocation in edge cases.

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

    Parameters3/5

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

    The input schema has 100% coverage with descriptions for both parameters ('selector' and 'value'). The description adds no additional parameter semantics beyond the schema; it restates the selection method ('by value') which aligns with the value parameter. The schema already explains the parameters adequately.

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

    Purpose5/5

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

    The description clearly states the tool's function: 'Select an option in a <select> element by value.' It uses a specific verb ('select'), a specific resource ('option in a <select> element'), and the method ('by value'). This distinguishes it from sibling tools like click, type, or fill.

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

    Usage Guidelines4/5

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

    The description provides clear context for when to use the tool: when interacting with a <select> element. It does not explicitly name alternatives or exclusions, but the scope is unambiguous given the tool name and description. It lacks a comparison to fill or click, but the guidance is clear enough for an agent to select the right tool.

    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?

    With no annotations, the description carries the full burden of behavioral disclosure. It adds one useful behavioral detail: 'Waits for DOMContentLoaded before returning.' However, it does not mention side effects like history changes, possible failures on invalid URLs, or any authentication needs, leaving gaps for a navigation tool.

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

    Conciseness5/5

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

    The description is two short sentences: 'Navigate to a URL. Waits for DOMContentLoaded before returning.' Every word earns its place; there is no fluff or unnecessary detail.

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

    Completeness4/5

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

    For a simple, single-parameter navigation tool, the description is quite complete. It discloses the key waiting behavior, and since there is no output schema, not explaining return values is acceptable. Minor omissions like error handling prevent a perfect score, but overall it gives enough context for an agent to use it correctly.

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

    Parameters3/5

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

    Schema description coverage is 100%, with the url parameter described as 'Absolute URL to navigate to.' The description adds no additional semantics beyond restating that it navigates to a URL, so the baseline score of 3 applies.

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

    Purpose5/5

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

    The description starts with 'Navigate to a URL', which is a specific verb plus resource. It clearly distinguishes this from sibling navigation tools like go_back, go_forward, and reload, which perform different navigation actions, and from get_url, which reads the current URL.

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

    Usage Guidelines4/5

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

    The description makes the use case clear: it is the tool for navigating to a new URL. While it does not explicitly name alternatives or state when not to use it, the context is unambiguous given the sibling names. It earns a 4 for clear context without 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?

    With no annotations provided, the description carries the full burden of explaining behavior. It states the tool focuses and presses a key, but does not disclose details like whether keydown/keyup events are sent, how invalid keys are handled, or side effects if the element isn't found. This is basic transparency but adequate for a simple action.

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

    Conciseness5/5

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

    The description is a single concise sentence that immediately states the operation and gives examples. Every word earns its place, with no filler.

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

    Completeness4/5

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

    Given the tool's simplicity, no output schema, and no annotations, the description plus the well-documented schema is sufficient for an agent to understand and invoke the tool. It could benefit from noting whether modifications or keyboard events are simulated, but it is complete enough for the task.

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

    Parameters3/5

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

    Schema coverage is 100%: both parameters (key and selector) have descriptions in the schema. The tool description adds no additional parameter semantics beyond the examples, so the baseline of 3 applies.

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

    Purpose5/5

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

    The description clearly states the action: focus an element and press a keyboard key. It includes concrete examples (Enter, Tab, Escape, ArrowDown) and distinguishes itself from siblings like type, click, and fill.

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

    Usage Guidelines4/5

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

    The description implies usage for keyboard interactions and gives examples of relevant keys. However, it does not explicitly mention when not to use it or name alternatives like type for text entry, so it slightly lacks exclusion guidance.

    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?

    With no annotations, the description must carry behavioral disclosure. It states the output is a PNG screenshot and the scope (page or element), but does not mention side effects (likely none) or return format details (e.g., base64 or file). This is a minor gap given the simple nature of the operation.

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

    Conciseness5/5

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

    Single sentence, front-loaded with the action, zero waste. Perfectly concise.

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

    Completeness4/5

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

    The tool has 2 optional params and no output schema. The description plus schema provides clear scope and options. It does not explicitly state how the PNG is returned, but for a simple capture tool this is adequate. The sibling context doesn't require additional caveats.

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

    Parameters3/5

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

    Schema description coverage is 100%, so baseline is 3. The description does not add parameter semantics beyond the schema, but the schema already fully documents both optional parameters.

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

    Purpose5/5

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

    The description uses a specific verb ('Capture') and clearly defines the resource ('the current page or a specific element'), and specifies the output format (PNG). This distinguishes it from other browser automation tools since no sibling tool captures screenshots.

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

    Usage Guidelines4/5

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

    The description implies when to use it (when a screenshot is needed) but does not provide explicit exclusions or alternative tool mentions. Since no other tool in the sibling list handles screenshots, this is sufficient 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?

    No annotations are provided, so the description carries the full burden. It discloses the key behavioral trait that it replaces any existing content, which is essential for the 'fill' operation. It does not cover event triggering or visibility requirements, but given the tool's simplicity, this is adequate.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence that states the purpose and key behavior with no redundant words. Every part earns its place.

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

    Completeness4/5

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

    For a simple two-parameter tool with clear schema descriptions, the description is sufficiently complete. It lacks an output schema but that is not necessary for a fill operation that likely returns nothing or a simple status.

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

    Parameters3/5

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

    The input schema provides full 100% coverage with clear descriptions for both 'value' and 'selector'. The description adds a behavioral note about replacement but does not meaningfully extend the parameter semantics beyond the schema.

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

    Purpose5/5

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

    The description clearly states the tool sets the value of an input or textarea, replacing existing content. This specific verb+resource pairing distinguishes it from siblings like 'type' (which simulates typing) and 'select_option' (for selects).

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

    Usage Guidelines4/5

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

    The description makes clear what the tool does and implies it is for directly setting values, but it does not explicitly name alternatives or when-not-to-use scenarios. Since the context is clear, it earns a 4 rather than a 3.

    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?

    No annotations are provided, so the description carries the full burden. It clearly states a read operation ('Return') and implies non-mutating behavior, which is sufficient for a simple getter. It does not mention edge cases like when no page is loaded, but this is minor.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence with no filler words. It clearly states the action and the target resource in the most efficient way possible.

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

    Completeness5/5

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

    For a tool with no parameters and no output schema, this description fully specifies its function. There is no additional context that would be expected for such a simple read operation.

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

    Parameters4/5

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

    The tool has zero parameters, and the input schema is empty, covering everything. Per the rubric, zero-parameter tools receive a baseline of 4; the description adds no parameter information because none is needed.

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

    Purpose5/5

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

    The description uses a specific verb 'Return' and resource 'URL of the current page', clearly distinguishing it from sibling navigation and getter tools like get_text or get_attribute.

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

    Usage Guidelines3/5

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

    There is no explicit guidance on when to use this tool versus alternatives, but the description implies its use whenever the URL of the current page is needed. No exclusions or alternatives are mentioned.

    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?

    No annotations are present, so the description carries the full burden. It discloses the key behavioral trait that the current browser is closed and a fresh one is opened, which implies loss of unsaved state. This is useful, but it does not address prerequisites (e.g., an existing saved state) or error behavior.

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

    Conciseness5/5

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

    The description is two concise sentences that are front-loaded with the core purpose, followed by a clear behavioral explanation. No superfluous content.

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

    Completeness4/5

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

    For a parameterless tool with no annotations or output schema, the description explains the main action and its effect on the browser. It could be more complete by mentioning what happens if no saved state exists, but overall it covers the essential information.

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

    Parameters4/5

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

    The tool has zero parameters, so the baseline is 4. The description correctly focuses on the tool's behavior rather than parameter details.

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

    Purpose5/5

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

    The description uses a specific verb (reload) and clearly defines the resource (browser session from a saved state on disk). It also explains the mechanism (closes current browser, opens fresh one with persisted cookies and URL), distinguishing it from related tools like reload or open_page.

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

    Usage Guidelines4/5

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

    The description provides implicit usage context: it is for restoring a previously saved session. However, it does not explicitly name alternative tools or state when not to use it, so it's clear but lacks exclusionary 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?

    With no annotations, the description carries the full burden and does disclose key behavioral traits: it appends to existing text and requires a focusable element. It omits details like error handling or waiting behavior, but for a typing tool these are minor, so it is strongly transparent.

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

    Conciseness5/5

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

    The description is two concise sentences: the first states the core function, the second gives the alternative. It is front-loaded and contains no filler or redundancy.

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

    Completeness4/5

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

    For a simple three-parameter tool with no output schema or annotations, the description sufficiently covers the action, the alternative, and a key requirement (focusable element). Extra details like auto-wait would add value but are not essential given the low complexity and complete schema.

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

    Parameters3/5

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

    The input schema already provides 100% coverage with per-parameter descriptions. The tool description re-emphasizes 'text' by explaining the appending behavior, but adds no new parameter-level meaning beyond what the schema already states. Baseline 3 is appropriate.

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

    Purpose5/5

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

    The description uses a specific verb ('Type') and resource ('focusable element'), and immediately distinguishes from the sibling tool 'fill' by noting that it appends rather than replaces. This is a clear, specific, and differentiator-rich purpose statement.

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

    Usage Guidelines5/5

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

    The description explicitly names 'fill' as the alternative for replacing an existing value, and states that 'type' appends. This provides clear when-to-use and when-not-to-use guidance, satisfying the explicit alternatives criterion.

    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?

    Without annotations, the description carries the burden of behavioral disclosure. It explains what data is persisted and that the state is automatically reloaded on restart, which is useful beyond the tool name. However, it does not mention whether existing saved state is overwritten or any permissions needed, so it is not perfectly transparent.

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

    Conciseness5/5

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

    The description is two concise sentences. The first sentence leads with the main action and details, the second adds the key behavioral note about auto-reload. No redundant or unnecessary words.

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

    Completeness5/5

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

    For a simple parameterless tool, the description covers the essential aspects: what is saved, where it is saved (to disk), and what happens on restart. It is complete enough for an agent to understand when and how to use the tool, and the sibling 'load_state' completes the picture.

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

    Parameters4/5

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

    The tool has zero parameters, so there is no parameter information to add. The baseline for no parameters is 4, and the description does not attempt to describe nonexistent parameters.

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

    Purpose5/5

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

    The description clearly states the action ('Persist the current browser session to disk') and specifies the exact data captured (cookies, localStorage, active URL). It distinguishes this from its sibling tool 'load_state' by describing the persistence rather than restoration.

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

    Usage Guidelines4/5

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

    The description provides clear context: this saves state so it can be automatically reloaded on server restart. It does not explicitly name alternatives or exclusions, but the intended use case (persistence) is evident from the text and the sibling tool list.

    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

playwright-mcp-server MCP server

Copy to your README.md:

Score Badge

playwright-mcp-server MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/doucej/playwright-mcp-server'

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