mcp server
Chronicle
Summarize your Claude.ai conversations. Search and synthesise across time, both via MCP and offline.
Set up
Runs on your computer. Pick your agent and operating system.
This project does not publish an install method we can turn into a config. Follow the README instead.
README
synced Oct 23, 2026Chronicle
A personal encyclopedia of your Claude.ai conversations — captured, summarized, and made searchable from your own machine.
Chronicle takes the conversations you've had with Claude and turns them into a durable, browsable record: every conversation gets a concise markdown summary, and those summaries roll up into period entries (half-month → quarter → year). The whole corpus is searchable, and an MCP server lets Claude itself read back through it — to recall what you decided, quote what you actually said, or revisit old threads with fresh eyes.
Everything runs locally. Your conversations never leave your machine except for the summarization passes you explicitly run.
How it works
Chronicle is three pieces that hand off to each other:
- The browser extension (
extension/) — a Chrome and Firefox extension that exports your Claude.ai conversation history (all of it, or a date-bounded slice) as a single JSON file. - The pipeline (
pipeline/) — a Python CLI that ingests those exports, splits them into per-conversation files, tracks freshness from timestamps, and orchestrates Claude to write the summaries and period entries. - The MCP server (
pipeline/chronicle/mcp_server.py) — exposes the processed archive to Claude Desktop as a set of search/read tools, so you can ask Claude to find, quote, and reflect on past conversations.
Claude.ai ──(extension)──▶ export.json ──(pipeline)──▶ summaries + entries ──(MCP)──▶ Claude Desktop
Quick start
1. Build and install the extension
./build.sh # lints + builds the extension into artifacts/ (needs Node 20+)
One build runs in both browsers.
- Chrome: open
chrome://extensions, turn on Developer mode, click Load unpacked and pickartifacts/chrome/. After a rebuild, click the reload arrow on the extension's card. From a release, unzipchronicle_export-<version>-chrome.zipand load that folder the same way. - Firefox (127 or later): open
about:debugging→ This Firefox → Load Temporary Add-on and pickartifacts/chronicle_export-<version>.zip(orextension/manifest.jsonfor a live-reload dev copy). Temporary add-ons are removed when Firefox quits.
Open claude.ai, sign in, and use the extension's toolbar popup to export your
history. It needs access to claude.ai, which both browsers grant at install. If you
turn it off later, Fetch says where to turn it back on: in Firefox, about:addons →
Chronicle Export → Permissions; in Chrome, the extension's Details →
Site access.
2. Set up the pipeline
uv venv # creates .venv/ (uses https://github.com/astral-sh/uv)
uv pip install -e ./pipeline
uv run chronicle --help
Python 3.11+; no third-party runtime dependencies. Drop an export into the inbox and run the whole loop with one command:
uv run chronicle # ingest the latest export, summarize everything stale, reindex
That's the default — bare chronicle brings the archive up to date (it calls Claude, so
it costs money; use chronicle sync --ingest-only for the free ingest, or --dry-run to
preview). Period rollups (half-month → quarter → year) are a separate step:
chronicle syn. See pipeline/README.md for the full command
reference, directory layout, and freshness model.
3. (Optional) Wire up the MCP server
Install the MCP extra and point Claude Desktop at it:
uv pip install -e './pipeline[mcp]'
Add a server entry to Claude Desktop's claude_desktop_config.json that runs
chronicle-mcp (the uv run --project ./pipeline chronicle-mcp form works well).
Restart Claude Desktop to pick it up. The server exposes tools for finding
conversations, reading summaries and period entries, browsing index cards, mapping
recurring themes, and pulling verbatim passages.
Security posture
Chronicle treats your conversation content as untrusted input (it's anything you've
ever pasted into Claude). Every claude invocation in the summarize/synthesize passes
runs with file-writing and shell tools disabled and a spend cap — the Python wrapper
is the only thing that writes files. Details in
pipeline/README.md and
pipeline/chronicle/claude_invoke.py.
Layout
extension/ Chrome and Firefox extension — captures Claude.ai exports
pipeline/ Python CLI — ingest, summarize, synthesize, search, MCP server
files/ Summarization/synthesis prompts and the original design specs
dev/features/ What a user can do, and the check for each
build.sh Builds the extension; `check` runs the laws and drives
Processed data (your summaries, the search index, raw exports) lives outside version
control by design — see .gitignore.