MCP server for visual regression testing: triage a PR's UI diffs from your coding agent.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Catch unintended UI changes on every pull request. UI Verify renders your components in the cloud, diffs them against a baseline, and lets a coding agent triage what actually changed.
uiverify.ai Β Β·Β GitHub Β Β·Β CLI Β Β·Β Playwright SDK Β Β·Β Vitest SDK Β Β·Β Skills
UI Verify is a hosted visual-testing service that plugs into your CI. On each PR it:
This repository holds the open-source client packages, everything that runs in your repo. All rendering, diffing, and judging happens server-side; these packages only build a bundle, upload it over HTTP, and read back status, so each is safe to read, fork, and self-host against.
Already have screenshots? If your harness already produces them (Detox, Maestro, native snapshot tests, anything), upload the PNGs directly, no Storybook and no rendering required. UI Verify diffs, judges, and baselines them just the same:
This is how native, mobile, and React Native projects use UI Verify: each image is keyed by its path under the directory, so a screen maps to the same baseline every build, and you can upload only the screens you changed and carry the rest forward.
Prefer to drive it from your agent? Install the skills (below) and run /uiverify:setup-visual-testing. It detects your capture path, wires CI, and writes the first stories for you.
uiverify checkWhile an agent is editing, it can render just the stories it is touching and diff them against the real CI baseline on the fleet - a "would this pass" answer without waiting for CI:
It renders only the stories you name (repeatable --story, globs or exact ids), posts no PR check, and never moves a CI baseline. A changed result is informational (exit 0) - review the pixels over the UI Verify MCP (get_build / render_diff_image) and accept in the dashboard or with accept_build to set a branch-scoped preview baseline, so your own accepted changes stop re-flagging on the next check. CI stays the only path to a main baseline.
| Package | Install | What it does |
|---|---|---|
uiverify | npm i -D uiverify | The CLI. uiverify upload is the CI uploader (Storybook bundle, Playwright/Vitest archive, or a directory of finished screenshots) - streams render progress and reflects the visual verdict in its exit code. uiverify check is the agent edit-loop check - renders just the stories you name against the real CI baseline, without posting a check or moving a baseline. |
@uiverify/playwright | npm i -D @uiverify/playwright | The Playwright capture SDK. Swap @playwright/test for it and each test archives its final UI state (serialized DOM + resource bytes) for UI Verify to replay and diff. |
@uiverify/vitest | npm i -D @uiverify/vitest | The Vitest capture SDK. Add uiverifyPlugin() to your Vitest config and each browser-mode test archives its final DOM (serialized DOM + resource bytes) for UI Verify to replay and diff; takeSnapshot() adds named checkpoints. |
@uiverify/skills | npx skills add, see below | Agent skills: SKILL.md workflows a coding agent runs in your repo to set up visual testing, author economical + deterministic stories, and triage builds. |
Install the skills into any coding agent with one command (skills.sh):
Works in Claude Code, Cursor, Codex, Copilot, Gemini, and any agent that reads a skills folder. Add --list to pick individual skills, and run npx skills update to pull the latest.
Or, on Claude Code, install as a plugin so updates arrive automatically:
Either way, invoke them by name: /uiverify:setup-visual-testing, /uiverify:triage-visual-changes, and more. See packages/skills for the full list and a copy-in-by-hand alternative.
Connect the UI Verify MCP server and your coding agent (Claude Code, Cursor, Codex, and others) can pull a pull request's UI changes into the conversation, look at each diff, read the AI judge's verdict, and accept the intended baselines - without leaving the terminal.
--scope project writes it to your committed .mcp.json so the whole team gets it; the key is referenced as the UIVERIFY_API_KEY env var, never baked in. Your project setup page has this command with the key filled in. Full guide: Triage visual changes from your coding agent.
The server is remote (streamable HTTP) - there is nothing to install or run. It exposes:
| Tool | What it does |
|---|---|
list_builds | List recent UI Verify builds |
get_build | Get what changed in a build |
list_build_stories | Page through a build's stories by status |
get_pr_changeset | Get what a PR does to the UI vs its base branch |
list_pr_stories | Page through the PR-vs-base changeset by kind |
get_diff | Per-story diff detail with image URLs |
render_diff_image | Fetch the actual pixels of a story image |
review_diff | Accept, deny, or ignore one story's change |
accept_build | Accept every changed story in a build |
Complete, runnable projects under examples/ β one per capture path. Copy a folder, add a project API key, and it works.
| Example | Capture path |
|---|---|
examples/storybook | Storybook stories (no SDK, upload --static-dir) |
examples/vitest | Vitest browser-mode tests with @uiverify/vitest |
examples/playwright | Playwright end-to-end tests with @uiverify/playwright |
examples/react-native | Finished screenshots (native / mobile / React Native) with upload --screenshots |
The first three capture a slice of the same Shoppy storefront; the React Native one is a small Expo app driven by Maestro. Each folder has its own CI workflow.
The CLI requires UIVERIFY_API_KEY and talks to https://uiverify.ai by default (override with --api-url / UIVERIFY_API_URL for self-host or local dev). See each package's README and DEVELOPMENT.md for internals.
MIT Β© UI Verify
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/uiverify)<a href="https://allmcps.com/mcp/uiverify"><img src="https://allmcps.com/api/badge/uiverify?style=directory" alt="Uiverify on AllMCPs" /></a>