Happo runs an MCP server that lets AI assistants (Claude, ChatGPT, Cursor, and other MCP-aware clients) inspect and resolve your visual-regression comparisons. The server speaks the standard Streamable HTTP transport and authenticates with OAuth 2.1, so most clients can connect with a single URL — you sign in once in your browser and the client takes it from there.
When prompted by your MCP client, paste this URL. The client will discover the OAuth endpoints automatically (via /.well-known/oauth-protected-resource) and open a browser window so you can sign in to Happo and pick which account the assistant should connect to.
list_comparisons_for_sha — given a commit SHA, find every comparison associated with it.get_comparison_details — get the full set of diffs, added/deleted/ignored snapshots for a comparison between two reports.approve_comparison / reject_comparison — resolve a "needs review" comparison after inspecting the diffs.report_flake — mark a specific diff as a flake/spurious. This both ignores the diff and records a Flake row attributed to the connected user.From the terminal:
Claude Code will print an authorization URL the first time you use any tool — open it, approve the consent screen, and you're connected.
Open Settings → Connectors → "Add custom connector" and paste the MCP URL above. Claude Desktop's built-in OAuth flow will walk you through the consent step.
Add Happo as a remote MCP server using Streamable HTTP. You can use the global config file (~/.cursor/mcp.json) so Happo is available in every project, or add .cursor/mcp.json at a repository root to share the setup with your team.
Example mcp.json. The urlmust be the same as the server URL at the top of this page (for self-hosted Happo, use your deployment's origin instead of happo.io).
Save the file, then reload Cursor or toggle the Happo server under Settings → Features → Model Context Protocol. The first time you invoke a Happo tool, Cursor opens a browser so you can sign in to Happo and choose which account the assistant may use.
When you authorize a client, you'll pick which Happo account the connection applies to. The assistant inherits your permissions for that account — it can read everything you can read, and approving/rejecting comparisons is recorded against your user (just like clicking the buttons in the UI).
You can revoke any connection from the Connected applications section on your account's API tokens page.