关于 Cline Memory Bank
Cline Memory Bank 是一个 MCP 服务,为 Cline VS Code 扩展提供跨会话的项目上下文管理。它将项目信息、当前任务、进度和技术决策保存为 Markdown 文件,适合需要长期延续开发状态的用户。项目目前仍在开发中。
主要功能
- 01初始化项目的 Memory Bank 文件结构
- 02更新当前会话上下文
- 03记录技术决策及其理由
- 04跟踪任务进度与阻塞项
- 05通过资源读取项目上下文与决策日志
适用场景
- 01在多次 Cline 会话之间保留项目背景
- 02记录架构决策及备选方案
- 03跟踪多日开发任务的进度与阻塞项
MCP 相关
该项目是 MCP 服务,向 Cline 等 MCP 客户端提供 initialize_memory_bank、update_context、record_decision、track_progress 工具以及 memory:// 资源。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Cline Memory Bank
灵感来自 roo-code-memory-bank
此项目仍在开发中,但大部分功能已可正常使用。
一个 Model Context Protocol 服务,可为 AI 辅助开发提供持久化项目上下文管理,专为与 Cline VSCode 扩展协同工作而设计。
目录
概述
Memory Bank MCP 服务通过提供用于管理以下内容的结构化工具和资源,帮助在不同开发会话中保持一致的项目上下文:
- 项目上下文和技术细节
- 当前会话状态和任务
- 进度跟踪和里程碑
- 技术决策及其依据
graph LR
VSCode[VS Code + Cline] --> MemBank[Memory Bank Server]
MemBank --> Files[Markdown Files]
Files --> Context[Project Context]
Files --> Progress[Progress Tracking]
Files --> Decisions[Decision Log]
AI[AI Assistant] --> Files
VSCode --> AI
AI --> MemBank
持久记忆系统
此项目最强大的功能之一,是能够在不同编码会话之间保持上下文。可以把它想象成让 AI 助手拥有一种“记忆”:即使你关闭 VSCode,之后再回来,它也不会忘记你一直在做什么。
工作原理
想象一下,你正在开发一个需要数天甚至数周才能完成的复杂项目。通常,每次开始新的编码会话时,你都需要向 AI 助手重新说明项目背景。使用 Memory Bank 后:
graph LR
Session[New Session] --> Load[Load Context]
Load --> Read[Read Files]
Read --> Update[Update Context]
Update --> Write[Write Changes]
Write --> Track[Track Progress]
Track --> Record[Record Decisions]
Record --> Ready[Ready for Tasks]
- AI 助手会记住之前的讨论和决策
- 保持对项目架构和目标的理解
- 跟踪正在进行的任务和进度
- 记住你的编码偏好和项目约定
主要优势
-
跨会话保持连续性
- 无需每次都重新说明项目背景
- 可以从上次中断的地方准确继续
- 对代码库保持一致的理解
-
智能上下文管理
- 自动跟踪重要的技术决策
- 记录项目进度和里程碑
- 保留开发历程文档
-
提高工作效率
- 每次会话都能更快地熟悉项目
- 提供更一致、更贴合上下文的 AI 协助
- 减少重复说明
-
项目历史记录
- 跟踪做出特定决策的原因
- 记录已完成的功能和更改
- 帮助新团队成员了解项目的发展历程
Memory Bank 与 Cline VSCode 扩展无缝集成,配置完成后无需你进行其他设置。它会在后台静默运行,确保 AI 助手始终拥有提供相关且有用协助所需的上下文。
安装
先决条件
- Node.js(v16 或更高版本)
- 已安装 Cline 扩展的 VS Code
- TypeScript(用于开发)
设置步骤
- 克隆并构建服务:
# Clone the repository
git clone https://github.com/dazeb/cline-mcp-memory-bank
cd cline-mcp-memory-bank
# Install dependencies (using pnpm as recommended)
pnpm install
# Build the server
pnpm run build
# Make globally available (optional, requires pnpm setup for global linking)
# pnpm link --global
-
配置 Cline 扩展(推荐:使用初始化命令):
推荐方法: 构建完成后,在项目根目录运行初始化命令。该命令会自动创建记忆库文件,并为你配置 Cline MCP 设置:
node build/index.js initialize_memory_bank .手动方法(如有需要): 将以下内容添加到 Cline MCP 设置文件中。文件路径因操作系统而异:
- Linux:
~/.config/Code - Insiders/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json - macOS:
~/Library/Application Support/Code - Insiders/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json - Windows:
%APPDATA%\Code - Insiders\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
添加此 JSON 对象:
- Linux:
{
"mcpServers": {
"memory-bank": {
"command": "node",
"args": [
"/path/to/cline-memory-bank/build/index.js"
],
"disabled": false,
"autoApprove": []
}
}
}
将 /path/to/cline-memory-bank 替换为服务器安装目录的实际绝对路径(例如,在 Windows 上为 C:\Users\YourUser\Projects\cline-mcp-memory-bank)。注意: 使用上述初始化命令即可自动完成此操作。
功能
工具
安装并构建后,在项目根目录运行以下命令,为项目初始化记忆库:
node /path/to/cline-mcp-memory-bank/build/index.js initialize_memory_bank .
(将 /path/to/cline-memory-bank 替换为你克隆并构建服务器的实际路径)。
或者,如果已在 Cline 中配置服务器,你可以让 Cline 运行此工具:initialize the memory bank。
初始化后,你可以让 Cline 使用以下工具更新记忆库上下文、记录决策或跟踪进度,也可以通过 .clinerules 或系统提示词进行配置。
-
initialize_memory_bank- 为新项目创建记忆库结构
- 创建带有初始模板的必需 Markdown 文件
use_mcp_tool('memory-bank', 'initialize_memory_bank', { projectPath: '/path/to/project' }); -
update_context- 使用当前会话信息更新活跃上下文
- 跟踪模式、任务和会话状态
use_mcp_tool('memory-bank', 'update_context', { projectPath: '/path/to/project', content: { currentSession: { date: '2025-03-13', mode: 'development', task: 'Implementing new feature' } } }); -
record_decision- 记录技术决策及其依据
- 保存架构选择的历史记录
use_mcp_tool('memory-bank', 'record_decision', { projectPath: '/path/to/project', decision: { title: 'Authentication System', description: 'Implementing JWT-based authentication', rationale: 'Better scalability and stateless operation', alternatives: [ 'Session-based auth', 'OAuth only' ] } }); -
track_progress- 更新项目进度和里程碑
- 管理任务状态和阻碍事项
use_mcp_tool('memory-bank', 'track_progress', { projectPath: '/path/to/project', progress: { completed: ['Setup project', 'Initialize database'], inProgress: ['Implement auth', 'Create API routes'], blocked: ['Deploy to production'] } });
资源
-
memory://project/context- 项目概览和技术栈
- 架构原则和指南
-
memory://active/context- 当前会话状态和任务
- 活跃的考量事项和笔记
-
memory://progress- 项目里程碑和任务跟踪
- 工作状态和阻碍事项
-
memory://decisions- 技术决策及其依据
- 架构选择和备选方案
系统提示词建议
将以下内容添加到 Cline 系统提示词或设置目录下的 .clinerules 文件中。
Memory Bank Integration Rules:
CRITICAL: Before ANY task or response:
1. ALWAYS check active context (memory://active/context):
- Current project state and mode
- Ongoing tasks and their status
- Recent decisions and updates
- Open questions and concerns
2. ALWAYS review project context (memory://project/context):
- Technical stack and dependencies
- Project guidelines and standards
- Architecture principles
- Development workflow
3. ALWAYS consult decision log (memory://decisions) for:
- Previous architectural choices
- Established patterns
- Technical rationales
- Related decisions
4. ALWAYS check progress tracking (memory://progress):
- Current phase and milestones
- Completed work
- In-progress tasks
- Known blockers
After EVERY task:
1. Update active context with:
- Task completion status
- New information learned
- Changes made
2. Record any technical decisions with:
- Clear rationale
- Considered alternatives
- Impact assessment
3. Update progress tracking:
- Mark completed items
- Add new tasks identified
- Note any blockers found
Key Guidelines:
- NEVER proceed without checking memory bank context
- ALWAYS maintain consistent project state
- Record ALL significant technical decisions
- Track progress in real-time
- Keep context updated with EVERY change
文件结构
初始化后,记忆库会在项目中创建以下结构:
graph LR
Root[Project Root] --> Bank[memory-bank]
Bank --> PC[projectContext.md]
Bank --> AC[activeContext.md]
Bank --> P[progress.md]
Bank --> DL[decisionLog.md]
PC --> Stack[Technical Stack]
AC --> Tasks[Active Tasks]
P --> Status[Project Status]
DL --> History[Decision History]
初始文件内容
初始化时,每个文件都会填入结构化内容:
-
activeContext.md:- 带时间戳的当前会话信息
- 初始任务(项目初始化、环境设置)
- 关于项目目标和需求的未决问题
- 最近更新部分
-
progress.md:- 当前阶段(初始化)
- 初始已完成任务(仓库设置、基本结构)
- 进行中的任务(环境配置、文档)
- 后续任务部分
- 阻碍事项跟踪
-
decisionLog.md:- 初始项目结构决策
- 开发工作流选择及备选方案
- 文档策略决策
- 待定决策部分
-
projectContext.md:- 项目概览和版本
- 检测到的技术栈和依赖项
- 配置文件列表
- 架构原则
- 开发环境设置说明
- 项目工作流指南
与 Cline 搭配使用
graph LR
Start[Start] --> Init[Initialize]
Init --> Context[Load Context]
Context --> Update[Make Changes]
Update --> Progress[Track Progress]
Progress --> Record[Record Decisions]
Record --> Sync[Auto Sync]
Sync --> Context
只需让 Cline 初始化记忆库即可。
-
初始化新的记忆库:
use_mcp_tool('memory-bank', 'initialize_memory_bank', { projectPath: process.cwd() // or specific path }); -
访问项目上下文:
access_mcp_resource('memory-bank', 'memory://project/context'); -
更新会话上下文:
use_mcp_tool('memory-bank', 'update_context', { projectPath: process.cwd(), content: { currentSession: { date: new Date().toISOString().split('T')[0], mode: 'development', task: 'Current task description' } } }); -
记录技术决策:
use_mcp_tool('memory-bank', 'record_decision', { projectPath: process.cwd(), decision: { title: 'Decision Title', description: 'What was decided', rationale: 'Why it was decided' } });
开发
要修改或增强服务:
- 更新
src/index.ts中的源代码 - 运行测试:
npm test - 构建:
npm run build - 重启 Cline 扩展以加载更改
贡献
欢迎贡献!请:
- Fork 此仓库
- 创建功能分支
- 进行更改
- 提交拉取请求
许可证
MIT © dazeb
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。