The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Openchronicle MCP listing page.
· 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.
/api/v1/*) and the MCP streamable-HTTP transport (/mcp) on the
same port. Single container, single port mapping, single
healthcheck./api/v1/health and the MCP health tool.
Backfill catches up when the provider returns; the static /health
endpoint remains a minimal liveness probe./metrics endpoint. Enable it explicitly
with OC_METRICS_ENABLED=true; it remains off by default. See the
metrics configuration and the optional
local monitoring runbook..sql migrations with
savepoint atomicity. Re-runs are idempotent. Future schema changes
drop in as NNN_<slug>.sql files.OC_API_KEY
is supported but optional — disabled by default for trusted-LAN
deployments. See docs/configuration/security_posture.md for the
when-to-enable guidance.docs/design/0001-cloud-backup.md.By design.
From source:
The 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):
OC_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.
Or do the same via MCP — register the server with Claude Code:
Then ask Claude to call memory_save and memory_search.
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.
docs/architecture/ARCHITECTURE.md — layout, schema, ASGI designdocs/architecture/MAINTENANCE.md — maintenance loop + degradation policydocs/cli/commands.md — oc subcommand referencedocs/configuration/env_vars.md — environment variablesdocs/configuration/config_files.md — core.json schemadocs/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 reviewsThe 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 hygieneCopyright (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.