Other formats agents might prefer:
markdownjsonllms.txt

Agent? You probably want markdown or json, or Pod over MCP.

Reported issues for playwright-trace-decoder-mcp

Pod holds 13 of 13 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to playwright-trace-decoder-mcp.

Most discussed

feat: add detect_performance_anomalies tool

Problem

Performance anomalies are frequently the real cause of what appear to be flaky timeouts. When heavy JS execution blocks the browser's main thread, Playwright's actionability checks silently time out — but the agent blames the selector, not performance.

Long Tasks (JS tasks >50ms) and frame drops during the failing step are recorded in Playwright's internal timing data but never surfaced by the MCP server.

What the agent gains

Direct empirical evidence that a timeout was caused

Read the thread · 2026-05-18 · closed · 1 comment

feat: add correlate_dom_and_network tool

Problem

The agent receives the HAR network log and DOM snapshots as two separate, flat text blocks. It must guess or hallucinate the causal link between a specific fetch response and the appearance of a new DOM node. This is the primary reason the agent misdiagnoses race conditions as selector failures.

Playwright captures three DOM snapshots per action (before, action, after) with millisecond-precision timestamps. The HAR file records network response completion times at the same pre

Read the thread · 2026-05-18 · closed · 1 comment

feat: add extract_trace_metadata_strict tool

Problem

The current parser silently breaks on several real-world Playwright configurations:

  • .pwtrace.zip extension — newer Playwright versions use this to prevent artifact naming collisions in CI. If the server filters strictly for .zip, modern traces fail to load.
  • Multi-retry archives — when a test suite uses retries: 2, a single downloaded archive may contain multiple disjointed sessions. The server must identify and isolate the specific retry that failed.
  • **HAR payloa

Read the thread · 2026-05-18 · closed · 1 comment

feat: add get_screenshot_at_failure tool (base64 JPEG from trace.zip)

Context

Playwright traces store screenshots as resources/page@<id>-<timestamp>.jpeg inside the zip. Currently when get_aria_accessibility_tree returns an empty document (e.g. captcha, blank page), the agent has no visual context. A base64 screenshot fills that gap.

Proposed tool

