WebEvalAgent MCP Server
OfficialThe WebEvalAgent MCP Server enables autonomous testing, debugging, and evaluation of web applications directly in your code editor.
Key capabilities:
Navigate web applications: Drive and interact with your web app in an actual browser (2x faster with operative backend)
Evaluate UX/UI: Perform detailed evaluations based on specified tasks, providing observations, issues, and improvement recommendations
Autonomous debugging: Test and debug web application code to ensure it works as expected
Data collection: Capture screenshots, network traffic, console logs and errors for comprehensive analysis
Maintain state: Preserve browser state (cookies, local storage) across evaluation runs, eliminating repeated logins for authenticated testing
Generate reports: Create detailed summaries of steps taken, observations, console logs, network requests, and a chronological timeline
Provides operating system compatibility for running the WebEvalAgent MCP Server, enabling autonomous web app execution and debugging capabilities.
Provides operating system compatibility for running the WebEvalAgent MCP Server, enabling autonomous web app execution and debugging capabilities.
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., "@WebEvalAgent MCP Servertest my app at http://localhost:3000 with the task 'try the signup flow and report any UX issues'"
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.
β οΈ PROJECT HAS BEEN SUNSET β οΈ
This project has been discontinued. We're building something new at withrefresh.com
π operative.sh web-eval-agent MCP Server
Let the coding agent debug itself, you've got better things to do.

