Skip to main content
Glama
constripacity

claude-replay

Claude Replay

The observability layer for Claude Code sessions — search, analytics, and visualization across every project.

PyPI CI Python License MCP


Claude Code's --resume/--continue and /rewind recover the session you're in. Claude Replay does the part they don't: it hooks passively into every session, records what happened to a local SQLite store, and makes every past session — across every project — searchable, comparable, measurable, and exportable. Full-text search, per-session insight metrics, death-cause classification (why a session ended), session diffing, a web dashboard, and a terminal UI — none of which Claude Code has natively.

Claude Code session
        |
   hooks (PreToolUse · PostToolUse · Stop)
        |
        v
   ~/.claude-replay/sessions.db   ← events + checkpoints
        |
   +----+--------------------+
   |          |              |
 MCP tools  Dashboard      TUI
 (resume)   :8766          (browse)

Passive hooks write. MCP tools, the web dashboard, and the terminal UI read. Nothing leaves your machine.


How this complements native Claude Code

Claude Replay is additive — it layers on top of the built-ins, it doesn't replace them.

You want to…

Use

Resume / continue the current session

Native claude --continue, --resume

Undo file + conversation changes in a session

Native /rewind

Search every past session by content, tool, or outcome

Replay search

See why a session ended + per-session metrics

Replay status / replay_insights

Compare two runs side by side

Replay diff

Visualize a session timeline / browse all projects

Replay dashboard + TUI

Export a session as HTML / JSON / Markdown

Replay export --format

Think of native resume/rewind as recovery, and Replay as observability over your whole history.


Related MCP server: claude-code-mcp

Architecture

Passive hooks write to SQLite. MCP tools read from SQLite. Dashboard + TUI visualize SQLite. That's the whole system.

Layer

File

Role

Store

claude_replay/store.py

All DB access — sessions, events, checkpoints

Hooks

claude_replay/hooks.py

Record tool calls + auto-checkpoint, dispatched by claude-replay hook <type>

Recovery

claude_replay/resume.py

Generate a resume brief from a session

Export

claude_replay/export.py

Render a session as a self-contained HTML trace

Server

claude_replay/server.py

Starlette app — MCP SSE + JSON API + static dashboard

TUI

claude_replay/tui.py + tui_client.py

Textual session browser over the JSON API

CLI

claude_replay/cli.py

Every subcommand

Port 8766 deliberately one above Claude Bridge's 8765, so the two siblings can run side by side without colliding.


Quickstart

1. Install

pip install claude-replay

Or from a clone if you'd like to hack on it:

git clone https://github.com/constripacity/Claude-Replay.git
cd Claude-Replay
pip install -e .[dev]              # editable install with test/lint deps
pip install -e .[tui]             # add the terminal UI deps (textual, httpx)

If pip install -e fails on your environment (a known hatchling editable-install quirk on some setups), install the deps directly instead: pip install mcp starlette uvicorn anyio textual httpx.

2. Install the hooks

This wires Replay into Claude Code by merging three hooks into ~/.claude/settings.json. It's idempotent and leaves any other tools' hooks untouched.

claude-replay install
✓ Installed Claude Replay hooks into ~/.claude/settings.json
  PreToolUse  → claude-replay hook pre-tool
  PostToolUse → claude-replay hook post-tool
  Stop        → claude-replay hook stop

