内存银行MCP
内存银行服务器为人工智能助手与内存银行交互提供了一套工具和资源。内存银行是结构化的信息存储库,有助于在多个会话中保持上下文并跟踪进度。
服务介绍
Memory Bank MCP 🧠
一个用于管理记忆库的模型上下文协议(MCP)服务器,允许AI助手在会话之间存储和检索信息。
概览 📋
记忆库服务器为AI助手提供了与记忆库交互的一系列工具和资源。记忆库是结构化的信息仓库,有助于在多个会话中保持上下文并跟踪进度。
特性 ✨
- 记忆库管理:初始化、查找和管理记忆库
- 文件操作:读取和写入记忆库中的文件
- 进度跟踪:跟踪进度并更新记忆库文件
- 决策记录:记录带有上下文和备选方案的重要决策
- 活动上下文管理:维护和更新活动上下文信息
- 模式支持:检测并使用.clinerules文件以实现特定模式的行为
- UMB命令:使用UMB命令临时更新记忆库文件
- 强大的错误处理:优雅地处理错误,并在可能的情况下继续运行
- 状态前缀系统:立即查看记忆库的操作状态
目录结构 📁
默认情况下,记忆库会在项目的根目录下使用memory-bank目录。当您使用--path选项指定项目路径时,记忆库将在<project_path>/memory-bank处创建或访问。
您可以使用--folder选项自定义记忆库文件夹的名称。例如,如果您设置--folder custom-memory,记忆库将在<project_path>/custom-memory处创建或访问。
有关自定义文件夹名称的更多详细信息,请参阅自定义记忆库文件夹名称。
最近的改进 🛠️
- 可自定义的文件夹名称:现在您可以为记忆库指定自定义文件夹名称
- 一致的目录结构:记忆库现在始终使用项目根目录下的配置文件夹名称
- 增强的初始化:即使不存在.clinerules文件,记忆库也能正常工作
- 更好的路径处理:改进了绝对路径和相对路径的处理
- 改进的目录检测:更好地检测现有的memory-bank目录
- 更强大的错误处理:优雅地处理与.clinerules文件相关的错误
更多详情,请参阅记忆库错误修复。
安装 🚀
# Install from npm
npm install @movibe/memory-bank-mcp
# Or install globally
npm install -g @movibe/memory-bank-mcp
# Or run directly with npx (no installation required)
npx @movibe/memory-bank-mcp
使用 npx 💻
您可以直接使用npx运行记忆库MCP而无需安装:
# Run with default settings
npx @movibe/memory-bank-mcp
# Run with specific mode
npx @movibe/memory-bank-mcp --mode code
# Run with custom project path
npx @movibe/memory-bank-mcp --path /path/to/project
# Run with custom folder name
npx @movibe/memory-bank-mcp --folder custom-memory-bank
# Show help
npx @movibe/memory-bank-mcp --help
有关使用 npx 的更详细信息,请参阅 npx-usage.md。
在 Cursor 中配置 🖱️
Cursor 是一个支持模型上下文协议(MCP)的 AI 驱动代码编辑器。要在 Cursor 中配置 Memory Bank MCP:
-
使用 npx 运行 Memory Bank MCP:
无需全局安装该包。你可以直接使用 npx:
# 验证 npx 是否正常工作 npx @movibe/memory-bank-mcp --help -
打开 Cursor 设置:
- 转到设置 (⚙️) > 扩展 > MCP
- 点击“添加 MCP 服务器”
-
配置 MCP 服务器:
- 名称:Memory Bank MCP
- 命令:npx
- 参数:
@movibe/memory-bank-mcp --mode code(或根据需要选择其他模式)
-
保存并激活:
- 点击“保存”
- 通过切换开关来启用 MCP 服务器
-
验证连接:
- 在 Cursor 中打开一个项目
- Memory Bank MCP 应该现在处于活动状态,并可在你的 AI 交互中使用
有关与 Cursor 集成的详细说明和高级用法,请参阅 cursor-integration.md。
与 Cursor 一起使用 🤖
配置完成后,你可以在 Cursor 中通过 AI 命令与 Memory Bank MCP 互动:
- 初始化记忆库:
/mcp memory-bank-mcp initialize_memory_bank path=./memory-bank - 跟踪进度:
/mcp memory-bank-mcp track_progress action="Feature Implementation" description="Implemented feature X" - 记录决策:
/mcp memory-bank-mcp log_decision title="API Design" context="..." decision="..." - 切换模式:
/mcp memory-bank-mcp switch_mode mode=code
MCP 模式及其使用 🔄
Memory Bank MCP 支持不同的操作模式,以优化针对特定任务的 AI 交互:
可用模式
-
代码模式 👨💻
- 重点:代码实现和开发
- 使用方法:
npx @movibe/memory-bank-mcp --mode code - 最适合:编写、重构和优化代码
-
架构模式 🏗️
- 重点:系统设计和架构
- 使用方法:
npx @movibe/memory-bank-mcp --mode architect - 最适合:规划项目结构、设计组件和做出架构决策
-
询问模式 ❓
- 重点:回答问题和提供信息
- 使用方法:
npx @movibe/memory-bank-mcp --mode ask - 最适合:获取解释、澄清和信息
-
调试模式 🐛
- 重点:故障排除和解决问题
- 使用方法:
npx @movibe/memory-bank-mcp --mode debug - 最适合:查找和修复错误、分析问题
-
测试模式 ✅
- 重点:测试和质量保证
- 使用方法:
npx @movibe/memory-bank-mcp --mode test - 最适合:编写测试、进行测试驱动开发
切换模式
你可以通过几种方式切换模式:
-
启动服务器时:
npx @movibe/memory-bank-mcp --mode architect -
在会话期间:
memory-bank-mcp switch_mode mode=debug -
在光标处:
/mcp memory-bank-mcp switch_mode mode=test -
使用 .clinerules 文件:
在您的项目中创建一个.clinerules-[mode]文件,当检测到该文件时会自动切换到相应的模式。
Memory Bank MCP 的工作原理 🧠
Memory Bank MCP 基于模型上下文协议 (MCP) 构建,使 AI 助手能够与外部工具和资源进行交互。其工作原理如下:
核心组件 🧩
-
记忆库:以 markdown 文件形式存储的信息结构化仓库:
product-context.md:项目整体信息和目标active-context.md:当前状态、正在进行的任务和下一步progress.md:项目更新历史和里程碑decision-log.md:带有背景和理由的重要决策记录system-patterns.md:项目中使用的架构和代码模式
-
MCP 服务器:为 AI 助手提供与记忆库交互的工具和资源:
- 作为独立进程运行
- 通过 MCP 协议与 AI 助手通信
- 提供一套用于管理记忆库的工具
-
模式系统:支持不同的操作模式:
code:专注于代码实现ask:专注于回答问题architect:专注于系统设计debug:专注于调试问题test:专注于测试
数据流 🔄
- 初始化:AI 助手连接到 MCP 服务器并初始化一个记忆库
- 工具调用:AI 助手调用 MCP 服务器提供的工具来读写记忆库文件
- 上下文维护:记忆库跨会话维护上下文,允许 AI 回忆之前的决策和进展
记忆库结构 📂
记忆库使用标准化结构来组织信息:
- 产品上下文:项目概述、目标、技术栈和架构
- 活动上下文:当前状态、正在进行的任务、已知问题和下一步
- 进度:项目更新和里程碑的按时间顺序记录
- 决策日志:带有背景、备选方案和后果的重要决策记录
- 系统模式:架构模式、代码模式和文档模式
高级功能 🚀
- UMB 命令:在会话期间临时更新记忆库文件而不提交更改
- 模式检测:根据用户输入自动检测并切换模式
- 文件迁移:用于在不同文件命名约定之间迁移的工具
- 语言标准化:所有记忆库文件均以英文生成,以保持一致性
版本控制 📌
本项目遵循语义化版本控制,并使用传统提交格式来编写提交信息。当更改合并到主分支时,版本会自动更新,并根据提交信息生成变更日志。
- 主版本在出现破坏性更改时更新(提交信息包含
BREAKING CHANGE或!:) - 次版本在添加新功能时更新(提交信息包含
feat:或feat(scope):) - 修订版本在其他所有更改时更新(如修复错误、文档更新等)
完整的更改历史,请参阅 CHANGELOG.md 文件。
用法 📝
作为命令行工具 💻
# Initialize a Memory Bank
memory-bank-mcp initialize_memory_bank path=./memory-bank
# Track progress
memory-bank-mcp track_progress action="Feature Implementation" description="Implemented feature X"
# Log a decision
memory-bank-mcp log_decision title="API Design" context="..." decision="..."
# Switch mode
memory-bank-mcp switch_mode mode=code
作为库使用 📚
import { MemoryBankServer } from "@movibe/memory-bank-mcp";
// Create a new server instance
const server = new MemoryBankServer();
// Start the server
server.run().catch(console.error);
贡献 👥
有关行为准则及提交拉取请求的流程,请参阅 CONTRIBUTING.md。
许可证 📄
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。
内存银行状态系统 🚦
内存银行MCP实现了一个状态前缀系统,该系统提供了对内存银行运行状态的即时可见性:
状态指示器
每个使用内存银行MCP的AI助手响应都以这些状态指示器之一开始:
[MEMORY BANK: ACTIVE]: 内存银行可用并且正在用于提供上下文感知响应[MEMORY BANK: INACTIVE]: 内存银行不可用或配置不正确[MEMORY BANK: UPDATING]: 内存银行当前正在更新(在执行UMB命令期间)
此系统确保用户始终知道AI助手是在全上下文意识下工作还是仅基于有限的信息。
优点
- 透明度: 用户总是知道AI是否有访问整个项目上下文的能力
- 故障排除: 当内存银行配置不当时立即显而易见
- 上下文意识: 帮助用户理解为什么某些响应可能缺乏历史背景
更多详情,请参阅 内存银行状态前缀系统。