playwright-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| STATE_DIR | No | Override the state directory for session persistence. Defaults to 'state/' in the project directory. | state/ |
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 |
|---|---|
| open_pageA | Navigate to a URL. Waits for DOMContentLoaded before returning. |
| go_backA | Navigate back in the browser history. |
| go_forwardA | Navigate forward in the browser history. |
| reloadA | Reload the current page. |
| get_urlA | Return the URL of the current page. |
| clickB | Click the first element matching the given selector. |
| typeA | Type text into a focusable element, appending to any existing value. Use |
| fillA | Set the value of an input or textarea, replacing any existing content. |
| pressA | Focus an element and press a keyboard key (e.g. Enter, Tab, Escape, ArrowDown). |
| hoverC | Move the mouse over an element. |
| select_optionA | Select an option in a element by value. |
| get_textA | Return the visible text content of the first element matching the selector. |
| get_attributeB | Return the value of an attribute on the first element matching the selector. |
| get_htmlA | Return the inner HTML of the first matching element. Defaults to when no selector is provided. |
| evaluateA | Execute a JavaScript expression in the page context and return the result as JSON. The expression may return any serialisable value. |
| wait_for_selectorA | Wait until an element matching the selector is present. |
| screenshotA | Capture a PNG screenshot of the current page or a specific element. |
| save_stateA | Persist the current browser session (cookies, localStorage, active URL) to disk. The state is reloaded automatically on server restart. |
| load_stateA | Reload the browser session from the last state saved on disk. Closes the current browser and opens a fresh one with the persisted cookies and URL. |
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 19 tools
Each tool targets a distinct browser action: navigation, input, extraction, evaluation, and state management. Type and fill are clearly differentiated by append vs. replace, and other tools like get_text and get_html have distinct return types.
All names use lowercase snake_case with imperative verbs. Most follow a verb_noun pattern (open_page, get_text), but a few are bare verbs (click, reload, hover), which is a minor deviation rather than a major inconsistency.
With 19 tools, the set is on the heavier side and crosses into the 'feels heavy' range. While browser automation justifies many actions, some tools like save_state and load_state seem auxiliary and could potentially be combined or omitted.
The set covers core browser workflows: navigation, interaction, extraction, waiting, screenshots, and state persistence. Minor gaps exist (e.g., no explicit drag-and-drop or dialog handling), but these can be worked around using evaluate or other tools.