Quick Start

Give your agent a supervised browser: it drives a real browser, you watch live and take control when it matters, then hand it back. The fastest way in is the MCP server and a prompt. No API key needed — your agent handles authentication.

1. Install the MCP server in Claude Desktop, Cursor, or VS Code:

{
  "mcpServers": {
    "rove": {
      "command": "npx",
      "args": ["-y", "@roveapi/mcp"]
    }
  }
}

That's it. No API key. Your agent will authenticate on first use via the authenticate tool — just provide your email when asked.

2. Prompt your agent:

"Start a supervised browser session and book a flight to NYC next Friday. Ask me before paying."

Your agent will:

  • Create a supervised session
  • Give you a viewer link to watch live
  • Pause for your approval at payment
  • Let you take control of the browser anytime

What is a supervised session?

A supervised session is a browser your agent drives while you watch. You can:

  • Watch live — see every page, click, and form fill as it happens
  • Take control — grab the browser yourself for tricky parts (logins, CAPTCHAs, judgment calls)
  • Hand back — return control to the agent when you're done
  • Approve — the agent pauses for your confirmation before irreversible actions

This is different from headless automation. The browser is real, visible, and shared.

Manual API usage

If you're not using MCP, you can call the REST API directly. You'll need an API key from roveapi.com/login.

Create a supervised session

curl -X POST https://api.roveapi.com/v1/browser/session \
  -H "Authorization: Bearer <redacted>" \
  -H "Content-Type: application/json" \
  -d '{"supervised": true}'
curl -X POST https://api.roveapi.com/v1/browser/sessions/sess_abc123/viewer-grants \
  -H "Authorization: Bearer <redacted>" \
  -H "Content-Type: application/json" \
  -d '{"origin": "https://roveapi.com"}'

Open the viewer_url to watch and take control.

SDKs

  • Node.js: npm install @roveapi/browser
  • Python: pip install roveapi
import { BrowserClient } from '@roveapi/browser'

const rove = new BrowserClient({ apiKey: process.env.ROVE_API_KEY! })
const session = await rove.session({ supervised: true })
const grant = await rove.createViewerGrant(session.id)
console.log('Watch live:', grant.viewerUrl)
from roveapi import BrowserClient

with BrowserClient(api_key="rvp_live_...") as rove:
    session = rove.session(supervised=True)
    grant = rove.create_viewer_grant(session.id)
    print('Watch live:', grant['viewer_url'])

Next steps

Rove — the supervised browser for agents