> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.recursiv.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.recursiv.io/_mcp/server.

# Automated QA with Claude Code

## Step 1: Install

```bash
npx -p @recursiv/cli recursiv mcp install claude-code
```

Prompts for your email, creates your account, and configures everything. Done in 30 seconds.

If your dev server runs on a port other than 3000, set `RECURSIV_TUNNEL_PORT` in the generated `.mcp.json`:

```json
"env": {
  "RECURSIV_API_KEY": "sk_live_...",
  "RECURSIV_TUNNEL_PORT": "3001"
}
```

> **Info**
>
> Already have an API key? Just create `.mcp.json` with `{"mcpServers":{"recursiv":{"command":"npx","args":["-y","@recursiv/mcp"],"env":{"RECURSIV_API_KEY":"sk_live_..."}}}}`

## Step 2: Tell Claude to QA your app

Start your dev server, then tell Claude:

> "QA my app — test the landing page, sign up flow, and navigation"

Claude deploys QA agents through a secure tunnel to your localhost. They open your app in a real browser, navigate through flows, and report back what's broken — with screenshots.

Then Claude fixes the issues and retests. You don't touch the browser.

## Make it permanent

Want Claude to QA automatically on every UI change? Add this to `CLAUDE.md`:

```markdown
## QA
Before completing UI work, call browser_use_run_task to test the app.
Fix issues and retest until clean. Max 3 loops.
```

Now Claude will never say "done" without testing first.

## How it works

The MCP opens a secure outbound tunnel from your machine to Recursiv. QA agents travel through it to reach your localhost. No ports exposed, no tools to install, nothing to configure.

* **localhost** → agents reach your dev server through the tunnel
* **deployed URL** → tell Claude the URL and agents go there directly

## Tools available

| Tool                   | What it does                                                                |
| ---------------------- | --------------------------------------------------------------------------- |
| `browser_use_run_task` | Autonomous browser agent — navigates, clicks, fills forms, reports findings |
| `browser_screenshot`   | Screenshot of any page                                                      |
| `browser_inspect_page` | Page structure — headings, buttons, links, forms                            |
| `run_visual_audit`     | Compare against stored baselines, catch regressions                         |

## Works with

Next.js, Vite, Remix, Astro, SvelteKit, Nuxt, Express, Hono — any framework that serves over HTTP.