返回市场
内存库-MCP

内存库-MCP

作者:movibe44 星标更新:2025-03-25

项目介绍

内存库 MCP 🧠

NPM 版本 许可证: MIT 测试

这是一个用于管理内存库的模型上下文协议(MCP)服务器,允许AI助手在多个会话之间存储和检索信息。

<a href="https://glama.ai/mcp/servers/riei9a6dhx"> <img width="380" height="200" src="https://gips3.baidu.com/it/u=1250449754,2627245601&fm=3081&app=3-081&f=PNG?w=760&h=400" alt="内存库 MCP 服务器" /> </a>

概览 📋

内存库服务器提供了一套工具和资源,使AI助手能够与内存库进行交互。内存库是结构化的信息仓库,有助于维护跨多个会话的上下文并跟踪进度。

功能 ✨

  • 内存库管理:初始化、查找和管理内存库
  • 文件操作:读取和写入内存库中的文件
  • 进度跟踪:跟踪进度并更新内存库文件
  • 决策日志:记录重要决策及其上下文和替代方案
  • 活动上下文管理:维护和更新活动上下文信息
  • 模式支持:检测并使用.clinerules文件以实现特定行为
  • 临时更新命令(UMB):使用UMB命令临时更新内存库文件
  • 强大的错误处理:优雅地处理错误并在可能的情况下继续运行
  • 状态前缀系统:立即了解内存库的操作状态

目录结构 📁

默认情况下,内存库会在项目根目录下使用一个名为memory-bank的目录。当您使用--path选项指定项目路径时,内存库将在<project_path>/memory-bank处创建或访问。

您可以使用--folder选项自定义内存库文件夹的名称。例如,如果您设置--folder custom-memory,则内存库将在<project_path>/custom-memory处创建或访问。

有关自定义文件夹名称的更多详细信息,请参阅自定义内存库文件夹名称

最近改进 🛠️

  • 可定制文件夹名称:现在可以指定自定义文件夹名称
  • 一致的目录结构:内存库现在始终使用配置的文件夹名称在项目根目录中
  • 增强的初始化:即使不存在.clinerules文件,内存库也能正常工作
  • 更好的路径处理:改进了绝对路径和相对路径的处理
  • 改进的目录检测:更好地检测现有的内存库目录
  • 更强大的错误处理:优雅地处理与.clinerules文件相关的错误

有关更多详细信息,请参阅内存库错误修复

安装 🚀

# 从npm安装
npm install @movibe/memory-bank-mcp

# 或全局安装
npm install -g @movibe/memory-bank-mcp

# 或直接使用npx运行(无需安装)
npx @movibe/memory-bank-mcp

使用npx运行 💻

您可以直接使用npx运行内存库MCP,而无需安装:

# 使用默认设置运行
npx @movibe/memory-bank-mcp

# 使用特定模式运行
npx @movibe/memory-bank-mcp --mode code

# 使用自定义项目路径运行
npx @movibe/memory-bank-mcp --path /path/to/project

# 使用自定义文件夹名称运行
npx @movibe/memory-bank-mcp --folder custom-memory-bank

# 显示帮助
npx @movibe/memory-bank-mcp --help

有关使用npx的更多详细信息,请参阅npx-usage.md

在Cursor中配置 🖱️

Cursor是一款由AI驱动的代码编辑器,支持模型上下文协议(MCP)。要在Cursor中配置内存库MCP:

  1. 使用内存库MCP与npx

    不需要全局安装该包。可以直接使用npx:

    # 验证npx是否正确工作
    npx @movibe/memory-bank-mcp --help
    
  2. 打开Cursor设置

    • 转到设置(⚙️)> 扩展 > MCP
    • 点击“添加MCP服务器”
  3. 配置MCP服务器

    • 名称:内存库MCP
    • 命令:npx
    • 参数@movibe/memory-bank-mcp --mode code(或其他所需模式)
  4. 保存并激活

    • 点击“保存”
    • 通过切换按钮启用MCP服务器
  5. 验证连接

    • 在Cursor中打开一个项目
    • 内存库MCP现在应该处于活动状态,并可用于您的AI交互

有关详细说明和高级用法,请参阅cursor-integration.md

与Cursor一起使用 🤖

一旦配置完成,您可以通过AI命令在Cursor中与内存库MCP进行交互:

  • 初始化内存库/mcp memory-bank-mcp initialize_memory_bank path=./memory-bank
  • 跟踪进度/mcp memory-bank-mcp track_progress action="功能实现" description="实现了功能X"
  • 记录决策/mcp memory-bank-mcp log_decision title="API设计" context="..." decision="..."
  • 切换模式/mcp memory-bank-mcp switch_mode mode=code

MCP模式及其使用方法 🔄

内存库MCP支持不同的操作模式,以优化特定任务的AI交互:

可用模式

  1. 代码模式 👨‍💻

    • 重点:代码实现和开发
    • 使用:npx @movibe/memory-bank-mcp --mode code
    • 最适合:编写、重构和优化代码
  2. 架构模式 🏗️

    • 重点:系统设计和架构
    • 使用:npx @movibe/memory-bank-mcp --mode architect
    • 最适合:规划项目结构、设计组件和做出架构决策
  3. 询问模式

    • 重点:回答问题和提供信息
    • 使用:npx @movibe/memory-bank-mcp --mode ask
    • 最适合:获取解释、澄清和信息
  4. 调试模式 🐛

    • 重点:故障排除和解决问题
    • 使用:npx @movibe/memory-bank-mcp --mode debug
    • 最适合:查找和修复错误,分析问题
  5. 测试模式

    • 重点:测试和质量保证
    • 使用:npx @movibe/memory-bank-mcp --mode test
    • 最适合:编写测试,测试驱动开发

切换模式

您可以按以下几种方式切换模式:

  1. 启动服务器时

    npx @movibe/memory-bank-mcp --mode architect
    
  2. 在会话期间

    memory-bank-mcp switch_mode mode=debug
    
  3. 在Cursor中

    /mcp memory-bank-mcp switch_mode mode=test
    
  4. 使用.clinerules文件: 在项目中创建一个.clinerules-[mode]文件,当检测到该文件时自动切换到该模式。

内存库MCP的工作原理 🧠

内存库MCP基于模型上下文协议(MCP),使AI助手能够与外部工具和资源进行交互。以下是其工作原理:

核心组件 🧩

  1. 内存库:作为markdown文件存储的信息结构化仓库:

    • product-context.md:整体项目信息和目标
    • active-context.md:当前状态、正在进行的任务和下一步计划
    • progress.md:项目更新和里程碑的历史记录
    • decision-log.md:重要决策的记录,包括上下文和理由
    • system-patterns.md:项目中使用的架构和代码模式
  2. MCP服务器:为AI助手提供与内存库交互的工具和资源:

    • 作为一个独立进程运行
    • 通过MCP协议与AI助手通信
    • 提供一套管理内存库的工具
  3. 模式系统:支持不同的操作模式:

    • code:专注于代码实现
    • ask:专注于回答问题
    • architect:专注于系统设计
    • debug:专注于调试问题
    • test:专注于测试

数据流 🔄

  1. 初始化:AI助手连接到MCP服务器并初始化一个内存库
  2. 工具调用:AI助手调用MCP服务器提供的工具来读取/写入内存库文件
  3. 上下文维护:内存库在会话之间维护上下文,使AI能够回忆之前的决策和进度

内存库结构 📂

内存库使用标准化结构来组织信息:

  • 产品上下文:项目概述、目标、技术和架构
  • 活动上下文:当前状态、正在进行的任务、已知问题和下一步计划
  • 进度:项目更新和里程碑的按时间顺序记录
  • 决策日志:重要决策的记录,包括上下文、替代方案和后果
  • 系统模式:架构模式、代码模式和文档模式

高级功能 🚀

  • 临时更新命令(UMB):在会话期间临时更新内存库文件而不提交更改
  • 模式检测:根据用户输入自动检测并切换模式
  • 文件迁移:用于在不同文件命名约定之间迁移的工具
  • 语言标准化:所有内存库文件均生成为英文以保持一致性

版本控制 📌

此项目遵循语义版本控制,并使用常规提交进行提交消息。当更改合并到主分支时,版本会自动增加,并根据提交消息生成变更日志。

  • 主要版本在有重大更改时增加(提交消息带有BREAKING CHANGE!:
  • 次要版本在添加新功能时增加(提交消息带有feat:feat(scope):
  • 补丁版本对于其他所有更改(错误修复、文档等)

有关完整的更改历史记录,请参阅CHANGELOG.md文件。

使用方法 📝

作为命令行工具 💻

# 初始化内存库
memory-bank-mcp initialize_memory_bank path=./memory-bank

# 跟踪进度
memory-bank-mcp track_progress action="功能实现" description="实现了功能X"

# 记录决策
memory-bank-mcp log_decision title="API设计" context="..." decision="..."

# 切换模式
memory-bank-mcp switch_mode mode=code

作为库 📚

import { MemoryBankServer } from "@movibe/memory-bank-mcp";

// 创建一个新的服务器实例
const server = new MemoryBankServer();

// 启动服务器
server.run().catch(console.error);

贡献 👥

请参阅CONTRIBUTING.md,了解我们的行为准则以及提交拉取请求的过程。

许可证 📄

本项目采用MIT许可证——详情请参阅LICENSE文件。

内存库状态系统 🚦

内存库MCP实现了一个状态前缀系统,提供了对内存库操作状态的即时可见性:

状态指示器

每个使用内存库MCP的AI助手响应都以这些状态指示器之一开始:

  • [MEMORY BANK: ACTIVE]:内存库可用且正在被用来提供上下文感知响应
  • [MEMORY BANK: INACTIVE]:内存库不可用或未正确配置
  • [MEMORY BANK: UPDATING]:内存库当前正在更新(在执行UMB命令期间)

该系统确保用户始终知道AI助手是在完全上下文感知还是有限信息的情况下运行。

优点

  • 透明度:用户始终知道AI是否有访问整个项目上下文的权限
  • 故障排除:立即显现出内存库是否未正确配置
  • 上下文感知:帮助用户理解为什么某些响应可能缺乏历史上下文

有关更多详细信息,请参阅内存库状态前缀系统