Inputs
| Field | Type | Description | Default |
|---|---|---|---|
url | string | URL to test. Supports localhost and any valid URL. | required |
task | string | What the persona should try to do. Minimum 10 characters for clarity. | required |
persona_id | string | Cloud persona UUID. Get it via list_personas. | required |
max_steps | number | Maximum steps before stopping (1–200). | 50 |
headless | boolean | Run the browser in headless mode. | false (visible so you can watch) |
timeout | number | Overall test timeout in seconds. | no limit |
viewport | object | { width, height } for the browser viewport. | { 1280, 800 } |
Output
Three pieces of content:- A full markdown report — the same report you’d see in the web app, ready to paste into a document.
- The structured JSON — issues, flow analysis, score, metadata. Useful if Cursor wants to do something programmatic with it.
- A path to a saved markdown file —
percio-report-<timestamp>.mdwritten to the working directory for future reference.
Required flow before calling this tool
The tool itself enforces an ordered flow via its description — a well-behaved MCP client (like Cursor) will:- Call
list_personasand present the personas to you. - Let you pick one or offer to create a new one via
chat_persona+create_persona. - Call
chat_scenarioto build the scenario with you. - Show the generated scenario to you for approval.
- Only then call
run_usability_testwith your chosenpersona_idand the approved scenario astask.
Example prompts in Cursor
“Run a usability test on http://localhost:3000/checkout using Rachel the power user.”
“Test the sign-up flow on the staging site with the first-time visitor persona. Then rerun it with the power user persona so I can compare.”
Visibility vs. headless
The default is visible — the browser window appears on your desktop so you can watch the agent work. Passheadless: true if you’re running in the background and don’t want a window popping up, or if you’re on a headless system.
Timeouts and step limits
max_stepsdefaults to 50. For simple flows, 25 is usually plenty. Raise it (up to 200) for long flows with many navigation steps.timeoutis optional. If you want a hard wall-clock cap, set it — otherwise the test runs until it completes or hitsmax_steps.