Skip to main content
Checksum runs a hosted MCP server, so any MCP-capable coding agent can drive Checksum directly. Connect once, then just ask in plain English:
“Generate Checksum tests for this PR.” “My checkout test is failing — heal it.” “Why did the last test run fail?”
The work runs in Checksum’s cloud and comes back as a pull request — no local test engine, no Playwright install, nothing running on your machine.
New to MCP? MCP is a standard way for AI coding assistants to use outside tools. Connecting Checksum over MCP means your assistant — Claude Code, Cursor, Copilot — can generate and fix tests for you just by being asked. You don’t need to understand the protocol to use it; you connect once and then talk normally.
Server URL
This complements Coding Agent Integration rather than replacing it. Those slash commands run locally against your repo (and can also detect test cases). The MCP server triggers cloud generation and healing, with nothing to install.

Before you start

You need all three:
  1. A Checksum project that’s set up — environment URL, test users, and Git connected. If you haven’t done that yet, start with Getting Started; the MCP server has nothing to act on without it.
  2. You’re logged in to app.checksum.ai in your browser. The approval screen needs an active session.
  3. An MCP-capable client — Claude Code, Cursor, VS Code (Copilot), Claude desktop/web, or any other MCP client.

Connect your client

You sign in through your browser and approve which projects the client may use. There’s no API key to copy, paste, or accidentally commit.
Install the Checksum plugin — it adds the connection plus skills that know how to push your branch and find the right pull request before a cloud run:
Then run /mcp, pick checksum, and approve in the browser.
Then run /mcp and pick checksum to sign in.

What you’re approving

The browser shows you which projects the client may act on. If you have access to several, you can grant only the ones you want — the client can never reach a project you didn’t approve. Access is re-checked on every request, so if you lose access to a project, the client loses it too. Review or revoke a connection any time from the MCP connections card on My Profile in the web app. A connection is tied to you, not to a project — so it lives with your account, and revoking it cuts the client off from every project you granted.

Check that it worked

Ask your agent, in plain English:
It replies with the project you’re connected to and a link to its dashboard. That one call proves the whole chain — client, connection, sign-in, and project access. If it works, you’re done. If it doesn’t, see Troubleshooting.
Push your work first. Checksum generates in the cloud by checking out your repo from your Git provider, so it only ever sees commits you’ve pushed. Ask it to cover code that’s still on your machine and it will happily test the old version, and you’ll wonder why the tests are wrong.Commit and push, then ask. (The Claude Code plugin does this for you.)

What you can ask

Once connected, talk to your agent normally — it picks the right tool. Cover a pull request:
Cover a flow you just built:
Fix failing tests:
Investigate a failure before fixing it:
Steer a run that’s already going:
Checksum only opens a pull request for a PR-based run — one where it knows the pull request number, the repository, and the branch. Ask it to generate tests for a flow you describe and it will do that, but the tests land in the session for review rather than in a PR.

Tools

