mcp-replay is a static-page renderer for JSON-RPC traces recorded by
mcp-tape — the stdio proxy that wraps any MCP server and writes every message to a replayable .jsonl file. Drop a trace URL in, see exactly what tools your agent called, with what arguments, and what they returned.
Tip: drag & drop .jsonl traces anywhere — one file opens it, two files diff them, more files merge them.
?trace=<url> for one trace,
?trace=<a>;<b>;… to merge several by timestamp.
Traces must be reachable via HTTPS or same-origin.
?live=ws://127.0.0.1:7777 connects to a
running mcp-tape --serve session on your machine. Localhost only — no
remote hosts accepted.
?diff=<a>;<b> opens two
traces side-by-side, aligned by tool-call ordinal. Drag two
.jsonl files on at once for the same effect locally.
Every JSON-RPC message, ordered. Click to expand the raw payload.
Which tools your agent called, how often, how long they took, how often they errored.
Each tools/call request paired with its response, with latency and full arguments.
The JSONL itself, line-numbered. The format is documented and stable.
From zero to a replayable trace of your own Claude Code session. No public URLs, no server staging.
mcp-tape globallynpm i -g mcp-tape@alpha
Requires Node 20+. -g (not npx) so the wrapped binary path in your config survives upgrades.
mcp-tape install
Auto-detects and wraps these configs: ~/.claude.json (Claude Code), ~/.config/claude/claude_desktop_config.json (Claude Desktop), ~/.gemini/antigravity/mcp_config.json (Antigravity IDE), ~/.gemini/settings.json (Gemini CLI). Idempotent. Backs up to <file>.mcp-tape.bak. --dry-run previews; --target=<list> scopes; mcp-tape uninstall reverses.
Every server you talk to writes a JSONL trace to ./mcp-traces/ (relative to the server's working directory). One file per session per server, named like 2026-05-13T15-30-00-000Z-<label>.jsonl.
Click Open local trace… at the top of this page (or drag-and-drop the .jsonl file anywhere). The file stays in your browser. To merge sessions across servers, drag multiple files at once.
Send the .jsonl file to a collaborator. They drop it into mcpreplay.dev the same way. No public URL needed.
Done when you've recorded a few real sessions and shared at least one without hand-editing config or hand-scrubbing secrets.