UserFlow MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@UserFlow MCPQuick scan https://myapp.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
UserFlow MCP
Simulates real users navigating your app and delivers qualitative UX feedback. Built as an MCP server for Claude Code.
UserFlow puts itself in your user's shoes. It clicks through your app as different personas (a first-time user, a busy executive, a senior citizen, an accessibility-dependent user) and tells you where they'd get confused, frustrated, or give up. Now with auto-friction detection, Core Web Vitals, WCAG accessibility auditing, network monitoring, device emulation, and rich HTML reports with dev recommendations.
Free for Claude Pro users. No API keys, no external services. Just install and go.
Quick Start
# Install globally
npm install -g userflow-mcp
# Or use directly with npx
npx -y userflow-mcpAdd to Claude Code
In your Claude Code MCP settings:
{
"mcpServers": {
"userflow": {
"command": "npx",
"args": ["-y", "userflow-mcp"]
}
}
}Then in Claude Code:
ā "Start a user flow session on https://myapp.com as Alex"
ā "Quick scan https://myapp.com"
ā "Run an accessibility audit on this page"
ā "Compare Alex and Morgan on https://myapp.com"Related MCP server: Argus
What You Get
Persona-Driven UX Feedback
Step 1: Landing Page (3.2s)
š curious
> "Hmm, 'Supercharge your workflow' ā but what does this product actually do?"
ā ļø MEDIUM: Value prop unclear ā heading doesn't explain the product
ā Rewrite heading to describe what the product does, not how it makes you feel
Step 2: Signup (12.1s)
š neutral
> "Alright, let me sign up and see..."
š HIGH: Form asks for company size during signup ā feels invasive
ā Remove non-essential fields from signup, ask later during onboardingAuto-Friction Detection
Friction is automatically detected from page metrics on every step ā no manual annotation needed:
Performance: LCP > 2.5s, CLS > 0.1, FCP > 3s
Accessibility: Critical/serious axe-core violations, score < 50
Console: JS errors, uncaught exceptions
Network: Failed requests, pages > 5MB transfer
Content: Missing headings, 50+ interactive elements (cognitive overload), visible error messages
Core Web Vitals & Performance
| Metric | Value | Rating |
|--------|---------|--------|
| LCP | 1840ms | š¢ good |
| CLS | 0.042 | š¢ good |
| FCP | 920ms | ā |
| TTFB | 180ms | ā |
| Resources | 47 files (1,280KB) | ā |Accessibility (axe-core WCAG Audit)
Score: 82/100 | Violations: 5 (0 critical, 2 serious, 2 moderate, 1 minor)
| serious | [color-contrast] Insufficient contrast ratio | 12 nodes |
| serious | [image-alt] Missing alt text on images | 3 nodes |Rich HTML Reports
The end_session tool generates standalone HTML reports with:
Executive summary ā key metrics at a glance (friction score, goal status, steps, time, pages, a11y score, JS errors, failed requests)
Site-wide page dashboard ā comparison table of all pages with LCP, CLS, a11y, requests, errors
Emotional journey ā color-coded chart with legend, tooltips, and plain English summary
Step-by-step walkthrough ā collapsible steps with embedded screenshots
Aggregated accessibility ā all WCAG violations across the session, sorted by impact, with axe-core help links
Network overview ā total requests, failures, transfer size, resource breakdown, slowest requests
Dev recommendations ā P0/P1/P2 prioritized fixes with code examples (LCP, CLS, contrast, labels, errors, cookies, headings)
"Idiot summary" ā plain English section explaining what's wrong the way a regular user would say it
Print/PDF optimized ā all steps expand, sidebar hides, sections avoid page breaks
14 Tools
Step-by-Step Session Tools (Claude drives the simulation)
Tool | Description |
start_session | Open browser, navigate to URL, return page snapshot with screenshot + Web Vitals + a11y score. Supports device emulation. |
step | Execute an action (click, type, scroll, etc.) with smart selector fallback. Record persona thoughts and friction. |
end_session | Close session, compute friction score and emotional arc, return full report (markdown or HTML). |
get_page_state | Get current page state and screenshot without performing any action. |
v0.3 Session Tools (new capabilities)
Tool | Description |
accessibility_audit | Run WCAG 2.0 A/AA/AAA audit using axe-core. Returns score, violations, and fix links. |
inspect_storage | Inspect cookies, localStorage, sessionStorage. Detects tracking cookies. |
export_har | Export all network activity as HAR 1.2 log for analysis. |
compare_screenshots | Pixel-level visual diff between two screenshots with overlay image. |
create_persona | Build a custom persona with any trait combination. |
Quick Tools (stateless)
Tool | Description |
quick_scan | Fast single-page scan with screenshot and element extraction. |
list_personas | Browse all 8 built-in personas with full trait definitions. |
list_devices | Browse all 10 device emulation profiles. |
Auto Tools (heuristic walker)
Tool | Description |
auto_walk | Fast automated walk with heuristic navigation ā no AI reasoning. |
compare_personas_auto | Run 2-5 personas on the same URL and compare experiences. |
8 Built-in Personas
Name | Description | Tech | Patience | Device |
Alex | The First-Timer ā never used SaaS before | Novice | Moderate | Mobile |
Morgan | The Power User ā developer, expects excellence | Expert | Low | Desktop |
Patricia | The Senior Explorer ā 68, low vision | Basic | High | Desktop |
Jordan | The Busy Executive ā 10 seconds to impress | Intermediate | Very Low | Mobile |
Sam | The Accessibility Tester ā screen reader user | Advanced | Moderate | Desktop |
Riley | The Skeptical Evaluator ā looking for red flags | Intermediate | Moderate | Desktop |
Casey | The International User ā potential language barriers | Basic | High | Mobile |
Taylor | The Return Visitor ā knows the app, wants efficiency | Advanced | Moderate | Desktop |
10 Device Profiles
Key | Device | Viewport | Scale |
iphone-14-pro | iPhone 14 Pro | 393Ć852 | 3x |
iphone-se | iPhone SE | 375Ć667 | 2x |
pixel-7 | Pixel 7 | 412Ć915 | 2.625x |
samsung-galaxy-s23 | Galaxy S23 | 393Ć851 | 3x |
galaxy-fold | Galaxy Fold | 280Ć653 | 3x |
ipad-pro-12-9 | iPad Pro 12.9" | 1024Ć1366 | 2x |
ipad-mini | iPad Mini | 768Ć1024 | 2x |
macbook-pro-14 | MacBook Pro 14" | 1512Ć982 | 2x |
desktop-1080p | Desktop 1080p | 1920Ć1080 | 1x |
desktop-1440p | Desktop 1440p | 2560Ć1440 | 1x |
How It Works
Puppeteer opens your URL in a real browser
Monitors attach before navigation ā network requests, console messages, and performance observers start capturing immediately
The persona engine creates a user with specific traits (tech literacy, patience, goals, device)
Claude drives the simulation step-by-step using the step tool, with smart selector fallback (8 strategies: data-testid ā id ā aria-label ā role-text ā input-attr ā link-href ā text ā CSS path)
At each step, the system collects:
Page snapshot ā interactive elements, headings, forms, errors, screenshot
Core Web Vitals ā LCP, CLS, INP, FCP, TTFB via PerformanceObserver
Network summary ā request count, failures, transfer size, slow requests
Console errors ā JS errors, warnings, uncaught exceptions
Accessibility ā axe-core WCAG audit with violation details (on initial load)
Storage ā cookies, localStorage, sessionStorage, tracking detection (on initial load)
The feedback generator compiles everything into a structured report with emotional journey, friction scores, Web Vitals, and recommendations
Architecture
src/
āāā server.ts # MCP tool registrations (14 tools)
āāā types.ts # Full type system (450+ lines)
āāā personas/
ā āāā presets.ts # 8 built-in personas
ā āāā engine.ts # Persona creation + resolution
āāā session/
ā āāā types.ts # LiveSession with monitors
ā āāā session-manager.ts # Session lifecycle + new audit methods
āāā walker/
ā āāā flow-walker.ts # Autonomous page traversal
ā āāā action-planner.ts # Heuristic action decisions
ā āāā session-recorder.ts # Journey tracking
āāā analysis/
ā āāā friction.ts # Friction detection + scoring
ā āāā cognitive-load.ts # Page complexity assessment
ā āāā clarity.ts # CTA + value prop evaluation
ā āāā emotional-arc.ts # Sentiment tracking
āāā feedback/
ā āāā generator.ts # Markdown report (with Web Vitals, a11y, network)
ā āāā html-report.ts # Rich standalone HTML report
ā āāā comparison.ts # Multi-persona comparison
ā āāā report.ts # Legacy report utilities
āāā utils/
āāā browser.ts # Puppeteer + CDP connection support
āāā page-snapshot.ts # Full page state extraction + v0.3 enrichment
āāā actions.ts # Action execution with smart selector fallback
āāā selector-engine.ts # 8-strategy smart selector generation
āāā auto-friction.ts # Auto-detect friction from page metrics
āāā network-monitor.ts # Request/response tracking + HAR export
āāā console-monitor.ts # Console message + page error capture
āāā performance.ts # Core Web Vitals via PerformanceObserver
āāā accessibility.ts # axe-core WCAG audit
āāā device-profiles.ts # 10 device emulation presets
āāā storage-inspector.ts # Cookie/localStorage inspection
āāā screenshot-diff.ts # Pixel-level visual comparisonRequirements
Node.js >= 18.0.0
Google Chrome or Chromium installed
Claude Code with MCP support
Development
git clone https://github.com/prembobby39-gif/userflow-mcp.git
cd userflow-mcp
npm install
npm run build # compiles TypeScript to dist/
npm test # 42 tests
npm start # run the MCP serverNote for contributors: You must run
npm run buildafter cloning ā thedist/directory is not committed to git. Requires Node.js >= 18 and Google Chrome installed.
Changelog
v0.3.1
Auto-friction detection ā automatically detects friction from page metrics (performance thresholds, a11y violations, console errors, network failures, layout issues, visible errors). Runs on every step and initial page load.
Executive summary ā key metrics at a glance in HTML reports
Site-wide page dashboard ā comparison table showing all pages side-by-side with LCP, CLS, a11y, violations, requests, errors
Aggregated accessibility section ā all violations across the session, sorted by impact, with axe-core help links
Network overview ā total requests, failures, transfer size, resource breakdown, slowest requests
Dev recommendations ā P0/P1/P2 prioritized actionable fixes with code examples
"Idiot summary" ā plain English section explaining what's wrong the way a regular user would say it
Emotional journey improvements ā color legend, descriptive tooltips, plain English summary
Sidebar navigation ā fixed left sidebar with jump links, highlights on scroll
Collapsed steps ā steps start collapsed with expand/collapse all buttons
Screenshot compression ā CSS max-height + object-fit for embedded screenshots
Print/PDF optimization ā all steps expand, sidebar hides, sections avoid page breaks
v0.3.0
Smart selector engine with 8-strategy fallback chain
Console capture (JS errors, warnings, uncaught exceptions)
Network monitoring with HAR 1.2 export
Accessibility auditing via axe-core (WCAG 2.0 A/AA/AAA)
Core Web Vitals (LCP, CLS, INP, FCP, TTFB)
Device emulation (10 profiles: iPhone, Pixel, iPad, Galaxy Fold, desktops)
Cookie/localStorage/sessionStorage inspection with tracking detection
Screenshot visual diffing via pixelmatch
Rich standalone HTML reports with embedded screenshots
Custom persona creation tool
6 new tools, 3 enhanced tools (14 total)
v0.2.1
CDP connection support for testing logged-in sites (CHROME_CDP_URL, CHROME_WS_ENDPOINT)
v0.2.0
Thin MCP architecture ā Claude drives step-by-step simulation
8 built-in personas with full trait system
v0.1.0
Initial release with autonomous heuristic walker
License
MIT ā ARISTONE
Available Tools
14 toolsaccessibility_auditA
Run a WCAG accessibility audit on the current page of a session using axe-core. Returns a score (0-100), all violations with WCAG criteria, and actionable fixes.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session ID | |
| wcag_level | No | WCAG conformance level (default: wcag2aa) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the use of axe-core and enumerates the return payload (score, violations, fixes), which is useful, but it does not explicitly state whether the audit is read-only, how failures are surfaced, or any rate limits or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, and every word adds value. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema, the description preemptively explains what the tool returns (score, violations, fixes), covering the main agent needs. It does not mention error cases or edge conditions, but for a straightforward audit tool with only two parameters, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters are fully described in the schema (session_id, wcag_level with enum and default), so schema coverage is 100%. The description adds no additional parameter-level detail beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description names a specific action ('Run a WCAG accessibility audit') and target ('current page of a session'), and uniquely identifies this as the accessibility-focused tool among siblings. It clearly distinguishes from tools like quick_scan or compare_screenshots.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool requires an active session ('current page of a session') and allows choosing WCAG level via the schema. However, it does not explicitly state when to prefer this over alternative tools like quick_scan, nor does it mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auto_walkA
Fast automated walk using heuristic-based navigation (no AI reasoning). Runs the full flow autonomously and returns a report. Use this for quick scans when you don't need to drive step-by-step.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Starting URL | |
| persona | Yes | Persona name (e.g., 'Alex', 'Morgan') | |
| max_steps | No | Maximum steps (default: based on persona patience) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses key behavior (heuristic navigation, no AI reasoning, autonomous execution, returns a report), but it does not mention side effects, permissions, rate limits, or whether the walk might interact with the page beyond navigation. This is useful but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the key differentiator ('Fast automated walk using heuristic-based navigation (no AI reasoning)'), and each sentence adds meaningful information. There is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with documented parameters, but lacks an output schema and annotations. The description mentions 'returns a report' without detailing what the report contains, and does not clarify whether the walk requires or creates a session relative to sibling tools like start_session and step. This leaves important gaps for a tool that runs autonomously.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides descriptions for all three parameters (url, persona, max_steps), giving 100% coverage. The description adds no parameter-specific information beyond what the schema already documents, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs an 'automated walk using heuristic-based navigation (no AI reasoning)' and 'runs the full flow autonomously and returns a report.' This specifies the verb (walk), the resource (full flow), and distinguishes it from step-by-step alternatives among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly gives a usage condition: 'Use this for quick scans when you don't need to drive step-by-step.' This clearly indicates when to use it, though it does not name specific alternative tools or provide exclusions, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_personas_autoA
Run the automated heuristic walker for multiple personas on the same URL and compare their experiences. Fast but less nuanced than step-by-step simulation.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to test | |
| personas | Yes | Persona names to compare (2-5) | |
| max_steps | No | Max steps per persona |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the heuristic walker behavior and the speed/nuance trade-off, but does not explain output format, side effects, or prerequisites such as whether personas must already exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action and immediately followed by a usage trade-off. Every word contributes, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and no annotations, yet the description omits what the comparison output looks like and whether personas need to be pre-created. The complexity of an automated walker warrants more detail, though the core purpose is conveyed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema itself documents all parameters. The description adds context about comparing multiple personas on the same URL, but does not provide additional meaning beyond the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs an automated heuristic walker for multiple personas on the same URL and compares their experiences. It also distinguishes from step-by-step simulation via the trade-off note.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear context for when to use the tool ('Fast but less nuanced than step-by-step simulation'), implying it is the quick option compared to a more detailed alternative. It does not explicitly name the alternative tool, but the guidance is sufficient for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_screenshotsA
Compare two base64 PNG screenshots pixel-by-pixel. Returns match percentage and a visual diff image highlighting differences. Useful for detecting UI regressions or verifying changes.
| Name | Required | Description | Default |
|---|---|---|---|
| threshold | No | Per-pixel color tolerance 0-1 (default: 0.1) | |
| screenshot1 | Yes | First base64-encoded PNG screenshot | |
| screenshot2 | Yes | Second base64-encoded PNG screenshot |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the core operation and return values, but gives no details on constraints, performance, or side effects. For example, it does not mention handling of corrupted images, file size limits, or whether the diff image is returned as base64 or a path. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary verb and resource, and every sentence adds value. There is zero redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema, the description appropriately explains the return format (match percentage and diff image). It does not specify how the diff image is delivered (e.g., base64 string vs. file path), which is a minor gap. Overall, it is sufficiently complete for a straightforward comparison tool with well-described parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for all three parameters (screenshot1, screenshot2, threshold), so the schema already documents them fully. The tool description adds no additional parameter-level semantics beyond what the schema provides, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Compare two base64 PNG screenshots pixel-by-pixel') with a specific resource (screenshots) and method (pixel-by-pixel). It explicitly mentions the output (match percentage and visual diff image), distinguishing it from sibling tools like compare_personas_auto which compare personas rather than screenshots.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: 'Useful for detecting UI regressions or verifying changes.' This tells when to use the tool. However, it does not explicitly mention alternatives or when not to use it, stopping short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_personaA
Create a custom persona for testing. Define their name, goals, tech literacy, patience, device preference, and accessibility needs. Returns the persona definition to use with start_session.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Persona name (e.g., 'Maria') | |
| goals | Yes | What they want to accomplish | |
| device | No | Preferred device | |
| patience | No | Patience level (default: moderate) | |
| age_group | No | Age group | |
| background | No | Background story | |
| description | Yes | One-line description (e.g., 'Senior citizen shopping for first smartphone') | |
| tech_literacy | No | Tech literacy level (default: intermediate) | |
| behavior_notes | No | Special behavioral notes | |
| accessibility_needs | No | Accessibility needs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosure. It states that it creates a persona and returns the definition, but it does not reveal whether the persona is persisted, if it overwrites existing personas, or any side effects. Given the existence of list_personas, persistence is implied but not stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the tool's purpose, and includes the essential return value. Every word earns its place; no redundancies or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 10 parameters, no output schema, and no annotations, the description provides basic purpose and return value but lacks details about side effects, persistence, or workflow context beyond mentioning start_session. It is adequate but not rich enough for full contextual completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description mentions some key parameters (name, goals, tech literacy, patience, device, accessibility needs) but does not add additional semantic meaning beyond the schema. It omits some parameters like description, background, and behavior_notes, so it doesn't fully compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Create a custom persona for testing.' It specifies the resources (persona) and distinguishes itself from siblings like list_personas and start_session by noting the return value is 'to use with start_session.' The verb 'create' is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool (to create a persona for testing) and indicates its role in the workflow by returning a definition for start_session. However, it does not explicitly mention alternatives or when not to use it, so it lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
end_sessionA
End a session and get the final report. Closes the browser, computes friction score and emotional arc, and returns the full session transcript with all recorded thoughts, friction points, and recommendations.
v0.3: Report now includes Core Web Vitals, accessibility score, network summary, and console errors.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Report format: 'markdown' (default) or 'html' for a rich standalone report with embedded screenshots | |
| summary | No | Your overall summary of the session | |
| session_id | Yes | Session ID to close | |
| goal_achieved | No | Did the persona achieve their goal? |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well by disclosing that it closes the browser, computes metrics, and returns a full transcript. It could add irreversibility or validation details, but the main side effects are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the main purpose. The version note adds useful context without waste, though some minor redundancy exists ('full' and 'all'). Overall efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description compensates by detailing what the report includes (Core Web Vitals, accessibility, network, console errors). It covers purpose, behavior, and output adequately, though it omits prerequisites or error conditions. Still complete enough for most use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters are described in the input schema with 100% coverage, so the description does not need to add extra parameter meaning. It adds no parameter-specific details beyond the schema, which is sufficient. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'End a session and get the final report', which specifies the action and resource. It distinguishes itself from siblings like start_session by describing the closing behavior and specific outputs (friction score, emotional arc, transcript).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (when a session should be ended and a report is needed) through its clear statement of behavior. However, it does not explicitly mention when not to use it or alternatives, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_harA
Export all network requests captured during the session as a HAR 1.2 log. Useful for analyzing network performance, finding slow requests, and debugging API calls.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must alone convey safety and side effects. It states the export behavior but does not explicitly say it is read-only or describe error behavior for invalid session IDs. The scope 'all network requests' adds some context, but transparency is limited.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences are used, with the action and output format front-loaded. The second sentence lists practical use cases. No redundant or filler wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple export tool, the description covers the output format (HAR 1.2 log) and use cases. It is missing an explicit note about whether the session must be active or if there are side effects, but overall it is sufficient for such a targeted tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one required parameter 'session_id' with only 'Session ID' as description. The tool description ties the session concept via 'during the session' but does not elaborate further. With 100% schema coverage, the baseline is 3, and the description adds marginal semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb 'Export' and the resource 'all network requests captured during the session', with a defined output format 'HAR 1.2 log'. This distinguishes it from siblings like get_page_state or inspect_storage, which target different data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases: 'analyzing network performance, finding slow requests, and debugging API calls'. It does not mention alternatives or exclusions, but the context is clear enough for an agent to decide when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_page_stateA
Get the current page state and screenshot without performing any action. Useful for re-examining the page or checking if lazy-loaded content has appeared.
| Name | Required | Description | Default |
|---|---|---|---|
| full_page | No | Capture full page instead of viewport (default: false) | |
| session_id | Yes | Session ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the non-mutating nature ('without performing any action') and implies safety for repeated calls, but it does not detail what specific state data is returned, which would be useful given no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that states purpose and use cases without redundancy. Every phrase earns its place, and it remains front-loaded with the primary action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter getter with no output schema, the description covers the main usage context and side-effect profile. It stops short of detailing the return structure of 'page state,' which would enhance completeness, but the information provided is sufficient for tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions for `session_id` and `full_page`. The tool description adds no additional parameter semantics beyond the schema, warranting the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('current page state and screenshot'), and explicitly distinguishes from action-performing siblings with 'without performing any action.' The use cases for re-examining and lazy-loaded content further clarify its role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear use cases ('re-examining the page or checking if lazy-loaded content has appeared'), establishing when to invoke it. It implies a contrast with action tools but does not name specific alternatives or state exclusions, so it falls short of 'explicit when-not/alternatives.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_storageA
Inspect cookies, localStorage, and sessionStorage for the current page. Identifies tracking cookies and calculates total cookie size.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It mentions identifying tracking cookies and calculating cookie size, but does not disclose potential side effects, read-only guarantees, or limitations. It does not state whether any storage data is modified or cleared, which is a notable gap for an inspection tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences, front-loaded with the primary action, and no redundant wording. Every sentence adds value, second sentence provides useful detail about tracking cookies and size calculation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description should hint at the return format, but it does not. It also lacks usage constraints or edge-case behavior. However, the tool's purpose is clear and the parameter set is minimal, so it is not severely incomplete, but there are gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has a single parameter (session_id) with 100% description coverage, so the schema already fully documents it. The tool description adds no additional meaning to the parameter itself, but since coverage is high, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the verb 'inspect' and the resources 'cookies, localStorage, and sessionStorage' for the current page. It goes beyond a simple restatement by adding specific outcomes ('Identifies tracking cookies and calculates total cookie size'), which differentiates it from sibling tools like get_page_state or export_har.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage ('for the current page') but does not explicitly state when to prefer this tool over alternatives or when not to use it. There's no mention of exclusions or alternatives, so while the context is clear, the guidance is not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_devicesA
List all available device emulation profiles (phones, tablets, desktops). Use the device key with start_session's device_profile parameter.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It clearly states the tool performs a read-only listing operation ('List all...') and adds behavioral context by enumerating the categories of profiles. However, it does not describe the return format or any edge cases, which is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the primary purpose, the second provides usage guidance. It is front-loaded, concise, and contains no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 params, no output schema), the description provides sufficient context: it explains what the tool does, the categories of devices, and how the output connects to start_session. It lacks explicit return structure but the 'device key' mention helps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the input schema is empty. The description correctly omits parameter details; the baseline of 4 applies since no parameter information is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'List' and identifies the resource as 'all available device emulation profiles' with examples (phones, tablets, desktops). It also distinguishes itself from siblings by tying the output to start_session's device_profile parameter, making its role clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to 'Use the device key with start_session's device_profile parameter', which tells the agent when to use this tool (before starting a session) and how to apply its results. It does not explicitly mention alternatives or when-not to use, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_personasA
List all built-in personas with their full trait definitions. Use this to choose a persona for start_session, or to understand each persona before roleplaying as them.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clearly discloses the read-only listing behavior, the scope (built-in personas only), and the content (full trait definitions). For a simple list operation, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and immediately followed by practical usage guidance. Every word earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema tool, the description fully covers purpose, usage, and expected content. It also ties into sibling tools (start_session) effectively, making it self-contained for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no schema burden. The description adds useful context about what the returned list covers, which is sufficient given no parameters to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('all built-in personas with their full trait definitions'), clearly distinguishing this from siblings like create_persona and compare_personas_auto by focusing on existing built-in personas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'to choose a persona for start_session, or to understand each persona before roleplaying as them.' It implies the alternative of creating custom personas via create_persona, but does not explicitly name it as a when-not-to-use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quick_scanA
Fast single-page scan. Navigates to the URL, captures a screenshot, extracts all interactive elements, headings, forms, and error messages. Returns everything to you for analysis ā no session state required.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to scan | |
| wait_ms | No | Extra wait after page load in ms (default: 1000) | |
| full_page | No | Capture full page (default: false) | |
| viewport_width | No | Viewport width (default: 1440) | |
| viewport_height | No | Viewport height (default: 900) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosure. It transparently describes the stateless nature, navigation, screenshot capture, and extraction of page elements. However, it does not mention potential side effects like network requests or cookie handling, though for a scanning tool this is likely sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is remarkably concise, front-loaded with 'Fast single-page scan,' and every sentence provides essential information. It covers the actions, the output, and the stateless nature without any fluff or repetition, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters and no output schema, the description adequately summarizes the behavior and return type ('Returns everything to you for analysis'). It does not explicitly state return structure or error handling, but the core functionality is clear, and the statelessness is highlighted. Slightly more detail on response format would push it to a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are already documented. The description adds general context about the tool's purpose but does not enrich the understanding of any specific parameter (e.g., how full_page or wait_ms affect the screenshot timing), so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a 'Fast single-page scan' and details its actions: navigate, capture screenshot, extract interactive elements, headings, forms, and error messages. It distinguishes itself from sibling session-based tools by explicitly stating 'no session state required,' making its scope and resource clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for quick, stateless scans without the overhead of session management. It contrasts with sibling tools like start_session and step by highlighting the lack of session state, but it does not explicitly name alternatives or specify when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_sessionA
Start a user flow session. Opens a browser, navigates to the URL, and returns the first page snapshot with a screenshot plus Core Web Vitals, accessibility score, and network summary. Claude then drives the simulation step-by-step using the "step" tool, roleplaying as the persona.
Workflow: start_session ā step (repeat) ā end_session
The persona definition is returned so you can roleplay as them ā adopt their tech literacy, patience, goals, and behavioral patterns when deciding what to click next.
v0.3: Supports device emulation via device_profile parameter. Use list_devices to see all options.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to start the session at | |
| persona | No | Persona name (e.g., 'Alex', 'Morgan'). Use list_personas to see all. Omit to be persona-free. | |
| device_profile | No | Device emulation profile (e.g., 'iphone-14-pro', 'pixel-7', 'ipad-pro-12-9'). Use list_devices to see all. | |
| viewport_width | No | Override viewport width | |
| viewport_height | No | Override viewport height |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool opens a browser, navigates to a URL, returns a snapshot with metrics, and provides a persona definition for roleplaying. It also mentions v0.3 device emulation support. This is transparent about the immediate effects and outputs, though it does not discuss side effects like session lifecycle or resource cleanup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-organized. It opens with a clear action, lists return values, then gives the workflow and a version-specific note. Every sentence adds value without redundancy, and the structure is scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description sufficiently describes the return payload (first page snapshot, screenshot, Core Web Vitals, accessibility score, network summary) and outlines the overall workflow. It also provides version context for device emulation. It does not cover all edge cases or prerequisites, but for a session-start tool it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage for all five parameters, so the description adds little new semantic meaning. It does mention that device_profile supports device emulation and advises using list_devices, but this is more of a reference than an enrichment of parameter semantics. This aligns with the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Start a user flow session. Opens a browser, navigates to the URL, and returns the first page snapshot...' This is a specific verb+resource with a defined scope. It also distinguishes itself from siblings by outlining the workflow 'start_session ā step ā end_session' and positioning this as the entry point.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit context for when to use this tool: it begins a session and then delegates future actions to the 'step' tool. The workflow line and the note about device_profile using list_devices provide practical usage guidance, though it does not explicitly list exclusions or alternative tools for simpler tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stepA
Execute one step in a session. Tell the MCP what action to take (click, type, scroll, etc.) and optionally record your persona thoughts, emotional state, and any friction you noticed. Returns the resulting page state with a new screenshot.
Actions: click, type, scroll, scroll_up, navigate, select, hover, press_key, wait
v0.3: Smart selector fallback ā if your CSS selector fails, the engine will try alternative strategies (data-testid, aria-label, text content) automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| value | No | Text to type, URL to navigate to, option value, or key name | |
| action | Yes | Action to perform | |
| target | No | CSS selector (required for click, type, select, hover) | |
| thought | No | Your persona's thought at this moment ā recorded in the session transcript | |
| friction | No | Friction points you noticed at this step | |
| session_id | Yes | Session ID from start_session | |
| scroll_amount | No | Pixels to scroll (default: 500) | |
| emotional_state | No | How the persona feels right now |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description bears the full burden. It discloses that the tool returns 'the resulting page state with a new screenshot' and that there is a 'Smart selector fallback' that tries alternative strategies on CSS selector failure. However, it does not discuss potential side effects of actions, whether they are reversible, or any error handling beyond the fallback, which is a notable gap for a tool that executes mutations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is about 100 words, starts with a clear lead sentence, and lists actions in a compact block. The v0.3 version note adds useful behavioral information but is somewhat tangential to core usage. Overall, it is efficient without being bloated, scoring a 4.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is moderately complex with 8 parameters, no output schema, and no annotations. The description covers the core purpose, action categories, and a key behavioral fallback, and the schema fills in parameter details. However, it does not explain the session lifecycle (e.g., that a session must exist before this step), nor does it describe the response format beyond 'resulting page state with a new screenshot'. Given the sibling tools (start_session, end_session), a brief usage context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides descriptions for all 8 parameters (100% coverage), including the action enum and values for `value`. The description adds no new parameter-level semantics; it only restates the action list and mentions optional recording of persona thoughts/friction, which are already described in the schema. Therefore, it aligns with the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Execute one step in a session' and enumerates nine specific actions, distinguishing it from sibling tools by focusing on action execution and returning a screenshot. It uses a specific verb (execute), a resource (one step in a session), and a scope (list of actions), which makes its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage within a session ('Execute one step in a session') and lists actions, but it does not explicitly state when to use this tool versus alternatives like get_page_state or auto_walk, nor does it provide exclusions or alternative recommendations. The context is clear but not prescriptive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
14 tool updates
v0.3.1- First observed
accessibility_audit - First observed
auto_walk - First observed
compare_personas_auto - First observed
compare_screenshots - First observed
create_persona - First observed
end_session - First observed
export_har - First observed
get_page_state - First observed
inspect_storage - First observed
list_devices - First observed
list_personas - First observed
quick_scan - First observed
start_session - First observed
step
TDQS
Scored across 14 tools
Most tools have distinct purposes: session control (start/step/end), observation (get_page_state), analysis (accessibility_audit, inspect_storage, export_har, compare_screenshots), and persona/device management. The only possible confusion is between start_session and quick_scan, both navigate but one establishes a session; descriptions clarify this. Overall, tools are well-differentiated.
Tool names are predominantly verb_noun (start_session, get_page_state, create_persona), but some deviate with adjective_noun or single-word names (quick_scan, auto_walk, step). All use snake_case, which maintains readability, but the inconsistency in grammatical pattern reduces predictability.
14 tools cover the full user flow testing lifecycle without feeling bloated. Each tool addresses a specific concern: session control, page inspection, accessibility, storage/network analysis, persona management, and automated comparisons. The count is appropriate for the comprehensive feature set.
The tool surface covers the core lifecycle (start/step/end), plus useful extensions like accessibility audits, storage/HAR inspection, and persona-based automated testing. Minor gaps exist (no update/delete persona, no resize viewport beyond device profiles), but they don't hinder the primary use case. Overall, the domain is well-covered.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Deploy AI user personas to validate user journeys at scale. Find UX friction before real users do.
A flock of AI users tests your deployed app and reports where real people get stuck, with fixes.
- ishOAuthio.ishlabs
Simulated people experience what you are making and report what they noticed and felt.
Your agent tests pages, copy, and flows on simulated users while you build.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceYour AI coding agent tests pages, copy, and flows on simulated users while building.1MIT
- AlicenseAqualityAmaintenanceAI-powered exploratory QA agent. Explores web apps like a real user ā 18 MCP tools for clicking, filling forms, and navigating. Automatically verifies that actions persist (fake deletes, failed edits). Runs 16 detection types including dead links, SEO, accessibility, and performance checks.292MIT

autousersofficial
AlicenseAqualityBmaintenanceEvaluate UX with AI personas and human raters directly from MCP-aware clients like Claude and ChatGPT.3926MIT- AlicenseNot gradedqualityAmaintenanceā Enables AI assistants to unleash a crowd of role-played virtual users ā impatient shoppers, seniors, keyboard-only users, privacy hawks, chaos monkeys ā on a website. Each persona browses in a real Chromium browser, files UX/QA findings in character, and the site receives a damage report with an SāF survival grade. Accusations can be cross-examined by up to three independent verification engines2MIT