Capabilities
Capabilities control which tools the MCP server exposes to the LLM. By default, only core tools are enabled. Add capabilities to unlock additional tool groups.
Enabling capabilities
Via CLI argument:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest", "--caps=vision,pdf,devtools"]
}
}
}
Via environment variable:
PLAYWRIGHT_MCP_CAPS=vision,pdf,devtools
Via config file:
{
"capabilities": ["vision", "pdf", "devtools", "network", "storage", "testing"]
}
Capability reference
core (always enabled)
Basic browser automation — always available, cannot be disabled.
| Tool | Description |
|---|---|
browser_navigate | Navigate to a URL |
browser_navigate_back | Go back in history |
browser_snapshot | Capture accessibility snapshot |
browser_find | Search the snapshot for text or a regexp |
browser_click | Click an element |
browser_hover | Hover over an element |
browser_drag | Drag and drop between two elements |
browser_drop | Drop files or MIME-typed data onto an element |
browser_select_option | Select dropdown option |
browser_type | Type text into an element |
browser_press_key | Press a key |
browser_fill_form | Fill multiple form fields |
browser_take_screenshot | Take a screenshot |
browser_run_code_unsafe | Execute a Playwright code snippet |
browser_evaluate | Evaluate JavaScript |
browser_wait_for | Wait for text or time |
browser_handle_dialog | Accept or dismiss dialogs |
browser_file_upload | Upload files into a file chooser |
browser_console_messages | Get console output |
browser_network_requests | List network requests |
browser_network_request | Show one request in full detail |
browser_tabs | Manage tabs |
browser_close | Close the page |
browser_resize | Resize the window |
network
Network mocking and state control.
| Tool | Description |
|---|---|
browser_route | Mock requests matching a URL pattern |
browser_route_list | List active mocked routes |
browser_unroute | Remove mocked routes |
browser_network_state_set | Set online/offline state |
"--caps=network"
storage
Cookie, localStorage, and sessionStorage management plus state persistence.
| Tool | Description |
|---|---|
browser_cookie_list/get/set/delete/clear | Manage cookies |
browser_localstorage_list/get/set/delete/clear | Manage localStorage |
browser_sessionstorage_list/get/set/delete/clear | Manage sessionStorage |
browser_storage_state | Save cookies + local storage to a file |
browser_set_storage_state | Restore saved state |
"--caps=storage"
testing
Assertions and locator generation.
| Tool | Description |
|---|---|
browser_verify_element_visible | Assert element is visible by role and accessible name |
browser_verify_text_visible | Assert text is visible |
browser_verify_list_visible | Assert a list and its items are visible |
browser_verify_value | Assert form field value |
browser_generate_locator | Generate a Playwright locator for test code |
"--caps=testing"
vision
Coordinate-based mouse tools for screenshot-driven workflows. Requires a vision-capable LLM.
| Tool | Description |
|---|---|
browser_mouse_move_xy | Move mouse to coordinates |
browser_mouse_click_xy | Click at coordinates |
browser_mouse_drag_xy | Drag between coordinates |
browser_mouse_down | Press mouse button |
browser_mouse_up | Release mouse button |
browser_mouse_wheel | Scroll with mouse wheel |
"--caps=vision"
See Vision Mode for usage patterns.
pdf
PDF generation.
| Tool | Description |
|---|---|
browser_pdf_save | Export page as PDF |
"--caps=pdf"
devtools
Tracing, video recording, action recording, highlighting, and debugging.
| Tool | Description |
|---|---|
browser_start_tracing | Start execution trace |
browser_stop_tracing | Stop trace and save |
browser_start_video | Start video recording |
browser_stop_video | Stop video and save |
browser_video_chapter | Add a chapter card |
browser_video_show_actions | Annotate actions with on-page callouts |
browser_video_hide_actions | Stop annotating actions |
browser_start_recording | Record actions the user performs as code |
browser_stop_recording | Stop recording and return the code |
browser_highlight | Show a highlight overlay around an element |
browser_hide_highlight | Remove a highlight overlay |
browser_annotate | Open the Playwright Dashboard and collect user annotations |
browser_resume | Resume paused script execution |
"--caps=devtools"
See Debugging Tools.
config
Configuration introspection.
| Tool | Description |
|---|---|
browser_get_config | Get the final resolved config |
"--caps=config"
Common configurations
Minimal (default)
Only core tools — navigation, snapshots, clicking, typing, screenshots:
["@playwright/mcp@latest"]
Full automation
Everything enabled:
["@playwright/mcp@latest", "--caps=network,storage,testing,vision,pdf,devtools"]
Testing workflow
Core + testing assertions + storage for auth persistence:
["@playwright/mcp@latest", "--caps=testing,storage"]
Debugging workflow
Core + devtools for tracing and video:
["@playwright/mcp@latest", "--caps=devtools"]
Data extraction
Core + network for mocking + storage for cookies:
["@playwright/mcp@latest", "--caps=network,storage"]
Why capabilities exist
Capabilities limit the number of tools exposed to the LLM. Fewer tools means:
- Lower token cost — the tool schema is smaller
- Fewer hallucinated tool calls — the LLM has fewer choices to confuse
- Faster responses — less context to process
Only enable what you need for your use case.