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 |
Capabilities
Features and capabilities supported by this server
| 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 | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dgutierrez1/concurrent-playwright-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server