From now on, every Claude Code session is recorded automatically. Remove the hooks any time with claude-replay uninstall (it removes only Replay's hooks).

Confirm it's actually wired up — the one check that matters:

claude-replay doctor
Claude Replay — doctor

  ✓ Hooks installed: PreToolUse / PostToolUse / Stop are in settings.json
  ✓ Hook command on PATH: claude-replay → …/claude-replay
  ✓ Database: ~/.claude-replay/sessions.db
  ✓ Sessions recorded: 3 sessions; most recent 5m ago

All good — Replay is installed and recording. ✓

If doctor warns that claude-replay isn't on PATH, the hooks can't run and nothing is recorded — put your install directory on PATH and re-run it.

3. Start the server (dashboard + MCP tools)

claude-replay serve                 # defaults: 127.0.0.1:8766
claude-replay serve --port 9000     # custom port
claude-replay serve --host 0.0.0.0  # bind all interfaces
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Claude Replay — Session checkpoint & recovery server
  Version: 0.4.1
  DB: ~/.claude-replay/sessions.db
  http://localhost:8766/             ← Dashboard
  http://localhost:8766/sse          ← MCP config
  http://localhost:8766/api/state    ← JSON state
  http://localhost:8766/status       ← Health check
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

4. (Optional) Register the MCP tools with Claude Code

So a running Claude Code session can call replay_resume, replay_checkpoint, etc. directly. Two ways:

SSE (alongside the dashboard — needs claude-replay serve running):

claude mcp add --transport sse -s user claude-replay http://localhost:8766/sse

stdio (no server process — the client launches Replay on demand):

claude mcp add -s user claude-replay -- claude-replay mcp
# or, without installing: uvx claude-replay mcp

Verify with claude mcp list claude-replay should show ✓ Connected. Inside an already-running session, type /mcp to re-handshake.


When a session dies

# What's the state of the last session?
claude-replay status

# Print a paste-ready resume brief (most recent session, or pass an id)
claude-replay resume
claude-replay resume <session-id>

# Browse every recorded session in the terminal
claude-replay tui                   # needs `claude-replay serve` running

# Export a session as a self-contained HTML trace
claude-replay export                # → ~/.claude-replay/exports/<id>.html

Paste the resume output into a fresh Claude Code session and it picks up where the dead one left off objective, what was done, what's next, and which files were touched.


MCP Tools

Every connected Claude Code session gets these ten tools:

Tool

Description

replay_status

Current session summary objective, status, how it ended, event/checkpoint counts, last activity

replay_checkpoint

Force a checkpoint of the current session now, with an optional note

replay_resume

Generate a structured resume brief for a session (default: most recent)

replay_sessions

List recent sessions with status, model, duration, checkpoint count

replay_insights

Per-session metrics: how it ended, duration, tool calls, error rate, files touched, top tools

replay_stats

Cross-session analytics: tool calls, error rate, why sessions end, tool mix, per-project rollups

replay_search

Full-text search across sessions with filters (tool, cause, date, project), ranked by match count

replay_diff

Compare two sessions: metric deltas + which files each touched

replay_tag

Name a session and add/remove tags for later retrieval

replay_export

Render a session as a self-contained trace (html / json / md) and return the path


CLI Reference

Command

What it does

claude-replay install

Merge Replay's hooks into ~/.claude/settings.json (idempotent)

claude-replay uninstall

Remove only Replay's hooks

claude-replay status

Current/last session at a glance, with insight metrics

claude-replay sessions [--limit N]

List recent sessions (with names + tags)

claude-replay search <query> [--tool T] [--cause C] [--since 7d] [--project P]

Full-text search with filters (omit query to browse by filter)

claude-replay diff <session-a> <session-b>

Compare two sessions side by side

claude-replay resume [session_id]

Print a resume brief (default: most recent)

claude-replay export [session_id] [--output DIR] [--format html|json|md]

Render a trace

claude-replay tag [session_id] [--name N] [--add a,b] [--remove c] [--clear]

Name or tag a session

claude-replay prune [--older-than 30d] [--yes]

Delete sessions with no recent activity (destructive)

claude-replay serve [--host H] [--port P]

Start the MCP + dashboard server (port 8766)

claude-replay mcp

Serve the MCP tools over stdio (for uvx claude-replay mcp / MCP clients)

claude-replay tui [--url URL]

Launch the terminal session browser

claude-replay reset [--yes]

Delete all recorded sessions (destructive)

claude-replay hook <pre-tool|post-tool|stop>

Internal — invoked by Claude Code's hooks


Dashboard & TUI

Web dashboard (claude-replay serve, then open http://localhost:8766/) a vanilla-JS view that polls every 2 s: session list (with how-it-ended badge + tags), a live search box, per-session timeline, and one-click "Copy Resume Brief" / "Export HTML". No CDN, no build step.

Terminal UI (claude-replay tui) a Textual browser in the same dark theme. A session sidebar, a live event feed, and a detail inspector showing how the session ended, its tags, the latest checkpoint, and files touched. Keys:

↑↓ navigate   Tab switch panel   Space pause
r  resume (copies the brief to your clipboard)
e  export HTML trace
?  help        q quit

The TUI talks to the server over HTTP start claude-replay serve first (defaults to http://127.0.0.1:8766; point elsewhere with --url).


Configuration

Env var

Default

Purpose

CLAUDE_REPLAY_DB

~/.claude-replay/sessions.db

SQLite store location

CLAUDE_SESSION_ID / CLAUDE_CODE_SESSION_ID

Session identity (Claude Code sets this in the hook payload); falls back to these env vars, then to a hash of the project dir

CLAUDE_REPLAY_CORS_ORIGIN

localhost only

Comma-separated extra CORS origins for the server

CLAUDE_REPLAY_NO_DASHBOARD

Set to disable the static dashboard mount (MCP/JSON only)

The hook path is offline-first by design: it makes no network calls and completes in well under 50 ms just the one SQLite write. Large tool payloads are truncated at 8 KB per event so the DB stays lean.


Development

pip install -e .[dev]               # or install deps directly (see install note)
python -m pytest                    # full suite
ruff check .

Tests use an isolated tmp_path SQLite database (the fresh_db fixture) — they never touch your real ~/.claude-replay/sessions.db. See CONTRIBUTING.md for the scope and the coding rules.


License

MIT see LICENSE.

Sibling to Claude Bridge. Built under the Constripacity banner.

Available Tools

10 tools
replay_checkpointA

Force a checkpoint of the current session right now, with an optional note.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoOptional note describing the checkpoint

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is not read-only, not idempotent, and not destructive. The description adds that the checkpoint is forced immediately and scoped to the current session, but it does not disclose side effects, persistence behavior, or failure modes. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One concise, front-loaded sentence with no redundant phrasing. Every word earns its place, and the most important action and scope appear immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is low in complexity with one optional parameter, but the description omits practical context such as whether an active session is required, what happens if no session exists, and what the agent can expect after calling it. Since there is no output schema, a bit more guidance would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents the single optional 'note' parameter completely, so the description adds little semantic value beyond restating that the note is optional. With 100% schema coverage, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear directive verb ('Force') plus an explicit resource ('checkpoint of the current session') and mentions the optional note. This distinguishes it cleanly from sibling tools like replay_resume or replay_export, which perform different operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. It does not state prerequisites such as requiring an active session, nor does it say when checkpointing is preferable to replay_status, replay_export, or replay_diff. The only contextual clue is 'current session'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

replay_diffA
Read-only

Compare two sessions side by side: metric deltas (tool calls, errors, duration, files) and which files each touched.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_aYesFirst session ID
session_bYesSecond session ID

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, covering the no-mutation behavior. The description adds useful detail about what the comparison surfaces (metric deltas and file-touch differences), but it does not disclose limitations such as how missing or invalid session IDs are handled or whether the diff is a full side-by-side report.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence that states the core action and the concrete comparison dimensions. Every phrase earns its place, with no filler, tautology, or unnecessary restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter read-only tool, the description is largely complete: it names the inputs' purpose, the operation, and the expected output content. A small gap is the absence of any note about how the comparison is presented or whether the returned data is a summary or a detailed report, but this is not critical given the tool's low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters described as session IDs. The description confirms that the two IDs represent the sessions being compared, but adds no extra meaning beyond the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Compare') and resource ('two sessions side by side'), and enumerates the exact kinds of differences produced: metric deltas for tool calls, errors, duration, files, plus per-file touches. This makes it clearly distinct from siblings like replay_sessions or replay_stats, which list or aggregate sessions rather than diffing two of them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for when a user wants to compare two sessions, but it does not explicitly state when to prefer it over alternatives or when not to use it. It also gives no context about prerequisites, such as whether sessions must be replayed or in the same workspace.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

replay_exportA
Idempotent

Render a session as a self-contained trace (html, json, or md) and return the output path.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoExport format (default: html)
outputNoOutput directory (default: ~/.claude-replay/exports)
session_idNoSession ID (default: most recent)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate it is not read-only and is idempotent. The description adds that it returns a path, implying file creation, but does not mention overwriting behavior or potential side effects like creating directories.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that conveys the essential information without redundancy or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description sufficiently covers the operation: it renders a session into a self-contained trace and returns the output path. Since there is no output schema, no further explanation of return structure is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides descriptions for all parameters (format, output, session_id). The tool description does not elaborate on them, so it adds no extra meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (render/export), the resource (a session), the output formats (html, json, or md), and the return value (output path). It is distinct from sibling tools like replay_status or replay_diff.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus the sibling tools. It is clear what it does, but not when to prefer it over alternatives like replay_status or replay_diff.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

replay_insightsA
Read-only

Per-session insight metrics: how it ended, duration, tool-call count, error count/rate, files touched, and the most-used tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNoSession ID (default: most recent)

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds the date-range scoping, which is useful, but doesn't mention pagination or return format. With annotations covering safety, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste, scoping constraint front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a filtered-list tool whose annotations already cover safety. It states scope and alternative. No missing information needed to call it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema documents the parameter. The description implies date-range filtering but doesn't add syntax or format details beyond the schema. Baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List'), resource ('ALL calls'), and scope (no user/workspace filtering). It also names the sibling it is not, so an agent can tell it apart without inspecting schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the alternative tool and the condition that selects it (filtering by user/workspace). The agent knows exactly when to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

replay_resumeA
Read-only

Generate a structured resume brief for a session (default: the most recent). Paste the result into a new Claude Code session to continue where it left off.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNoSession ID (default: most recent)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered without needing repetition. The description adds the 'default: most recent' behavior and the workflow advice about pasting, but that overlaps with parameter schema and usage guidance rather than exposing new behavioral traits. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences long and front-loads the main purpose. The second sentence adds immediate practical guidance without fluff, making it highly efficient for an agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has just one optional parameter and no output schema, and the description still explains the invocation default and how to use the result. It does not account for edge cases like no existing session or the exact format of the brief, but these are not essential for an agent to correctly call and consume the output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with session_id already described as 'Session ID (default: most recent)'. The tool description essentially restates the default without adding semantic detail on format or session selection logic. Given high schema coverage, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Generate' with a specific resource 'structured resume brief' and states a default behavior ('most recent'), so the core purpose is clear. It does not explicitly distinguish itself from sibling tools like replay_checkpoint or replay_status, which prevents a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit use case: 'Paste the result into a new Claude Code session to continue where it left off.' This provides clear context for when this tool should be used. It does not, however, exclude any alternatives or state which sibling tools should be used instead, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

replay_sessionsB
Read-only

List recent sessions with status, model, duration, and checkpoint count.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax sessions to list (default: 10)

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the read-only nature is covered. The description adds context about the returned fields but does not disclose additional behavioral traits like rate limits, authentication, or sort order. It is consistent with annotations, earning a baseline score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no redundant wording. It states the action, resource, and key return fields efficiently, earning full marks for conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple listing tool with one optional parameter and no output schema, the description adequately conveys what is returned. It does not mention sorting or pagination, but these are implicit in 'recent' and the limit parameter. Minor gaps exist but are not critical given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully documents the single 'limit' parameter with default and description (100% coverage). The description does not add any semantic detail beyond the schema, so it remains at the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists recent sessions and specifies the returned fields (status, model, duration, checkpoint count). It is not a tautology and distinguishes itself from siblings that perform actions like resuming, exporting, or diffing, though it does not explicitly name any sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives such as replay_status or replay_insights. It does not mention exclusions or prerequisites, leaving the agent to infer that it is for general listing without any situational cues.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

replay_statsB
Read-only

Cross-session analytics across all recorded sessions: total tool calls, overall error rate, why sessions end (death-cause breakdown), the tool mix, and per-project rollups. Optional limit / project filter.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoOnly the N most recent sessions (default: all)
projectNoOnly sessions whose project dir contains this

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, which the description aligns with by framing as analytics (read-only). The description adds context about the scope (all recorded sessions) and the breakdowns provided, which is useful. However, it doesn't disclose potential performance implications of scanning all sessions, pagination, or how the output is structured. With annotations covering safety, the description adds some value but could include more behavioral detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense sentence listing the key metrics, followed by a short clause on filters. It is front-loaded with the core analytics content. It earns its length by covering multiple dimensions of the stats without fluff. Could be slightly more structured but is effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

ันGiven that the output schema is absent and the tool returns complex aggregated analytics, the description provides a good overview of what is returned (death-cause breakdown, tool mix, per-project rollups) which partially compensates. However, it does not explain how the results are presented, whether there are any limitations on data range, or how 'error rate' is calculated. For a cross-session aggregation tool, these details could be useful, but the description covers the essentials.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with descriptions for both 'limit' (N most recent sessions) and 'project' (sessions whose project dir contains this). The description mentions 'Optional limit / project filter', which aligns with the schema. No additional semantics beyond schema, which is acceptable given full coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as providing cross-session analytics, enumerating specific metrics (tool calls, error rate, death-cause breakdown, tool mix, per-project rollups). It distinguishes from siblings like replay_sessions (listing sessions) and replay_insights (likely more focused analysis) by emphasizing aggregate stats across sessions. Could be more explicit about which sibling it differs from, but the purpose is clear and specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for analytics on all recorded sessions, but does not explicitly state when to prefer this over replay_sessions, replay_insights, or replay_status. The optional limit and project filter are mentioned, giving some context on scoping, but no explicit when-not or alternative selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

replay_statusA
Read-only

Current session summary: objective, status, checkpoint/event counts, last activity.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, establishing a safe, read-only operation. The description adds behavioral context by specifying what kind of data is returned and that it represents a snapshot of session activity, substantially contributing beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the core purpose ('Current session summary') and then lists the relevant informational fields efficiently. Every part contributes value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only status tool, the description is sufficiently complete. It tells the agent what the tool returns and the scope ('current session'); no output schema exists, but the textual list of contents covers the relevant context for invoking and interpreting the call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and schema description coverage is 100%. With no parameters to document, the baseline of 4 applies since there is no schema ambiguity and no need for additional parameter-related guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear resource ('current session') and lists concrete artifacts it returns (objective, status, checkpoint/event counts, last activity). However, it does not explicitly differentiate itself from the sibling tools like replay_sessions or replay_stats, though 'current session' narrows its scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: whenever a summary of the current session is needed. It does not state exclusions or alternatives, leaving the agent to infer when a sibling like replay_sessions or replay_checkpoint is more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

replay_tagA
Idempotent

Name or tag a session for later retrieval. Sets a name and/or adds/removes tags on a session (default: the most recent).

ParametersJSON Schema
NameRequiredDescriptionDefault
addNoTags to add
nameNoHuman-friendly name
removeNoTags to remove
session_idNoSession ID (default: most recent)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already signal a mutating, idempotent, non-destructive operation. The description adds the basic operations—set name, add/remove tags—and the default session, though the default is also present in the input schema. It does not explain edge behaviors such as name overwrites or conflicting tag operations, but for this simple tool the combination is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences deliver the purpose, the allowed operations, and the default scope without filler. It is front-loaded and every clause is informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with four optional, fully schema-documented parameters and no output schema, this is nearly complete. A note about what the tool returns would be nice, but the description already contains enough for correct invocation and safe use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully describes all four parameters with 100% coverage, and the description maps them transparently to 'name' and 'tags'. The description adds little beyond the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a specific operation—name or tag a session—with clear verbs 'Name'/'Sets' and the object 'session'. It unambiguously distinguishes this from sibling tools like replay_checkpoint, replay_resume, and replay_search, which address different session concerns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for later retrieval' conveys a concrete use case, and the action scope is clear: name and/or tag a session, defaulting to the most recent. It does not explicitly exclude or mention alternatives, but the context is strong enough for an agent to select this tool appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 10 tool updatesv1.0.0
    • First observedreplay_checkpoint
    • First observedreplay_diff
    • First observedreplay_export
    • First observedreplay_insights
    • First observedreplay_resume
    • First observedreplay_search
    • First observedreplay_sessions
    • First observedreplay_stats
    • First observedreplay_status
    • First observedreplay_tag

TDQS

A4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: checkpointing, resuming, status, listing, exporting, searching, tagging, insights, diffing, and stats. No two tools overlap in functionality.

Naming Consistency5/5

All tools follow the consistent pattern `replay_<verb>`, with each verb accurately describing the action. The naming is uniform and predictable.

Tool Count5/5

With 10 tools, the set is comprehensive but not overwhelming, covering a wide range of session management features without redundancy.

Completeness4/5

The toolset covers most session lifecycle aspects (create, read, update via tagging, export, search, analyze), but lacks explicit deletion or renaming of sessions, which might be a minor gap.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables searching and retrieving Claude Code conversation history that would otherwise expire after 30 days. Supports full-text search, semantic search, and session management with automatic backup of all conversations.
    7
    28
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Wraps Claude Code as tools for MCP clients, enabling autonomous coding tasks via a 4-tool lifecycle with session management, async polling, and permission controls.
    4
    57
    20
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI-driven semantic code search via natural language queries, integrating with MCP clients like Claude Desktop to retrieve relevant code context from any codebase.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/constripacity/Claude-Replay'

If you have feedback or need assistance with the MCP directory API, please join our Discord server