Run real-browser QA audits on web apps to detect broken flows, console errors, missing analytics, consent issues, security headers, tap targets, andβ¦
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Prufa MCP.
Vibe-coded apps ship faster than anyone can review them. In June 2026 we audited 49 fresh Show HN launches β 38 had a critical bug on day one: a broken signup, a silent console error, analytics that never fired, a consent banner that did nothing.
Prufa is the agent that catches those before your users do. Point it at a URL and it audits the things humans skip when they're moving fast β broken flows, JS console errors, missing tracking, consent violations, security headers, mobile tap targets, accessibility β and hands back machine-verified findings, graded AβF. This repo is the open-source MCP server that wires that audit straight into your coding agent.

Ask your agent to audit https://yourapp.com and prufa_run_audit returns one
JSON report. Findings are grouped into graded sections, each finding carries a
severity, the impact (why it matters), and a fix hint. Real output,
trimmed:
report_url is a shareable HTML version of the same report. The full payload
also includes tracking, consent, seo/aeo, a11y, forms, and detected
user flows β see the OSS surface below.
The package is on PyPI. Install it
globally with pipx (recommended β isolated venv, exposes the prufa-mcp
binary on your PATH) or into a project venv with pip:
You also need a free Prufa API key. The first audit is free, no card required.
The MCP server runs as a stdio subprocess, spawned by your agent on first use.
The cleanest way to register it is claude mcp add (Claude Code's built-in
command β it writes the config to ~/.claude.json correctly, which the
~/.claude/mcp.json path does NOT).
Restart Claude Code (config is read at startup), then verify:
You should see prufa listed as Connected, with prufa_run_audit and
prufa_get_report as available tools.
.mcp.json)In your project root or in ~/.config/Claude/ etc.:
Restart the host app. The command path must be the absolute binary path
(not ~, not $()) β those don't expand in MCP config.
Prefer config files to env vars? Drop your token in
~/.config/prufa/mcp.jsoninstead β see ADVANCED.md.
In your agent:
prufa_run_audit with wait=true (the default) blocks until the audit
completes and returns the JSON report directly β typically 25β60s for a public
page. If you set wait=false, the call returns immediately with the queued
state plus a share_token you can poll with prufa_get_report.
prufa-mcp exposes the whole product over MCP (44 tools). Point your agent
at Prufa and it can audit pages, drive multi-step flows, watch for regressions,
run chaos tests, run full-auto discovery, and manage the workspace + billing β
no dashboard round-trip. Free/anonymous tools need no card; Pro tools return the
API's 402 with a checkout link when you're not on a plan (the tool is visible,
the paywall is server-side).
| Tool | What it does |
|---|---|
prufa_run_audit(url, wait=true) | One-shot public-page audit; blocks and returns findings JSON. |
prufa_get_report(run_id?, share_token?) | Fetch a report by UUID or /r/ slug. |
prufa_get_run(run_id) | Poll a run's status. |
prufa_list_runs(limit) | Recent runs in the workspace. |
prufa_get_finding(run_id, finding_key?) | Persisted findings, machine-readable. |
prufa_list_alerts() | Alert ledger (newest first, incl. suppressions). |
| Tool | What it does |
|---|---|
prufa_setup_workspace(owner_email, name?) | Create a free, no-card agent_temp workspace (7-day trial) and return an API token once. If a token is already set, returns the real workspace + trial state. |
prufa_get_workspace() | Current workspace + inlined usage + a trial block. |
prufa_get_usage() | Usage object + trial/upsell blocks β call before metered actions. |
prufa_workspace_settings(...) | Usage webhook, auto-recharge, email/Slack switches. |
prufa_set_notifications(cells) | The 9-event Γ {email, slack} routing matrix. |
| Tool | What it does |
|---|---|
prufa_upgrade_plan(tier) | Stripe checkout URL for a paid plan (starter/pro/team). |
prufa_buy_credits(credits) | Stripe checkout URL for a one-time credit pack. |
prufa_billing_portal() | Stripe customer portal URL (card, invoices, cancel). |
| Tool | What it does |
|---|---|
prufa_create_flow(url, test_case, name?) | Compile a plain-text test case to a draft spec. |
prufa_confirm_flow(flow_id, spec?) | Approve a draft β only confirmed flows run. |
prufa_run_flow(flow_id, credentials?) | Execute a confirmed flow. |
prufa_set_flow_credentials(flow_id, credentials) | Store {{VAR}} values (write-only). |
prufa_edit_flow(flow_id, spec) | Edit the spec (returns it to draft). |
prufa_get_flow Β· prufa_list_flows Β· prufa_delete_flow | Read Β· list Β· remove. |
| Tool | What it does |
|---|---|
prufa_start_monitor(url, cadence?, flow_id?) | 1-click monitor; returns a deploy-hook secret once. |
prufa_trigger_monitor(monitor_id) | Run now (rate-capped). |
prufa_pause_monitor Β· prufa_resume_monitor Β· prufa_get_monitor Β· prufa_list_monitors Β· prufa_delete_monitor | Lifecycle. |
prufa_rotate_monitor_webhook(monitor_id) | Rotate the deploy-hook secret. |
prufa_list_monitor_deliveries(monitor_id) | Deploy-hook delivery log + CI snippets. |
| Tool | What it does |
|---|---|
prufa_run_gremlin(url, persona?, direction?, credentials?) | Imitate a difficult user; detectors verify what breaks. Mutations dry-run unless authorized; payments never execute. |
prufa_rerun_gremlin(run_id) | Re-run a past gremlin with the same intent + saved login. |
prufa_authorize_domain(host, allow_mutation?) | Allow real (non-payment) writes on a host you own. |
prufa_list_gremlin_domains() | List mutation authorizations. |
prufa_gremlin_saved_logins() | Reuse a prior login (owning workspace only β sensitive). |
prufa_promote_gremlin_path(share_token, path_index) | Turn a reproduced bug path into a draft flow. |
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/prufa-dev-prufa-mcp)<a href="https://allmcps.com/mcp/prufa-dev-prufa-mcp"><img src="https://allmcps.com/api/badge/prufa-dev-prufa-mcp?style=directory" alt="Prufa MCP on AllMCPs" /></a>