concurrent-playwright-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PW_HOST | No | Host to bind in http mode. | 127.0.0.1 |
| PW_PORT | No | Port to bind in http mode. | 3000 |
| PW_HEADLESS | No | Set to 'false' to show browser windows. | true |
| PW_MAX_TABS | No | Hard cap on tabs per session. | 20 |
| PW_TRANSPORT | No | Set to 'http' to serve over Streamable HTTP. | stdio |
| PW_OUTPUT_DIR | No | Directory screenshots are written to (paths confined to it). | ./output |
| PW_UPLOAD_DIR | No | Confine browser_file_upload paths to this directory (unset = any). | |
| PW_MAX_CAPTURE | No | Max console/network entries retained per session. | 1000 |
| PW_MAX_SESSIONS | No | Hard cap on live sessions. | 50 |
| PW_ALLOWED_ORIGINS | No | Comma-separated origin allowlist for navigation (unset = any). | |
| PW_ALLOW_FILE_URLS | No | Allow file:/data: navigation. | false |
| PW_EXECUTABLE_PATH | No | Use a specific Chromium build (unset = default). | |
| PW_IDLE_TIMEOUT_MS | No | Evict a session after this long with no use (0 means off). | 0 |
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| browser_create_sessionA | Create an isolated browser session. Each session has its own cookies, storage, and tabs; sessions never share state, so many agents can drive separate sessions at once. |
| browser_list_sessionsA | List the ids of all live browser sessions. |
| browser_close_sessionA | Close a session and release its browser context. |
| browser_save_storage_stateA | Save the session's cookies + localStorage to a JSON file (within the output dir) for later reuse via browser_create_session. |
| browser_navigateA | Navigate the session's active page to a URL. |
| browser_navigate_backB | Go back to the previous page in the session. |
| browser_clickC | Click an element (by ref from browser_snapshot). |
| browser_typeA | Fill an input with text (by ref from browser_snapshot). |
| browser_hoverA | Hover over an element (by ref from browser_snapshot). |
| browser_press_keyB | Press a keyboard key (e.g. "Enter", "ArrowDown"). |
| browser_select_optionB | Select one or more options in a (by ref from browser_snapshot). |
| browser_fill_formA | Fill several fields in one call (each by ref from browser_snapshot). |
| browser_file_uploadB | Set files on a file input (by ref from browser_snapshot). |
| browser_dragB | Drag one element onto another (both by ref from browser_snapshot). |
| browser_resizeC | Resize the session's viewport. |
| browser_screenshotB | Capture a PNG of the active page and return it as an image. Optionally also save it to a file within the output dir. |
| browser_snapshotA | Get the accessibility snapshot (YAML) of the active page, including element refs to target with other tools. |
| browser_evaluateB | Run a JavaScript expression in the page and return the JSON-serialized result. |
| browser_wait_forB | Wait until a CSS selector reaches a state. |
| browser_console_messagesC | Return console messages captured in the session. |
| browser_network_requestsC | Return network responses captured in the session. |
| browser_handle_dialogC | Decide the next dialog (alert/confirm/prompt) instead of auto-dismissing it. |
| browser_tabsC | List, open, close, or select a tab within the session. |
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 23 tools
Each tool targets a specific browser automation action (click, type, navigate, etc.) with clear boundaries. The only potential overlap is between browser_type and browser_fill_form, but the latter is explicitly for multiple fields, so no confusion.
All tools follow the exact same `browser_<verb>` pattern in snake_case, providing a predictable and intuitive naming scheme. There are no deviations or mixed conventions.
At 23 tools, the set is comprehensive but on the higher side. However, each tool serves a distinct and necessary browser automation function, so the count is justified and not excessive.
The tool surface covers nearly all essential browser automation tasks: navigation, interaction, evaluation, dialogs, network, console, sessions, storage, tabs, waiting, and screenshots. Minor gaps like scrolling or raw DOM queries exist but are workable.