easy-ui-mcp
easy-ui-mcp
ローカルUIテストのためのDocker化されたMCP(Model Context Protocol)サーバーです。Playwrightベースのブラウザ自動化ツールをHTTP/SSE経由で公開し、AIエージェント(Claude Codeなど)がWeb UIのフローをステップバイステップで操作し、スクリーンショット付きのJSON + HTMLレポートを受け取れるようにします。サーバー側のLLMは不要で、テストスクリプトを書く必要もありません。
クイックスタート
docker compose up -d --build
curl http://localhost:8765/health
# {"status":"ok"}Claude Codeを接続します:
claude mcp add --transport http easy-ui-mcp http://localhost:8765/mcp次にClaude Codeにページへ移動してスクリーンショットを撮るよう依頼します。以下のツールが呼び出され、結果が報告されます。
別のリポジトリから使っていますか? MCPの登録はプロジェクト単位です。そのリポジトリのルートでも claude mcp add を実行してください(上記のコンテナは一度起動すればよく、複数のリポジトリで共有できます)。必要な手順の詳細は AGENTS.md → Using easy-ui-mcp From Another Repo を参照してください。
Related MCP server: Playwright MCP Server
ネットワーク
コンテナは docker-compose.yml 内で network_mode: host で実行されます(ブリッジネットワーク上の公開ポートではありません)。これは必須であり、任意ではありません。このコンテナ内でPlaywrightが操作するブラウザは、あなたのホストマシン上の localhost:<port> に到達する必要があります。そこには、テスト対象のアプリの開発サーバー(テスト対象のリポジトリ)が実際に稼働しています。デフォルトのブリッジネットワークでは、コンテナに独立したネットワーク名前空間が与えられ、ホストへの経路がまったくありません。http://localhost:8766 のようなターゲットURLはハングするか ERR_CONNECTION_REFUSED で失敗し、http://<host-LAN-IP>:8766 は、ターゲットサーバーがリッスンしていてホストのシェルから curl で到達可能な場合でも、単にタイムアウトします。
このコンテナを network_mode: host が利用できない環境(macOS/Windows上のDocker Desktopなど、ホストネットワーキングのサポートが制限されているか存在しない環境)にフォーク/再デプロイする場合は、ui_navigate を呼び出す際に localhost の代わりに host.docker.internal をターゲットホスト名として使用し、docker-compose.yml に network_mode: host のフォールバックとして extra_hosts: ["host.docker.internal:host-gateway"] を追加してください。
ツール
ui_start_session、ui_end_session、ui_step、ui_navigate、ui_click、ui_fill、ui_assert、ui_check、ui_wait_for、ui_get_page_state、ui_take_screenshot — さらに、MCP以外の呼び出し元向けにRESTラッパー POST /api/run-test もあります。
ステップにラベルを付ける
ui_step(label) は、その後に続くすべてを、次の ui_step まで平易な言葉の見出しの下にグループ化します。このラベルは、レポートにおける呼び出し元が作成した唯一の意図表明です。サーバーは個々のアクションに対して「Opened …」「Clicked …」「Filled …」などの決定的なテンプレートを使用します。コンテナ内でLLMは実行されないため、ラベルがないセッションでも、1つの暗黙のグループの下に読みやすいアクションの説明がレンダリングされます。
ui_start_session target: "Account Access toggle smoke"
ui_step label: "Open the Settings page"
ui_navigate ...
ui_wait_for ...
ui_step label: "Turn Manual Invoice access on"
ui_click ...
ui_assert ...
ui_end_sessionui_step の呼び出しがないセッションも、単一の暗黙のグループの下で正しくレンダリングされます。
検証と待機 — 正しい方を選ぶ
ハードアクションが1つでも失敗するとセッションは failed とマークされるため、どのように検証するかによって、レポートが真実を伝えるかどうかが決まります。
ツール | 条件が偽の場合 | 使用目的 |
| セッションが失敗する。 | アプリに関する主張:「トグルがオンになった」 |
| 記録されて表示される。実行は継続する | レポートに含めたいが、実行を失敗させたくない観察事項 |
| ポーリングを続ける。タイムアウトするとセッションが失敗する | ページのレンダリングや安定を待つこと |
何かを待つためにリトライループで ui_assert を呼び出さないでください。最初の偽の結果は、アプリが正常でも実行を恒久的に失敗させます。それが ui_wait_for の役割です。
ui_check と ui_wait_for の両方で、条件が実行できない場合(ページが開いていない、または式が例外を投げる)は常にハード失敗です。それはハーネスのエラーであり、観察事項ではありません。
自動失敗スクリーンショットはセッションごとに予算が設定されています(FAILURE_SCREENSHOT_BUDGET、デフォルト3)。同一のスクリーンショット内容はHTMLレポートに1回だけ埋め込まれます。
レポートに表示される内容
判定ボックス(ステータス、ターゲット、ステップ/アクション/失敗数、所要時間)、次にラベル付きステップとしての実行内容(ステップごとの結果と経過時間)、次にブラウザの問題、最後に生のアクションログが開閉式ディスクロージャーの下に折りたたまれて表示されます。
コンソールエラー、未捕捉のページエラー、ネットワークレベルのリクエスト失敗は自動的にキャプチャされ、Browser problems の下に一覧表示されます。コンソールが例外を投げているのにフローが成功するのは、確認する価値のある偽のグリーンです。404や500などのHTTPエラーレスポンスはPlaywrightの requestfailed イベントをトリガーせず、自動的には一覧表示されません。キャプチャされた問題は情報提供のみであり、判定を変更することはありません。セッションごとに最大50件が保持され、それを超えるとレポートは残りが破棄されたと記載します。
アーキテクチャと完全なMCP接続ガイドについては AGENTS.md を、REST APIリファレンスについては HARNESS.md を参照してください。デプロイ/ロールバック手順は RUNBOOK.md にあります。
スコープ(v1)
Webのみ(Chromium)、ローカルのみ、モバイルサポートはまだありません。完全な製品意図については PRD.md を、アーキテクチャの決定については PROJECT_SPEC.md を参照してください。
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.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to control browser automation through natural language prompts using Playwright, supporting visual element interaction, PDF generation, screenshots, and testing assertions.
- FlicenseNot gradedqualityDmaintenanceEnables web browser automation and inspection using structured data instead of screenshots, allowing AI agents to interact with web pages programmatically through the Playwright framework.
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to control web browsers through Playwright automation, providing 50+ tools for navigation, interaction, testing, accessibility audits, and visual testing across Chromium, Firefox, and WebKit.10MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to execute browser automation, perform QA tasks, and generate test code through natural language commands using Playwright.5
Related MCP Connectors
AI-powered browser automation — navigate, click, fill forms, and extract data from any website.
Browser-backed QA with evidence and fix-ready reports for coding agents.
AI QA tester — real browsers scan sites for bugs, SEO, perf, and accessibility issues via chat.
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/thunderkds/easy-ui-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server