Related MCP server: agnt
π₯ Supercharge Your Debugging
operative.sh's MCP Server launches a browser-use powered agent to autonomously execute and debug web apps directly in your code editor.
β‘ Features
π Navigate your webapp using BrowserUse (2x faster with operative backend)
π Capture network traffic - requests are intelligently filtered and returned into the context window
π¨ Collect console errors - captures logs & errors
π€ Autonomous debugging - the Cursor agent calls the web QA agent mcp server to test if the code it wrote works as epected end-to-end.
π§° MCP Tool Reference
Tool | Purpose |
| π€ Automated UX evaluator that drives the browser, captures screenshots, console & network logs, and returns a rich UX report. |
| π Opens an interactive (non-headless) browser so you can sign in once; the saved cookies/local-storage are reused by subsequent |
Key arguments
web_eval_agenturl(required) β address of the running app (e.g.http://localhost:3000)task(required) β natural-language description of what to test ("run through the signup flow and note any UX issues")headless_browser(optional, defaultfalse) β set totrueto hide the browser window
setup_browser_stateurl(optional) β page to open first (handy to land directly on a login screen)
You can trigger these tools straight from your IDE chat, for example:
Evaluate my app at http://localhost:3000 β run web_eval_agent with the task "Try the full signup flow and report UX issues".π Quick Start
Easy Setup with One-Click Integration
Get your API key (free) - when you create your API key, you'll see:
"Add to Cursor" button with a deeplink for instant Cursor installation
Prefilled Claude Code command with your API key automatically included
Manual Setup (macOS/Linux)
Pre-requisites (typically not needed):
brew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"npm: (
brew install npm)jq:
brew install jq
Run the installer after getting an api key (free)
Installs playwright
Inserts JSON into your code editor (Cursor/Cline/Windsurf) for you!
curl -LSf https://operative.sh/install.sh -o install.sh && bash install.sh && rm install.shVisit your favorite IDE and restart to apply the changes
Send a prompt in chat mode to call the web eval agent tool! e.g.
Test my app on http://localhost:3000. Use web-eval-agent.π οΈ Manual Installation
Get your API key at operative.sh/mcp
curl -LsSf https://astral.sh/uv/install.sh | shSource environment variables after installing UV
Mac
source ~/.zshrcLinux
source ~/.bashrc Install playwright:
npm install -g chromium playwright && uvx --with playwright playwright install --with-depsAdd below JSON to your relevant code editor with api key
Restart your code editor
π Updating
uv cache cleanrefresh MCP server
"web-eval-agent": {
"command": "uvx",
"args": [
"--refresh-package",
"webEvalAgent",
"--from",
"git+https://github.com/Operative-Sh/web-eval-agent.git",
"webEvalAgent"
],
"env": {
"OPERATIVE_API_KEY": "<YOUR_KEY>"
}
}Operative Discord Server
π οΈ Manual Installation (Mac + Cursor/Cline/Windsurf)
Get your API key at operative.sh/mcp
curl -LsSf https://astral.sh/uv/install.sh | sh)Install playwright:
npm install -g chromium playwright && uvx --with playwright playwright install --with-depsAdd below JSON to your relevant code editor with api key
Restart your code editor
Manual Installation (Windows + Cursor/Cline/Windsurf)
We're refining this, please open an issue if you have any issues!
Do all this in your code editor terminal
curl -LSf https://operative.sh/install.sh -o install.sh && bash install.sh && rm install.shGet your API key at operative.sh/mcp
Install uv
(curl -LsSf https://astral.sh/uv/install.sh | sh)uvx --from git+https://github.com/Operative-Sh/web-eval-agent.git playwright installRestart code editor
π¨ Issues
Updates aren't being received in code editors, update or reinstall for latest version: Run
uv cache cleanfor latestAny issues feel free to open an Issue on this repo or in the discord!
5/5 - static apps without changes weren't screencasting, fixed!
uv clean+ restart to get fix
Changelog
4/29 - Agent overlay update - pause/play/stop agent run in the browser
π Example MCP Server Output Report
π Web Evaluation Report for http://localhost:5173 complete!
π Task: Test the API-key deletion flow by navigating to the API Keys section, deleting a key, and judging the UX.
π Agent Steps
π 1. Navigate β http://localhost:5173
π 2. Click "Login" (button index 2)
π 3. Click "API Keys" (button index 4)
π 4. Click "Create Key" (button index 9)
π 5. Type "Test API Key" (input index 2)
π 6. Click "Done" (button index 3)
π 7. Click "Delete" (button index 10)
π 8. Click "Delete" (confirm index 3)
π Flow tested successfully β UX felt smooth and intuitive.
π₯οΈ Console Logs (10)
1. [debug] [vite] connectingβ¦
2. [debug] [vite] connected.
3. [info] Download the React DevTools β¦
β¦
π Network Requests (10)
1. GET /src/pages/SleepingMasks.tsx 304
2. GET /src/pages/MCPRegistryRegistry.tsx 304
β¦
β±οΈ Chronological Timeline
01:16:23.293 π₯οΈ Console [debug] [vite] connectingβ¦
01:16:23.303 π₯οΈ Console [debug] [vite] connected.
01:16:23.312 β‘οΈ GET /src/pages/SleepingMasks.tsx
01:16:23.318 β¬
οΈ 304 /src/pages/SleepingMasks.tsx
β¦
01:17:45.038 π€ π Flow finished β deletion verified
01:17:47.038 π€ π Conclusion repeated above
ποΈ See the "Operative Control Center" dashboard for live logs.Star History
Built with <3 @ operative.sh
Available Tools
2 toolssetup_browser_stateA
Sets up and saves browser state for future use.
This tool should only be called in one scenario:
The user explicitly requests to set up browser state/authentication
Launches a non-headless browser for user interaction, allows login/authentication, and saves the browser state (cookies, local storage, etc.) to a local file.
Args: url: Optional URL to navigate to upon opening the browser. ctx: The MCP context (used for progress reporting, not directly here).
Returns: list[TextContent]: Confirmation of state saving or error messages.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes key behaviors: launches a non-headless browser for user interaction, allows login/authentication, saves browser state to a local file, and returns confirmation/error messages. However, it lacks details on permissions needed, file storage location, rate limits, or error conditions. It compensates somewhat but not fully for the annotation gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and concise: it starts with a clear purpose statement, provides specific usage guidelines, details the tool's behavior, and lists parameters and returns. Each sentence adds value without redundancy. The formatting with sections (Args, Returns) enhances readability without unnecessary length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (involving browser automation and state saving) and lack of annotations or output schema, the description does a good job covering key aspects: purpose, usage, behavior, parameters, and returns. It explains the return type ('list[TextContent]') and what it contains. However, it could improve by detailing error handling or state file management to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context for the 'url' parameter: 'Optional URL to navigate to upon opening the browser.' This clarifies its purpose beyond the schema's basic title. With 0% schema description coverage and only one parameter, the description adequately compensates. The mention of 'ctx' as an MCP context for progress reporting adds useful semantic insight, though it's not in the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Sets up and saves browser state for future use' with specific actions like launching a non-headless browser, allowing login/authentication, and saving state to a file. It distinguishes from the sibling 'web_eval_agent' by focusing on state setup rather than evaluation. However, it doesn't explicitly contrast with the sibling beyond implied different use cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidelines: 'This tool should only be called in one scenario: 1. The user explicitly requests to set up browser state/authentication.' This clearly defines when to use it and implicitly suggests alternatives (e.g., not for general browsing). It offers strong guidance without misleading information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_eval_agentA
Evaluate the user experience / interface of a web application.
This tool allows the AI to assess the quality of user experience and interface design of a web application by performing specific tasks and analyzing the interaction flow.
Before this tool is used, the web application should already be running locally on a port.
Args: url: Required. The localhost URL of the web application to evaluate, including the port number. Example: http://localhost:3000, http://localhost:8080, http://localhost:4200, http://localhost:5173, etc. Try to avoid using the path segments of the URL, and instead use the root URL. task: Required. The specific UX/UI aspect to test (e.g., "test the checkout flow", "evaluate the navigation menu usability", "check form validation feedback") Be as detailed as possible in your task description. It could be anywhere from 2 sentences to 2 paragraphs. headless_browser: Optional. Whether to hide the browser window popup during evaluation. If headless_browser is True, only the operative control center browser will show, and no popup browser will be shown.
Returns: list[list[TextContent, ImageContent]]: A detailed evaluation of the web application's UX/UI, including observations, issues found, and recommendations for improvement and screenshots of the web application during the evaluation
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| task | Yes | ||
| headless_browser | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool performs tasks and analyzes interaction flow, uses a browser (with optional headless mode), and returns evaluations with screenshots. However, it lacks details on permissions, rate limits, error handling, or whether it's read-only/destructive. The description doesn't contradict annotations (none exist).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the core purpose. Each sentence adds value: purpose, prerequisites, parameter explanations, and return format. Some minor redundancy exists (e.g., repeating 'evaluate' concepts), but overall it's well-structured with zero wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters with 0% schema coverage and no output schema, the description does a good job explaining inputs and outputs. It details parameter usage and describes the return format (list of text and image content with observations, issues, recommendations). For a tool with no annotations, it's reasonably complete, though could benefit from more behavioral context like error cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides detailed semantics for all 3 parameters: 'url' (required, localhost URL with port examples, avoid path segments), 'task' (required, specific UX/UI aspect with examples and length guidance), and 'headless_browser' (optional, controls browser window visibility). This adds substantial meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Evaluate the user experience / interface of a web application' and 'assess the quality of user experience and interface design'. It specifies the verb ('evaluate', 'assess') and resource ('web application'), but doesn't explicitly differentiate from the sibling tool 'setup_browser_state', which likely has a different function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: 'Before this tool is used, the web application should already be running locally on a port.' It also gives examples of tasks like 'test the checkout flow' or 'evaluate the navigation menu usability'. However, it doesn't explicitly state when NOT to use it or mention the sibling tool as an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
- First observed
setup_browser_state - First observed
web_eval_agent
TDQS
The two tools have completely distinct purposes with no overlap. setup_browser_state handles browser authentication and state saving, while web_eval_agent performs UX/UI evaluation of web applications. An agent would never confuse these tools as they serve different phases of the workflow.
Both tools follow a consistent verb_noun pattern with snake_case naming. setup_browser_state and web_eval_agent use clear action-oriented verbs followed by descriptive nouns, creating a predictable naming convention throughout the server.
With only 2 tools, this server feels severely under-equipped for its apparent purpose of web evaluation. A comprehensive web evaluation system would typically need tools for navigation, interaction simulation, accessibility testing, performance measurement, and result analysis beyond just setup and evaluation.
The tool surface is severely incomplete for web evaluation. While setup and evaluation are covered, there are significant gaps: no tools for configuring evaluation parameters, managing browser sessions, analyzing results programmatically, testing specific components, or handling different evaluation methodologies. The server provides only basic endpoints without supporting the full evaluation workflow.
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 Connectors
Browser-based QA for AI-built software. Test pages with real browsers via agents.
AI-powered web automation. Navigate websites using AI agents for one page or a thousand
AI-powered web automation. Navigate websites using AI agents for one page or a thousand
Autonomous cloud agent tasks: real browser + your tools, structured evidence-backed results.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to debug frontend applications by providing direct access to browser DevTools, React state, DOM inspection, and runtime debugging capabilities. Bridges the gap between AI and complex web applications for autonomous debugging and issue resolution.MIT
- AlicenseNot gradedqualityAmaintenanceBridges AI coding agents with the browser to provide visual debugging, real-time error capture, screenshot capabilities, DOM inspection, and interactive wireframing through a reverse proxy with injected developer tools.5819Apache 2.0
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to automate and debug real Chromium browsers with capabilities like screenshots, video recording, performance analysis, visual regression testing, and OCR text extraction.13-
- AlicenseNot gradedqualityDmaintenanceEnables AI coding agents to visually interact with frontend apps by taking screenshots, clicking elements, reading console logs, and performing visual diffs.3MIT
Appeared in Searches
- Tools for enabling LLMs to interact with web pages and perform end-to-end testing
- IDE extensions and AI coding assistants like GitHub Copilot and ChatGPT
- Browser automation and control for Codex CLI
- MCP servers for curated context in Cursor IDE to plan, debug, and iterate on features
- Web page automation tools for form submission and queries
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/refreshdotdev/web-eval-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server