
openchronicle-mcp
io.github.CSOAI-ORG由 GitHub 帳號 CSOAI-ORG 發布v3.0.0.dev1更新於 Oct 27, 2026
Memory database for LLM agents — persistent semantic + keyword memory, project namespacing, served o
概覽
供 LLM 代理使用的自架記憶資料庫,讓助理擁有依專案隔離的持久語意與關鍵字記憶。
- 可以做什麼
- 儲存決策、里程碑與被否決的做法,使其在上下文壓縮與新對話後仍能保留
- 以全文與語意混合檢索記憶,並查詢服務健康狀態
- 依專案隔離記憶,避免不同工作流程的上下文互相混雜
- 對 git 儲存庫進行匯入處理,依關聯性分群提交並回傳可供記憶寫入的摘要
- 適用情境
- 適合希望助理跨對話記住決策與理由,或從既有程式碼庫累積長期記憶,同時把資料留在自己硬體上的情境。
- 執行需求
- 以本機程序執行;README 提供從原始碼以 pip 安裝並搭配 oc 命令列(oc init、oc serve)的方式,也可使用 Docker 容器。預設綁定 127.0.0.1:8000,透過 HTTP 的 /mcp 存取。容器中需將 OC_API_HOST 設為 0.0.0.0,使用非 localhost 主機名稱時需設定 OC_MCP_ALLOWED_HOSTS。語意檢索依賴嵌入服務供應者。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 openchronicle-mcp,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
OpenChronicle
[code confidence] · claude-fable-5 · 2026-08-30 · details
[License: AGPL-3.0] [Docker] [Python 3.14+]
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. Released images (since v3.4.0) include
the bounded Prometheus recorder and guarded
/metricsendpoint, off by default. Opt in withOC_METRICS_ENABLED=true; enabling it in production stays subject to the performance gates. 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. - Verified online backups. Uses SQLite's online backup API; each
nightly snapshot is published with a verified manifest in
OC_BACKUP_DIR, and one that fails verification is quarantined. Backup-before-destructive policy: vacuum runs a backup first as part of the same job. Integrity-check failures trigger emergency backups. - Optional encrypted offsite copies. A nightly job encrypts the newest snapshots with age and copies them to any rclone remote, append-only. See cloud_backup.md.
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 local backup directory and, optionally, encrypted to a cloud remote,
as backup only. Cross-device sync isn't built in
(
docs/design/0001-cloud-backup.md).
By design.
Install
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. It needs three things first: OC_TAG set to a release tag
(there is no :latest fallback), the data volume created once
(docker volume create openchronicle-mcp_oc-data; the compose never
creates it, so a missing volume fails the deploy instead of starting
empty), and the host exports directory created and owned by uid 1000. The
file's header comments list every variable.
Quickstart
Or do the same via MCP — register the server with Claude Code:
Then 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
Dependencies are locked in uv.lock, which CI and the Docker image
install from; run uv lock after changing anything in [project] in
pyproject.toml, including the version.
The 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.
來源:README.md,提交 bc0658e
工具
0版本歷史
1- v3.0.0.dev1最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分