Browser Forensic Recorder, DOM Time-Travel Debugger, Lifecycle Tracer, and Agent MCP Interface for recording and analyzing browser DOM mutations, events, and state changes over time
34 tools with explicit schemas and descriptions visible in src/mcp/tools-definition.ts and src/mcp/live-tools-handler.ts. Naming is strong (verb_noun pattern: list_, get_, delete_, export_, import_, annotate_, interact_, capture_, etc.). Descriptions are present and substantive (avg ~120 chars), explaining WHAT and WHEN. However, parameter descriptions are inconsistent: many params lack detail on format/constraints (e.g., 'limit' has no min/max; 'selector' lacks CSS syntax guidance). Output schemas are not documented, LLMs cannot predict response structure. Error handling is minimal (generic try-catch in live-tools-handler.ts returns only error.message). No enum constraints on multi-value params like 'category' (DOM, USER, ERROR, CONSOLE, NETWORK, NAVIGATION), these should be formal enums. Composition is good: tools are single-responsibility and chainable (e.g., list_sessions → get_session → get_events). Security: no secrets in params (good), but no permission gates or audit trail declarations visible.
Add an investigative annotation or hypothesis to the session timeline.
Capture a screenshot of a specific element.
Capture a screenshot of the current page viewport.
Delete a recording session from storage.
Compare two DOM states between timestamp T1 and T2 (or event E1 and E2) and return structured additions, removals, moves, attribute, style, and text changes.
Export a complete recording session as a portable, self-contained JSON bundle.
Automatically scan the session and identify all elements that existed temporarily and were subsequently removed or hidden.
Output schemas not documented. LLMs cannot predict response structure (fields, types, nesting). Tools return JSON but no schema is visible in definitions.
Parameter constraints missing. 'limit' has no min/max bounds; 'category' and 'level' should be formal enums, not free-form strings. 'selector' lacks CSS syntax guidance.
Error handling is generic. live-tools-handler.ts catches all errors and returns only error.message. No recovery guidance, no error classification (retryable vs fatal), no actionable next steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
Retrieve all investigative annotations and findings for a session.
Query recorded console messages, runtime errors, and unhandled promise rejections with stack traces.
Inspect detailed properties of a specific DOM node at a given timestamp (tag, attributes, text, parent, children, visibility state).
Reconstruct the complete DOM snapshot at an arbitrary timestamp or event ID using checkpoint delta replay.
Reconstruct and extract the HTML of a specific subtree (e.g. #app or .gpt-panel) at a given timestamp.
Get the computed visual state (visibility, display, opacity, position, dimensions) of a live element.
Query recorded events with filtering by category (DOM, USER, ERROR, CONSOLE, NETWORK, etc.), type, timestamp range, target node, or search query.
Retrieve a focused contextual window of events occurring immediately before and after a specific timestamp or event ID.
Get a complete HTML snapshot of the current live DOM.
Get the HTML of a specific subtree in the current live DOM.
Query recorded network requests and responses correlated with timing and duration.
Retrieve recording health status, data integrity metrics, and potential issues.
List visual checkpoints and screenshot checkpoints captured during the recording session.
Retrieve the last element selected via the element picker or Ctrl+Shift+Click.
Retrieve full metadata, capabilities, health status, and statistics for a specific debugging session.
Retrieve summary breakdown of events across the session timeline, including event categories and significant milestones.
Import a recording session bundle from raw JSON string.
Inspect detailed properties of a live DOM element by selector, nodeId, xpath, or coordinates.
Inspect the current live page state including metadata, viewport, and document structure.
Interact with a live element via click, type, select, scroll, or other actions with optional stabilization and screenshot capture.
List all recorded browser forensic debugging sessions with metadata, timestamps, and stats.
Start focused observation on a specific element to track mutations, visibility changes, and related events.
Activate the visual element picker in the browser. Click any element or hold Ctrl+Shift and click.
Stop focused observation and retrieve the observation bundle with mutations, diagnostics, and correlation report.
Deactivate the visual element picker.
Trace the entire chronological lifecycle of a DOM element from creation, mounting, mutations, style changes to unmounting/removal.
Forensic root-cause diagnosis for why an injected or existing UI element disappeared. Pinpoints removal mechanism, ancestor container destruction, style changes, and correlated errors/network triggers.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Spec 2026-07-28 expects these for agent planning. delete_session and interact_with_element should be marked destructive/write.
Live tools (inspect_live_element, capture_element_screenshot, etc.) accept 'target' as object but schema shows only string alternatives (selector, nodeId, xpath, coordinates). Ambiguous parameter structure.