Percy MCP. Pinpoint pixel-level UI breaks across all browsers.
Works with every AI agent you already use
…and any MCP-compatible client
Just plug in your AI agents and start using Vinkius.
Percy MCP Server executes visual regression tests by tracking pixel differences across builds. It lets you check if a UI component broke visually after code changes, approve specific snapshots, and inspect build status using your AI client.
What your AI agents can do
Approve build
Approve all unreviewed snapshots in a Percy build. This marks the entire build as visually cleared for deployment.
Approve snapshot
Marks a single snapshot as visually correct, updating the official baseline for future visual comparisons.
Get build details
Retrieves the full status of a build, including its state, total counts, and commit SHA.
Retrieve full details about a specific build—including its status (passed/failed), the total number of snapshots, and which ones are still unreviewed.
Get detailed information on a single snapshot to see exactly how many pixels changed compared to the established baseline, including diff percentage metrics.
List all recorded builds for a project, allowing you to track status, branch names, and commit SHAs over time.
Force the approval of either an entire build or a single snapshot. This mutates the baseline, telling Percy that the detected visual state is correct for future comparisons.
Returns all browser families and OS combinations that are available for cross-browser testing runs.
Ask AI about this MCP
Supported MCP Clients
Waiting for input…
Percy MCP Server: 10 Tools for Visual Quality Assurance
Master visual testing by accessing all core snapshot management, build listing, and approval workflows through your agent.
019d75f1approve build
Approve all unreviewed snapshots in a Percy build. This marks the entire build as visually cleared for deployment.
019d75f1approve snapshot
Marks a single snapshot as visually correct, updating the official baseline for future visual comparisons.
019d75f1get build details
Retrieves the full status of a build, including its state, total counts, and commit SHA.
019d75f1get project details
Gets core project information like name, default branch, and whether auto-approval is enabled.
019d75f1get snapshot details
Retrieves detailed metrics for a snapshot, including its review state, widths, and comparison count.
019d75f1list browsers
Returns a list of all browser families and OS combinations supported by Percy for cross-browser testing.
019d75f1list builds
Lists builds associated with the project, showing build IDs, current states (processing/failed), and snapshot counts.
019d75f1list comparisons
Shows a list of visual comparisons for a snapshot, including diff images, percentage differences, and browser details.
019d75f1list projects
Lists all projects managed by Percy, returning names, slugs, and configured browser settings.
019d75f1list snapshots
Provides a list of snapshots in a build, showing their review state (unreviewed/approved) and diff percentages.
Choose How to Get Started
Build a custom MCP for your own tools, or connect a ready-made integration from our catalog.
Build Your Own
Turn any API into an MCP. Import a spec, define Agent Skills, or deploy with MCPFusion.
- Import from OpenAPI, Swagger, or YAML specs
- Create Agent Skills with progressive disclosure
- Deploy to edge with MCPFusion framework
- Built in DLP, auth, and compliance on every call
- Real time usage dashboard and cost metering
- Publish to catalog or keep private
Make Your AI Do More
Start with Percy, then connect any of our 4,700+ other servers whenever your AI needs more. One click, no limits.
- Use this MCP plus 4,700+ others, all in one place
- Add new capabilities to your AI anytime you want
- Every connection is secured and compliant automatically
- Track usage and costs across all your servers
- Works with Claude, ChatGPT, Cursor, and more
- New servers added to the catalog every week
What you can do with this MCP connector
This MCP server connects your agent directly to Percy's Visual Testing API. You use it to programmatically verify that your UI hasn't gone sideways—or worse, broken visually—when new code gets merged. It tracks pixel differences (diffs) against an approved baseline for specific components across multiple browsers and viewports. This lets you check if a component broke after a change, approve snapshots, or inspect the status of any build using your AI client.
Discovering Your Projects and Setup
You can start by listing all projects managed by Percy using list_projects. This tool returns names, slugs, and tells you what browser settings are configured for each project. To get specific info on a single setup, call get_project_details; it gives you the core name, default branch, and whether auto-approval is even turned on.
You can also check which browsers Percy supports at all times by running list_browsers, which returns every browser family and OS combination available for cross-browser testing.
Tracking Builds Over Time
To see what's been happening with your code, you use list_builds. This shows a list of builds associated with the project, giving you build IDs, their current state (like 'processing' or 'failed'), and how many snapshots were generated. When you need the full lowdown on one specific attempt, get_build_details retrieves that information.
It gives you the complete status—whether it passed or failed—the total number of snapshots included in that build, and the commit SHA used for the run.
Inspecting Snapshot Details and Comparisons
When a build runs, it creates snapshots. You can view all those available snapshots using list_snapshots, which shows their review state (if they're 'unreviewed' or already 'approved') alongside their difference percentages. For deep metrics on one specific snapshot, you call get_snapshot_details. This gives you the review status, component widths, and how many comparisons were run against the baseline.
If you suspect a visual issue, running list_comparisons shows all the individual visual checks for that snapshot, including actual diff images, precise percentage differences, and which browser generated the comparison.
Controlling the Baseline (Approving Changes)
If everything looks good visually, you need to update your baseline. You can mark a single snapshot as correct by calling approve_snapshot. This action tells Percy that the detected visual state is right for future comparisons and updates the official baseline. If you're confident in the entire build—meaning all components look fine together—you use approve_build to approve all unreviewed snapshots at once, marking the whole build as visually cleared for deployment.
How It All Works Together
You can see a list of builds using list_builds, then pull the full status with get_build_details. If you spot something weird, you check list_snapshots to see which ones are unreviewed. You dive into those suspicious snapshots by running get_snapshot_details and checking out every single comparison via list_comparisons to pinpoint exactly what broke—whether it's a color shift or a layout collapse.
Once you verify the fix, you run approve_snapshot for that component or approve_build if the whole system is good to go.
How Percy MCP Works
- 1 First, you need to secure the structural node mapping target locally within your logic constraints.
- 2 Next, incorporate your unique Percy Project Token into your agent's setup process.
- 3 Finally, engage your AI client conversationally to retrieve specific UI test results or check build status.
The bottom line is: you give the server a token and tell it what project to watch. The server then uses that connection to run checks and report back on any visual breakage.
Who Is Percy MCP For?
Frontend developers, QA engineers, and DevOps admins use this when they're tired of manual QA cycles or wading through dozens of clicking dashboards. They need proof that a code change didn't accidentally break the button colors or move the logo—and they need it fast.
Uses list_snapshots and get_snapshot_details to find failed assertions, track structural rendering regressions, and pinpoint exactly which component broke.
Runs checks using the agent to resolve visual bounds and log pipeline limits without having to navigate complex Percy dashboards or write full test scripts.
Monitors overall CI/CD pipeline health by running list_builds to track build states, ensuring no unreviewed elements are stuck in the system.
What Changes When You Connect
- Find visual regressions instantly. Instead of guessing if a change broke the layout, run
list_snapshotsto see which component's diff percentage spiked after a merge. - Control deployments with approval gates. When you hit the release button, use
approve_buildorapprove_snapshotvia your agent instead of relying on manual sign-offs in an external dashboard. - Check full project health fast. Don't click into five different sections; run
get_project_detailsto get a single view of deployment settings and total build count. - Isolate the problem quickly. If something looks wrong, use
list_comparisonson that specific snapshot ID to see the exact pixel difference between the old baseline and the new version. - Support cross-browser checking. Need to know if a change breaks Safari or Chrome? Use
list_browsersfirst, then check build status for every target.
Real-World Use Cases
The QA Engineer needs proof of concept.
A developer pushes an update to the navigation bar. The QA engineer doesn't trust it until they see pixel-perfect confirmation. They ask their agent to run list_builds to grab the latest ID, then use that ID with get_snapshot_details. Finally, they check list_comparisons to confirm the diff is below 0.1%. The problem is solved: visual stability confirmed.
The DevOps team needs to unblock a release.
A critical build (ID 9091x) fails QA because several snapshots are 'unreviewed.' Instead of manually logging into Percy and clicking ten times, the agent runs list_snapshots to confirm the status, and then executes approve_build, pushing the pipeline past the gate.
The Frontend developer fixes a component.
A button's hover state looks off. The dev needs to isolate it fast. They run list_projects to ensure they are in the right project, then use get_snapshot_details with the specific component ID. This allows them to focus only on that single element's visual boundaries without checking the whole page.
The Platform team needs a full audit.
Before making major architectural changes, the platform team runs list_projects to map all existing deployed applications. They then use get_project_details on each one to verify if auto-approve is enabled and what the default browser targets are—critical compliance data.
The Tradeoffs
Approving without checking diffs.
The developer sees a green build status and immediately runs approve_build. They assume it's fine, but the new version accidentally changed padding by 2px on mobile. The change goes live, and nobody notices until user reports flood in.
→
Never approve blindly. Always check list_comparisons first. If you see a diff percentage above zero (or your threshold), ask the agent to run get_snapshot_details before executing any approval tools like approve_build or approve_snapshot.
Relying on single API calls.
A developer only runs list_builds and sees three builds. They assume the current, latest build is the one they need to review, missing a critical, recent 'pre-release' branch build that failed.
→
Don't just look at the count. Use get_project_details first to confirm your target branch and then use list_builds. Cross-reference the commit SHA from both calls to ensure you are checking the correct deployment history.
Assuming project scope.
You're working on a microservice, but you run snapshot checks without knowing if it shares assets with another service. You waste time debugging visual issues that belong to an entirely different application module.
→
Start by running list_projects to see every project name and slug available in the system. Use this output to confirm your target scope before calling any detailed tools like get_snapshot_details.
When It Fits, When It Doesn't
Use this server if visual consistency is a hard requirement for deployment. Specifically, if you need to know if component A looks the same today as it did last week across Chrome and Safari. If your primary concern is functional logic (e.g., 'Does clicking X correctly update database Y?'), then this isn't the right tool—you need unit testing or integration test tools instead. However, if you are checking state after a successful function call, Percy confirms that the UI reflects that success visually. When in doubt about scope, always run list_projects first. If your workflow requires tracking specific build metadata (like branch names or commit hashes), rely on get_build_details. These tools confirm deployment history and status; they don't write code.
Independent Platform Disclaimer: Vinkius is an independent platform and is not affiliated with, endorsed by, sponsored by, verified by, or otherwise authorized by Percy. All third-party trademarks, logos, and brand names are the property of their respective owners. Their use on this website is strictly for informational purposes to identify service compatibility and interoperability.
VINKIUS INFRASTRUCTURE
Cloud Hosted
Managed infra
V8 Isolated
Sandboxed per request
Zero-Trust Proxy
No stored credentials
DLP Enforced
Policy on every call
GDPR Compliant
EU data residency
Token Compression
~60% cost reduction
Works with Claude, ChatGPT, Cursor, and more
The Model Context Protocol standardizes how applications expose capabilities to LLMs. Instead of operating in isolation, your AI gains direct access to external platforms, live data, and real-world actions through secure, standardized connections.
This server provides 10 capabilities that interface natively with Claude, ChatGPT, Cursor, and any MCP client. No middleware. No custom integration required.
Available Capabilities
Manual visual QA is slow, painful, and always misses edge cases.
Right now, catching a visual bug means opening the staging environment, manually switching browsers (Chrome, Edge, Safari), resizing the viewport to check mobile sizes, and comparing every single component yourself. You're clicking through dashboards just to confirm that button padding didn't change by one pixel—a massive time sink.
With this MCP server, you tell your agent: 'Check the checkout flow across all browsers.' It handles the multi-viewport comparison, runs `list_comparisons`, and reports back on every single pixel difference. You get a clean pass/fail report without touching a dashboard.
Percy MCP Server lets you manage visual state changes with one command.
Today, getting a release approved means someone has to manually go into the CI/CD system and click 'Approve Build.' That approval is an external action—a human gate. You wait for Slack messages confirming it's done, creating friction and delays.
Now, your agent executes `approve_build` directly through this server. The visual proof (the snapshot) confirms the quality, and the API call handles the deployment gate. It removes the dependency on manual sign-offs.
Common Questions About Percy MCP
How do I check if a build is ready for release using get_build_details? +
Run get_build_details to find the state and snapshot counts. Look specifically at which snapshots are 'unreviewed.' If they're still unreviewed, you can use approve_build to push it forward.
What is the difference between list_snapshots and get_snapshot_details? +
list_snapshots gives you a count and status for all snapshots in a build. You use get_snapshot_details when you know which snapshot you want to examine closely, checking its exact diff metrics or review state.
How do I check if my project is configured correctly? Use get_project_details. +
Run get_project_details to pull the core config. This tells you things like the default branch, whether auto-approve is enabled, and which browser targets are set up for your entire project.
Do I need to run list_projects before checking my build? +
Yes. If you're unsure which Percy projects exist in the system, start with list_projects. This ensures you select the correct slug and context for all subsequent calls like list_builds.
When calling `get_project_details`, what are the necessary security requirements for my API token? +
You must pass a dedicated Percy Project Token in the request headers. This isn't just any key; it authorizes your AI client to access and manage build data on your account, ensuring secure rate limiting and proper usage tracking.
How do I determine which browser combinations are supported for testing using `list_browsers`? +
This tool returns a structured list of every compatible browser family and its associated OS. Using this output, you can build a comprehensive target matrix to ensure your automated tests cover all necessary cross-browser scenarios before running any builds.
If I run `approve_build`, but the build has failed some checks, what happens? +
The API will reject the approval and return an explicit error status. You need to check the full state first. Use get_build_details to confirm that all necessary tests have passed before attempting to force a visual approval.
What kind of metrics does `list_comparisons` provide about pixel differences? +
It provides both a percentage metric and the actual diff images. This gives you immediate, quantifiable proof of regression—showing precisely how much the visual output changed between your baseline and the current snapshot for specific widths.
Can the AI automatically approve an entire Percy build limit safely via constraints natively? +
Absolutely strictly explicitly natively. The integration encapsulates the approve_build action dynamically structurally executing the final endpoint verification marking bounds explicitly matching visual approvals effortlessly saving limits.
How explicitly strict are the parameter bounds when extracting image comparisons logistically? +
Invoking Explicit bounding via list_comparisons tracks native image differences safely cleanly bounding metrics returning explicit difference percentages mapping base width loops directly over testing node grids explicitly gracefully natively.
Where structurally globally do I find my Explicit Percy integration token accurately gracefully? +
Navigate explicit bounds inside your native Percy workspace parameters explicitly mapping 'Project Settings > Integrations/Tokens'. Globally limit testing node arrays explicitly generating Token strings seamlessly securely correctly internally securely elegantly here.
Use it with your favorite AI tools
Connect this server to Cursor, Claude, VS Code, and more.
More in this category
Resend
Automate email delivery via Resend — send emails, manage domains, and track audiences directly from any AI agent.
SonarQube & SonarCloud
Bring your standalone or cloud SonarQube quality gates native to your AI logic. Find bugs, duplications, and rewrite vulnerable code instantly.
Azure DevOps
Manage work items, track builds, and coordinate releases across your Azure DevOps organization with full pipeline visibility.
You might also like
LeadSquared
Manage leads, sales activities, and opportunities via the LeadSquared CRM API.
ActiveCampaign
Marketing automation and CRM — manage contacts, deals, lists, and automations via AI.
CONSENSUS
Share interactive product demos with prospects that track engagement and reveal which features matter most to each buyer.