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.2.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.2-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: prufa_mcp-0.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 038a00b927d8f606ad7691d1949724958d3f79d72395ad009683f51e569e00df
MD5 cded380bbf76db307fa1cd4e63b74a55
BLAKE2b-256 46c9a5b37c6373e62cdf7931952c000baeda61e1f66cd6e1f13238909a81ccb3

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: prufa_mcp-0.1.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b33aed6ec46ad1e1059394eba806630e89c8319e109b15504f4528ae8abc305d
MD5 0397d287c3b5455babf6166245a3fd4c
BLAKE2b-256 590f43f67574d538bc6143118634c12523a1e698cbb4a12fdc75d903fe991e92

See more details on using hashes here.

Provenance

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