get_screenshot_at_failuretrace_path only.

  1. Find all resources/page@*.jpeg entries in the zip
  2. Parse timestamps from filenames
  3. Return the screenshot whose timestamp is closest to (and bef

Read the thread · 2026-05-15 · closed · 0 comments

compare_traces: index-based alignment breaks when action sequences differ in length

Problem

compareTraces zips passing and failing actions by array index. If the failing run has an extra retry, a conditional navigation, or any action that doesn't appear in the passing run, everything after that point is misaligned — the diff becomes meaningless.

Fix

Implement fuzzy alignment before comparing: match actions by apiName + locator (or apiName alone when no locator is present) using a longest-common-subsequence approach. Only compare structurally matched pairs; report

Read the thread · 2026-05-15 · closed · 0 comments

Unbounded in-process cache causes memory leak on long-running server

Problem

The Map cache in trace-parser.ts grows forever. A CI server processing hundreds of traces per day will slowly leak memory — each unique zipPath adds an entry that's never evicted.

Fix

Replace the plain Map with a simple LRU cache (e.g. capped at 50 entries). When the limit is hit, evict the least-recently-used entry. The lru-cache npm package covers this in a few lines, or it can be implemented manually with a Map + insertion-order eviction.

Read the thread · 2026-05-15 · closed · 0 comments

Error handling: wrap parseTraceZip calls in try-catch and return MCP-friendly errors

Problem

statSync(zipPath) in parseTraceZip throws a native Node error if the file doesn't exist or is unreadable. The MCP server propagates this as an unhandled exception — the agent sees a raw stack trace instead of a structured response.

Fix

Wrap each tool handler in a try-catch and return a user-readable MCP content block on failure:

try {
  const trace = await parseTraceZip(trace_path);
  // ...
} catch (err) {
  return {
    content: [{ type: "text", text: `Error readi

[Read the thread](https://github.com/vola-trebla/playwright-trace-decoder-mcp/issues/14) · 2026-05-15 · closed · 0 comments

### feat: CI integration + distribution — URL trace input, npm publish, Docker

## What & Why

Right now `trace_path` only accepts a local file. In real CI/CD workflows the trace lives in GitHub Actions artifacts. We also need proper distribution so anyone can `npx` or `docker run` this without cloning the repo.

## Tasks

### Remote trace input
- [ ] Accept `https://` URLs in `trace_path` — download to a temp file, parse, cleanup
- [ ] Accept GitHub Actions artifact URLs (with optional `Authorization` header via env var `GITHUB_TOKEN`)

### npm publish
- [ ] Set up `npm pu

[Read the thread](https://github.com/vola-trebla/playwright-trace-decoder-mcp/issues/8) · 2026-05-15 · closed · 0 comments

## Most recent

### feat: cross-trace comparison + error signature grouping for flakiness analysis

## What & Why

A single trace tells you what failed. Two traces (pass + fail of the same test) tell you *why* it's flaky. Playwright's `retries` + `retain-on-failure` mode saves both — this tool makes them comparable.

Error signature grouping (à la Sentry) lets an agent instantly determine if 10 parallel CI failures are all the same root cause or 10 different ones.

## Tasks

### Error signature generation
- [ ] `generate_error_signature` tool — produces a stable hash from: test name + normaliz

[Read the thread](https://github.com/vola-trebla/playwright-trace-decoder-mcp/issues/7) · 2026-05-15 · closed · 0 comments

### feat: advanced diagnostic tools — race conditions, DOM delta, causal chain

## What & Why

Move heavy analytical work from the LLM to the server. Instead of dumping raw data and asking the agent to reason about timing or DOM changes, the server does the deterministic computation and hands the agent a conclusion.

## Tasks

### `analyze_race_conditions`
- [ ] Cross-reference action timings against concurrent network request lifecycles
- [ ] Flag cases where a UI action fired before a dependent API response arrived (primary cause of flaky tests)

### `get_dom_mutation_del

[Read the thread](https://github.com/vola-trebla/playwright-trace-decoder-mcp/issues/6) · 2026-05-15 · closed · 0 comments

### feat: get_aria_accessibility_tree — translate frame-snapshot to ARIA YAML

## What & Why

`frame-snapshot` events contain the full serialized DOM at each action step — but raw DOM JSON is massively token-expensive for LLMs. Playwright's native ARIA snapshot format (YAML, semantic roles + text only) reduces token footprint by ~90% while giving the agent perfect context to suggest resilient locators like `getByRole`.

This is the highest-value single tool for improving AI agent accuracy on locator failures.

## Tasks

- [ ] Identify and extract `frame-snapshot` entries f

[Read the thread](https://github.com/vola-trebla/playwright-trace-decoder-mcp/issues/5) · 2026-05-15 · closed · 0 comments

### feat: context window protection — pagination + get_test_metadata tool

## What & Why

Tools like `get_action_timeline` and `get_console_errors` can return hundreds of entries for long test runs — one big response blows the LLM context window and causes the "summarization loop" failure mode. We also need a lightweight metadata tool before any deep analysis.

## Tasks

- [ ] Add `limit` / `offset` params (Zod-validated) to `get_action_timeline`, `get_console_errors`, `get_filtered_network_logs`
- [ ] Add `get_test_metadata` tool — returns test name, Playwright versio

[Read the thread](https://github.com/vola-trebla/playwright-trace-decoder-mcp/issues/4) · 2026-05-15 · closed · 0 comments

### fix: parser foundation — streaming JSONL, metadata.json, console text, trace cache

## What & Why

Current parser loads the full trace into memory as a string — will OOM on traces >100MB (real enterprise suites). Also has two known bugs.

## Tasks

- [ ] Replace string concatenation with streaming JSONL parser (`readline` interface) to handle large traces without V8 OOM
- [ ] Parse `metadata.json` from the zip (Playwright version, browser, viewport, test name, timestamps) — needed for `get_test_metadata` tool and future version-branching logic
- [ ] Fix `get_console_errors` — `

[Read the thread](https://github.com/vola-trebla/playwright-trace-decoder-mcp/issues/3) · 2026-05-15 · closed · 0 comments

The remaining reports are on [the project's issue tracker](https://github.com/vola-trebla/playwright-trace-decoder-mcp/issues).