Agents & MCP
Let Claude Code or Codex record product tours for you — demonstrated in a real browser, published as drafts you review.
SupaMaus ships an MCP server so a coding agent — Claude Code, Codex, or anything else that speaks MCP — can record product tours the same way a human does: by demonstrating the flow in a real Chrome browser with the SupaMaus recorder loaded. Agent clicks land as trusted browser input events, so the recorder captures them exactly like a person clicking.
Instead of writing "click the New Invoice button, then fill in the amount" by hand, you tell your agent what to do and it drives the browser itself.
Setup
Get the SupaMaus CLI. One global install:
npm install -g supamausGet a connect command. In the admin app, open the Agents page and copy the one-line connect command shown there. It mints a token scoped to your workspace.
Run it:
supamaus install --token <token>This registers the supamaus-tours MCP server and installs a matching skill for Claude Code (user scope) and Codex. It's idempotent — run it again any time to re-install or refresh.
Your login, not your agent's
The token binds publishing to your workspace, but it never grants access to your product's credentials. The first time you record a tour on a site that needs login, the agent stops and asks you to sign in — once, inside the controller browser window it opens. That session persists (~/.supamaus/chrome-profile), so every later session reuses it. Agents can never see or type passwords, 2FA codes, or card numbers — the server refuses those fields outright.
Recording a tour
Say something like this in your agent session:
Record a tour of how to create an invoice on app.example.comThe first call auto-starts a headed Chrome instance with the SupaMaus recorder extension loaded. The agent will open the site, read the page, click and type through the flow, then publish the result — narrating what it's doing as it goes.
Tools
The MCP server exposes these tools, grouped by what they do:
Driving the browser
| Tool | What it does |
|---|---|
browser_open | Opens a URL in the controller browser. The session locks to that site's domain for the rest of the run. |
browser_read_page | Reads the current page as a list of clickable elements, or as a screenshot when layout matters. |
browser_click | Clicks an element by reference, selector, or visible text. |
browser_fill | Clicks a field and types into it with real keystrokes. |
browser_press_key | Sends a key or key combo (Enter, Escape, Meta+A, etc.). |
Recording and publishing
| Tool | What it does |
|---|---|
tour_record_start | Starts capturing every subsequent click and fill as a tour step. |
tour_record_status | Shows the steps captured so far. |
tour_publish | Stops recording and publishes the tour as an inactive draft, with per-step instructions for end users. |
tour_replay | Replays a published tour in the controller browser so you can sanity-check it before activating. |
Querying your workspace
| Tool | What it does |
|---|---|
list_tours | Lists tours that already exist, so agents don't duplicate one. |
search_tours | Finds the tour that best matches a described task. |
get_tour | Fetches a tour's full step-by-step configuration. |
search_knowledge | Searches your workspace's knowledge base. |
Guardrails
Every action an agent takes goes through the same policy checks, whether it's Claude Code, Codex, or anything else:
- Domain lock — a session stays on the first site it opens. It can't wander onto another domain mid-recording.
- No credentials, ever — typing is refused on login and checkout pages, and into password, 2FA, or card fields. A human handles those.
- Confirmation on destructive actions — clicks that look destructive (delete, cancel subscription, and similar) are refused unless the agent explicitly confirms it and explains why.
- Drafts, not live tours — every published tour lands inactive. A person on your team reviews it and activates it in the admin app.
- Nightly verification — before a draft is trusted, the nightly verifier replays it in a clean browser and flags anything that breaks.
Revoking access
Open the admin app's Agents page, find the connection under Active connections, and click Revoke. This invalidates the token immediately — any agent still holding it can no longer publish tours to your workspace.