mcpField
C
Cline Memory Bank

Cline Memory Bank

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

关于 Cline Memory Bank

Cline Memory Bank 是一个 MCP 服务,为 Cline VS Code 扩展提供跨会话的项目上下文管理。它将项目信息、当前任务、进度和技术决策保存为 Markdown 文件,适合需要长期延续开发状态的用户。项目目前仍在开发中。

主要功能

  1. 01初始化项目的 Memory Bank 文件结构
  2. 02更新当前会话上下文
  3. 03记录技术决策及其理由
  4. 04跟踪任务进度与阻塞项
  5. 05通过资源读取项目上下文与决策日志

适用场景

  1. 01在多次 Cline 会话之间保留项目背景
  2. 02记录架构决策及备选方案
  3. 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 助手会记住之前的讨论和决策
  • 保持对项目架构和目标的理解
  • 跟踪正在进行的任务和进度
  • 记住你的编码偏好和项目约定
主要优势
  1. 跨会话保持连续性

    • 无需每次都重新说明项目背景
    • 可以从上次中断的地方准确继续
    • 对代码库保持一致的理解
  2. 智能上下文管理

    • 自动跟踪重要的技术决策
    • 记录项目进度和里程碑
    • 保留开发历程文档
  3. 提高工作效率

    • 每次会话都能更快地熟悉项目
    • 提供更一致、更贴合上下文的 AI 协助
    • 减少重复说明
  4. 项目历史记录

    • 跟踪做出特定决策的原因
    • 记录已完成的功能和更改
    • 帮助新团队成员了解项目的发展历程

Memory Bank 与 Cline VSCode 扩展无缝集成,配置完成后无需你进行其他设置。它会在后台静默运行,确保 AI 助手始终拥有提供相关且有用协助所需的上下文。

安装

先决条件
  • Node.js(v16 或更高版本)
  • 已安装 Cline 扩展的 VS Code
  • TypeScript(用于开发)
设置步骤
  1. 克隆并构建服务:
# 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 
  1. 配置 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 对象:

{
  "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 或系统提示词进行配置。

  1. initialize_memory_bank

    • 为新项目创建记忆库结构
    • 创建带有初始模板的必需 Markdown 文件
    use_mcp_tool('memory-bank', 'initialize_memory_bank', {
      projectPath: '/path/to/project'
    });
    
  2. 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'
        }
      }
    });
    
  3. 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'
        ]
      }
    });
    
  4. 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']
      }
    });
    
资源
  1. memory://project/context

    • 项目概览和技术栈
    • 架构原则和指南
  2. memory://active/context

    • 当前会话状态和任务
    • 活跃的考量事项和笔记
  3. memory://progress

    • 项目里程碑和任务跟踪
    • 工作状态和阻碍事项
  4. 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]
初始文件内容

初始化时,每个文件都会填入结构化内容:

  1. activeContext.md:

    • 带时间戳的当前会话信息
    • 初始任务(项目初始化、环境设置)
    • 关于项目目标和需求的未决问题
    • 最近更新部分
  2. progress.md:

    • 当前阶段(初始化)
    • 初始已完成任务(仓库设置、基本结构)
    • 进行中的任务(环境配置、文档)
    • 后续任务部分
    • 阻碍事项跟踪
  3. decisionLog.md:

    • 初始项目结构决策
    • 开发工作流选择及备选方案
    • 文档策略决策
    • 待定决策部分
  4. 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 初始化记忆库即可。

  1. 初始化新的记忆库:

    use_mcp_tool('memory-bank', 'initialize_memory_bank', {
      projectPath: process.cwd()  // or specific path
    });
    
  2. 访问项目上下文:

    access_mcp_resource('memory-bank', 'memory://project/context');
    
  3. 更新会话上下文:

    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'
        }
      }
    });
    
  4. 记录技术决策:

    use_mcp_tool('memory-bank', 'record_decision', {
      projectPath: process.cwd(),
      decision: {
        title: 'Decision Title',
        description: 'What was decided',
        rationale: 'Why it was decided'
      }
    });
    

开发

要修改或增强服务:

  1. 更新 src/index.ts 中的源代码
  2. 运行测试:npm test
  3. 构建:npm run build
  4. 重启 Cline 扩展以加载更改

贡献

欢迎贡献!请:

  1. Fork 此仓库
  2. 创建功能分支
  3. 进行更改
  4. 提交拉取请求

许可证

MIT © dazeb

评论

支持 Markdown

第一次接触 MCP?

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

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