MCP Browser Automation Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Browser Automation Servergo to github.com and search for MCP documentation"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Browser Automation
This is demo project to practice Model Context Protocol based server implemenation for automating browsing with Playwright. It interacts with a Claude Desktop client to accept user prompts and use server to control browser.
Pre-requisites
Related MCP server: claude-playwright
Building
Clone the repository:
git clone https://github.com/hrmeetsingh/mcp-browser-automation.gitInstall dependencies:
npm installVerify the output executables are present in
distfolder
Integration
Create a configuration file in
~/Application\ Support/Claude/claude_desktop_config.json(This is for macOS)Copy the following to the file:
{
"mcpServers": {
"mcp-browser-automation": {
"command": "node",
"args": ["/path/to/mcp-browser-automation/dist/index.js"]
}
}
}Start Claude Desktop
Usage
Open Claude Desktop
Start a new conversation to open a browser and navigate to a URL
Example
Added MCP Server options

Navigating to a URL and doing actions with playwright

Available Tools
12 toolsplaywright_clickC
Click an element on the page
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | CSS selector for element to click |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('click') but doesn't describe what happens after clicking (e.g., page navigation, event triggers, errors if element is missing), rate limits, or permission needs. This leaves significant gaps in understanding the tool's behavior beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with zero waste—it directly states the tool's purpose without unnecessary words. It's appropriately front-loaded and efficiently communicates the core action, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a click action in web automation (which can involve navigation, errors, or side effects), the description is incomplete. With no annotations, no output schema, and minimal behavioral details, it fails to provide enough context for safe and effective use, such as error handling or post-click expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the 'selector' parameter fully documented in the schema as a CSS selector. The description doesn't add any extra meaning or examples beyond what the schema provides, such as selector syntax tips or common use cases, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('click') and target ('an element on the page'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'playwright_hover' or 'playwright_select', which might have overlapping use cases for interacting with page elements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a page loaded), exclusions, or comparisons to siblings like 'playwright_hover' for hovering or 'playwright_select' for dropdown interactions, leaving the agent without contextual usage cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playwright_deleteC
Perform an HTTP DELETE request
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to perform DELETE operation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action but fails to describe key traits like authentication needs, rate limits, error handling, or what happens upon deletion (e.g., idempotency, side effects). This leaves significant gaps for an agent to understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It is appropriately sized and front-loaded, directly stating the tool's purpose without unnecessary elaboration, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of an HTTP DELETE operation, no annotations, and no output schema, the description is incomplete. It lacks details on response formats, error cases, or prerequisites, leaving the agent with insufficient context to use the tool effectively in real-world scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'url' parameter clearly documented. The description adds no additional meaning beyond what the schema provides, such as URL format examples or constraints. Baseline 3 is appropriate as the schema does the heavy lifting.
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 ('Perform an HTTP DELETE request') which is a specific verb+resource combination. It distinguishes itself from siblings like playwright_get, playwright_post, and playwright_put by specifying the HTTP method, though it doesn't explicitly differentiate beyond the method name.
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 like playwright_delete's siblings (e.g., playwright_post for creating resources, playwright_put for updates). It lacks context on typical DELETE use cases such as resource removal, making it minimally helpful for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playwright_evaluateC
Execute JavaScript in the browser console
| Name | Required | Description | Default |
|---|---|---|---|
| script | Yes | JavaScript code to execute |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'Execute JavaScript' implies a mutation operation, it doesn't specify whether this runs in a specific context (e.g., current page vs. isolated sandbox), what permissions are needed, whether it can modify page state, or what happens with errors. The description lacks crucial behavioral context for a JavaScript execution tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just 5 words, front-loading the essential information ('Execute JavaScript') immediately. Every word earns its place, with no wasted text or unnecessary elaboration.
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 JavaScript execution tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what the tool returns (e.g., evaluation result, success status), error handling, execution context, or security implications. Given the complexity of browser JavaScript execution, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the single parameter 'script' clearly documented as 'JavaScript code to execute'. The description adds no additional parameter semantics beyond what the schema already provides, so it meets the baseline for high schema coverage without adding extra value.
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 ('Execute JavaScript') and location ('in the browser console'), making the purpose immediately understandable. However, it doesn't distinguish this tool from potential alternatives like other JavaScript execution methods or differentiate it from sibling tools that also interact with browser elements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like playwright_click, playwright_fill, and playwright_navigate available, there's no indication whether this is for general JavaScript execution versus specific browser automation tasks, or any prerequisites for its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playwright_fillC
fill out an input field
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | CSS selector for input field | |
| value | Yes | Value to fill |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'fill out' but doesn't describe side effects (e.g., does it trigger events, require focus, or handle errors?), permissions, or performance aspects. This leaves the agent with insufficient information for safe and effective use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient phrase with zero waste. It's appropriately sized and front-loaded, making it easy to parse quickly without unnecessary elaboration.
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 complexity of browser automation and lack of annotations or output schema, the description is incomplete. It doesn't cover behavioral traits, error handling, or interaction with sibling tools, leaving significant gaps for an agent to operate effectively in this 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 100%, with clear parameter descriptions in the schema (CSS selector and value). The description adds no additional meaning beyond the schema, such as examples or constraints. Baseline 3 is appropriate as the schema does the heavy lifting.
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 'fill out an input field' states the basic action (verb: 'fill out', resource: 'input field'), but it's vague about scope and lacks differentiation from siblings like playwright_select or playwright_put. It doesn't specify whether this applies to forms, text areas, or other input types, making it minimally adequate but with clear gaps.
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. For example, it doesn't clarify if this is for text inputs only, how it differs from playwright_select for dropdowns, or prerequisites like needing a page to be loaded. The description offers no context for usage decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playwright_getC
Perform an HTTP GET request
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to perform GET operation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but only states the basic action without details on traits like error handling, response format, timeouts, or authentication needs. It mentions 'HTTP GET request' which implies a read operation, but lacks depth on what happens in practice (e.g., returns HTML, JSON, or errors).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise ('Perform an HTTP GET request') with zero wasted words, front-loading the core action. It efficiently communicates the essential purpose in a single, clear sentence, making it 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?
Given the complexity of HTTP requests and lack of annotations or output schema, the description is incomplete. It doesn't cover behavioral aspects like what the tool returns (e.g., response body, status codes), error conditions, or integration with sibling tools, leaving significant gaps for an agent to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'url' clearly documented in the schema as 'URL to perform GET operation'. The description does not add any meaning beyond this, such as URL format requirements or examples, so it meets the baseline for high schema coverage without extra value.
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 ('Perform an HTTP GET request') with a specific verb ('GET'), making the purpose immediately understandable. It distinguishes from siblings like playwright_post or playwright_put by specifying the HTTP method, though it doesn't explicitly contrast with all siblings like playwright_navigate or playwright_screenshot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description lacks context about scenarios where GET is appropriate (e.g., retrieving data) or when to choose other tools like playwright_post for sending data or playwright_navigate for page navigation, leaving usage decisions unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playwright_hoverC
Hover an element on the page
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | CSS selector for element to hover |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but doesn't explain what 'hover' means in this context (e.g., simulates mouse hover event, may trigger CSS effects), whether it waits for the element to be visible, or what happens on failure. This leaves significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a simple tool and front-loads the core action without unnecessary elaboration.
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 mutation tool with no annotations and no output schema, the description is incomplete. It doesn't cover behavioral aspects like error handling, side effects (e.g., triggering hover states), or return values, leaving the agent with insufficient context 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 description coverage is 100%, with the single parameter 'selector' clearly documented in the schema as 'CSS selector for element to hover'. The description adds no additional meaning beyond this, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('hover') and target ('an element on the page'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'playwright_click' or 'playwright_get', which also interact with page elements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a page to be loaded), exclusions, or comparisons to sibling tools like 'playwright_click' for different interaction types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playwright_patchC
Perform an HTTP PATCH request
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to perform PUT operation | |
| value | Yes | Data to PATCH in the body |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states 'Perform an HTTP PATCH request' but doesn't disclose behavioral traits such as error handling, authentication needs, rate limits, or what happens on success/failure. This leaves significant gaps for an agent to understand how to use it effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with zero waste. It is appropriately sized and front-loaded, directly stating the tool's action without unnecessary elaboration.
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 complexity of an HTTP PATCH tool with no annotations and no output schema, the description is incomplete. It lacks details on return values, error cases, and how it integrates with Playwright's web automation context, making it insufficient for an agent to use confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('url' and 'value') with descriptions. The description adds no additional meaning beyond what the schema provides, such as format details or examples. Baseline score of 3 is appropriate as the schema does the heavy lifting.
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 'Perform an HTTP PATCH request' states the action (PATCH) but is generic and doesn't specify what resource or context it operates on. It distinguishes from siblings like 'playwright_put' by mentioning PATCH instead of PUT, but lacks specificity about what is being patched (e.g., web elements, page state).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'playwright_put' or 'playwright_post'. The description implies it's for HTTP PATCH requests, but it doesn't clarify the context within Playwright (e.g., for updating web page elements or API interactions).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playwright_postC
Perform an HTTP POST request
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to perform POST operation | |
| value | Yes | Data to post in the body |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'Perform an HTTP POST request' indicates a write operation but doesn't describe authentication requirements, error handling, rate limits, response format, or what happens on success/failure. For a mutation tool with zero annotation coverage, this is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's appropriately sized and front-loaded, immediately conveying the core functionality without unnecessary elaboration.
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 this is a mutation tool (POST implies write operation) with no annotations and no output schema, the description is insufficient. It doesn't explain what the tool returns, error conditions, authentication needs, or how it differs from similar HTTP method tools. The context demands more completeness for effective agent 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 input schema has 100% description coverage, with both parameters (url and value) clearly documented in the schema. The description adds no additional meaning about parameters beyond what the schema already provides, so it meets the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Perform an HTTP POST request' clearly states the action (POST) and resource type (HTTP request), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like playwright_put or playwright_patch, which are also HTTP methods, so it doesn't achieve full sibling differentiation.
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. With siblings like playwright_put, playwright_patch, and playwright_get available, there's no indication of when POST is appropriate versus other HTTP methods or when to choose this over other playwright tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playwright_putC
Perform an HTTP PUT request
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to perform PUT operation | |
| value | Yes | Data to PUT in the body |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but only states the basic action. It doesn't mention authentication requirements, rate limits, error handling, response format, or any side effects of a PUT request (e.g., idempotency, resource replacement).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, immediately conveying the core functionality without unnecessary elaboration.
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 HTTP PUT tool with no annotations and no output schema, the description is insufficient. It lacks critical context like authentication needs, response handling, error scenarios, and how it differs from other HTTP methods in the sibling set, leaving significant gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (url and value) adequately. The description doesn't add any meaning beyond what the schema provides, such as format expectations for the value parameter or URL validation rules.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('perform') and resource ('HTTP PUT request'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like playwright_post or playwright_patch, which also perform HTTP operations with different methods.
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 like playwright_post or playwright_patch. The description simply states what it does without any context about appropriate use cases or distinctions from similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playwright_screenshotC
Take a screenshot of the current page or a specific element
| Name | Required | Description | Default |
|---|---|---|---|
| downloadsDir | No | Custom downloads directory path (default: user's Downloads folder) | |
| height | No | Height in pixels (default: 600) | |
| name | Yes | Name for the screenshot | |
| savePng | No | Save screenshot as PNG file (default: false) | |
| selector | No | CSS selector for element to screenshot | |
| storeBase64 | No | Store screenshot in base64 format (default: true) | |
| width | No | Width in pixels (default: 800) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the action but fails to describe key traits like whether it requires a page to be loaded, what happens on failure (e.g., if selector is invalid), or output format (e.g., file path vs. base64). This leaves significant gaps for a tool with 7 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action. It wastes no words and is appropriately sized for the tool's purpose, earning full marks for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (7 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain return values, error handling, or behavioral nuances, making it inadequate for guiding an AI agent effectively in this 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?
The schema description coverage is 100%, so the schema fully documents all 7 parameters. The description adds no additional meaning beyond implying 'selector' for element-specific screenshots, which is already covered in the schema. Baseline 3 is appropriate as the schema handles parameter 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 action ('Take a screenshot') and target ('current page or a specific element'), which is specific and actionable. However, it doesn't differentiate from sibling tools like playwright_get or playwright_navigate, which might also involve page interactions, so it misses full sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as playwright_get for retrieving page content or playwright_navigate for page changes. It lacks explicit context, prerequisites, or exclusions, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playwright_selectC
Select an element on the page with Select tag
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | CSS selector for element to select | |
| value | Yes | Value to select |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but provides minimal behavioral context. It mentions selecting an element but doesn't disclose whether this triggers page events, requires the page to be in a specific state, has side effects, or what happens if the selector doesn't exist. For a tool that likely interacts with web pages, this is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no wasted words. It's appropriately sized for a simple tool, though it could be more front-loaded with critical information about what type of element it targets.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'Select tag' means, what the tool actually does (selects option in dropdown? highlights element?), what happens on success/failure, or return values. Given the complexity of web automation, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (selector and value) adequately. The description adds no additional meaning about parameter usage, relationships, or constraints beyond what the schema provides, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action ('Select an element') and resource ('on the page with Select tag'), but it's vague about what 'Select tag' means - it could refer to HTML <select> elements or a broader selection concept. It doesn't distinguish from siblings like playwright_click or playwright_fill, which also interact with page elements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description doesn't mention when this tool is appropriate versus playwright_fill (for form inputs) or playwright_click (for clicking elements), nor does it provide any context about prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes, but there is some potential confusion between playwright_click and playwright_select, as both involve interacting with page elements. The HTTP methods (GET, POST, PUT, PATCH, DELETE) are clearly differentiated, and other tools like navigate, screenshot, and evaluate have unique functions.
All tools follow a consistent 'playwright_verb' naming pattern, using snake_case throughout. This predictability makes it easy for agents to understand and use the toolset without confusion about naming conventions.
With 12 tools, this server is well-scoped for browser automation, covering essential actions like navigation, interaction, HTTP requests, and debugging. Each tool serves a clear purpose, and the count aligns with the domain's complexity without being overwhelming.
The toolset provides strong coverage for core browser automation tasks, including navigation, element interaction, HTTP methods, and screenshots. A minor gap is the lack of tools for handling browser contexts, tabs, or more advanced JavaScript execution, but agents can still accomplish most workflows effectively.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Provides cloud browser automation capabilities using Stagehand and Browserbase, enabling LLMs to i…
AI-powered browser automation — navigate, click, fill forms, and extract data from any website.
Stealth web automation for AI agents. Login, signup, navigate, screenshot.
Stealth web automation for AI agents. Login, signup, navigate, screenshot.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to control a browser through Playwright automation tools, allowing them to perform web tasks like navigation, typing, clicking, and taking screenshots. Deployed on Cloudflare Workers and compatible with various AI platforms including Claude Desktop and VS Code.
- AlicenseNot gradedqualityCmaintenanceEnables browser automation and web interaction control through Playwright, allowing Claude Code to navigate, click, fill forms, take screenshots, and manage sessions.1587MIT
- AlicenseNot gradedqualityDmaintenanceEnables browser automation using Playwright, including navigation, screenshots, clicking, form filling, and JavaScript execution.Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables natural language browser automation through Claude, wrapping Playwright to execute commands like navigation, clicking, form filling, and screenshots.1130MIT
Appeared in Searches
- Methods for Parsing Emails
- Tools and techniques for scraping website data, creating event calendars, and building YouTube playlists
- A server for finding gaming-related content
- Understanding File System Operations: Read, Write, and Edit Directories
- How to generate theme colors and download fonts in Figma
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/hrmeetsingh/mcp-browser-automation'
If you have feedback or need assistance with the MCP directory API, please join our Discord server