项目内存共享服务

为Claude Code、Codex CLI和Gemini CLI提供项目范围内的共享内存服务,使所有代理共享相同的上下文。

  • by Kamlesh-62
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Kamlesh-62/llm-context-mcp

使用说明

项目内存MCP服务器

共享的、项目范围的内存 Claude 代码, Codex 命令行界面,以及 Gemini CLI --因此,所有三个代理都记住了相同的上下文。

You (any CLI) ──► MCP Server ──► .ai/memory.json (per project)

安装

npm install -g context-bridge-mcp

升级

已经安装了吗?更新,然后重新同步每个项目:

npm update -g context-bridge-mcp        # get the new version
cd ~/my-project
context-bridge-mcp setup                 # re-writes hooks at the new package path
context-bridge-mcp doctor                # verify config, store, hooks, SQLite driver

重新 setup 是安装新添加功能(例如自动保存挂钩和实时捕获)的工具——该向导是幂等的,可以合并到现有配置中而不会破坏它。您的内存数据不会受到升级的影响。要更改内存的存储位置,请参阅 存储.

设置

从要启用的任何项目运行向导:

cd ~/my-project
context-bridge-mcp setup

向导将:

  • 请求服务器ID(例如。 my-project-memory)
  • 检测您的项目目录
  • 询问您的姓名和团队,以便共享记忆记录谁添加了什么(请参阅 团队归属)
  • 让您选择要配置的CLI(Claude/Gemini/Cox)
  • 自动为每个CLI编写MCP配置
  • 提供安装自动保存挂钩(停止,加上可选的实时 PostToolUse)在正确的安装包路径上

验证它是否正常工作——询问您的CLI:

呼叫 memory_status 并显示输出。

你应该看看 projectRoot 指向您的项目和 memoryFilePath 到 .ai/memory.json.

在没有提示的情况下重新应用配置

context-bridge-mcp switch                  # all CLIs
context-bridge-mcp switch --cli claude     # one CLI only

脚本设置(CI/CD自动化)

context-bridge-mcp setup --yes --server-id my-server --runner npx --cli claude,gemini

跑 context-bridge-mcp setup --help 所有旗帜。

其他命令

context-bridge-mcp doctor    # health-check setup: MCP config, store readable, hooks wired + run
context-bridge-mcp migrate --to sqlite   # move memory between JSON and SQLite (see Storage)
context-bridge-mcp help      # list all commands

用法

核心循环分为三个步骤:

1. memory_get_bundle  →  load context for your task
2. ... do your work ...
3. memory_save        →  store what you learned

然后,任何CLI(Claude、Codex、Gemini)都可以从另一个停止的地方继续。

保存一些东西

Call memory_save with:
  title: "API uses JWT auth"
  type: "decision"
  content: "All endpoints require Bearer token. Tokens expire in 24h."
  tags: ["auth", "api"]

加载上下文

Call memory_get_bundle with prompt "fixing login bugs"

搜索记忆

Call memory_search with query "auth"

所有工具

工具 它做什么
memory_status 检查安装程序--显示项目根目录和内存文件路径
memory_help 快速入门提示和示例提示
memory_get_bundle 为当前任务加载排名上下文
memory_search 按关键字或标签搜索已保存的项目
memory_save 直接保存内存项
memory_propose 通过审批步骤保存(创建提案)
memory_approve_proposal 批准或拒绝待处理的提案
memory_list_proposals 按状态列出提案
memory_pin 固定/取消固定项目(固定项目始终以捆绑形式出现)
memory_update 更新现有项目的字段
memory_delete 永久删除项目
memory_compact 将旧物品归档,保持店铺整洁
memory_search_archive 搜索已存档(压缩)的项目
memory_restore 将已存档的项目移回活动存储区
memory_export 导出完整存储(活动+存档)
memory_observe 推送观察以进行模式检测
memory_suggest 查看发动机的待定建议
memory_suggestion_feedback 接受或拒绝建议
memory_configure_suggestions 在运行时调整建议引擎

所有工具都接受可选 projectRoot 用于多项目路由。

看 docs/TOOL_EXAMPLES.md 用于复制粘贴每个工具的示例。

建议引擎

服务器在会话中检测模式,并提示您保存有用的上下文:

  1. 推送观察结果-- memory_observe 与 {"type":"bash_command","content":"npm install axios"}
  2. 引擎匹配规则——版本检查、依赖关系更改、部署、错误修复周期、配置编辑
  3. 回顾-- memory_suggest 查看建议, memory_suggestion_feedback 接受/拒绝
  4. 反馈循环——接受提升该类别的分数;拒绝降低它。坚持 .ai/suggestion-feedback.json.

自动保存挂钩

