Agent setup
Onboard your agent to Snapvisor
Copy one sentence into your AI coding agent to guide it through Snapvisor setup: the MCP server, the SDK for your test runner, and a check that the connection works.
Fastest: Add to Claude
Using claude.ai, Claude Desktop or Claude Code signed in with a Claude account? Add Snapvisor as a connector in one click, then sign in to approve access.
Add to ClaudeMCP requires a paid planPaste one sentence
Fetch and execute the appropriate instructions to set me up for Snapvisor from https://snapvisor.io/agent-setup/prompt.md
The sentence points the agent at /agent-setup/prompt.md, a plain markdown file with the exact commands below. The agent handles setup and reports any sign-in, restart, or CI secret steps you need.
Guides per agent
Claude CodeOne command adds the remote MCP server; OAuth opens in the browser on first use.
CodexRegister the streamable HTTP server, then
codex mcp login runs the OAuth consent.CursorOne entry in
mcp.json, global or per project; sign in from Cursor's MCP settings.OpenCodeA remote entry under
mcp in opencode.json, then opencode mcp auth for OAuth.How the credentials work
- MCP server, OAuth 2.1 (default). A request without a token gets a
401; compatible clients offer browser sign-in to Snapvisor. The client handles token storage after you approve access. The grant appears under Settings, Applications in the app and can be revoked there. - MCP server, personal access token (headless alternative). Use it only when the user asks for a token-based setup or your client cannot open a browser. If
SNAPVISOR_ACCESS_TOKENis not already set, ask the user ONCE to create a token at https://app.snapvisor.io under Settings, Tokens, and to export it asSNAPVISOR_ACCESS_TOKENin their shell profile. Never write the token into a file that is committed. - Project tokens are rejected by the MCP server. A project's
ARGOS_TOKENonly uploads screenshots from CI (step 3). It cannot read the API or drive the MCP server. - Plan. Hosted MCP access through OAuth requires a paid plan; eligible new teams can start a 14-day Pro trial. On Free,
getMestill verifies the connection; other OAuth operations require an upgrade. Personal access tokens use their account permissions separately.
Any other MCP client
- Point the client at
https://mcp.snapvisor.ioover streamable HTTP. Clients that use anmcpServersfile take this entry. A client that cannot run OAuth sendsAuthorization: Bearerfollowed by a personal access token.{ "mcpServers": { "snapvisor": { "url": "https://mcp.snapvisor.io" } } }
Add the SDK
- Only do this step inside a project that has a UI test suite; otherwise skip it and say so in the completion message. Use the package manager the project already uses (the lockfile tells you): the commands below are written for npm.
- Playwright (
@playwright/testinpackage.json): install the SDK, register its reporter inplaywright.config.ts, and capture screenshots withargosScreenshotin the tests that render UI.npm install --save-dev @snapvisor/playwright - The reporter uploads from CI only, so local runs stay offline:
// playwright.config.ts import { defineConfig } from "@playwright/test"; import { createArgosReporterOptions } from "@snapvisor/playwright/reporter"; export default defineConfig({ reporter: [ process.env.CI ? ["dot"] : ["list"], [ "@snapvisor/playwright/reporter", createArgosReporterOptions({ uploadToArgos: !!process.env.CI }), ], ], }); - Storybook: install
@snapvisor/storybook. Vitest browser mode: install@snapvisor/vitest. Then wire them as the SDK page describes.npm install --save-dev @snapvisor/storybook - Any other runner that writes screenshots to a folder: install the CLI and upload that folder after the tests run.
npm install --save-dev @snapvisor/cli npx @snapvisor/cli upload ./screenshots - Python projects: follow the Python SDK section of https://snapvisor.io/docs/sdks.
- Uploads authenticate with the project's
ARGOS_TOKEN, found in the project's settings at https://app.snapvisor.io. It belongs in CI secrets, never in the repository. On GitHub Actions no token is needed: https://snapvisor.io/docs/learn/integrations/github-tokenless-authentication. - Optional: the CLI can also inspect builds, submit reviews and post comments from the terminal.
loginopens the browser for the user to approve;whoamiconfirms it.npx @snapvisor/cli login npx @snapvisor/cli whoami
Verify the connection
- The
snapvisorMCP server normally shows only two tools,search_toolsandexecute_typescript, and every operation is reached through them. Callsearch_toolswith the querygetMe; it answers with the declaration ofexternal_getMe. Then callexecute_typescriptwith this program:return await external_getMe({}); - If the server instead lists
getMeas a tool of its own, call that tool directly. Either way, success is a response naming the signed-in user and the accounts the connection can reach; each accountslugis theownerargument of every other operation. - Most agents load MCP servers when a session starts. If no
snapvisortool is available to you yet, do not report failure: the completion message tells the user to restart the session and ask you to verify the connection. - A
401means the browser sign-in has not been completed yet. Insideexecute_typescripta refused call throws an error carrying the same message; wrap the call intry/catchto read it. An answer that asks for an upgrade means the connection works and the account is on the Free plan.
Something off? The MCP server guide and the FAQ cover the common cases, and support reads every message.