playwright-spa-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 |
|---|---|
| spa_screenshotB | Take a screenshot of a web page with SPA framework support. Waits for DOM to stabilize before capturing. |
| spa_clickB | Click an element with SPA-aware waiting. Waits for DOM to stabilize after click. |
| spa_fillA | Fill an input field with React/Vue/Angular compatibility. Properly triggers framework change events. |
| spa_type_realisticB | Type text character by character with realistic delays. Best for React controlled inputs and forms with live validation. |
| spa_chainA | Execute a chain of actions in sequence. Supports all browser actions plus chain-specific commands like wait, wait-for-idle, press, etc. |
| spa_navigateC | Navigate to a URL with device emulation support. |
| spa_iframe_clickB | Click an element inside an iframe. |
| spa_iframe_fillB | Fill an input field inside an iframe. |
| spa_uploadC | Upload a file to a file input element. |
| spa_dragC | Drag an element and drop it on another element. |
| spa_go_backB | Navigate back in browser history. |
| spa_go_forwardA | Navigate forward in browser history. |
| spa_http_requestA | Make an HTTP request using the browser context (includes cookies and auth). |
| spa_assertC | Run assertions on page elements. |
| spa_session_startB | Start a new persistent browser session. Use sessions to maintain state between tool calls. |
| spa_session_endB | End a browser session and close the browser. |
| spa_session_listA | List all active browser sessions. |
| spa_wait_idleA | Wait for DOM to become idle (no mutations). Useful for SPAs that update the DOM frequently. |
| spa_evaluateB | Execute JavaScript in the page context. |
| spa_get_textC | Get text content of an element. |
| spa_list_devicesB | List available device emulation presets. |
| spa_list_actionsA | List all available actions for the chain command. |
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 22 tools
Most tools map cleanly to distinct actions, such as navigate, click, fill, screenshot, and session management. The main ambiguity is between spa_fill and spa_type_realistic for input handling, and spa_chain subsumes many individual actions, but the descriptions generally clarify intent.
All tools share the consistent spa_ prefix and use snake_case, which makes the set feel coherent. Some names are verb-first like spa_get_text, while others are object-first like spa_iframe_click or noun-like spa_http_request, so the pattern is not perfectly uniform.
With 22 tools, the server sits in the heavy 16-25 range. Many tools are justified for browser automation, but iframe variants, the chain command, and session management tools could potentially be consolidated, making the surface feel slightly bloated.
The tool surface covers the core SPA testing lifecycle well: navigation, clicking, filling, typing, iframes, uploads, drag-and-drop, assertions, sessions, screenshots, and JavaScript evaluation. Minor gaps like explicit dropdown/select handling, hover, and dedicated element-wait commands exist, but they can be worked around with spa_evaluate or spa_chain.