mcp-playwright-tools
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| navigateC | Navigate to a URL |
| current_urlA | Get the current page URL |
| go_backB | Navigate back in browser history |
| go_forwardA | Navigate forward in browser history |
| reloadA | Reload the current page |
| get_titleB | Get the page title |
| get_textC | Get visible text of an element |
| get_all_textsC | Get visible text of all matching elements |
| get_page_contentC | Get all visible text on the page |
| get_htmlB | Get inner HTML of an element |
| get_linksA | Get all links on the page |
| get_attributeC | Get an attribute value from an element |
| get_aria_snapshotB | Get ARIA accessibility tree as YAML — ideal for LLM navigation |
| get_console_messagesA | Get recent console messages from the page |
| get_page_requestsB | Get recent network requests made by the page |
| clickC | Click an element |
| double_clickC | Double-click an element |
| right_clickC | Right-click an element |
| fillC | Fill an input field |
| type_textA | Type text character by character (for autocomplete) |
| pressA | Press a key — on element if selector given, else globally |
| select_optionC | Select a dropdown option by value |
| select_option_by_textC | Select a dropdown option by visible text |
| checkC | Check a checkbox |
| uncheckC | Uncheck a checkbox |
| hoverC | Hover over an element |
| focusD | Focus an element |
| clearC | Clear an input field |
| drag_and_dropC | Drag element from source to target |
| upload_fileC | Upload a file to a file input |
| wait_for_downloadC | Click trigger and wait for file download |
| accept_dialogA | Accept the next browser dialog |
| dismiss_dialogB | Dismiss the next browser dialog |
| screenshotC | Take a screenshot — returns base64 if no path given |
| screenshot_elementC | Take a screenshot of a specific element |
| wait_forC | Wait for an element to appear |
| wait_for_hiddenC | Wait for an element to disappear |
| wait_for_urlC | Wait for URL to match a pattern |
| set_viewportB | Set browser viewport size |
| scroll_toC | Scroll element into view |
| scroll_pageC | Scroll page — direction: up/down/top/bottom |
| set_headlessC | Switch between headless and headed mode |
| set_browserB | Switch browser: chromium, firefox, or webkit |
| start_recordingC | Start video recording |
| stop_recordingA | Stop video recording and save |
| recording_show_actionsC | Annotate recording with action highlights |
| new_tabB | Open a new browser tab |
| list_tabsA | List all open tabs |
| switch_tabC | Switch to a tab by ID |
| close_tabC | Close a tab by ID |
| switch_to_frameC | Switch context to an iFrame |
| switch_to_mainA | Switch back to main frame |
| get_cookiesB | Get all cookies |
| set_cookieC | Set a cookie |
| clear_cookiesA | Clear all cookies |
| get_local_storageB | Get localStorage — all items or a specific key |
| set_local_storageC | Set a localStorage item |
| clear_storageA | Clear localStorage and sessionStorage |
| mock_routeC | Mock network requests matching url_pattern |
| clear_routeC | Remove a route mock |
| abort_routeC | Block requests matching url_pattern |
| wait_for_responseC | Wait for a network response |
| execute_scriptC | Execute JavaScript in the page context |
| find_by_roleC | Find element by ARIA role |
| find_by_textC | Find element by visible text |
| find_by_labelC | Find form element by label |
| find_by_placeholderC | Find input by placeholder |
| find_by_test_idC | Find element by data-testid |
| click_by_roleC | Click element by ARIA role |
| click_by_textC | Click element by visible text |
| fill_by_labelC | Fill input found by its label |
| describe_elementC | Get ARIA role, text, and attributes of an element |
| find_interactive_elementsA | List all clickable and fillable elements on the page |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 73 tools
Tools are mostly distinct with clear descriptions, but there are multiple variants for clicks (click, click_by_role, click_by_text, double_click, right_click) and finds (find_by_label, find_by_placeholder, etc.) which could cause confusion if descriptions are not read carefully.
Tool names follow a consistent verb_noun or verb_preposition_noun pattern with lowercase and underscores. Even single-word verbs (e.g., click, fill) are uniform. The naming is predictable and clear.
With 73 tools, the count far exceeds the typical scope for a tool server. While browser automation is complex, many tools could be consolidated (e.g., merging click variants). This volume risks overwhelming agents.
The set covers a broad range of browser automation tasks: navigation, form interaction, waiting, cookies, storage, frames, dialogs, and recording. Minor gaps exist (e.g., no device emulation or performance metrics), but core workflows are well-supported.