Prufa

by prufa-dev

221 downloads
Not rated
GitHub

Description

# prufa-mcp — the QA agent for your vibe-coded app <!-- mcp-name: io.github.prufa-dev/prufa-mcp --> **Vibe-coded apps ship faster than anyone can review them.** In June 2026 we audited [49 fresh Show HN…

About

# prufa-mcp — the QA agent for your vibe-coded app <!-- mcp-name: io.github.prufa-dev/prufa-mcp --> **Vibe-coded apps ship faster than anyone can review them.** In June 2026 we audited [49 fresh Show HN launches](https://prufa.dev/blog/engineering/we-audited-49-show-hn-launches/) — **38 had a critical bug on day…

Details

Author
prufa-dev
Downloads
221
Categories
Other

- One-shot public-page audit with JSON report.
- 44 tools for audits, flows, monitors, chaos QA, and discovery.
- Multi-step flow testing from plain-text test cases.
- Scheduled monitors with deploy-hook integration.
- Gremlin chaos QA imitating difficult users.
- Full-auto site discovery to draft meaningful flows.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Prufa
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Install prufa-mcp via pipx or pip, get a free API key from prufa.dev, then wire the MCP server into your agent (e.g., Claude Code, Cursor, Cline, Continue) using stdio subprocess. Use tools like prufa_run_audit to audit URLs and prufa_get_report to fetch reports.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "prufa": {
            "prufa": {
                "command": "uvx",
                "args": [
                    "prufa-mcp"
                ],
                "env": {
                    "PRUFA_API_KEY": "<YOUR_TOKEN>"
                }
            }
        }
    }
}

McpServers

{
    "prufa": {
        "command": "uvx",
        "args": [
            "prufa-mcp"
        ],
        "env": {
            "PRUFA_API_KEY": "<YOUR_TOKEN>"
        }
    }
}

prufa-mcp — the QA agent for your vibe-coded app

<!-- mcp-name: io.github.prufa-dev/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.

30-second demo

Installing prufa-mcp and wiring it into Claude Code

What an audit gives you

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:

{
  "url": "https://yourapp.com",
  "headline": "2 warnings found",
  "counts": { "critical": 0, "warning": 2, "info": 5 },
  "sections": [
    { "label": "Works",     "grade": "C", "counts": { "warning": 2, "info": 1 } },
    { "label": "Fast",      "grade": "A" },
    { "label": "Found",     "grade": "A" },
    { "label": "Compliant", "grade": "A" }
  ],
  "check_results": [
    {
      "check_id": "ux",
      "findings": [{
        "severity": "warning",
        "title": "2 javascript console error(s) during page load",
        "impact": "Errors at load time often mean broken features visitors never report.",
        "evidence": { "count": 2, "sample": [
          "Access to XMLHttpRequest at 'https://api.fontshare.com/...' blocked by CORS policy",
          "Failed to load resource: net::ERR_FAILED"
        ]}
      }]
    },
    {
      "check_id": "mobile",
      "findings": [{
        "severity": "warning",
        "title": "13 tap target(s) smaller than 24px",
        "impact": "Fingers are not cursors — undersized buttons mean mis-taps on exactly the elements you want pressed.",
        "fix_hint": "Give interactive elements at least 24x24px of hit area (WCAG 2.5.8)."
      }]
    },
    {
      "check_id": "security",
      "findings": [{
        "severity": "info",
        "title": "no Content-Security-Policy header",
        "impact": "Without a CSP, one injected script owns the page — and every third-party tag you load is trusted completely.",
        "fix_hint": "Start with a report-only CSP and tighten from real violation reports."
      }]
    }
  ],
  "report_url": "/r/G82RpzTi_zn-o71_XoMLCprP7uvCQP87"
}

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.

Install

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:

```bash

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.