Applitools MCP ServerThe Applitools MCP server helps you create, update, review, and resolve visual tests using Applitools Eyes across any of our supported SDKs. It connects to AI assistants through the Model Context Protocol (MCP), letting tools like Cursor, GitHub Copilot, Cline, and Claude Code (and more) set up tests, add visual checkpoints, configure cross-browser testing, and investigate visual test failures (accepting, rejecting, or adjusting the changes behind them) without ever leaving your IDE. To learn more, please visit our MCP documentation. PurposeThis server is built for developers, testers, or QA working with AI-assisted workflows. It enables your AI assistant to:
All without requiring manual, error-prone steps, or leaving your IDE. Who is this for?
Requirements & Limitations
InstallationRecommended: VS Code Extension or Cursor MCP Install The easiest way to start using Eyes MCP is through the Applitools VS Code extension or by installing the MCP server directly in Cursor.
Simply install the MCP server by clicking an option below: Alternatively, you can install the server manually by following the Manual SetupIf you prefer not to use the extension, you can install the MCP server manually by following the examples below. Standard MCP configuration:
VS CodePlease see the VS Code MCP install guide and use the standard config above. Alternatively, install it via the VS Code CLI:
CopilotCreate or edit the configuration file ~/.copilot/mcp-config.json and add:
CursorIn your user root directory, edit or add the above configuration to your `~/.cursor/mcp.json` file.Alternatively, go to Cursor Settings -> MCP -> Add new MCP Server. Name it `applitools-mcp`, use `command` type with the command `npx -y @applitools/mcp@latest`. ClineFollow the instruction in the section Configuring MCP Servers Add the following to your
Claude Code (CLI)Use the Claude Code CLI to add the Applitools MCP server:
Claude DesktopFollow the MCP install guide, and use the standard MCP configuration above. AuthenticationThree keys control what the server can do, set as global environment variables, in a
How to get read-only and write-only API keys: See our documentation on API key management.
Note: Example applitools-mcp mcp.json configuration with all three keys set:
Example .env file in your project with all three keys set:
Available ToolsSetup & Configurationeyes_verify_api_keyValidates your Applitools API key and, if provided, verifies connectivity to a specified Eyes server URL (e.g., non-public cloud). Searches common locations:
Supported Eyes SDKs: All eyes_setup_projectGuides the setup of Applitools Eyes in your Playwright project (Fixtures variant). Includes:
Supported Eyes SDKs: Playwright TypeScript/JavaScript Fixtures eyes_add_checkpoints_to_testAdds Eyes visual checkpoints to your existing Playwright test in line with best practices. Supported Eyes SDKs: Playwright TypeScript/JavaScript Fixtures eyes_setup_ufgConfigures the Ultrafast Grid (UFG) for cross-browser and cross-device testing. Guides you through UFG setup to run visual tests across multiple browsers, viewports, and devices simultaneously. Supported Eyes SDKs: Playwright TypeScript/JavaScript Fixtures Inspection (read-only)Requires Supported Eyes SDKs: All eyes_inspect_sessionsLists a batch's sessions and batch-wide stats. Narrow to only unresolved or unsaved sessions, or shape the response to full detail, stats only, or a deduplicated list of scenario names. The entry point for browsing a batch. Use this first when asking "what's in this batch?" or "what still needs review?" eyes_inspect_stepsLists a session's steps: whether each is matching, plus baseline/checkpoint image and DOM IDs, sizes, and resolution status. Use when drilling into one session. eyes_inspect_changed_areasReturns a step's diff regions, clustered from raw pixel-level differences and already accounting for any regions you've added. Past 20 changed areas in a step, dense clusters are grouped into a single enclosing area, so your assistant focuses on what's meaningfully different rather than pixel noise. eyes_inspect_imageExports a baseline or checkpoint screenshot for a step, optionally cropped to a specific area. eyes_inspect_image_diffExports the checkpoint screenshot with changed areas highlighted, so you can see at a glance what moved or changed. eyes_inspect_domExports a DOM capture for a step to a file, with a stable id assigned to every element so your assistant can reference "element 14" instead of an XPath or raw coordinates. Requires DOM capture to have been enabled when the test ran; returns no data (not an error) otherwise. eyes_inspect_dom_diffReturns the structural difference between a step's checkpoint and baseline DOM (only what actually changed), with pure position shifts and mass changes (e.g. "everything below moved down") automatically consolidated instead of listed element by element. eyes_inspect_dom_searchSearches a DOM capture using a predicate query language, documented as its own MCP resource: combine property comparisons, geometry and size checks, ancestor/descendant relationships, and shortcut keywords like image or button with and/or/not, instead of requiring your assistant to read the entire capture. eyes_inspect_evidenceReturns everything needed to review a step's changed areas in one call: for each area you ask about, the image diff plus the baseline and checkpoint screenshots, together with the step's whole DOM diff and the match regions currently in effect. Preferred over calling eyes_inspect_image_diff, eyes_inspect_image, eyes_inspect_dom_diff and eyes_inspect_regions separately; it is what a Review gathers its evidence with. eyes_inspect_regionsReturns the match regions currently in effect for a step, combining regions defined in your test code with any added or changed since the test ran. Checked before adding a new region, so your assistant doesn't create an overlapping or duplicate one. eyes_inspect_historyReturns a DOM node's diff history across prior runs, used as evidence that a change is recurring/dynamic content rather than a one-time real change. Review (orchestration)Requires APPLITOOLS_READ_KEY always, and additionally APPLITOOLS_WRITE_KEY when running in resolve mode (the default). This is the primary way to use these tools day-to-day: ask your assistant to review a batch, scenario, session, or step, and it drives the full investigation for you. Supported Eyes SDKs: All eyes_review_progressDrives a guided investigation at whatever scope you ask for (a batch, a scenario, a session, or a single step), gathering the evidence (images, DOM diff, history) needed for each changed area before a finding can be reported. This is the tool your assistant reaches for when you say "review my batch" or "review this session"; it calls the Inspection tools internally in the right order, so you don't have to. eyes_review_diff_reportRecords a structured finding for one changed area: its classification, whether it's consistent with the surrounding page, bug status, expected status, and (if it's recurring/dynamic content) supporting evidence and a recommended mask. Requires your assistant to gather the relevant evidence first; a finding filed without it is rejected and redirected back to whichever inspection call is missing. eyes_review_endSummarizes and finalizes the investigation at the given scope, deduplicating every child finding into one clean summary with nothing dropped or double-counted. At the step level, this is also where a step's accept/reject/unresolved outcome is decided (in resolve mode). Two Review modes:
Either mode can be scoped to a whole batch or narrowed to a single scenario, session, or step. A completed inspect-mode review can later be promoted to resolve mode without redoing the investigation; its cached findings are simply replayed through the resolve-mode decision logic. Saving changes to the baseline, or resetting it, is never part of Review itself; ask separately for Resolution (mutating)Requires both Supported Eyes SDKs: All eyes_resolve_checkpointMarks a step's checkpoint as accepted or rejected. Accepted checkpoints replace the baseline once saved; rejected ones keep the existing baseline. By default, applies the same decision to every step sharing the identical diff, both within the session and across sibling sessions with the same scenario name. eyes_resolve_regionsAdds, removes, or updates a step's match regions, read against either the baseline or the checkpoint image/DOM. Propagates the same way as eyes_resolve_checkpoint. Note: This tool always requires your explicit approval before running eyes_resolve_saveCommits every accepted/rejected step and every region change in the whole batch to the baseline — all of the batch's tests, not just the session you name. Until this runs, resolution decisions stay pending and the baseline is untouched. Note: This tool always requires your explicit approval before running eyes_resolve_resetRestores a session's or batch's baseline to the revision the test originally ran against, and clears any pending resolution decisions. Note: This tool always requires your explicit approval before running Getting started & Usage ExamplesAsk your AI assistant about Applitools:
Helpful linksBuilt with ❤️ by Applitools |