返回市场
内存银行MCP

内存银行MCP

作者:aakarsh-sasi36 星标更新:2025-06-26

项目介绍

Memory Bank MCP With Remote SSH Support 🧠

NPM Version License: MIT Tests smithery badge

一个用于管理Memory Banks的Model Context Protocol (MCP)服务器,允许AI助手跨会话存储和检索信息。现在支持远程服务器!

<a href="https://glama.ai/mcp/servers/@aakarsh-sasi/memory-bank-mcp"> <img width="380" height="200" src="https://gips0.baidu.com/it/u=1901077146,2160487272&fm=3081&app=3081&f=PNG?w=760&h=400" alt="Memory Bank MCP server" /> </a>

概述 📋

Memory Bank Server 提供了一套工具和资源,使AI助手能够与Memory Banks进行交互。Memory Banks是结构化的信息库,有助于在多个会话中保持上下文并跟踪进度。

功能 ✨

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

目录结构 📁

默认情况下,Memory Bank 使用项目根目录下的 memory-bank 文件夹。当您使用 --path 选项指定项目路径时,Memory Bank 将在 <project_path>/memory-bank 创建或访问。

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

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

最近的改进 🛠️

  • 远程服务器支持:通过SSH将您的Memory Bank存储在远程服务器上
  • 可自定义的文件夹名称:您现在可以为Memory Bank指定自定义文件夹名称
  • 一致的目录结构:Memory Bank现在始终在项目根目录中使用配置的文件夹名称
  • 增强的初始化:即使不存在.clinerules文件,Memory Bank也能正常工作
  • 更好的路径处理:改进了绝对路径和相对路径的处理
  • 改进的目录检测:更好地检测现有的memory-bank目录
  • 更强大的错误处理:优雅地处理与.clinerules文件相关的错误

有关更多详细信息,请参阅 Memory Bank Bug Fixes

安装 🚀

通过Smithery安装

要通过 Smithery 自动安装Memory Bank for Claude Desktop:

npx -y @smithery/cli install @aakarsh-sasi/memory-bank-mcp --client claude

手动安装

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

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

# 或直接使用npx(无需安装)
npx @aakarsh-sasi/memory-bank-mcp

使用npx 💻

您可以使用npx直接运行Memory Bank MCP而无需安装:

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

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

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

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

# 使用远程服务器运行
npx @aakarsh-sasi/memory-bank-mcp --remote --remote-user username --remote-host example.host.com --remote-path /home/username/memory-bank

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

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

使用远程服务器模式 🌐

Memory Bank MCP现在支持通过SSH将您的Memory Bank存储在远程服务器上。这允许您:

  1. 集中您的Memory Bank:将所有项目记忆集中在一处
  2. 共享Memory Banks:多个用户可以访问同一个Memory Bank
  3. 持久存储:即使本地机器被擦除,您的Memory Bank仍然存在

远程服务器要求

  • 对远程服务器的SSH访问
  • 设置了SSH密钥认证(不支持密码认证)
  • 在指定目录中创建/修改文件的足够权限

SSH密钥设置

要为远程服务器设置SSH密钥认证:

  1. 生成新的SSH密钥对(如果您还没有):

    # 使用现代Ed25519算法(推荐)
    ssh-keygen -t ed25519 -C "your_email@example.com"
    
    # 或使用RSA(如果需要兼容性)
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    
  2. 启动SSH代理并添加您的密钥

    # 启动代理
    eval "$(ssh-agent -s)"
    
    # 添加您的密钥
    ssh-add ~/.ssh/id_ed25519  # 或 ~/.ssh/id_rsa 如果您使用了RSA
    
  3. 将您的公钥复制到远程服务器

    # 最简单的方法(如果可用)
    ssh-copy-id username@your-remote-host.com
    
    # 替代方法:手动复制您的公钥
    cat ~/.ssh/id_ed25519.pub  # 复制输出
    

    然后将密钥粘贴到远程服务器上的 ~/.ssh/authorized_keys 文件中。

  4. 测试连接

    ssh username@your-remote-host.com
    

    您应该能够无密码登录。

有关更详细的SSH密钥设置说明,请参阅我们的 SSH Keys Guide

远程服务器配置

要使用远程服务器模式,您需要提供以下参数:

npx @aakarsh-sasi/memory-bank-mcp --remote \
  --ssh-key ~/.ssh/your_ssh_key \
  --remote-user username \
  --remote-host example.host.com \
  --remote-path /home/username/memory-bank

默认情况下,SSH密钥假定位于 ~/.ssh/your_ssh_key。您可以使用 --ssh-key 选项指定不同的密钥。

远程服务器示例

# 使用example.host.com上的服务器
npx @aakarsh-sasi/memory-bank-mcp --remote \
  --remote-user username \
  --remote-host example.host.com \
  --remote-path /home/username/memory-bank

在Cursor中配置 🖱️

Cursor 是一个支持Model Context Protocol (MCP)的AI驱动代码编辑器。要在Cursor中配置Memory Bank MCP:

  1. 使用npx运行Memory Bank MCP

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

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

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

    • 名称:Memory Bank MCP
    • 命令:npx
    • 参数@aakarsh-sasi/memory-bank-mcp --mode code(或根据需要选择其他模式)

    对于远程服务器:

    • 参数@aakarsh-sasi/memory-bank-mcp --mode code --remote --remote-user username --remote-host example.host.com --remote-path /home/username/memory-bank
  4. 保存并激活

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

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

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

在Cursor中使用 🤖

配置完成后,您可以通过AI命令在Cursor中与Memory Bank MCP进行交互:

  • 初始化Memory Bank/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交互:

可用模式

  1. 代码模式 👨‍💻

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

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

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

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

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

切换模式

您可以通过多种方式切换模式:

  1. 启动服务器时

    npx @aakarsh-sasi/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] 文件,当检测到该文件时自动切换到该模式。

Memory Bank MCP的工作原理 🧠

Memory Bank MCP基于Model Context Protocol (MCP),使AI助手能够与外部工具和资源进行交互。以下是其工作原理:

核心组件 🧩

  1. Memory Bank:以markdown文件形式存储的结构化信息库:

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

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

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

数据流 🔄

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

Memory Bank结构 📂

Memory Banks使用标准化的结构来组织信息:

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

高级功能 🚀

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

版本控制 📌

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

  • 主要版本:当有破坏性更改时(提交消息包含 BREAKING CHANGE!:
  • 次要版本:当添加新功能时(提交消息包含 feat:feat(scope):
  • 补丁版本:对于所有其他更改(错误修复、文档等)

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

使用 📝

作为命令行工具 💻

# 初始化Memory Bank
memory-bank-mcp initialize_memory_bank path=./memory-bank

# 跟踪进度
memory-bank-mcp track_progress action="Feature Implementation" description="Implemented feature X"

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

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

作为库 📚

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

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

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

贡献 👥

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

许可证 📄

此项目根据MIT许可证授权 - 详情请参阅 LICENSE 文件。

Memory Bank状态系统 🚦

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

状态指示符

每个使用Memory Bank MCP的AI助手的响应都以以下状态指示符之一开头:

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

该系统确保用户始终知道AI助手是否具有完整的上下文感知或有限的信息。

优势

  • 透明度:用户始终知道AI是否可以访问完整的项目上下文
  • 故障排除:立即显示Memory Bank是否未正确配置
  • 上下文感知:帮助用户理解某些响应为何缺乏历史上下文

有关更多详细信息,请参阅 Memory Bank状态前缀系统