Frontend Review MCP
The Frontend Review MCP server visually assesses UI edits by comparing before and after screenshots to determine if they satisfy the user's request.
Visual Comparison: Analyzes screenshots taken before and after a UI edit against the original request.
Clear Feedback: Provides a 'yes' or 'no' response with explanations for any discrepancies.
AI Integration: Uses advanced AI models like
Qwen/Qwen2-VL-72B-Instructwith automated retry capability.Custom Models: Allows specification of different AI models for the review process.
Integration Support: Works with screenshot capture tools like
browser-tools-mcp.
Allows integration with Windsurf, a Codeium editor, for visually reviewing UI edit requests by comparing before and after screenshots to determine if the changes meet specified requirements.
Leverages Meta's Llama-3.2-90B-Vision-Instruct model as one of the fallback options for visual review of UI changes when the primary model is unavailable.
Recommends using YOLO mode in Cursor settings to optimize the frontend review experience, allowing for more seamless interaction with the visual review tools.
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., "@Frontend Review MCPreview my UI changes to make the login button larger and more prominent"
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.
frontend-review-mcp
An MCP server that performs a visual review of a UI edit request. Ask your agent to screenshot the page before and after the edit, and then call this tool to review the edit.
Usage
Cursor
To install in a project, add the MCP server to your
.cursor/mcp.json:
{
"mcpServers": {
"frontend-review": {
"command": "npx",
"args": ["frontend-review-mcp HYPERBOLIC_API_KEY=<YOUR_API_KEY>"],
}
}
}To install globally, add this command to your Cursor settings:
npx frontend-review-mcp HYPERBOLIC_API_KEY=<your-hyperbolic-api-key>Windsurf
Add the MCP server to your
~/.codeium/windsurf/mcp_config.jsonfile:
{
"mcpServers": {
"frontend-review": {
"command": "npx",
"args": ["frontend-review-mcp HYPERBOLIC_API_KEY=<YOUR_API_KEY>"]
}
}
}Related MCP server: MCP PDF Forms
Tools
Currently, the only tool is reviewEdit.
Your Agent will call this tool with the following arguments:
beforeScreenshotPath: The absolute path to the screenshot of the page before the edit.afterScreenshotPath: The absolute path to the screenshot of the page after the edit.editRequest: A detailed description of the UI edit request made by the user.
The tool will return a response with either a yes or no response, indicating whether the edit visually satisfies the edit request. If no, it will provide a detailed explanation of why the edit does not satisfy the request so you can continue to work on it.
Review Model
Currently, the review model is Qwen/Qwen2-VL-72B-Instruct from Hyperbolic. It will automatically retry the request with these models if it fails:
Fallback order:
Qwen/Qwen2-VL-72B-InstructQwen/Qwen2-VL-7B-Instructmeta-llama/Llama-3.2-90B-Vision-Instructmistralai/Pixtral-12B-2409
If you want to use a different model as the first model, you can add the MODEL arg to the command:
npx frontend-review-mcp HYPERBOLIC_API_KEY=<your-hyperbolic-api-key> MODEL=<your-model>It will try the specified model first, and then try the others if it fails.
Taking Screenshots
You can use any MCP server to take screenshots. I've been using https://github.com/AgentDeskAI/browser-tools-mcp which has a takeScreenshot tool, among other useful tools for frontend development.
AI Instructions
You can include the following instructions in your AI's prompt to make it take screenshots and review the edit:
When making frontend edits:
- Before making any changes, call the mcp_takeScreenshot function to save the current state of the page.
- After making your change, call the mcp_takeScreenshot function again to save the new state of the page.
- Screenshots will be saved to /screenshots folder.
- Run this command to get the absolute paths of the 2 most recent screenshots in the /screenshots folder:
find screenshots -type f -name "*.png" -exec stat -f "%m %N" {} \; | sort -nr | head -n 2 | awk '{print $2}' | xargs realpath | awk 'NR==1 {print "before path: ", $0} NR==2 {print "after path: ", $0}'
- Call the mcp_reviewEdit function to have your changes visually reviewed.
- Use the following format for the tool call:
{
"beforeScreenshotPath": string, // Absolute path to the second-most recent screenshot
"afterScreenshotPath": string, // Absolute path to the most recent screenshot
"editRequest": string // Describe the edit request from the user in a couple of sentences
}
- You should summarize my edit request into a couple of sentences so that the frontend reviewer understands the changes you made.
- The tool will either return "yes" if your changes are good, or "no" with a brief explanation if the changes don't satisfy the edit request. Keep editing with the same process until the reviewer returns "yes".
Tips
Make sure YOLO mode is on and MCP tools protection is off in your Cursor settings for the best experience.
Available Tools
1 toolreviewEditB
Perform a visual review of a UI edit request. The 'before screenshot' is a screenshot of the page before the edit, and the 'after screenshot' is the screenshot of the page after the edit. You will recieve either a yes or no response, indicating whether the edit visually satisfies the edit request. If no, it will provide a detailed explanation of why the edit does not satisfy the request so you can continue to work on it.
| Name | Required | Description | Default |
|---|---|---|---|
| afterScreenshotPath | Yes | Absolute path to the 'after' screenshot file (png) | |
| beforeScreenshotPath | Yes | Absolute path to the 'before' screenshot file (png) | |
| editRequest | Yes | A detailed description of the UI edit request made by the user. Do not describe the changes you made, but just summarize what the user asked you to change on the page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full behavioral disclosure burden. It describes the core behavior (visual review returning yes/no with explanations) and the iterative nature ('continue to work on it'). However, it doesn't disclose important behavioral traits like processing time, file size limitations, authentication needs, error conditions, or what constitutes a valid screenshot.
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 (3 sentences) and front-loaded with the core purpose. Each sentence adds value: first states purpose, second explains parameters, third describes outcomes. There's minimal redundancy, though the second sentence could be slightly more concise.
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?
For a 3-parameter tool with no annotations and no output schema, the description provides adequate but incomplete context. It covers the basic workflow and outcome format but lacks details about error handling, performance characteristics, or what specific visual criteria are used for evaluation. The absence of output schema means the description should ideally explain return values more thoroughly.
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 100%, providing complete parameter documentation. The description adds minimal value beyond the schema: it clarifies that screenshots represent 'before' and 'after' states and mentions the edit request context. However, it doesn't provide additional semantic context about parameter relationships or usage nuances beyond what's already in the schema descriptions.
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: 'Perform a visual review of a UI edit request' with specific resources (before/after screenshots) and verb (review). It explains what the tool does (evaluates if edit satisfies request) and the outcome (yes/no with explanation). However, without sibling tools, it cannot demonstrate differentiation from alternatives.
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 implies usage context: when you have UI edit screenshots and need validation. It mentions 'so you can continue to work on it' suggesting iterative improvement workflow. However, there's no explicit guidance on when to use this tool versus other validation methods or prerequisites for effective use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
With only one tool, there is no possibility of ambiguity or overlap between tools. The tool has a clear, singular purpose focused on visual review of UI edits.
Since there is only one tool, naming consistency is inherently perfect. The tool name 'reviewEdit' follows a clear verb_noun pattern and stands alone without any conflicting conventions.
A single tool is too few for a server named 'Frontend Review MCP', which suggests a broader scope for frontend review tasks. This minimal toolset feels thin and incomplete for the implied domain.
The tool surface is severely incomplete for frontend review. It only covers visual validation of UI edits, lacking tools for other aspects like accessibility checks, performance reviews, code analysis, or comparison of multiple edits, which are typical in this domain.
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
An MCP server that automatically collects feedback on your MCP server.
MCP server for Midjourney AI image generation and editing
MCP server for Mint — AI-powered QA that runs your app in a real browser on every PR.
Related MCP Servers
- AlicenseBqualityDmaintenanceTypeScript-based MCP server designed to enhance code editing experiences by providing features such as hover information, code completion, and diagnostics.32026MIT
- AlicenseAqualityDmaintenanceA server providing PDF form manipulation tools via MCP's API, allowing users to find PDFs across directories, extract form field information, and visualize form fields in documents.69MIT
- FlicenseBqualityNot gradedmaintenanceAn MCP server that provides web development tools including taking screenshots of screens, enabling AI agents to capture and analyze visual content during development.23011
- AlicenseNot gradedqualityFmaintenanceAn MCP tool server that enables generating and editing images through OpenAI's image models, supporting text-to-image generation and advanced image editing (inpainting, outpainting) across various MCP-compatible clients.110MIT
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/zueai/frontend-review-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server