transcript-search-v2
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@transcript-search-v2search my conversations for when we discussed the API rate limit issue"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
transcript-search-v2
MCP server that indexes local Claude Code conversation transcripts
(~/.claude/projects/**/*.jsonl) and exposes keyword, phrase, semantic, and
date-range search over them, plus full-fidelity context/session recall.
Architecture
Data dir:
~/.transcript-search-v2/.One SQLite database (
index.db, WAL mode) holds everything: chunk rows, an FTS5 keyword index, and a sqlite-vec vector index, all writable in the same transaction -- deliberately not a separate vector store, so the keyword/vector/source-of-truth views can never drift out of sync with each other.Chunking: one chunk per content block (text/thinking/tool_use/ tool_result), not per message, each independently truncated and classified by
signal(high/medium/low) so routine tool noise doesn't crowd out conversational content in search results.Embeddings: local
sentence-transformers(all-MiniLM-L6-v2, 384-dim, CPU device -- MPS/GPU init from a background thread hangs on Apple Silicon, seeembed.py), no API cost, works offline.Ingestion: incremental and append-aware -- each file's byte offset is tracked in the
filestable, so re-scans only parse new complete lines. Backfill (initial scan) and ongoing re-indexing share the same code path.Watcher: a
watchfilesbackground task on~/.claude/projects/feeds a single-writer queue (writer.py), so the watcher, manualreindex()calls, and startup backfill can never race on the same file. A separate, decoupled embedding loop means a chunk is keyword-searchable immediately on write and semantically-searchable a little later.
Related MCP server: conversation-history-mcp
Setup
uv syncThe embedding model downloads once on first use (~80MB, cached under
~/.cache/huggingface).
Register with Claude Code
Copy the relevant block from mcp.json.example into your ~/.claude.json
mcpServers section (or wherever your MCP client reads server configs from).
Tools
keyword_search/semantic_search/hybrid_search-- full-text, meaning-based, and combined (reciprocal-rank fusion, with signal/recency reranking by default) search. Quote the query (e.g.'"exact phrase"') for phrase search. All supportproject(substring match against the working directory a message was sent from),date_from/date_to(interpreted in local time, seeconfig.LOCAL_TZ),include_low_signal,include_sidechains,limit(capped at 500), andoffset(for paging).keyword_searchalso retries once with typo-corrected terms (fuzzy_fallback, seefuzzy.py) if a strict search finds nothing.list_sessions,get_period-- browse by recency or date range without a keyword.get_context,get_session-- full-fidelity (untruncated) recall, re-reading the original.jsonllines rather than the truncated index.status,coverage,reindex-- indexer health and manual re-index trigger.get_usage-- LLM token/cost breakdown by model, session, or day.doctor-- environment/index health check, withfix=Trueauto-repair (backfill, drain embedding backlog, quarantine+rebuild a corrupt db).prune-- delete chunks/LLM-call records older than N days, optionally scoped to a project;dry_run=Trueby default.
Tests
uv run pytestUnit tests cover schema parsing and chunk extraction/truncation/signal
classification in isolation. Integration tests exercise the full
ingest -> search -> context-recall pipeline against synthetic fixtures under
tests/fixtures/sample_transcripts/, including malformed lines, sidechain
filtering, idempotent re-ingestion, and the FTS5 hyphenated-term gotcha
(sqlite-vec parses as NOT vec unless quoted -- see _sanitize_fts_query
in tools/search.py).
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceA semantic search system for Claude Code transcript history, exposed as an MCP server so Claude Code can query its own past sessions.
- Alicense-qualityDmaintenanceA local MCP server that indexes and searches your Claude Code conversation history with both keyword and semantic search, fully private and running locally.MIT
- AlicenseAqualityDmaintenanceAn MCP server that indexes Claude Code conversation history into SQLite, enabling full-text search across past sessions for context recovery and cross-agent observability.103MIT
- AlicenseAqualityCmaintenanceA local MCP server that indexes and searches your past Claude sessions using SQLite FTS5. No cloud, runs entirely on your machine.3MIT
Related MCP Connectors
Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only
Hosted MCP memory: save sessions/decisions once, search from Claude, Cursor, ChatGPT. EU-hosted FTS.
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/jsundquist/transcript-search-v2'
If you have feedback or need assistance with the MCP directory API, please join our Discord server