OpenChronicle
Enables cloning Git repositories and summarizing commit history for memory ingestion, helping to seed long-term memory with project context.
Click on "Deploy 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., "@OpenChroniclesave 'SQLite chosen for storage' as a memory"
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.
OpenChronicle
· claude-fable-5 · 2026-08-30 · details
A memory database for LLM agents. Persistent semantic + keyword memory, project namespacing, git-onboard, served over HTTP REST and MCP from a single ASGI process. Runs on your hardware.
What it does
Persistent memory across sessions. Save decisions, milestones, and rejected approaches that survive context compression and new conversations. Retrieve them with hybrid full-text and semantic search via Reciprocal Rank Fusion.
Project namespacing. Memory is scoped to projects, so context for one workstream doesn't leak into another.
Git onboarding. Clone a repo, cluster commits by relatedness, return summaries ready for memory ingestion. Seeds long-term memory with the WHY behind existing code.
One process, two transports. FastAPI hosts both the REST surface (
/api/v1/*) and the MCP streamable-HTTP transport (/mcp) on the same port. Single container, single port mapping, single healthcheck.Embedding-failure degradation. When the embedding provider goes down, search degrades cleanly to FTS5-only and surfaces the degraded state via
/api/v1/healthand the MCPhealthtool. Backfill catches up when the provider returns; the static/healthendpoint remains a minimal liveness probe.Optional operational metrics (unreleased). Development and benchmark builds include the bounded Prometheus recorder and guarded
/metricsendpoint; the released v3.3.0 image does not. Release and enabled collection remain subject to the performance gates. Eligible builds opt in withOC_METRICS_ENABLED=true; the default stays off. See the metrics configuration and the optional local monitoring runbook.Schema migration framework. Versioned
.sqlmigrations with savepoint atomicity. Re-runs are idempotent. Future schema changes drop in asNNN_<slug>.sqlfiles.Atomic online backups. Uses SQLite's online backup API. Backup-before-destructive policy: vacuum runs a backup first as part of the same job. Integrity-check failures trigger emergency backups.
Related MCP server: openchronicle-mcp
What it isn't
Not a conversation engine. v3 has no LLM. Use Claude Code, Goose, Open WebUI, etc. via the MCP server.
Not multi-tenant. Single user. Bearer-token auth via
OC_API_KEYis supported but optional — disabled by default for trusted-LAN deployments. Seedocs/configuration/security_posture.mdfor the when-to-enable guidance.Not a cloud sync layer. The DB lives on your hardware. Backups go to a directory next to it. Cross-device sync isn't built in; a backup-only Dropbox design is documented but not implemented in
docs/design/0001-cloud-backup.md.
By design.
Install
From source:
pip install -e ".[mcp,openai]"
oc init
oc serveThe default oc serve binds 127.0.0.1:8000. Override with
--host/--port or OC_API_HOST/OC_API_PORT.
Docker (single container, NAS-friendly):
docker run --rm \
-p 8000:8000 \
-e OC_API_HOST=0.0.0.0 \
-v $(pwd)/data:/app/data \
-v $(pwd)/config:/app/config \
ghcr.io/carldog/openchronicle-mcp:latestOC_API_HOST=0.0.0.0 is required in a container — the app default
binds container-loopback, which the port mapping can't reach. To call
the server by anything other than localhost (a NAS hostname, a LAN
IP), also set OC_MCP_ALLOWED_HOSTS=your-host:* or every request gets
a 421 (see
env_vars.md).
For a Portainer stack on a NAS, use the docker-compose.nas.yml at
the repo root.
Quickstart
# Bootstrap the runtime tree
oc init
# Create a project
PROJECT_ID=$(oc init-project "my-project")
# Save your first memory
oc memory add "Decision: SQLite for storage; AGPL for license" \
--project-id $PROJECT_ID --tags decision
# Search it
oc memory search "storage decision" --project-id $PROJECT_IDOr do the same via MCP — register the server with Claude Code:
claude mcp add --scope user --transport http openchronicle \
http://127.0.0.1:8000/mcpThen ask Claude to call memory_save and memory_search.
Architecture
Hexagonal: domain/ (pure types + ports) → application/ (use cases,
services) → infrastructure/ (SQLite, embedding adapters, the
maintenance loop). Driver-side adapters in interfaces/ host the
HTTP, MCP, and CLI surfaces.
See docs/architecture/ARCHITECTURE.md for the full layout.
Documentation
docs/architecture/ARCHITECTURE.md— layout, schema, ASGI designdocs/architecture/MAINTENANCE.md— maintenance loop + degradation policydocs/cli/commands.md—ocsubcommand referencedocs/configuration/env_vars.md— environment variablesdocs/configuration/config_files.md—core.jsonschemadocs/configuration/security_posture.md— security modeldocs/integrations/mcp_client_setup.md— register the MCP serverdocs/integrations/mcp_server_spec.md— MCP tool surfacedocs/api/STABILITY.md— versioning + deprecation policydocs/design/README.md— proposed designs and comparative repository reviews
Development
pip install -e ".[dev,mcp,openai,ollama]"
pre-commit install
pytestThe architecture is enforced by tests:
tests/test_hexagonal_boundaries.py— domain/application/infrastructure layeringtests/test_architectural_posture.py— core agnostic of MCP SDKtests/test_no_secrets_committed.py,tests/test_no_soft_deprecation.py— repo hygiene
License
Copyright (C) 2025-2026 CarlDog
AGPL-3.0. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. It is distributed WITHOUT ANY WARRANTY; see the license for details.
The copyright line lives here rather than inside LICENSE: that file is
the AGPL text verbatim, and the <year> <name of author> placeholders in
its closing appendix are the license's own instructions for what to put
in your source files — not blanks to fill in. Editing them would modify
the license text itself.
This server cannot be deployed
Maintenance
Related MCP Connectors
Persistent memory for AI agents. Semantic search, memory graph, W3C DID identity.
- memnodeOAuthdev.memnode
Persistent, inspectable memory for AI agents with lineage, correction, and a hosted MCP endpoint.
Persistent memory for AI agents across Claude, ChatGPT and any MCP client.
Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenancePersistent semantic memory MCP server for AI agents with hybrid search, LLM scoring, and decay engine, fully local.2-

openchronicle-mcpofficial
AlicenseNot gradedqualityDmaintenancePersistent memory database for LLM agents with hybrid semantic/keyword search, project scoping, and git commit clustering.AGPL 3.0- AlicenseNot gradedqualityAmaintenanceProvides persistent memory for AI coding agents via MCP, enabling agents to store and semantically recall facts, events, and lessons across sessions, all running locally without cloud dependencies.Apache 2.0
- AlicenseAqualityDmaintenanceProvides persistent memory with semantic search for MCP-based AI agents, enabling them to store and recall information across sessions using vector embeddings.41MIT