项目内存MCP
MCP(模型上下文协议)服务器, 项目范围 记忆。记忆作为文件存储在您的存储库中 .github/memories/,因此它们与项目一起旅行,并可以通过版本控制共享。
基于 这 官方VS代码存储工具,但经过重新设计以存储记忆 每个项目 而不是在全球范围内——使它们具有可移植性、版本控制性和团队共享性。
特性
- 项目范围 --记忆存在
.github/memories/在您的仓库内 - 三个内存作用域 --用户、仓库和会话存储器,具有单独的存储
- VS代码兼容 --同样的
/memories/路径API作为内置VS代码Copilot内存工具 - 版本受控 --提交并与团队分享上下文
- 完整CRUD --查看、创建、编辑(字符串替换/插入)、重命名和删除内存文件
- 路径安全 --验证所有路径并阻止遍历攻击
- Docker就绪 --以单个装载的容器运行
设置
✨ 一键安装
将MCP服务器直接安装到VS Code或VS Code Insider中:
⚠️ 选择“在工作区中安装”
 
🐳 码头工人
](https://insiders.vscode.dev/redirect/mcp/install?name=project-shared-memory&config=%7B%22type%22%3A%22stdio%22%2C%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-v%22%2C%22%24%7BworkspaceFolder%7D%3A%2Fproject%22%2C%22node%3A22-alpine%22%2C%22npx%22%2C%22-y%22%2C%22project-shared-memory-mcp%22%5D%7D) ](https://insiders.vscode.dev/redirect/mcp/install?name=project-shared-memory&quality=insiders&config=%7B%22type%22%3A%22stdio%22%2C%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-v%22%2C%22%24%7BworkspaceFolder%7D%3A%2Fproject%22%2C%22node%3A22-alpine%22%2C%22npx%22%2C%22-y%22%2C%22project-shared-memory-mcp%22%5D%7D)
只需要Docker——使用官方node:22-alpine镜像并通过安装软件包npx在运行时。
选项A——使用NPX运行
无需克隆——只需将其添加到 .vscode/mcp.json 在您的项目中:
{
"servers": {
"project-shared-memory": {
"type": "stdio",
"command": "npx",
"args": ["-y", "project-shared-memory-mcp"],
"env": {
"PROJECT_ROOT": "${workspaceFolder}"
}
}
}
}选项B——从源运行
git clone git@github.com:doctorspider42/Project-Shared-Memory-MCP.git
cd Project-Shared-Memory-MCP
npm install
npm run build添加到您的VS代码 设置 (.vscode/settings.json):
{
"mcp": {
"servers": {
"project-shared-memory": {
"command": "node",
"args": ["
/Project-Shared-Memory-MCP/dist/index.js"],
"env": {
"PROJECT_ROOT": "${workspaceFolder}"
}
}
}
}
}选项C——使用Docker运行
# Build the image
docker build -t project-shared-memory-mcp .在VS Code MCP设置中注册:
{
"mcp": {
"servers": {
"project-shared-memory": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "${workspaceFolder}:/project",
"project-shared-memory-mcp"
]
}
}
}
}容器预计项目将安装在 /project (默认值 PROJECT_ROOT).
运作原理
所有内存路径都是虚拟的,并以 /memories/服务器将它们映射到 .github/memories/ 在项目根内,按范围组织:
内存作用域
| 作用域 | 虚拟路径 | 存储路径 | 目的 |
|---|---|---|---|
| 用户 | /memories/notes.md | .github/memories/user/notes.md | 个人笔记、偏好、模式——在所有项目中持续存在 |
| 仓库 | /memories/repo/conventions.md | .github/memories/repo/conventions.md | 存储库约定、构建命令、项目结构事实 |
| 会话 | /memories/session/progress.md | .github/memories/session/progress.md | 当前任务上下文、进行中注释、临时工作状态 |
这与 VS代码副本存储工具 API,因此路径是可互换的。
示例
/memories/ → lists all memories (merged view across scopes)
/memories/notes.md → .github/memories/user/notes.md
/memories/repo/ → .github/memories/repo/
/memories/session/ctx.md → .github/memories/session/ctx.md上市时 /memories/,用户文件显示在根级别,而 repo/ 和 session/ 显示为作用域目录——没有实现细节泄漏。
您可以指示AI存储笔记、决策、约定或任何其他上下文,并且它将在会话中持续存在。
推荐 .gitignore
用户和会话记忆是个人的——将它们添加到 .gitignore 因此,只有仓库范围的内存与团队共享:
# Personal AI memories (not shared)
.github/memories/user/
.github/memories/session/可用工具
| 工具 | 说明 |
|---|---|
memory_view | 查看文件内容或列出目录 |
memory_create | 创建新的内存文件 |
memory_str_replace | 替换内存文件中的精确字符串 |
memory_insert | 在特定行插入文本 |
memory_delete | 删除文件或目录 |
memory_rename | 重命名/移动文件或目录 |
配置
| 环境变量 | 默认值 | 描述 |
|---|---|---|
PROJECT_ROOT | /project | 项目根目录的绝对路径。在VS Code的stdio模式下,将其设置为 ${workspaceFolder}. |
