playwright-mcp-server
Server Details
Headless browser primitives for AI agents when sites need real JS rendering.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 3.7/5 across 15 of 17 tools scored. Lowest: 3.1/5.
Each tool targets a specific browser automation action with no meaningful overlap. For example, fill_form handles multiple fields while type_text handles a single input, and extract_table/get_text/get_links/get_html are clearly distinct extraction modes.
All tool names use lowercase snake_case and mostly follow a verb_noun pattern (e.g., get_text, set_cookies, select_option). The only minor inconsistency is page_pdf, which is a noun_noun construction rather than a verb-prefixed name.
With 17 tools, the server covers navigation, interaction, extraction, cookies, screenshots, and PDF generation. This is slightly above the ideal 3-15 range but still well-scoped for a browser automation server, so it feels reasonable rather than bloated.
The tool set covers the core page lifecycle: navigate, interact (click/type/select/scroll), wait, extract content, and capture output (screenshot/PDF). Missing advanced features like back/forward or frame handling, but these are minor gaps that can be worked around.
Available Tools
17 toolsclickBInspect
Click an element matched by CSS selector or visible text.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | ||
| button | No | left | |
| selector | No | ||
| double_click | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose side effects, such as triggering navigation, form submission, or waiting behavior. It also fails to mention error handling or how the click is performed. The annotations only indicate that the tool is not read-only and interacts with an open world, which the description does not expand upon.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core action. Every word contributes meaning, with no repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, but the description still lacks critical context: it does not specify button options, double-click behavior, or the visible-text matching semantics in detail. The lack of usage guidelines and partial parameter coverage leaves the agent under-informed for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate for lack of parameter documentation. It addresses 'selector' and 'text' but completely omits 'button' and 'double_click'. Parameters like 'button' default to 'left' but without further explanation, the agent may not know valid values or behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Click') and identifies the resource (an element) and matching mechanisms (CSS selector or visible text). It clearly communicates the tool's function and distinguishes it from sibling tools like type_text or fill_form.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives, and no exclusions or prerequisites are mentioned. The description solely states what the tool does, leaving usage decisions entirely to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_browserAInspect
Close the underlying browser, freeing resources.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate readOnlyHint=false (a state-changing operation) and openWorldHint=true (external side effects). The description adds useful context that the browser is 'underlying' and that resources are freed, clarifying the consequence of the action beyond what the annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the primary action and result. Every word contributes to understanding, with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with zero parameters and no output schema, this description is fully self-contained. It explains what the tool does and why it's useful (freeing resources), which is sufficient for the agent to understand its role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so the input schema is trivially fully covered. The description doesn't need to explain parameter semantics, and the baseline for zero parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Close' and identifies the resource as 'the underlying browser', clearly distinguishing it from sibling tools like navigate or click. It states exactly what the tool does, with no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when you are done with the browser and want to free resources. Although it doesn't explicitly mention alternatives, the sibling list contains no other close or cleanup tool, making the usage context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evaluateBInspect
Evaluate JavaScript in the page context. Use return for values or an expression.
| Name | Required | Description | Default |
|---|---|---|---|
| script | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose side effects or behavioral nuances beyond the annotations. Since readOnlyHint=false indicates non-read-only behavior, the agent knows it can mutate state, but the description adds no additional context like page modification risks, network access, or execution context. openWorldHint=true is also not elaborated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise: two short sentences that are front-loaded. The first sentence states the core purpose, and the second adds a key usage detail. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an arbitrary code execution tool, the description is under-specified. It does not explain what the tool returns (e.g., the evaluated value, its type, or serialization), error handling, or potential side effects on the page. With no output schema and sparse annotations, this is a significant gap for an agent to use it safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It meaningfully explains that the `script` parameter should contain JavaScript evaluated in the page context and clarifies how to produce values (using `return` or an expression). This goes beyond the bare schema and gives practical guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool evaluates JavaScript in the page context with a specific verb and resource, distinguishing it from sibling tools that perform specific actions (e.g., click, type_text). It is immediately obvious what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides only a syntax hint ('Use `return` for values or an expression') but no guidance on when to use this tool vs alternatives, nor any exclusions or prerequisites. It lacks context for choosing evaluate over other browser automation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_tableARead-onlyInspect
Extract a standard HTML table as a list of row objects keyed by header.
| Name | Required | Description | Default |
|---|---|---|---|
| selector | No | table |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral context beyond the readOnlyHint annotation by disclosing the return format as a list of row objects keyed by header. It does not mention error handling (e.g., if no table matches) but the annotation covers the read-only nature, so the bar is lower.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the verb and resource, then specifies the output shape. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple single-parameter design and readOnlyHint annotation, the description covers the core purpose and output reasonably well. However, it lacks parameter semantics and usage guidance, making it only minimally complete for an agent trying to invoke it optimally.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate for the 'selector' parameter, but it never mentions it. The default value 'table' is implicit, but the user gets no explanation about how to target a specific table or what a valid selector looks like.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'extract' and a resource 'standard HTML table' with a clear output format 'list of row objects keyed by header'. This cleanly distinguishes it from sibling tools like get_text or get_html that return raw content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'standard HTML table' implies a scope (probably not nested or malformed tables), but there is no explicit guidance on when to use this tool over alternatives, nor are any exclusions stated. The context of siblings is not leveraged in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fill_formAInspect
Fill multiple form fields from a list of {selector, value} and optionally submit.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | Yes | ||
| submit | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and openWorldHint=true, covering the mutation and side-effect aspects. The description adds the 'optionally submit' behavior, which is useful. It does not go deeper into overwriting or navigation effects, but with annotations present, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, appropriately sized sentence that is front-loaded with the core action. No filler or unnecessary repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters, the description covers the essential action and the optional submit. Annotations provide safety context, and no output schema is needed. The description is complete enough for an agent to select and invoke the tool correctly for a bulk fill operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description provides the {selector, value} structure for the fields array, adding meaning beyond the bare schema. It does not specify the types or semantics of selector and value, nor the exact behavior of the submit parameter beyond the schema's boolean default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'fill' with the resource 'multiple form fields', clearly distinguishing it from sibling tools like type_text (single field) and click. It also notes the optional submit action, which conveys the full scope of the tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies this tool is for filling multiple form fields at once, with an optional submit. It provides context, though it does not explicitly exclude single-field use or name alternatives. The sibling list provides a natural contrast, but the description itself does not mention when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cookiesARead-onlyInspect
Return all cookies for the current browser context.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, setting the safety context. The description adds the scope 'current browser context' but does not detail return format, cookie properties, or behavior with no cookies. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys all essential information without redundancy. It is concise and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, no output schema, and clear annotations, the description is largely complete. It specifies what is returned (all cookies) and the scope (current browser context). It does not explicitly mention return format, but this is likely understood from the context and sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so no parameter documentation is needed. The schema coverage is effectively 100%, and the baseline for 0 params is 4. The description adds no parameter-specific semantics, which is acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Return all cookies for the current browser context', using a specific verb ('Return'), resource ('cookies'), and scope ('current browser context'). This distinguishes it from sibling tools like set_cookies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The sibling list includes set_cookies, but the description does not mention it or any context-specific usage. The agent is left to infer the intended use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_htmlBRead-onlyInspect
Return the HTML of the page or a specific element.
| Name | Required | Description | Default |
|---|---|---|---|
| outer | No | ||
| selector | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds that the HTML can be for the whole page or a specific element, but it does not explain the behavior of the 'outer' parameter (outerHTML vs innerHTML) or how null selector is handled. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. It conveys the essential purpose in 11 words, making it highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature of the tool and the annotations covering safety, the description adequately communicates the core function. However, it lacks parameter semantics (especially 'outer') and does not explicitly describe the return format or error behavior. This makes it minimal but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It implicitly references the selector via 'or a specific element', but it completely omits the 'outer' parameter, leaving its meaning and default behavior unexplained. With two parameters and zero schema descriptions, this is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Return') and the resource ('the HTML of the page or a specific element'). This distinguishes it from sibling tools like get_text (returns text) and get_links (returns links).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. It does not mention when to use this tool over alternatives such as get_text, nor does it specify conditions for using a selector vs the whole page. Usage is only implied by the name and basic description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_linksARead-onlyInspect
Collect all anchor hrefs, optionally filtered by regex.
| Name | Required | Description | Default |
|---|---|---|---|
| pattern | No | ||
| selector | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds minimal behavioral context beyond the readOnlyHint and openWorldHint annotations. It mentions regex filtering but does not disclose return format, handling of duplicates, or whether URLs are absolute or relative. The readOnlyHint already covers safety, so it is not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. It front-loads the core purpose ('collect all anchor hrefs') and adds the filter condition efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and two undocumented parameters, yet the description only explains one parameter. It does not state the return type, whether links are unique, or what the selector does. The readOnlyHint mitigates some concerns but does not fill these gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains 'pattern' as a regex filter, but the 'selector' parameter is entirely unexplained. This leaves a significant gap for an optional parameter that the agent cannot infer.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool collects anchor hrefs, which is a specific action and resource. It differentiates from sibling tools like get_text and get_html by targeting anchor hrefs specifically, and mentions optional regex filtering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name and description: use when you need to collect links from a page. However, there is no explicit guidance on when to use this vs alternatives like get_html or get_text, and no exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_textARead-onlyInspect
Extract visible text from the page or a specific element.
| Name | Required | Description | Default |
|---|---|---|---|
| selector | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers safety, and the description adds the behavioral nuance that only 'visible' text is extracted, which is a useful qualifier. However, it does not clarify behaviors like handling of hidden elements, multiple matches, or return format beyond what is implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the primary action and scope. Every word adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description covers the core functionality well. It does not describe return details, but the phrase 'extract text' implies the return value, and the annotations provide read-only context. Slightly incomplete regarding selector usage edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one parameter 'selector' with no description, and schema description coverage is 0%. The description only hints that a selector can target 'a specific element' but does not specify the selector format (e.g., CSS, XPath) or default behavior with null. This is insufficient compensation for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool extracts visible text from the page or a specific element, using a specific verb ('extract') and resource ('visible text'). It distinguishes from sibling tools like get_html and get_links by specifying 'visible text' rather than HTML or links.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: use for extracting visible text, optionally from a specific element. However, it does not explicitly state when to prefer this over alternatives like get_html or get_links, nor does it mention 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.
page_pdfARead-onlyInspect
Render the current page as PDF (headless only). Returns base64 PDF.
| Name | Required | Description | Default |
|---|---|---|---|
| format_ | No | A4 | |
| landscape | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the agent knows it is a safe read operation. The description adds valuable behavioral context beyond this by disclosing the 'headless only' requirement and the base64 PDF return format. There is no contradiction with 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise: two short sentences totaling 12 words. It front-loads the primary action and includes the key constraint and return type. Every word contributes meaning, with no redundant text or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a simple interface (two optional params, no output schema), and the description covers the core purpose and return value. However, it omits parameter semantics, particularly valid format_ values, and does not mention what happens if used outside headless mode. For a tool this simple, it is adequate but has room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage and the description does not mention either parameter (format_ or landscape). This leaves format_ ambiguous (e.g., what string values are accepted?) and requires the agent to rely on parameter names alone. Since the description does not compensate for the schema's lack of explanation, this is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: render the current page as PDF. It uses a specific verb ('Render') and identifies the resource ('the current page'), which distinguishes it from sibling tools like screenshot or get_html. The 'headless only' constraint and the return format are also specified, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by noting that the tool is 'headless only', which serves as an exclusion when the browser is not in headless mode. While it does not explicitly name alternative tools, the phrase 'headless only' guides the agent on when not to use this tool, and the purpose itself implies its use for PDF generation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenshotARead-onlyInspect
Take a PNG screenshot of the current page (or a specific element). Returns base64 PNG.
| Name | Required | Description | Default |
|---|---|---|---|
| selector | No | ||
| full_page | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable context by stating the return format (base64 PNG), which is essential since there is no output schema. It also clarifies element-level capture. Annotations already declare readOnlyHint and openWorldHint, so the extra behavioral details are helpful. However, it does not disclose other traits like waiting for page load.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no redundant words. It front-loads the action and result format, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with two optional parameters and no output schema. The description covers the main behavior and return format, but fails to explain the 'full_page' parameter's behavior, which is a meaningful gap for a screenshot tool. Given the annotations, it is mostly adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description partially maps 'specific element' to the 'selector' parameter but says nothing about 'full_page', leaving its purpose ambiguous. The agent must rely solely on the parameter name, which is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Take') and resource ('PNG screenshot'), and it distinguishes between current page and specific element capture. It does not explicitly name sibling tools like page_pdf, but the resource is distinct enough for basic identification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (for visual capture of the page or an element) but provides no explicit guidance on choosing it over alternatives like page_pdf or get_html. It offers context about scope but lacks exclusions or alternative references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scrollAInspect
Scroll the page (or an element) in the given direction by amount pixels.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | No | ||
| selector | No | ||
| direction | No | down |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and openWorldHint=true, which already suggest side effects. The description adds the fact that scrolling can target an element, but does not disclose other behaviors like return values or error handling. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that is easy to read and front-loaded with the action and target. It contains no unnecessary words or information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple, but the description lacks details about possible direction values, the effect of a null selector, and any output or return behavior. Given the absence of an output schema and limited annotations, the description is incomplete for full context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only partially explains parameters. It references 'amount' and 'direction' but not 'selector', leaving its meaning ambiguous. Defaults are in the schema, but the description doesn't add meaningful context for all parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool scrolls a page or element by a pixel amount in a direction. It uses a specific verb and resource, and distinguishes from sibling tools by describing a unique action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (to scroll) but does not explicitly discuss alternatives or scenarios when not to use it. There is no exclusion guidance, so it is minimally adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
select_optionAInspect
Choose an option from a element by value or visible label.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | ||
| value | No | ||
| selector | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, signaling this is a mutating operation. The description adds that selection can be by value or visible label, but does not disclose edge-case behaviors such as what happens if both are provided, which takes precedence, or what occurs if no matching option is found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is direct and front-loaded with the verb 'Choose'. It wastes no words and conveys the core purpose efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no output schema or nested objects, the description covers the essential action and parameters. It lacks details on parameter precedence or error handling, but overall provides sufficient context for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains that 'label' and 'value' refer to the option's visible text and value attribute, respectively, but it does not clarify the 'selector' parameter's format or the precedence when both label and value are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Choose an option') and the target resource ('<select> element'), and specifies the two methods ('by value or visible label'). This distinguishes it from sibling tools like 'click' and 'fill_form' in the context of browser automation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for selecting options in a dropdown, but does not explicitly state when to use this tool over alternatives like 'fill_form' or 'type_text'. There is no mention of exclusions or when-not-to-use, so the 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.
set_cookiesBInspect
Set cookies for the current browser context.
| Name | Required | Description | Default |
|---|---|---|---|
| cookies | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a mutating operation (readOnlyHint=false), so the description adds value with the scope 'current browser context.' However, it does not disclose whether cookies are overwritten or appended, persistence semantics, or potential side effects on subsequent navigation/requests.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no filler or redundancy. It is appropriately front-loaded and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the low complexity, the description is under-specified for correct invocation. With no output schema and 0% schema description coverage, the agent lacks critical details about cookie object structure and behavioral semantics, making the description incomplete for reliable use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one required parameter 'cookies' with no descriptions and schema coverage at 0%. The description does not explain the expected shape of cookie objects (e.g., name, value, domain) or how multiple cookies are handled, relying only on the parameter name for meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Set' with the resource 'cookies' and scopes it to 'the current browser context.' This clearly states what the tool does and distinguishes it from the sibling get_cookies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. It only states the operation itself, leaving usage context entirely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
type_textAInspect
Type text into an input/textarea. Optionally clear first or press Enter after.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| clear | No | ||
| selector | Yes | ||
| press_enter | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context beyond annotations by explaining the optional clear and press_enter behaviors, indicating that clearing happens before typing and Enter can be pressed after. Annotations only state readOnlyHint=false, so the description supplements with behavior. However, it doesn't clarify append vs replace when clear is false or event simulation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, two short sentences, with the main action first. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, but with no output schema and no parameter descriptions, the description could be more complete about the selector format and behavior when the element is not found. It covers core functionality but leaves selector unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates somewhat by explaining text, clear, and press_enter. However, the selector parameter is not explained at all (format, CSS selector, etc.), which is a gap for correct usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool types text into an input/textarea, with a specific verb and resource. It is distinguishable from siblings like click and fill_form by focusing on typing into a single input/textarea, and mentions optional clear and press_enter behaviors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for typing text into input fields, but does not explicitly state when to prefer this over fill_form or other alternatives. It gives no exclusions or context for choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wait_forAInspect
Wait until a selector reaches a given state (visible|hidden|attached|detached).
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | visible | |
| timeout | No | ||
| selector | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the allowed state values and indicates blocking behavior ('wait until'), but it does not disclose what happens on timeout, whether it throws an error, or what the return value is. Annotations (readOnlyHint: false, openWorldHint: true) are present and not contradicted, but they do not compensate for these behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, succinct sentence that is front-loaded with the action and object. It contains no filler or redundant details, earning full marks for conciseness and structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and has no output schema, but the description does not explain return values or error/timeout behavior. It covers the core purpose and states, but leaves notable gaps for an agent that needs to know what happens after the wait or if it fails. Sibling tools are all action-oriented, so the description is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does enumerate the options for 'state' (visible|hidden|attached|detached), clarifying that parameter. However, it does not explain 'timeout' units or behavior, and 'selector' is only minimally described. The description adds value for 'state' but not for the other parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'wait until' with a specific resource 'selector' and a set of target states (visible|hidden|attached|detached). It clearly distinguishes this tool from sibling tools like click or navigate, and there is no other wait tool in the list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (when you need to wait for a selector to reach a particular state), but it does not provide explicit guidance on when not to use it or mention alternatives. No exclusions or prerequisites are given, so it is clear but not actively instructive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- Alicense-qualityAmaintenanceUltra-lightweight headless browser for AI agents. Provides MCP tools for navigating URLs, extracting structured content, and building autonomous agent workflows.2Apache 2.0
- Flicense-qualityCmaintenanceHeadless browser automation for LLM agents via REST API or MCP tools. Enables navigating pages, reading structured content, clicking elements, filling forms, and executing JavaScript.
- AlicenseAqualityBmaintenanceA lightweight, stealthy headless browser for AI agents, providing MCP tools for web extraction, interaction, and snapshotting.121Apache 2.0

Plasmateofficial
Alicense-qualityCmaintenanceAgent-native headless browser for AI agents. Converts web pages to a Semantic Object Model (SOM) instead of raw HTML — 17x average token reduction across real-world sites (up to 117x on complex pages). Native MCP server with fetch_page, extract_text, extract_links, and full browser automation. No API key required.34Apache 2.0