Chronicle

Chronicle

A local-first personal archive with a read-only MCP gateway that preserves files and AI conversations, derives evidence-linked memory candidates using local models, and enables bounded context retrieval for questions.

Category
访问服务器

README

Chronicle

Chronicle is a local-first, provenance-preserving personal archive with a read-only Model Context Protocol (MCP) gateway. It preserves files and supported AI conversation exports, derives evidence-linked candidate memories with local models, and retrieves only the context needed for a particular question.

Chronicle is an early-stage research prototype. It is not a backup replacement, medical system, or authority on a person's identity.

Why Chronicle exists

Long-term AI memory must retain useful detail without sending an entire digital life to every model on every request. Chronicle separates the work:

  1. Original inputs are archived with hashes, timestamps, and provenance.
  2. Apple's on-device model performs fast routing when available.
  3. Qwen through LM Studio proposes detailed, evidence-cited memories.
  4. Deterministic validators reject unsupported, malformed, or unsafe claims.
  5. A read-only MCP gateway provides bounded search-then-fetch retrieval.

Derived claims remain reviewable candidates linked to their original evidence; model output does not automatically become an authoritative profile.

Current capabilities

  • Content-addressed local archive with SHA-256 integrity checks
  • Immutable versions when source files change
  • SQLite full-text search and provenance metadata
  • Lossless import of supported Claude conversation exports
  • Deterministic, turn-preserving conversation windows
  • Apple Foundation Models routing on compatible Macs
  • Resumable Qwen candidate extraction through LM Studio
  • Exact evidence-quote and speaker-authority validation
  • Sensitive-topic escalation and identifier blocking
  • Progress reporting and repeated-failure quarantine
  • Page-aware PDF memory with bounded retrieval
  • Read-only MCP overview, search, and exact-fetch tools
  • Optional delegated Google and Microsoft read connectors

Chronicle contains no send, delete, shell, or computer-control MCP tools.

Requirements

Core:

  • Python 3.11 or newer
  • uv for installation
  • macOS, Linux, or Windows for the archive and MCP gateway

Reference configuration matching the original development machine:

  • Apple-silicon Mac with Apple Intelligence enabled
  • macOS with the Foundation Models framework available
  • Xcode/Swift toolchain capable of building the helper package
  • LM Studio local server on 127.0.0.1:1234
  • qwen/qwen3-14b, MLX 4-bit, with an 8,192-token context

The Apple helper is optional. It checks SystemLanguageModel.default at runtime. Chronicle does not access Siri's private system-wide index.

Installation

git clone https://github.com/The-Sequence/chronicle.git
cd chronicle
uv sync --extra dev
cp .env.example .env
./chronicle system-status

The chronicle wrapper uses the project virtual environment. You may use uv run personal-context-archive instead.

Build the optional Apple helper

cd apple-helper
swift build -c release
cd ..
./chronicle system-status

If unavailable, confirm that the device supports Apple Intelligence, it is enabled, and its model has finished downloading.

Configure LM Studio

  1. Install LM Studio.
  2. Download qwen/qwen3-14b in MLX 4-bit format.
  3. Load the model with context length 8192.
  4. Open Developer → Local Server.
  5. Use port 1234; leave Serve on Local Network disabled.
  6. Start the server.

Use these .env values:

PCG_LM_BASE_URL=http://127.0.0.1:1234/v1
PCG_LM_MODEL=qwen/qwen3-14b
PCG_LM_API_KEY=lm-studio
PCG_TRIAGE_MAX_CHARS=24000

The placeholder key is used because the compatible request format expects one. If LM Studio authentication is enabled, use a real local token and never commit it.

Safe first run

Do not begin with a home directory. Test a small disposable folder:

./chronicle scan "/absolute/path/to/small-test-folder"
./chronicle work-status
./chronicle search "sample topic"

Private runtime data defaults to ./personal-archive. That directory, .env, exports, caches, and model artifacts are excluded from Git.

Before using valuable data:

  • use FileVault or another encrypted volume;
  • back up chronicle.sqlite3 and the objects directory;
  • keep LM Studio bound to localhost;
  • explicitly allowlist source folders;
  • never configure an entire home directory as a local root.

Import an AI conversation

./chronicle import-conversations "/path/to/conversation.json"
./chronicle conversation-status
./chronicle search-conversations "topic or decision"

Build and route deterministic windows:

./chronicle plan-conversation 1 --limit 12
./chronicle build-conversation-windows 1
./chronicle route-conversation 1 --limit 10
./chronicle conversation-route-status 1

Run bounded detailed extraction:

./chronicle preview-extraction 1
./chronicle extract-conversation 1 --max-segments 1
./chronicle extraction-progress 1
./chronicle candidate-status 1
./chronicle candidates 1 --limit 100

partial means valid candidates were checkpointed while other proposals were rejected. After three validation failures, a segment is visibly quarantined so later segments can continue; it is not silently treated as successful.

Run the read-only MCP gateway

uv run personal-context-gateway

Development inspection:

uv run mcp dev src/context_gateway/server.py

Remote deployment requires HTTPS and per-client OAuth authorization in front of /mcp. Give each client an independent, revocable credential. Never put bearer secrets in URLs.

Optional provider access

Start read-only with delegated permissions:

  • Gmail: gmail.readonly
  • Google Calendar: calendar.events.readonly
  • Outlook mail: Mail.Read
  • Microsoft Calendar: Calendars.Read
  • Identity: openid profile offline_access User.Read

Teams is deferred because school and workplace tenants often require administrator approval. Chronicle does not bypass tenant policy.

Privacy model

The public repository contains no archive, extracted memories, conversations, OAuth tokens, model files, machine-specific paths, or private Git history.

  • Source text is untrusted data, never model instructions.
  • Filesystem reads are restricted to explicit roots.
  • Symlink escapes, traversal, oversized files, and disallowed extensions fail.
  • MCP responses are bounded and provenance-rich.
  • Raw sources remain authoritative.
  • Derived memories retain evidence and extraction-version metadata.
  • Sensitive identifiers are blocked from derived memory.
  • Failures remain visible, retryable, or quarantined.

See SECURITY.md.

Tests

uv run pytest -q

Tests use synthetic fixtures only and require no personal files or accounts.

Status

Chronicle is under active development. Planned work includes candidate review, contradiction-aware consolidation, compact low-token retrieval summaries, authenticated remote MCP deployment, and additional approved importers.

Attribution

Chronicle is independent and is not affiliated with Apple, Anthropic, LM Studio, Qwen, Sentient OS, OpenAI, OpenClaw, or the MCP maintainers.

Publicly documented local-first and staged-memory patterns—particularly Sentient OS—informed the architecture. Chronicle's code, prompts, schemas, and tests were independently implemented. See ACKNOWLEDGMENTS.md and THIRD_PARTY_NOTICES.md.

License

Released under the MIT License.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选