Check’d in your AI assistant
The Check’d MCP server lets an AI coding assistant work with your test results: look at the latest run, read a failure’s exact request, response and diagnosis, fix the code, and re-run the failed tests to confirm. It runs on your machine over stdio and talks to the Check’d API with your key.
Tools that only read are free. Tools that start runs, scans or re-runs use your workspace’s allowance, and say so in their descriptions so the assistant asks before using them.
1. Get a key
Create a workspace API key under Settings, API keys (owners and admins). The key reaches only that workspace. If you already ran checked login on this machine, the server can use that sign-in instead and you can leave the key out.
2. Add it to your assistant
Claude Code
claude mcp add checked --env CHECKED_API_KEY=tfy_your_key -- npx -y @checked/mcp
Cursor: .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"checked": {
"command": "npx",
"args": [
"-y",
"@checked/mcp"
],
"env": {
"CHECKED_API_KEY": "tfy_your_key"
}
}
}
}VS Code: .vscode/mcp.json (VS Code asks for the key once and stores it)
{
"inputs": [
{
"type": "promptString",
"id": "checked-api-key",
"description": "Check’d workspace API key",
"password": true
}
],
"servers": {
"checked": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@checked/mcp"
],
"env": {
"CHECKED_API_KEY": "${input:checked-api-key}"
}
}
}
}Needs Node.js 20 or newer; npx fetches the server the first time. Set CHECKED_API_URL as well if you use a Check’d server other than https://getchecked.twelveai.app.
Tools
| Tool | What it does |
|---|---|
| whoami | Read-only, free. Which account or key the server uses. |
| list_projects | Read-only, free. Projects with their last run. |
| list_environments | Read-only, free. A project’s environments (secrets masked). |
| list_runs | Read-only, free. Recent runs. |
| get_run | Read-only, free. Status, release gates, verdict, top problems. |
| wait_for_run | Read-only, free. Wait up to 10 minutes for a run to finish. |
| get_run_results | Read-only, free. Individual API test results. |
| get_run_report | Read-only, free. The AI QA report. |
| list_findings / get_finding | Read-only, free. Problems with request, response, stack trace, diagnosis and fix. |
| list_issues / get_issue | Read-only, free. Issues (today the latest run’s findings). |
| get_usage | Read-only, free. Session and month usage. |
| preview_import | Read-only, free. What an API import would add (nothing saved). |
| start_run | Starts work, uses allowance. Start a run, optionally wait for the result. |
| rerun_failed | Starts work, uses allowance. Re-run only the failed tests of a run. |
| start_scan | Starts work, uses allowance. Scan a website. |
| import_spec | Makes changes. Save endpoints from an API document. |
| cancel_run | Makes changes. Cancel a run. |
Projects and runs are named by their ref or number; finding ids look like r123 (a failed API test) or f456 (a website finding). start_run and start_scan can wait for the result for up to 10 minutes; for longer runs the assistant calls wait_for_run again rather than starting another run.
Resources and prompts
Run reports, run results and findings are also readable as resources: checked://runs/{run}/report, checked://runs/{run}/summary and checked://findings/{id}. The fix_failures prompt walks the assistant through the latest run of a project and fixes what it can in your code.
Things to ask
- What failed in the latest Check’d run of payments-kqzxm, and why?
- Show me the request and response for the worst finding and fix the handler.
- I fixed it; re-run the failed tests and tell me if the release gates pass now.
- How much of this session’s Check’d allowance is left?
Usage and safety
When the allowance for the session is used up, tools that start work return the server’s message and the reset time, and the server tells the assistant not to retry. Environment settings come back with their secrets masked, as in the app. Read-only tools do not start work or change your projects. Test evidence (requests and responses) is shown as recorded, as it is on the run page, so treat it like any test log.