visual-ui-debug-agent-mcp
This server, VUDA (Visual UI Debug Agent), provides a suite of MCP tools for visual UI debugging and testing of web applications using Playwright across local, Browserbase, Anchor, or CDP browsers. Key capabilities include:
Screenshots & Visual Capture: Capture URLs, full pages, viewports, elements, local files, and batch screenshots for side-by-side comparison; run visual comparisons with pixel-level diff highlighting.
Page Analysis & DOM Inspection: All-in-one page analyzer (screenshot, console logs, interactive element mapping, performance metrics); DOM inspector for element properties, children, and computed CSS; extract visible text or full HTML.
Workflow & Navigation Automation: Execute and validate multi-step user workflows with assertions; test navigation flows across pages; directly control the browser via navigate, click, iframe click, fill, select, hover, press key, drag, go back/forward, and evaluate JavaScript.
Console & Performance Monitoring: Capture and filter console logs; collect page load, network idle, and other performance metrics over multiple iterations.
API & Site Testing: Exercise multiple HTTP endpoints with various methods and auth support; recursively crawl sitemaps to discover pages, detect broken links, and extract content.
Session & State Management: Save and retrieve debugging notes; set up Cloudflare tunnels or store/retrieve tunnel URLs; import cookies or storage state for authenticated sessions.
Device Emulation: Emulate devices such as iPhone 13 or Pixel 5 via an optional device parameter.
Multiple Browser Providers: Support local, Browserbase, Anchor, or CDP browser environments.
Provides guidance and management for setting up Cloudflare tunnels to enable remote debugging of web applications.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@visual-ui-debug-agent-mcpscreenshot https://example.com in mobile view"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
What VUDA does
VUDA (Visual UI Debug Agent) is a Model Context Protocol server for inspecting and testing web interfaces with Playwright. The MCP server runs locally over standard input/output; its browser can run locally, on Browserbase, on Anchor Browser, or at an existing CDP endpoint. Every tool uses the same selected browser runtime.
Capture full-page, viewport, element, local-file, and batch screenshots.
Map interactive elements and inspect rendered DOM and computed styles.
Execute multi-step UI workflows while preserving browser state.
Monitor console output and analyze page performance.
Compare two rendered states and return a visual diff.
Crawl sitemaps and exercise API endpoints.
Emulate supported Playwright devices.
Related MCP server: PixelCheck
Quick start
1. Run VUDA
npx -y visual-ui-debug-agent-mcpThe default local mode needs a Chromium-compatible browser. If one is not already available, install the matching browser once:
npx playwright install chromium2. Add it to an MCP client
{
"mcpServers": {
"vuda": {
"command": "npx",
"args": ["-y", "visual-ui-debug-agent-mcp"]
}
}
}Restart the client after changing its MCP configuration. The server writes protocol messages to stdout and diagnostics to its temporary log file.
No provider account is required for local mode.
Docker users can use the same stdio transport:
{
"mcpServers": {
"vuda": {
"command": "docker",
"args": ["run", "--interactive", "--rm", "ghcr.io/samihalawa/visual-ui-debug-agent-mcp:latest"]
}
}
}To use provider credentials from a file with Docker, add "--env-file", "/absolute/path/to/.env" immediately after "run" in the args array.
3. Try it
Ask your client to:
Use VUDA to inspect https://example.com, capture a screenshot, list the
interactive elements, and report console errors and obvious layout issues.Tool reference
Analysis and capture
Tool | Purpose |
| Screenshot, console, performance, and interactive-element analysis |
| Capture a URL, viewport, full page, or selected element |
| Capture multiple URLs for side-by-side review |
| Render and capture local HTML files |
| Return element properties, children, and computed styles |
| Compare two rendered pages or elements |
Workflows, diagnostics, and APIs
Tool | Purpose |
| Execute and verify a described user journey |
| Validate a sequence of browser actions |
| Capture browser console messages over a time window |
| Collect navigation and page performance metrics |
| Exercise multiple HTTP endpoints |
| Discover and inspect pages from a sitemap |
| Store or retrieve a remote tunnel URL and setup guidance |
| Keep small debugging notes during one server session |
Direct Playwright controls
playwright_navigate, playwright_click, playwright_iframe_click, playwright_fill, playwright_select, playwright_hover, playwright_evaluate, playwright_console_logs, playwright_get_visible_text, playwright_get_visible_html, playwright_go_back, playwright_go_forward, playwright_press_key, playwright_drag, and playwright_screenshot.
Configuration
VUDA reads environment variables normally and automatically loads .env from its working directory. Copy .env.example when running from a source checkout. For an npx installation, either put .env in the MCP process working directory, pass variables in the client configuration, or set DOTENV_CONFIG_PATH to an absolute .env path.
Choose the browser
Mode | Required configuration | Account state |
Local (default) |
|
|
Browserbase |
| Reuse |
Anchor Browser |
| Use an Anchor profile in |
Existing browser |
| Uses that browser context; cookie injection is optional |
Browserbase example:
VUDA_BROWSER_PROVIDER=browserbase
BROWSERBASE_API_KEY=your_api_key
BROWSERBASE_PROJECT_ID=your_project_id
BROWSERBASE_CONTEXT_ID=your_saved_context_idAnchor Browser example with a persistent authenticated profile:
VUDA_BROWSER_PROVIDER=anchor
ANCHOR_API_KEY=your_api_key
VUDA_ANCHOR_SESSION_JSON={"browser":{"profile":{"name":"vuda","persist":true}}}All 29 tools keep their existing names and inputs in every mode. Read the MCP resource browser://status to confirm the selected provider, current connection state, session ID, and whether a live view is available. CDP and live-view URLs are never returned.
Import cookies or local state
Cookie injection works with every provider. Supply a Playwright cookie array inline or by file:
VUDA_COOKIES_FILE=/absolute/path/to/cookies.json
# VUDA_COOKIES_JSON=[{"name":"session","value":"...","domain":"example.com","path":"/"}]For local mode, VUDA_STORAGE_STATE_PATH loads a Playwright storage-state file. Set VUDA_PERSIST_STORAGE_STATE=true to write the updated state back when VUDA exits cleanly. Browserbase Contexts and Anchor profiles are the provider-native choices for state that must survive multiple cloud sessions.
Provider-specific session options remain available without another wrapper or SDK:
VUDA_BROWSERBASE_SESSION_JSONis merged into Browserbase's create-session request.VUDA_ANCHOR_SESSION_JSONis sent as Anchor's create-session request.
Timeouts
All timeout settings are optional:
Variable | Default | Purpose |
|
| General Playwright timeout in milliseconds |
|
| Navigation timeout |
|
| Selector wait timeout |
|
| Delay after navigation before capture |
|
| Delay for short UI updates |
|
| Slow-page threshold |
|
| Delay between direct interactions |
Example:
{
"mcpServers": {
"vuda": {
"command": "npx",
"args": ["-y", "visual-ui-debug-agent-mcp"],
"env": {
"VUDA_NAVIGATION_TIMEOUT": "30000",
"VUDA_STABILITY_WAIT": "2000"
}
}
}
}Development
git clone https://github.com/samihalawa/visual-ui-debug-agent-mcp.git
cd visual-ui-debug-agent-mcp
npm ci
npm testnpm test builds the TypeScript server, starts it through the MCP stdio transport, verifies the exact 29-tool inventory, reads a bundled resource, exercises a stateful tool call, and captures a real browser screenshot.
It also validates Browserbase and Anchor session request/cleanup shapes, CDP selection, cookie loading, and the crawler's browser initialization. Provider calls use deterministic mocks in CI; use your own .env for a live cloud session.
Before opening a pull request, also run:
npm audit
npm pack --dry-runArchitecture
VUDA keeps one Playwright control plane across all providers. Local mode creates isolated contexts for page-level analyses; remote modes reuse the provider context so authenticated state survives across tools. VUDA returns screenshots as MCP image content and exposes generated screenshots, browser status, and debugging prompts as MCP resources.
Contributing
Issues and focused pull requests are welcome. See CONTRIBUTING.md for the development workflow and review checklist. Release history is recorded in CHANGELOG.md.
License
ISC © 2023–2026 Sami Halawa and contributors.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceAn MCP server that enables AI-powered browser automation, web scraping, and testing using Playwright across Chromium, Firefox, and WebKit. It allows users to perform actions like navigation, clicking, typing, and taking screenshots through natural language interfaces.15MIT
- Alicense-qualityAmaintenanceAn MCP server that gives AI agents real browser capabilities including screenshotting, action execution, data extraction, and multi-persona auditing for frontend validation.4536MIT
- Flicense-qualityBmaintenanceMCP server that enables AI agents to automate browser testing via Chromium, providing tools for navigation, interaction, and inspection.
- Alicense-qualityBmaintenanceMCP server that bridges Model Context Protocol with browser automation, offering 37 tools across three modes (Playwright, CDP, Chrome Extension) and an autonomous agent for web tasks.MIT
Related MCP Connectors
Screenshot, diff, audit and sitemap-capture any web page — 5 MCP tools for AI agents.
Live browser debugging for AI assistants — DOM, console, network via MCP.
Hosted MCP with 91 agent tools: X, domains, SEO, Maps, Trends, Search, YouTube, TikTok, and more.
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/samihalawa/visual-ui-debug-agent-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server