Skip to main content

The QA agent for your vibe-coded app. Apache-2.0 MCP server.

Project description

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

"Median 5 hours from vulnerability disclosure to mass automated exploitation." — Patchstack 2026 State of WordPress Security

Vibe-coded apps ship faster than humans can review. Prufa is the agent that audits them — tracking pixels, broken flows, consent violations, console errors — before the 5-hour window opens.

30-second demo

Prufa running on a vibe-coded Next.js app

The demo GIF will land in v0.2. Until then, see "What you get" below for the live call shape, and examples/ for runnable scripts.

Quickstart

pip install prufa-mcp
# or
npm install -g prufa-mcp  # (npm mirror — not yet published, see Task 1.11)

Then in your .mcp.json (Claude Code, Cursor, Cline, Continue, etc.):

{
  "mcpServers": {
    "prufa": {
      "command": "prufa-mcp",
      "env": {
        "PRUFA_API_TOKEN": "your-prufa-api-key"
      }
    }
  }
}

Get a free API key at prufa.dev — the first audit is free, no card required.

Then in your agent:

> audit https://my-vibe-coded-app.com
> run prufa on my staging deploy and show me the criticals
> check my landing page for broken tracking pixels

What you get (the OSS surface)

Tool What it does
prufa_run_audit One call → runs a public-page audit, returns findings JSON
prufa_get_report Fetches a shareable report for a completed audit

That's it. The audit primitive is small. The hosted product at prufa.dev is where the value compounds — scheduling, alerting, team workflows, and the human-readable HTML report.

Why open source

Same shape as Stagehand (free) → Browserbase (paid). Open the primitive. The hosted tier earns the right to be paid by being the thing that scales.

Examples

  • examples/nextjs-app/ — audit a deployed Next.js app
  • examples/vite-spa/ — audit a Vite SPA
  • examples/stripe-checkout/ — audit a Stripe-checkout page (focuses on payment-flow verification)

Each example is a copy-pasteable demo. Clone, set PRUFA_API_TOKEN, run.

GitHub Action

Add PR-time audits to any repo:

# .github/workflows/prufa-scan.yml
name: Prufa scan
on: [pull_request]
jobs:
  audit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: "3.11"
      - run: pip install prufa-mcp
      - name: Run audit
        env:
          PRUFA_API_TOKEN: ${{ secrets.PRUFA_API_TOKEN }}
        run: |
          python -c "
          import asyncio, json, sys
          from prufa_mcp.audit import run_audit
          result = asyncio.run(run_audit(url='${{ secrets.STAGING_URL }}', wait=True))
          print(json.dumps(result, indent=2))
          criticals = [f for f in result.get('findings', []) if f.get('severity') == 'critical']
          if criticals:
              print(f'::error::Prufa found {len(criticals)} critical finding(s)', file=sys.stderr)
              sys.exit(1)
          "

See examples/prufa-scan.yml for the full template.

SLO

The hosted audit API targets a 30-second p95 for wait=true on public pages. The OSS server is a thin client — it does no audit work itself, so its only SLO is "responds to MCP list_tools and call_tool within 1 second."

License

Apache-2.0. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

prufa_mcp-0.1.0.tar.gz (9.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

prufa_mcp-0.1.0-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file prufa_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: prufa_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 9.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for prufa_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 61ab2fae89055e9022d458fe152b62a49a5819b3ef572c075eef37f2e113bee5
MD5 26748570402f2dae41ee008517583d9e
BLAKE2b-256 6dc2e7a68318f2fa341f79f022fd0dcf8c2626f0e698d44edc52623af4e90fab

See more details on using hashes here.

Provenance

The following attestation bundles were made for prufa_mcp-0.1.0.tar.gz:

Publisher: publish.yml on prufa-dev/prufa-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file prufa_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: prufa_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for prufa_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d086b8cf6d1fba06f71a8c3059df82412e7d356c3ffcf955e69d403ef7ccacd5
MD5 639e7b2efeb45c41e4563be27db3e680
BLAKE2b-256 4283245975342a8e91d28f60f29c45fb7f654dd39dd2174bf1eb126861f4196f

See more details on using hashes here.

Provenance

The following attestation bundles were made for prufa_mcp-0.1.0-py3-none-any.whl:

Publisher: publish.yml on prufa-dev/prufa-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page