MCP server for browser automation — an in-page inspector overlay plus programmatic page control via Playwright.
35 tools with consistent naming (verb_noun pattern: get_, list_, pick_, find_, etc.) and brief descriptions (10-150 chars). All tools have input schemas with typed parameters. However, parameter descriptions are minimal or absent in many cases, and output schemas are not documented. Error handling guidance is missing. Tool composition is strong (single responsibility, chainable IDs), but descriptions lack LLM-optimization depth (WHEN to use, prerequisites, dependencies). Baseline: 194 chars avg description; this server averages ~80 chars. No security concerns visible (no secrets in params). Schemas present but sparse on constraints (enums, ranges, patterns).
structured healthcheck: schema_version, phase, capabilities_available, capabilities_deferred
add assertion checkpoint to a stored recording
structured DOM mutations on a picked element
execute arbitrary JavaScript (escape hatch)
find elements by regex pattern on text/attributes
find first element + total match count
find exactly one element; error on ambiguous/not-found
Output schemas not documented. Tools return complex objects (StateSnapshot, Recording, ReplayReport) but LLMs cannot see what fields to expect. Breaks downstream tool chaining and forces agents to guess field names.
Parameter descriptions are minimal or generic. Many params lack context on valid ranges, formats, or dependencies. E.g., 'pick_id' appears in 10+ tools but no description explains UUID format or how to obtain one.
No error handling guidance. Tools like frontprompt_find_one state 'error on ambiguous/not-found' but provide no recovery hints. LLMs cannot self-correct without actionable error messages.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | <=2025-11-25 | v2 |
find structurally similar elements
ancestors/siblings/landmark context
condensed page HTML (scripts/styles stripped)
read page-level metadata
structural page outline (headings/links/buttons/inputs/forms/landmarks)
single Pick by UUID
list of all Picks
full Recording with timeline by id
retrieve a stored ReplayReport by replay_id
cached SessionMetadata (no IPC roundtrip)
full StateSnapshot (panel + inspector + …); the firehose
small navigable overview (counts + grouping); start here
unified inspection (replaces deprecated readers)
list RecordingMeta for all recordings
navigate the owned browser to a URL
create N Picks per CSS-selector match
create N Picks by visible text (+ optional role)
XPath-based picker (escape hatch)
materialise an OutlineRef as a Pick
DOM path from root to picked element
liveness check on the IPC socket
adaptive relocation after DOM changes
execute a recording as replay, return ReplayReport
capture PNG screenshot of each Pick's element
capture PNG screenshot of the current page
scroll a single Pick into the viewport
agent-start a new recording session
stop an active recording by id
Destructive operations lack confirmation or dry-run support. frontprompt_eval_js, frontprompt_dom_patch, and frontprompt_run_replay can modify state but offer no preview or rollback mechanism.
Tool annotations missing. No readOnlyHint, destructiveHint, or idempotentHint declared. Agents cannot distinguish safe reads from risky writes without parsing descriptions.