使用说明
项目内存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 用于复制粘贴每个工具的示例。
建议引擎
服务器在会话中检测模式,并提示您保存有用的上下文:
- 推送观察结果--
memory_observe与{"type":"bash_command","content":"npm install axios"} - 引擎匹配规则——版本检查、依赖关系更改、部署、错误修复周期、配置编辑
- 回顾--
memory_suggest查看建议,memory_suggestion_feedback接受/拒绝 - 反馈循环——接受提升该类别的分数;拒绝降低它。坚持
.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中。
决议顺序(第一次命中获胜):
- 环境
MEMORY_AUTHOR_NAME/MEMORY_AUTHOR_TEAM--对于CI或一次性 ~/.project-memory-mcp/identity.json--什么setup写- 版本控制系统
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 为了出版。