semantic-dom-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| QA_MCP_TEAM_NAME | No | Optional team name used in the write_playwright_test prompt. | QA |
| QA_MCP_ALLOWED_HOSTS | Yes | Comma-separated hostnames the server may navigate to. Navigation is denied by default. Supports host, host:port, and *.domain entries. | |
| QA_MCP_STORAGE_STATE | No | Optional path to a Playwright storageState JSON for pre-authenticated staging sessions. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| extract_semantic_domA | Navigate to a staging URL and return factual Semantic JSON of all interactive/test-relevant elements with Playwright-native locators and live state. Use this before writing any Playwright test so selectors are real, not guessed. |
| extract_semantic_dom_afterA | Like extract_semantic_dom, but first performs a short DECLARED list of actions (fill/click/press/wait) in the main frame, then returns Semantic JSON of the RESULTING state. Use it for post-interaction UI a plain snapshot cannot see: success/error toasts, validation messages, opened dialogs. Derive action locators from a prior extract_semantic_dom call. The page must remain on allowlisted hosts after the actions, or nothing is extracted. Uniqueness reflects capture time — accumulating UI (chat threads, lists) can multiply matches later. |
| list_framesA | Diagnostic: navigate to a URL and return its frame tree (frame_path, url, name, same_origin, reachable). Useful for debugging cross-origin iframe boundaries before extraction. |
| check_authA | Diagnostic: navigates with the configured QA_MCP_STORAGE_STATE session and reports whether the page bounced to a login-looking path (session likely expired). Use when extractions unexpectedly return login forms instead of the requested page. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| write_playwright_test | Team-standard prompt for writing a Playwright test in TypeScript from a Semantic DOM extraction. Ensures every engineer gets identical conventions: locator usage, frame chaining, structure, assertions, and single-snapshot state honesty. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| playwright-conventions | The team's non-negotiable Playwright test-writing conventions (read-only). |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/helmif/semantic-dom-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server