Playwright Browser MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | Log level: debug, info, warn, error. | |
| CONFIG_PATH | No | Path to configuration file. |
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
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| browser.create_sessionA | Create a new browser session. Optionally provide startUrl or authContextId to load saved login state. |
| browser.get_sessionB | Get metadata for a browser session by sessionId. |
| browser.list_sessionsA | List all active browser sessions. |
| browser.close_sessionB | Close a browser session by sessionId. |
| browser.navigateC | Navigate the browser session to a URL. |
| browser.clickC | Click an element by selector. |
| browser.fillC | Fill an input by selector. Value is not logged. |
| browser.select_optionC | Select option(s) in a select element. |
| browser.waitC | Wait for a number of milliseconds. |
| browser.scrollC | Scroll the page or an element into view. |
| browser.take_screenshotC | Take a screenshot of the current page. |
| browser.handle_dialogA | Set how the next native dialog (alert/confirm/prompt) will be handled. Call before the action that triggers the dialog. |
| browser.snapshotB | Get a structured snapshot of the current page for LLM consumption. |
| browser.extract_textA | Extract visible text from the page or a selector. |
| browser.extract_tableC | Extract table data from the page. |
| browser.extract_formC | Extract form field schema from the page. |
| browser.get_interactive_elementsB | Get summary of interactive elements (buttons, links, inputs) on the page. |
| browser.generate_playwright_scriptC | Generate a Playwright test script from current session. |
| browser.generate_page_objectB | Generate a page object class from current page. |
| browser.generate_data_schemaA | Generate TypeScript/Zod/JSON schema from latest table or form extraction. |
| browser.export_extraction_resultA | Export latest table/form/text extraction to a file. |
| browser.pause_for_humanA | Pause the session and wait for human (e.g. login, MFA, captcha). |
| browser.resume_sessionA | Resume a session after human has completed the required action. |
| browser.get_human_wait_stateB | Check if a session is waiting for human action. |
| browser.save_auth_contextA | Save current session storage state (cookies etc.) as a named auth context for reuse. |
| browser.load_auth_contextC | Load a saved auth context into the current session. |
| browser.list_auth_contextsA | List all saved auth contexts. |
| browser.delete_auth_contextA | Delete a saved auth context and its storage state file. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| sessions | |
| auth-contexts | |
| latest-snapshot | |
| latest-extraction | |
| latest-logs |
TDQS
Scored across 28 tools
Each tool targets a distinct action or resource, from session lifecycle to page interaction to extraction. While there are many extraction tools, their outputs (text, table, form, snapshot, interactive elements) are clearly differentiated. Some related tools like pause_for_human and get_human_wait_state have clear boundaries.
All tools follow a snake_case verb_noun pattern, with consistent prefixes for domain areas (session, auth, extraction). Minor inconsistencies exist between 'get', 'extract', and 'snapshot' verbs, but they are still predictable.
With 28 tools, this server is significantly over the typical well-scoped range. While each tool has a purpose, the proliferation of extraction and generation tools makes the surface feel heavy for an agent to navigate.
The tool set covers session management, core page interactions, extraction, and auth, but lacks common browser automation actions like hover, keyboard input, and JavaScript evaluation. This leaves notable gaps that agents may need to work around.