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.1.tar.gz (14.1 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.1-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: prufa_mcp-0.1.1.tar.gz
  • Upload date:
  • Size: 14.1 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.1.tar.gz
Algorithm Hash digest
SHA256 91c0e4b29ddfb362aabc38fa6c1c0632ad30e5036c929e3cb074dd94b69e53be
MD5 5529eec94552d6a3b9cf3498a191b433
BLAKE2b-256 ad188ef8272a9d307fc96a6fa7654ef43b77bec3893371a0be66441ef387b75d

See more details on using hashes here.

Provenance

The following attestation bundles were made for prufa_mcp-0.1.1.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.1-py3-none-any.whl.

File metadata

  • Download URL: prufa_mcp-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 12.6 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5ea421961fd578e64017103c491f8b2bc6a856f7b24ab27440dd0396be147423
MD5 5da49831aee4494770c9a3ed8103dc0e
BLAKE2b-256 9b04de868e8a0edae50d7333f45d184c053dbf612ea574bfb995624b89b4e9a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for prufa_mcp-0.1.1-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