mcpField
O
openchronicle-mcp

openchronicle-mcp

本地服务
github.com/CarlDog记忆与知识163 周前更新

关于 openchronicle-mcp

OpenChronicle 是运行在自有硬件上的 LLM Agent 持久化记忆数据库,供需要跨会话保存项目上下文的单用户使用。它结合语义与全文搜索,并以一个进程提供 REST 和 MCP 接口。

主要功能

  1. 01跨会话保存记忆
  2. 02语义与全文混合搜索
  3. 03按项目隔离记忆
  4. 04从 Git 提交生成摘要
  5. 05REST 与 MCP 共用进程

适用场景

  1. 01保存决策和已否决方案
  2. 02按项目检索历史上下文
  3. 03为新项目导入 Git 历史
  4. 04在本地部署 Agent 记忆服务

MCP 相关

同一 ASGI 进程在 `/mcp` 提供 streamable-HTTP MCP 接口,向客户端开放记忆保存、搜索及健康状态工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"csoai-org-openchronicle": {
"command": "uvx",
"args": [
"openchronicle-mcp"
]
}
}
}
启动命令uvx openchronicle-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiopenchronicle-mcp3.0.0.dev1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

OpenChronicle

代码可信度 · claude-fable-5 · 2026-08-30 · 详情

许可证:AGPL-3.0 Docker Python 3.14+

为大模型 Agent 提供的记忆数据库。提供持久化语义记忆和关键词记忆、 项目命名空间、Git 入门,并通过单个 ASGI 进程提供 HTTP REST 和 MCP 服务。运行在你的硬件上。

功能

  • 跨会话持久记忆。 保存决策、里程碑和被否决的方案,使其在上下文压缩和新 对话后仍然留存。通过 Reciprocal Rank Fusion 混合全文和语义搜索来检索记忆。
  • 项目命名空间。 记忆按项目划分范围,因此一个工作流的上下文不会泄漏到另一个项目。
  • Git 入门。 克隆代码库,按相关性对提交进行聚类,并返回可直接用于记忆导入的摘要。 为长期记忆补充现有代码背后的原因。
  • 单进程,双传输方式。 FastAPI 同时承载 REST 接口 (/api/v1/*) 和 MCP 可流式传输的 HTTP 传输方式 (/mcp),并使用同一端口。 单个容器、单个端口映射、单个健康检查。
  • 嵌入故障降级。 嵌入提供程序不可用时,搜索会平稳降级为仅使用 FTS5, 并通过 /api/v1/health 和 MCP health 工具显示降级状态。 提供程序恢复后,回填任务会追上进度;静态 /health 端点仍是最简存活探针。
  • 可选运行指标。 发布的镜像(自 v3.4.0 起)包含有界 Prometheus 记录器和受保护的 /metrics 端点,默认关闭。在生产环境中启用 OC_METRICS_ENABLED=true 前, 仍须满足性能门槛。参见 指标配置和可选的 本地监控运行手册。
  • 架构迁移框架。 使用带保存点原子性的版本化 .sql 迁移。重复运行具有幂等性。未来的架构变更 可作为 NNN_<slug>.sql 文件添加。
  • 经验证的在线备份。 使用 SQLite 在线备份 API;每个夜间快照都会附带经过验证的清单,发布到 OC_BACKUP_DIR,验证失败的快照会被隔离。 先备份再执行破坏性操作:vacuum 会在同一作业中先执行备份。完整性检查失败时会触发紧急备份。
  • 可选的加密异地副本。 夜间作业使用 age 加密最新快照, 并以仅追加方式复制到任意 rclone 远程端。参见 cloud_backup.md。

不包含的功能

  • 不是对话引擎。v3 不包含大模型。可通过 MCP 服务使用 Claude Code、Goose、 Open WebUI 等工具。
  • 不是多租户服务。仅供单用户使用。支持通过 OC_API_KEY 使用 Bearer 令牌身份验证,但可选——在可信局域网 部署中默认关闭。何时启用请参阅 docs/configuration/security_posture.md。
  • 不是云同步层。数据库保存在你的硬件上。备份写入本地备份目录,也可选择加密后备份到云远程端, 仅作备份用途。未内置跨设备同步功能 (docs/design/0001-cloud-backup.md)。

这是有意为之。

安装

从源码安装:

pip install -e ".[mcp,openai]"
oc init
oc serve

默认情况下,oc serve 绑定到 127.0.0.1:8000。可通过 --host/--port 或 OC_API_HOST/OC_API_PORT 覆盖。

Docker(单容器,适合 NAS):

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:latest

在容器中必须设置 OC_API_HOST=0.0.0.0——应用默认绑定到容器环回地址, 端口映射无法访问该地址。如果要通过 localhost 以外的地址(NAS 主机名、局域网 IP)调用服务,还需设置 OC_MCP_ALLOWED_HOSTS=your-host:*,否则每个请求都会收到 421(参见 env_vars.md)。

对于 NAS 上的 Portainer 堆栈,请使用仓库根目录下的 docker-compose.nas.yml。 首先需要完成三项准备:将 OC_TAG 设置为一个发布标签 (没有 :latest 备用选项);创建一次数据卷 (docker volume create openchronicle-mcp_oc-data;compose 文件不会 创建该卷,因此卷缺失时部署会失败,而不是以空数据启动);并创建宿主机导出 目录,且将其所有者设为 uid 1000。文件开头的注释列出了所有变量。

快速入门

# 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_ID

也可以通过 MCP 执行相同操作——在 Claude Code 中注册该服务:

claude mcp add --scope user --transport http openchronicle \
    http://127.0.0.1:8000/mcp

然后让 Claude 调用 memory_save 和 memory_search。

架构

六边形架构:domain/(纯类型 + 端口)→ application/(用例、 服务)→ infrastructure/(SQLite、嵌入适配器、维护循环)。驱动端适配器位于 interfaces/,承载 HTTP、MCP 和 CLI 接口。

完整结构请参见 docs/architecture/ARCHITECTURE.md。

文档

开发

uv sync --locked --extra dev --extra mcp --extra openai --extra ollama --extra metrics
pre-commit install
uv run pytest

依赖项锁定在 uv.lock 中,CI 和 Docker 镜像均从该文件安装依赖;在 pyproject.toml 的 [project] 中更改任何内容(包括版本)后,请运行 uv lock。

架构通过测试强制执行:

  • tests/test_hexagonal_boundaries.py — domain/application/infrastructure 分层
  • tests/test_architectural_posture.py — 核心不依赖 MCP SDK
  • tests/test_no_secrets_committed.py、tests/test_no_soft_deprecation.py — 仓库规范

许可证

版权所有 (C) 2025-2026 CarlDog

AGPL-3.0。本程序是自由软件:您可以根据自由软件基金会发布的 GNU Affero 通用公共许可证的条款重新分发和/或修改本程序;许可证版本为第 3 版,或(由您选择)任何更新版本。本程序按“原样”提供,不提供任何担保;详情请参阅许可证。

版权行写在此处,而非 LICENSE 文件中:该文件是 AGPL 原文,其结尾附录中的 <year> <name of author> 占位符是许可证自身关于在源文件中填写哪些内容的说明,并非需要填入内容的空白。编辑这些占位符会修改许可证文本本身。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。