钩子会自动从会话记录中捕获版本、依赖关系、提交、错误修复、TODO、配置值和所选库决策——无需手动 memory_save 需要。 setup 为您安装它们(在正确的安装包路径上)。

两种捕获模式:

  • Stop (会话结束) --会话结束时扫描整个成绩单。默认安装。
  • PostToolUse (实时) --每次工具调用后都会增量捕获,因此会话崩溃时不会丢失任何内容。选择加入 setup;与停止扫描共享一个光标+重复数据。

根据CLI:

  • Claude 代码 — .claude/settings.json (Stop +可选 PostToolUse).
  • Codex 命令行界面 — notify 桥接 ~/.codex/config.toml,加上可选的本地 PostToolUse 钩子(.codex/hooks.json + [features] hooks = true).Codex卷展记录(响应API形状)被标准化为相同的提取器。
  • Gemini CLI — SessionEnd 活动通过 .gemini/settings.json.

通过标题哈希和Jaccard相似性在会话之间对项目进行重复数据消除,这也决定了 更新到位 vs跳过vs添加,这样记忆就不会被重述填满。自动捕获的项目被标记 source: "auto-hook".

确认挂钩已接线并已运行: context-bridge-mcp doctor.测试提取器: npm run test:hooks.

团队归属

当一个团队共享一个内存存储时,每个项目都可以记录 谁添加的. setup 询问您的姓名和(可选)团队一次;然后,新项目会加盖 author 字段——是否手动保存(memory_save),通过提案或通过自动保存挂钩。

你的身份是针对每个用户的,而不是针对每个项目的:它存在于 ~/.project-memory-mcp/identity.json 并且在任何地方都被重复使用。它是 从不 写入共享 .ai/ 存储,这样它就不会泄露到git中。

决议顺序(第一次命中获胜):

  1. 环境 MEMORY_AUTHOR_NAME / MEMORY_AUTHOR_TEAM --对于CI或一次性
  2. ~/.project-memory-mcp/identity.json --什么 setup 写
  3. 版本控制系统 user.name --仅保留名称,因此即使在运行安装程序之前,归因也能正常工作

通过重新运行随时更改它 context-bridge-mcp setup,或使用检查解析值 context-bridge-mcp doctor。如果无法解析名称,则保存项目时不会使用 author --什么都不会坏。

存储

每个项目的内存都存储在一个本地文件中。两个后端:

  • JSON (.ai/memory.json)--零配置默认值。人类可读,git可读。
  • SQLite (.ai/memory.sqlite)--选择更大的商店/更快的搜索。二进制,不是git diffable。使用内置 node:sqlite (节点≥22.5)或 better-sqlite3 作为一种退路。

按项目选择 .ai/memory-mcp.json ({"storage":{"backend":"sqlite"}})或 MEMORY_STORAGE_BACKEND env var.在它们之间移动 context-bridge-mcp migrate --to <json|sqlite> --源保持不变,因此它是可逆的。

看 docs/STORAGE_BACKENDS.md 为了进行全面比较和 docs/ARCHITECTURE.md 对于设计。

环境变量

变量 目的
MEMORY_PROJECT_ROOT 强制特定项目根
MEMORY_FILE_PATH 重写JSON内存文件路径
MEMORY_STORAGE_BACKEND 强制存储后端(json
MEMORY_DB_PATH 覆盖SQLite数据库路径
MEMORY_AUTHOR_NAME 新项目上印有作者姓名(覆盖已保存的身份)
MEMORY_AUTHOR_TEAM 作者团队在新项目上盖章
PROJECT_MEMORY_MCP_HOME 覆盖每个用户的配置目录(默认 ~/.project-memory-mcp)
PROJECT_MEMORY_MCP_CLAUDE_CONFIG_PATH 覆盖Claude配置路径(默认 ~/.claude.json)
CODEX_HOME 覆盖Codex配置目录(默认 ~/.codex)

故障排除

跑 context-bridge-mcp doctor 首先,它检查MCP配置、存储可读性、SQLite驱动程序以及钩子是否已连接并运行。

问题 修复
memory.json 未创建 运行 memory_status --项目根可能是错误的。修复 cwd 在MCP配置中。
服务器不可用 请检查CLI MCP配置。确认 node -v 工作,服务器文件存在。
数据未保存 您必须调用写入工具。单独聊天不会持续下去。
自动保存永不起火 运行 doctor --钩子可能不会安装。重新运行 setup 并接受钩子的步骤。
已选择SQLite但有错误 节点<22.5需要 npm i better-sqlite3. doctor 报告驱动程序可用性。

发展

git clone https://github.com/nicobailon/project-memory-mcp-js.git
cd project-memory-mcp-js
npm install && npm run build
npm run test:hooks

看 docs/LOCAL_SETUP.md 完整的指南和 docs/LOCAL_NPM_DEPLOY.md 为了出版。