Skip to main content
Glama

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-mcp

Add 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 onboarding

Auto-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

  1. Puppeteer opens your URL in a real browser

  2. Monitors attach before navigation — network requests, console messages, and performance observers start capturing immediately

  3. The persona engine creates a user with specific traits (tech literacy, patience, goals, device)

  4. 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)

  5. 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)

  6. 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 comparison

Requirements

  • 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 server

Note for contributors: You must run npm run build after cloning — the dist/ 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 tools
accessibility_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesSession ID
wcag_levelNoWCAG conformance level (default: wcag2aa)

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesStarting URL
personaYesPersona name (e.g., 'Alex', 'Morgan')
max_stepsNoMaximum steps (default: based on persona patience)

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to test
personasYesPersona names to compare (2-5)
max_stepsNoMax steps per persona

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
thresholdNoPer-pixel color tolerance 0-1 (default: 0.1)
screenshot1YesFirst base64-encoded PNG screenshot
screenshot2YesSecond base64-encoded PNG screenshot

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesPersona name (e.g., 'Maria')
goalsYesWhat they want to accomplish
deviceNoPreferred device
patienceNoPatience level (default: moderate)
age_groupNoAge group
backgroundNoBackground story
descriptionYesOne-line description (e.g., 'Senior citizen shopping for first smartphone')
tech_literacyNoTech literacy level (default: intermediate)
behavior_notesNoSpecial behavioral notes
accessibility_needsNoAccessibility needs

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoReport format: 'markdown' (default) or 'html' for a rich standalone report with embedded screenshots
summaryNoYour overall summary of the session
session_idYesSession ID to close
goal_achievedNoDid the persona achieve their goal?

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesSession ID

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
full_pageNoCapture full page instead of viewport (default: false)
session_idYesSession ID

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesSession ID

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to scan
wait_msNoExtra wait after page load in ms (default: 1000)
full_pageNoCapture full page (default: false)
viewport_widthNoViewport width (default: 1440)
viewport_heightNoViewport height (default: 900)

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to start the session at
personaNoPersona name (e.g., 'Alex', 'Morgan'). Use list_personas to see all. Omit to be persona-free.
device_profileNoDevice emulation profile (e.g., 'iphone-14-pro', 'pixel-7', 'ipad-pro-12-9'). Use list_devices to see all.
viewport_widthNoOverride viewport width
viewport_heightNoOverride viewport height

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueNoText to type, URL to navigate to, option value, or key name
actionYesAction to perform
targetNoCSS selector (required for click, type, select, hover)
thoughtNoYour persona's thought at this moment — recorded in the session transcript
frictionNoFriction points you noticed at this step
session_idYesSession ID from start_session
scroll_amountNoPixels to scroll (default: 500)
emotional_stateNoHow the persona feels right now

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 14 tool updatesv0.3.1
    • First observedaccessibility_audit
    • First observedauto_walk
    • First observedcompare_personas_auto
    • First observedcompare_screenshots
    • First observedcreate_persona
    • First observedend_session
    • First observedexport_har
    • First observedget_page_state
    • First observedinspect_storage
    • First observedlist_devices
    • First observedlist_personas
    • First observedquick_scan
    • First observedstart_session
    • First observedstep

TDQS

A3.8/5.0

Scored across 14 tools

Disambiguation4/5

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.

Naming Consistency3/5

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.

Tool Count4/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    AI-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.
    29
    2
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    ā–Ž 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 engines
    2
    MIT