Local stdio MCP server exposing unified Claude chat history (claude.ai export + Claude Code sessions) as ranked, scoped, structured search.
Project description
claude-archive-mcp
Local stdio MCP server that exposes your unified Claude chat history (claude.ai export + Claude Code sessions) to Claude Code as ranked, scoped, structured search.
Status: v1.2.0 · Author: Mike Andersen · License: MIT
When you reference past work — "did we settle this in nortam_dev last month?", "find the TAP routing analysis", "what did Claude Code commit on April 14?" — Claude Code reaches for this server instead of asking you to summarize.
Two sources, one index
| Source | source |
Origin |
|---|---|---|
| claude.ai export | claude_ai |
~/.claude/Exported_Chats/conversations.json + projects/ |
| Claude Code sessions | claude_code |
~/.claude/projects/**/*.jsonl |
Both feed one conversations table; the same tools search across both.
Tools
search_chats · get_chat · list_projects · list_recent_chats ·
search_within_chat · archive_stats · timeline · find_related_chats ·
get_digest · recall · get_session_lineage — eleven read-only, source-aware tools.
See docs/TOOLS.md. The server also exposes a per-project resource
(claude-archive://project/{source}/{identifier}) — a dynamic markdown project overview.
Digest: get_digest (tool) or python scripts/digest.py --weekly (also /digest) — a
markdown activity recap over a rolling daily/weekly window; both share one aggregator.
Semantic search (optional): find_related_chats ranks conversations by embedding
cosine. It needs the optional extra — pip install -e .[embeddings], then
python scripts/embed.py --backfill (also /embed). The server itself stays inference-free.
Install
See docs/INSTALL.md. In short (Windows, PowerShell 7):
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -e .[dev]
python scripts\reindex.py # build the index from both sources
python scripts\install_mcp.py # register the server in ~/.claude.json
Then start a new Claude Code session and ask away (see INSTALL.md for details).
Web viewer (read-only, localhost)
A plain, server-rendered web UI for browsing the same index in a browser — a second, read-only consumer of the query layer (it adds no MCP tool and changes no contract).
python -m claude_archive_mcp.webui # opens http://127.0.0.1:8766/
python -m claude_archive_mcp.webui --port 9000 # same, on a different port
- Pages (six): Home (recent conversations), Search (full-text, ranked), Conversation (with within-chat search and a Related-conversations section via embedding similarity), Timeline (a topic's activity over time, filterable by source/project), Digest (rolling daily/weekly activity digest), and Stats (archive statistics with near-duplicate project names collapsed for reading). The query logic is reused from the same handlers the MCP tools wrap — no duplicate logic, no MCP transport.
- Posture (all enforced in code, proven by tests): binds
127.0.0.1only (no config to widen it); opens the SQLite DBmode=ro, so it can never write or migrate; GET-only; no JavaScript; stdlibhttp.server(no extra dependencies). - Port: defaults to
8766; override withCLAUDE_ARCHIVE_WEBUI_PORTor the--portflag (the flag wins). The host is a hard rail —--portchanges the port only, never the loopback bind. Index first (python scripts\reindex.py) — the viewer reads an existing DB and will not create one.
Documentation
docs/CONTRACT.md— the frozen 1.0 surface + the 1.x semver policydocs/INSTALL.md— Windows install walkthroughdocs/TOOLS.md— per-tool reference + examplesdocs/ARCHITECTURE.md— design + rationaledocs/SOURCES.md— how each source is parsed, edge casesCHANGELOG.md
Development
pip install -e .[dev]
ruff check .
ruff format --check .
mypy --strict src/
pytest
Conventions live in CLAUDE.md. The project is built in gated
phases; do not chain past a phase gate.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file claude_archive_mcp-1.2.1.tar.gz.
File metadata
- Download URL: claude_archive_mcp-1.2.1.tar.gz
- Upload date:
- Size: 517.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
659cecdb98dcf9153b7632a01c40077e068d275b6c30984ec5d77b0d6294a340
|
|
| MD5 |
cb4ac86a4aff4b5b9d229b442c87b4f2
|
|
| BLAKE2b-256 |
7d0771d36e2e8e759376b18b568cb38fbe04837947954602dd2b5c3884cd95f3
|
File details
Details for the file claude_archive_mcp-1.2.1-py3-none-any.whl.
File metadata
- Download URL: claude_archive_mcp-1.2.1-py3-none-any.whl
- Upload date:
- Size: 126.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c5a7c35f4c5d3d67031f006eb123c110b2872c48b6255aadb80cc9ae764e9fa
|
|
| MD5 |
3cae915f0870d0ec8fb86f580d6a01ca
|
|
| BLAKE2b-256 |
4a9603023cd207950cb6edec8409f9493d33be56889698d9041d63831b4a62ea
|