GateTest is a CLI plus GitHub Action that runs 120+ static-analysis modules against a codebase and uses Claude to auto-fix what it can, replacing tools like SonarQube, Snyk, ESLint, and Lighthouse with one gate decision.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
One-click editor setup isnβt available for this listing yet β we donβt have a confirmed install command, and weβd rather show nothing than point your editor at the wrong package or host. Follow the projectβs own setup instructions, linked above.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Gatetest.
AI-powered code quality. Pay per scan via Stripe.
GateTest is a single CLI plus a composite GitHub Action that runs 121 static-analysis modules against any codebase, then uses an AI fix engine to repair the findings it can. It replaces SonarQube, Snyk, ESLint, Cypress, Lighthouse, axe, pa11y, and twenty-plus other tools with one config, one gate decision, and one report.
It is different because the cost trends to zero. Deterministic AST and rule-based layers run first β these are free and ship the fix in milliseconds. The AI layer only runs on patterns nothing else has seen. Every AI win is distilled into a reusable recipe, so the next time the same pattern appears anywhere in the network it is handled for free. The longer you run GateTest, the less of it is paid work.
What you get depends on the tier. A pull request with the fixes, regression tests pinned to each fix, an architecture-shape critique, a cross-finding attack-chain analysis, and a CTO-readable executive summary β in whichever combination the tier you bought includes. One-time payment per scan via Stripe at checkout. No subscription, no auto-renew.
Drop this in .github/workflows/gatetest.yml:
The action is a composite β no Docker pull, no container build. It installs GateTest, runs the gate, and if auto-fix: true and ANTHROPIC_API_KEY is set, runs the AI repair loop on a blocking gate. See action.yml for every input.
The action authenticates with the workflow's own token by default (github-token input, ${{ github.token }}), so the permissions: block above is all it needs: without pull-requests: write the summary comment and suggestions are skipped, with a warning in the log. Add issues: write if you turn on track-non-fixable: true, and security-events: write (plus actions: read) if you upload the --sarif report to the Security tab with github/codeql-action/upload-sarif (see Wire it into CI below).
Your first full run passes. Turning a gate on against an existing codebase would otherwise fail on years of backlog nobody wrote this week, so a full-repo run that finds no .gatetest/baseline.json snapshots what is already there and exits green. Commit that file and every run after it fails on new findings only β pull requests are judged on the files they change from the very first run. Details under baseline mode.
The whole engine in your Problems panel, before you commit. Every finding lands on the line that caused it, with the fix. Free, no account, and nothing leaves your machine.
Source and the full command reference: vscode-extension/.
Run the full pre-merge sweep locally in one command:
This runs the same seven checks that block a merge in CI. Verdict is green or red. Exit code is 0 or 1, matching CI exactly.
Fast path during iteration:
See gatetest sweep --help for every flag.
Every scanner gets it wrong sometimes. When GateTest flags something you've judged safe, add one line to a .gatetestignore file at your repo root:
Suppressed findings are excluded from the gate decision and every failure count, but stay visible in a suppressedChecks list β nothing is silently hidden. Two more controls:
gatetest --noise β ranks your noisiest modules and prints the exact ignore line to copy. The same signal, aggregated across every opted-in scan, is published rule by rule at gatetest.io/noise.The policy is reviewed as policy. .gatetest.json and .gatetestignore are what
every later PR is judged by, so a PR that changes them says so: a suppression added
to .gatetestignore, a module disabled, the gate set to report-only or the block
threshold raised in .gatetest.json each produce a Gate policy changed warning on
that PR β reported, never blocking, quiet on comments and on tightening. Every
signed report records the SHA-256 of both files (gatetest verify-report prints
them), so two reports that disagree can be told apart by policy, not only by
engine.
Project-wide options live in .gatetest.json (suites, per-module config, severity overrides) β run gatetest --init to scaffold one.
Turning a scanner on against a large existing codebase usually means drowning in a backlog you didn't write. GateTest's baseline mode grandfathers everything that exists today so the gate only ever fails on new findings β "clean as you code."
Fix a baselined finding and it's gone for good; the count is tracked per file, so adding a second secret to a file that already had one baselined re-blocks the gate (you can't sneak a new problem in behind an old one). Refresh the snapshot after paying down debt with gatetest --baseline; delete .gatetest/baseline.json to see everything again.
The live crawler can carry a session so it reaches authed areas (/dashboard/*, account pages) instead of bouncing off the login redirect:
Session material is only ever sent to the target's own origin β never to third-party links, assets, or cross-origin redirects. Without a session, a crawl that hits a login wall tells you exactly which flag to add rather than silently skipping the protected pages. The hosted scanner at gatetest.io accepts the same session auth.
Connect GateTest directly to Claude Code (or any MCP-compatible AI) in one command:
24 tools across five families:
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/gatetest)<a href="https://allmcps.com/mcp/gatetest"><img src="https://allmcps.com/api/badge/gatetest?style=directory" alt="Gatetest on AllMCPs" /></a>