Your agent picks these automatically; you rarely name them yourself. They’re listed so you know what the server can and can’t do. checksum_whoami, checksum_session_status, checksum_test_run_list, checksum_test_run_download and checksum_session_list are read-only. checksum_test_generate, checksum_test_heal and checksum_session_prompt change things — they start billable cloud runs and can open pull requests, so a good client will ask you to confirm before running them. Every result comes back with links straight into the Checksum web app, so you can watch a session or open a run rather than squinting at ids.
Give checksum_test_generate either a pull request — the number, the repository, and the branch, all three — or extraInstructions describing the flow to cover.Those three fields together are what make Checksum open a pull request with the generated tests. A description-only run doesn’t open one; the tests land in the session for you to review first.Asking twice for the same pull request won’t start a second run — it picks up the one already going.You can also point a run at a different environment (a preview deployment, say) with envOverrides.
checksum_test_heal needs the testRunId of a run that has failures — ask your agent to list recent runs if you don’t have one to hand. It opens one heal session covering all the failing tests in that run and, by default, a pull request with the fixes.Healing works from a run that already finished, so there’s nothing to push first.Heal is honest about what it finds. If a test is failing because your app genuinely broke, it reports a real bug rather than rewriting the test to go green.Healing a run with nothing failing returns No failing tests found in test run: <id>.
checksum_session_status is what your agent polls. It reports overall progress, and includes the agent’s latest messages and file changes — so it can tell you what’s happening instead of “still running”.To redirect a run that’s already going, use checksum_session_prompt — the same as typing into the session in the web app. A session that already failed or was cancelled won’t accept a prompt, and you’ll get an error saying so.
checksum_test_run_download with a testRunId gives you the per-test results inline (what passed, what failed, and why) plus a link to the self-contained HTML report.To dig into one failing test, pass its testId as well — that returns its trace, screenshots and video. Those links are signed and expire, so they don’t stay live forever in a chat log.It lists your standard end-to-end runs; API-test runs and hidden runs don’t appear.
If your account has access to more than one Checksum project, the tools that act on a single project need to know which one — otherwise you’ll see:
Just tell your agent which project you mean and it’ll pass the right id. Run checksum_whoami to see the list. An API key is always tied to exactly one project, so this never comes up there.

Connect with an API key

Browser sign-in needs a browser. For CI, a container, or a client that only speaks static tokens, use an API key instead. If browser sign-in worked, skip this. Grab the key from Settings → Project Settings in the web app (the same one the CLI and CI use), and send it as a bearer token:
Your shell expands the value at the moment you run this, so the key is written into Claude Code’s config file as plain text. Treat that file as a secret — or use browser sign-in, which stores no key at all.
An API key can start real cloud runs and open pull requests on your repo. Keep it out of any file you might commit, and prefer browser sign-in whenever you have a browser.

Troubleshooting

Most clients only read MCP config at startup — restart the client after editing mcp.json.Then ask your agent to run checksum_whoami. If that works, the connection is fine and the problem is your client’s tool list, not Checksum.
If you signed in through the browser, the session may have expired — reconnect from your client’s MCP settings.If you’re using an API key: check it’s sent as Authorization: Bearer <key>, and that it hasn’t been rotated in Settings → Project Settings.If you configured an API key earlier and are now trying browser sign-in, remove the old entry and its Authorization header first — a stale header wins over the browser session, and the client won’t fall back.
It needs an active Checksum web-app session. Log in to app.checksum.ai in the same browser, then start the connection again.If you have no projects yet — or yours is still pending review — there’s nothing to authorize; finish project setup first.
On a corporate network or VPN, traffic to api.checksum.ai may be blocked or intercepted. Check you can reach it:
If that hangs or fails, ask IT to allow api.checksum.ai over HTTPS (port 443). A TLS-inspecting proxy can also break the connection by re-signing certificates — it needs api.checksum.ai on its bypass list.Note that a proxy configured in your shell isn’t visible to a GUI app like Cursor or VS Code unless you launch it from that shell.
Checksum checks out your repository from the remote, so it only sees pushed commits. If your work is still local, commit and push, then ask again.
Checksum opens a PR only when it has the pull request number, the repository, and the branch. A run from a plain description produces tests in the session instead. Open a PR for your branch and ask again, referencing it.
Healing only operates on runs that actually failed. Ask your agent to list recent runs and pick one with failures.
Checksum speaks Streamable HTTP, not SSE — use the same URL and choose the HTTP transport.A client that can only launch local (stdio) servers can’t connect directly. Most such clients can be pointed at a remote server through a bridge, but the simplest path is to use one of the clients above.

Security

  • Your code is never uploaded from your machine. Checksum clones your repository from your connected Git provider, in the cloud. The MCP server only carries instructions and results.
  • Browser sign-in is scoped. You choose which projects a client may touch, and access is re-checked on every request. Revoke it any time from My Profile.
  • Report and trace links are signed and expire, so a URL pasted into a chat log doesn’t stay live forever.
  • Tools that cost money or open PRs are marked as such, so your client can ask before running them.

Next Steps