Playwright MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CAPS | No | Comma-separated list of capabilities to enable, possible values: tabs, pdf, history, wait, files, install. Default is all. | |
| HOST | No | Host to bind server to. Default is localhost. Use 0.0.0.0 to bind to all interfaces. | |
| PORT | No | Port to listen on for SSE transport. | |
| CONFIG | No | Path to the configuration file. | |
| DEVICE | No | Device to emulate, for example: "iPhone 15". | |
| VISION | No | Run server that uses screenshots (Aria snapshots are used by default). | |
| BROWSER | No | Browser or chrome channel to use, possible values: chrome, firefox, webkit, msedge. | |
| HEADLESS | No | Run browser in headless mode, headed by default. | |
| ISOLATED | No | Keep the browser profile in memory, do not save it to disk. | |
| NO_SANDBOX | No | Disable the sandbox for all process types that are normally sandboxed. | |
| OUTPUT_DIR | No | Path to the directory for output files. | |
| SAVE_TRACE | No | Whether to save the Playwright Trace of the session into the output directory. | |
| USER_AGENT | No | Specify user agent string. | |
| CDP_ENDPOINT | No | CDP endpoint to connect to. | |
| PROXY_BYPASS | No | Comma-separated domains to bypass proxy, for example ".com,chromium.org,.domain.com". | |
| PROXY_SERVER | No | Specify proxy server, for example "http://myproxy:3128" or "socks5://myproxy:8080". | |
| BROWSER_AGENT | No | Use browser agent (experimental). | |
| STORAGE_STATE | No | Path to the storage state file for isolated sessions. | |
| USER_DATA_DIR | No | Path to the user data directory. If not specified, a temporary directory will be created. | |
| VIEWPORT_SIZE | No | Specify browser viewport size in pixels, for example "1280, 720". | |
| ALLOWED_ORIGINS | No | Semicolon-separated list of origins to allow the browser to request. Default is to allow all. | |
| BLOCKED_ORIGINS | No | Semicolon-separated list of origins to block the browser from requesting. Blocklist is evaluated before allowlist. | |
| EXECUTABLE_PATH | No | Path to the browser executable. | |
| IMAGE_RESPONSES | No | Whether to send image responses to the client. Can be "allow", "omit", or "auto". Defaults to "auto". | |
| IGNORE_HTTPS_ERRORS | No | Ignore https errors. | |
| BLOCK_SERVICE_WORKERS | No | Block service workers. |
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
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| browser_closeA | Close the page |
| browser_resizeA | Resize the browser window |
| browser_console_messagesB | Returns all console messages |
| browser_handle_dialogC | Handle a dialog |
| browser_evaluateA | Evaluate JavaScript expression on page or element |
| browser_file_uploadB | Upload one or multiple files |
| browser_fill_formB | Fill multiple form fields |
| browser_installA | Install the browser specified in the config. Call this if you get an error about the browser not being installed. |
| browser_press_keyB | Press a key on the keyboard |
| browser_typeA | Type text into editable element |
| browser_navigateB | Navigate to a URL |
| browser_navigate_backA | Go back to the previous page |
| browser_network_requestsB | Returns all network requests since loading the page |
| browser_run_codeA | Run Playwright code snippet |
| 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_snapshotA | Capture accessibility snapshot of the current page, this is better than screenshot |
| browser_clickB | Perform click on a web page |
| browser_dragB | Perform drag and drop between two elements |
| browser_hoverB | 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_forB | Wait for text to appear or disappear or a specified time to pass |
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 22 tools
Most tools have distinct purposes, but there is some overlap between browser_snapshot and browser_take_screenshot, as both capture page states, which could cause confusion. Additionally, browser_evaluate and browser_run_code both involve executing JavaScript, though their descriptions differentiate them slightly. Overall, the tools are well-defined with clear boundaries for most actions.
All tool names follow a consistent snake_case pattern with a 'browser_' prefix, making them predictable and easy to parse. The verb_noun structure is maintained throughout, such as in browser_click, browser_navigate, and browser_wait_for, ensuring no naming chaos or mixed conventions.
With 22 tools, the count is on the higher side for a Playwright automation server, but it covers a comprehensive range of web interactions, from navigation to debugging. It feels slightly heavy but reasonable given the domain's complexity, avoiding being overly sparse or extreme.
The tool set provides complete coverage for web automation tasks, including navigation, interaction (click, type, drag), form handling, debugging (console, network), and utilities (screenshot, snapshot). There are no obvious gaps; agents can perform end-to-end workflows without dead ends in the Playwright domain.