Extended Playwright MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PLAYWRIGHT_MCP_EXTENSION_TOKEN | No | Extension token for the Playwright MCP server |
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| browser_closeB | Close the page |
| browser_resizeB | Resize the browser window |
| browser_console_messagesB | Returns all console messages |
| browser_handle_dialogC | Handle a dialog |
| browser_evaluateB | Evaluate JavaScript expression on page or element |
| browser_file_uploadB | Upload one or multiple files |
| browser_dropA | Drop files or MIME-typed data onto an element, as if dragged from outside the page. At least one of "paths" or "data" must be provided. |
| browser_findA | Search the accessibility snapshot of the current page for text or a regular expression. Returns matching snapshot nodes with a few lines of surrounding context (like search snippets), each shown under its path from the root of the tree, which is cheaper than capturing the whole snapshot when you only need to locate an element and its ref. |
| browser_fill_formB | Fill multiple form fields |
| browser_press_keyB | Press a key on the keyboard |
| browser_typeB | Type text into editable element |
| browser_navigateC | Navigate to a URL |
| browser_navigate_backA | Go back to the previous page in the history |
| browser_network_requestsA | Returns a numbered list of network requests since loading the page. Use browser_network_request with the number to get full details. |
| browser_network_requestA | Returns full details (headers and body) of a single network request, or a single part if |
| browser_run_code_unsafeA | Run a Playwright code snippet. Unsafe: executes arbitrary JavaScript in the Playwright server process and is RCE-equivalent. |
| browser_take_screenshotA | Take a screenshot of the current page. You can't perform actions based on the screenshot, use browser_snapshot for actions. |
| browser_snapshotB | Capture accessibility snapshot of the current page, this is better than screenshot |
| browser_clickB | Perform click on a web page |
| browser_dragA | Perform drag and drop between two elements |
| browser_hoverA | Hover over element on page |
| browser_select_optionB | Select an option in a dropdown |
| browser_tabsA | List, create, close, or select a browser tab. |
| browser_wait_forA | Wait for text to appear or disappear or a specified time to pass |
| download_and_convert_imagesA | Downloads an image from the given URL and converts it to PNG format. Saves output in target directory and returns the absolute local path. |
| browser_get_htmlA | Returns the raw HTML of a target element or the entire page if no target is specified. |
| browser_scroll_toA | Scrolls the page or a specific element into view or to custom coordinates. |
| browser_extract_tableA | Extracts tabular HTML table data into a structured JSON array. |
| browser_wait_for_network_idleA | Waits until there are no active network connections (network idle state) for at least 500ms. |
| browser_get_attributesA | Returns all attributes of an HTML element as a key-value dictionary. |
| browser_handle_downloadA | Clicks an element and intercepts the resulting file download event, saving the file to the workspace. |
| browser_clear_inputA | Clears the text in an input or textarea element. |
| browser_manage_storageA | Inspects, sets, or clears values in local/session storage. |
| browser_toggle_checkboxA | Checks or unchecks a checkbox/radio button element deterministically. |
| browser_mock_routeA | Intercepts and mocks/blocks network requests matching a URL pattern (e.g. blocking images/ads, or mocking responses). |
| browser_upload_file_directA | Directly sets input files on a file input element bypassing the file-chooser modal requirement. |
| browser_take_screenshot_elementA | Takes a screenshot of a specific element and saves it to the workspace. |
| browser_get_page_infoA | Retrieves detailed page metadata including URL, title, frames, tabs count, viewport, and agent information. |
| browser_set_geolocationB | Emulates a specific geographic location for the browser context. |
| browser_emulate_mediaA | Emulates light/dark color scheme or media type queries (screen vs. print). |
| browser_focus_elementC | Focuses the target element. |
| browser_dispatch_eventB | Dispatches a custom event with optional custom initialization parameters on a target element. |
| browser_get_element_stateA | Checks the state of an element: visible, enabled, editable, checked, or focused. |
| browser_key_down_upA | Fires a separate keydown or keyup event for custom key combinations or modifier actions. |
| browser_get_linksA | Extracts all links from the current page. |
| browser_mouse_move_clickC | Controls fine mouse movement to target coordinates and clicks on coordinates. |
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 46 tools
Most tools have distinct purposes, but a few pairs overlap in function (e.g., browser_file_upload vs browser_upload_file_direct, browser_drag vs browser_drop) and could confuse an agent. Overall, descriptions help clarify the boundaries between similar actions.
The vast majority of tools follow the browser_<action> pattern, but there are notable exceptions like `download_and_convert_images` (no browser_ prefix) and noun-style names such as browser_tabs, browser_network_requests, and browser_console_messages. These deviations are minor but break full consistency.
With 46 tools, the server is heavily over-scoped for a browser automation toolkit. Many fine-grained actions like browser_key_down_up, browser_mouse_move_click, and browser_dispatch_event could be consolidated or covered by a generic evaluate tool. While the domain is broad, this count exceeds what is typically considered well-scoped.
The tool surface provides comprehensive coverage of browser automation: navigation, interaction, extraction, screenshots, network interception, storage management, tabs, dialogs, downloads, and geolocation. It also includes browser_run_code_unsafe to fill any remaining gaps, making the surface effectively complete for its stated purpose.