get_test_metadataLABSCO SUMMARY
A CI failure becomes something a model can actually read.
A Playwright trace is a binary archive that no assistant can open and that no context window can swallow whole. This server turns it into targeted, paginated answers, so the question "why did this test fail" gets a file and a line number rather than a shrug.
What it is
An MCP server that opens Playwright trace.zip archives and exposes their contents as structured, paginated results, with ARIA snapshots compressed so a failing run fits in a model's context.
What you get
- A summary of what the trace contains, so the investigation starts from the shape of the run rather than raw JSON
- The test's own metadata — which spec, which run, which configuration produced this archive
- The failing action resolved back to source code — the spec file, and the line and column, behind a
locator.clicktimeout - Screenshot frames from around the moment of failure, rather than the whole video
- Pagination and compression on every read, so pulling detail does not blow the context window
Requirements
git and npm to clone and build the project, and a path to a trace.zip on disk — the same archive CI already publishes as an artifact. No account and no key.
Setup effort
Build from source — git clone https://github.com/vola-trebla/playwright-trace-decoder-mcp.git
USE CASES
Working out why last night's CI run went red
Start from the trace summary — the run's shape and its failure point — before deciding which detail is worth pulling.
Confirming which test and which run you are looking at
Read the archive's own metadata so an investigation is anchored to the right spec rather than a similar-looking one.
Pinning a timeout to a line of code
The failing locator is resolved back to the file, line and column that wrote it — the step that usually costs a manual bisect through the spec.
Seeing the screen at the moment it broke
Pull the frames around the failure instead of watching the recording, so a layout or missing-element cause shows up immediately.
Investigating a large trace without truncation
Reads are paginated and ARIA content is compressed, so a long run can be explored in pieces rather than dumped and cut off.
19 tools
Listed in project docs. Your client may show a different list.
get_trace_summaryget_action_timelineget_filtered_network_logsget_console_errorsget_element_state_at_failureextract_trace_metadata_strictget_aria_accessibility_treeget_dom_mutation_deltaget_screenshot_at_failureanalyze_race_conditionscorrelate_dom_and_networkextract_critical_framesget_causal_chain_for_failuregenerate_error_signaturecompare_tracesmap_locator_to_sourcedetect_performance_anomaliestrim_trace_archiveBEFORE YOU INSTALL
What to know first
Tools you get
19 tools named in the project's documentation.
Requires
- git on PATH
- npm on PATH
INSTALLATION
Connect your client
You clone and build this one yourself.
Server setup
git clone https://github.com/vola-trebla/playwright-trace-decoder-mcp.git
cd playwright-trace-decoder-mcp
npm install
npm run buildMCP Clients
Claude Desktop, Cursor
{
"mcpServers": {
"playwright-trace-decoder": {
"command": "node",
"args": [
"<YOUR_PATH_TO_PLAYWRIGHT_TRACE_DECODER_MCP>/dist/index.js"
]
}
}
}VS Code
{
"servers": {
"playwright-trace-decoder": {
"command": "node",
"args": [
"<YOUR_PATH_TO_PLAYWRIGHT_TRACE_DECODER_MCP>/dist/index.js"
]
}
}
}Claude Code
claude mcp add playwright-trace-decoder \
node <YOUR_PATH_TO_PLAYWRIGHT_TRACE_DECODER_MCP>/dist/index.jsDocker
git clone https://github.com/vola-trebla/playwright-trace-decoder-mcp.git
cd playwright-trace-decoder-mcp
docker build -t playwright-trace-decoder-mcp .{
"mcpServers": {
"playwright-trace-decoder": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-v",
"<YOUR_PATH_TO_TRACES>:/traces",
"playwright-trace-decoder-mcp"
]
}
}
}