The docs. Mercifully short.
Everything you need to run QC Pro against your app, read a report, and wire the fixes into Claude Code. No filler.
Your first scan
Paste a URL, get a score in ~60 seconds. No install, no config.
Methodology
The 12 categories QC Pro checks, with pass/fail examples for each.
Claude Code via MCP
Pipe findings straight into your Claude session and apply fixes in place.
HTTP API
Trigger scans programmatically. Webhook when findings change.
#Your first scan
The fastest way to see what QC Pro does: paste a URL into the homepage scan box, or run the CLI. Either way, you'll have a scored report in about a minute.
# one-shot, no install
npx qcpro scan https://your-app.com
# with auth, viewport, and a starting route
npx qcpro scan https://your-app.com \
--login "qa@yourco.com" \
--viewport mobile \
--start /signupQC Pro spins up a real Chromium, profiles it as a first-time user, and runs through all twelve categories. No special selectors, no test scripts to maintain - it uses the page like a person would.
Heads up: scans are real traffic
QC Pro will sign up test accounts, click checkout buttons, and fire webhooks. Point it at staging for production apps, or use --sandbox to stub payment providers.
#Reading a report
Every scan produces a score (out of 100), a list of findings, and a diff of what changed since the last run on that URL.
A finding is always three things: what happened (plain English), how to reproduce it (numbered steps), and a proposed fix (a code diff). If we can't give you all three, it doesn't ship.
How the score is calculated
Each of the 12 categories contributes up to 100/12 points. Inside a category, the score drops based on the highest severity seen:
| Severity | Deduction within category | When to ship anyway |
|---|---|---|
| critical | −100% | Never |
| high | −60% | If scoped to a minor flow |
| medium | −25% | Often - file a ticket |
| low | −10% | Usually - polish later |
Severity definitions
- critical - a named promise is broken. A core flow can't complete. Example: signup 404s; checkout silently fails for a whole region.
- high - the experience is meaningfully degraded for many users. Example: hero wraps into an unreadable soup on iPhone SE.
- medium - noticeable but has a workaround. Example: Google sign-in button has an 800ms flash of missing UI.
- low - cosmetic or edge-case browser issue. Example: button ripple drops frames on Safari 15.
#CLI
The CLI is the most direct way to run scans locally or in CI. Install globally or one-shot with npx.
# install
npm i -g @qcpro/cli
# auth once
qcpro login
# run a scan, pretty-print findings
qcpro scan https://staging.yourco.com --format pretty
# save fix diffs to apply locally
qcpro findings --last --format patch > changes.patch
# or pipe straight to the clipboard (macOS)
qcpro findings --last --format patch | pbcopy#Claude Code (MCP)
Wire QC Pro into Claude Code via MCP and findings arrive in your session as structured tool calls. Claude can run scans, fetch diffs, and apply them - in place - without copy-paste.
claude mcp add qcpro https://mcp.qcpro.ai
# then, in Claude:
> run qcpro against staging and apply criticalsPro tip: checkpoint before applying
Ask Claude to commit a checkpoint before it applies QC Pro fixes. We also ship a Vercel integration that creates a checkpoint per preview deploy automatically.
#GitHub Action
Scan every preview deploy and comment the findings on the PR.
# .github/workflows/qcpro.yml
name: qcpro
on: deployment_status
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: qcpro/scan@v1
with:
url: ${{ github.event.deployment_status.target_url }}
token: ${{ secrets.QCPRO_TOKEN }}
comment_on_pr: true#HTTP API
For anything not covered above, the JSON API is the escape hatch.
POST https://api.qcpro.ai/v1/scans
Authorization: Bearer $QCPRO_TOKEN
{
"url": "https://staging.yourco.com",
"viewports": ["mobile", "desktop"],
"webhook": "https://yourco.com/hooks/qcpro"
}#Policies
Policies let you set hard rules across every scan - "no eval() in shipped JS", "all forms must have labels", "Stripe must use automatic_tax". Violations always surface as critical regardless of category.
#Glossary
- Run - a single scan against one URL at a point in time.
- Finding - one reproducible issue with steps and a proposed fix.
- Category - one of 12 dimensions QC Pro checks. See Methodology.
- Baseline - the last scored run on a URL, used to compute regressions.
- Policy - a hard rule that applies across every scan in a workspace.
#Changelog
- v2.4 - Claude Code MCP integration, Vercel checkpoints, 3x faster scans.
- v2.3 - Policies, promise-vs-reality category, severity thresholds per category.
- v2.2 - Mobile Safari / iOS scan profile, flaky-run detection.