easy-ui-mcp
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., "@easy-ui-mcpGo to example.com and take a screenshot"
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.
easy-ui-mcp
A Dockerized MCP (Model Context Protocol) server for local UI testing. It exposes Playwright-based browser automation tools over HTTP/SSE so an AI agent (like Claude Code) can drive web UI flows step-by-step and get back a JSON + HTML report with screenshots — no server-side LLM, no test scripts to write.
Quick Start
docker compose up -d --build
curl http://localhost:8765/health
# {"status":"ok"}Connect Claude Code:
claude mcp add --transport http easy-ui-mcp http://localhost:8765/mcpThen ask Claude Code to navigate to a page and take a screenshot — it will call the tools below and report back.
Using this from another repo? MCP registration is per-project — run claude mcp add from that repo's root too (the container above only needs to run once, shared across repos). See AGENTS.md → Using easy-ui-mcp From Another Repo for the full required steps.
Related MCP server: Playwright MCP Automation
Networking
The container runs with network_mode: host in docker-compose.yml (not a published port on a bridge
network). This is required, not optional: the browser Playwright drives inside this container needs to
reach localhost:<port> on your host machine, where the target app's dev server (the repo you're
testing) is actually running. A default bridge network gives the container its own isolated network
namespace with no route back to the host at all — target URLs like http://localhost:8766 will hang or
fail with ERR_CONNECTION_REFUSED, and http://<host-LAN-IP>:8766 will just time out, even if the target
server is listening and reachable via curl from the host shell.
If you fork/redeploy this container anywhere network_mode: host isn't available (e.g. Docker Desktop on
macOS/Windows, where host networking support is limited or absent), use host.docker.internal as the
target hostname instead of localhost when calling ui_navigate, and add a network_mode: host fallback
of extra_hosts: ["host.docker.internal:host-gateway"] to docker-compose.yml.
Tools
ui_start_session, ui_end_session, ui_navigate, ui_click, ui_fill, ui_assert, ui_get_page_state, ui_take_screenshot — plus a REST wrapper at POST /api/run-test for non-MCP callers.
See AGENTS.md for the architecture and full MCP connection guide, and HARNESS.md for the REST API reference. Deploy/rollback procedures are in RUNBOOK.md.
Scope (v1)
Web only (Chromium), local only, no mobile support yet. See PRD.md for full product intent and PROJECT_SPEC.md for architecture decisions.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/thunderkds/easy-ui-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server