使用说明
支持远程SSH的内存库MCP🧠
用于管理内存库的模型上下文协议(MCP)服务器,允许AI助手跨会话存储和检索信息。现在支持远程服务器!
概述📋
Memory Bank Server为AI助手与Memory Bank交互提供了一组工具和资源。记忆库是结构化的信息存储库,有助于维护上下文并跟踪多个会话的进度。
特性✨
- 内存库管理:初始化、查找和管理内存库
- 文件操作:读写存储体中的文件
- 进度跟踪:跟踪进度并更新内存库文件
- 决策记录:用上下文和备选方案记录重要决策
- 主动上下文管理:维护和更新活动上下文信息
- 模式支持:检测并使用.clinerules文件进行模式特定行为
- UMB指挥部:使用UMB命令临时更新内存库文件
- 稳健的错误处理:妥善处理错误,并在可能的情况下继续操作
- 状态前缀系统:可立即查看存储库的运行状态
- 远程服务器支持:使用SSH将内存库存储在远程服务器上
目录结构📁
默认情况下,内存库使用 memory-bank 项目根目录中的目录。使用以下命令指定项目路径时 --path 选项,将在以下位置创建或访问内存库 <project_path>/memory-bank.
您可以使用自定义存储库文件夹的名称 --folder 选项。例如,如果您设置 --folder custom-memory,将在以下位置创建或访问内存库 <project_path>/custom-memory.
有关自定义文件夹名称的更多详细信息,请参阅 自定义内存库文件夹名称.
最近的改进🛠️
- 远程服务器支持:通过SSH将您的内存库存储在远程服务器上
- 可自定义文件夹名称:现在,您可以为内存库指定自定义文件夹名称
- 一致的目录结构:内存库现在始终使用项目根目录中配置的文件夹名称
- 增强初始化:即使.clinerules文件不存在,记忆库现在也能工作
- 更好的路径处理:改进了对绝对和相对路径的处理
- 改进的目录检测:更好地检测现有的内存库目录
- 更稳健的错误处理:优雅地处理与.clinerules文件相关的错误
有关更多详细信息,请参阅 内存库错误修复.
安装🚀
通过Smithery安装
通过以下方式自动安装克劳德桌面存储库 史密瑟里:
npx -y @smithery/cli install @aakarsh-sasi/memory-bank-mcp --client claude
手动安装
# Install from npm
npm install @aakarsh-sasi/memory-bank-mcp
# Or install globally
npm install -g @aakarsh-sasi/memory-bank-mcp
# Or run directly with npx (no installation required)
npx @aakarsh-sasi/memory-bank-mcp
使用npx💻
您可以使用npx直接运行Memory Bank MCP,而无需安装:
# Run with default settings
npx @aakarsh-sasi/memory-bank-mcp
# Run with specific mode
npx @aakarsh-sasi/memory-bank-mcp --mode code
# Run with custom project path
npx @aakarsh-sasi/memory-bank-mcp --path /path/to/project
# Run with custom folder name
npx @aakarsh-sasi/memory-bank-mcp --folder custom-memory-bank
# Run with remote server
npx @aakarsh-sasi/memory-bank-mcp --remote --remote-user username --remote-host example.host.com --remote-path /home/username/memory-bank
# Show help
npx @aakarsh-sasi/memory-bank-mcp --help
有关使用npx的更多详细信息,请参阅 npx-usage.md.
使用远程服务器模式🌐
Memory Bank MCP现在支持通过SSH将您的Memory Bank存储在远程服务器上。这使您能够:
- 集中你的记忆库:将所有项目记忆保存在一个地方
- 共享内存库:多个用户可以访问同一个内存库
- 永久存储:即使您的本地计算机被擦除,您的内存库也会保留
远程服务器要求
- SSH访问远程服务器
- 已设置SSH密钥身份验证(不支持密码身份验证)
- 在指定目录中创建/修改文件的足够权限
SSH密钥设置
要为远程服务器设置SSH密钥身份验证,请执行以下操作:
-
生成新的SSH密钥对 (如果你还没有):
# Using modern Ed25519 algorithm (recommended) ssh-keygen -t ed25519 -C "your_email@example.com" # OR using RSA if required for compatibility ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -
启动SSH代理并添加密钥:
# Start the agent eval "$(ssh-agent -s)" # Add your key ssh-add ~/.ssh/id_ed25519 # or ~/.ssh/id_rsa if you used RSA -
将您的公钥复制到远程服务器:
# Easiest method (if available) ssh-copy-id username@your-remote-host.com # Alternative: manually copy your public key cat ~/.ssh/id_ed25519.pub # copy the output然后将密钥粘贴到
~/.ssh/authorized_keys远程服务器上的文件。 -
测试您的连接:
ssh username@your-remote-host.com您应该可以在没有密码的情况下登录。
有关更详细的SSH密钥设置说明,请参阅我们的 SSH密钥指南.
远程服务器配置
要使用远程服务器模式,您需要提供以下参数:
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 选项。
远程服务器示例
# Using with a server at 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是一个支持模型上下文协议(MCP)的AI驱动的代码编辑器。要在游标中配置存储体MCP:
-
使用带有npx的存储体MCP:
无需全局安装该软件包。您可以直接使用npx:
# Verify npx is working correctly npx @aakarsh-sasi/memory-bank-mcp --help -
打开光标设置:
- 转到设置(⚙️) > 扩展>MCP
- 点击“添加MCP服务器”
-
配置MCP服务器:
- 名字:存储库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
-
保存并激活:
- 点击“保存”
- 通过切换启用MCP服务器
-
验证连接:
- 在Cursor中打开项目
- 记忆库MCP现在应该处于活动状态,并在您的AI交互中可用
有关Cursor的详细说明和高级用法,请参阅 cursor-integration.md.
与光标一起使用🤖
配置后,您可以通过AI命令在Cursor中与存储体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 @aakarsh-sasi/memory-bank-mcp --mode code - 最适合:编写、重构和优化代码
-
架构师模式 🏗️
- 重点:系统设计和架构
- 用途:
npx @aakarsh-sasi/memory-bank-mcp --mode architect - 最适合:规划项目结构、设计组件和做出架构决策
-
询问模式 ❓
- 重点:回答问题和提供信息
- 用途:
npx @aakarsh-sasi/memory-bank-mcp --mode ask - 最适合:获得解释、澄清和信息
-
调试模式 🐛
- 重点:故障排除和问题解决
- 用途:
npx @aakarsh-sasi/memory-bank-mcp --mode debug - 最适合:查找和修复错误,分析问题
-
测试模式 ✅
- 重点:测试和质量保证
- 用途:
npx @aakarsh-sasi/memory-bank-mcp --mode test - 最适合:编写测试、测试驱动开发
切换模式
您可以通过多种方式切换模式:
-
启动服务器时:
npx @aakarsh-sasi/memory-bank-mcp --mode architect -
在会议期间:
memory-bank-mcp switch_mode mode=debug -
在光标中:
/mcp memory-bank-mcp switch_mode mode=test -
使用.clinerules文件: 创建一个
.clinerules-[mode]检测到文件时,项目中的文件会自动切换到该模式。
存储库MCP的工作原理🧠
Memory Bank MCP基于模型上下文协议(MCP)构建,使AI助手能够与外部工具和资源进行交互。其工作原理如下:
核心组件🧩
-
存储体:以markdown文件存储的结构化信息存储库:
product-context.md:总体项目信息和目标active-context.md:当前状态、正在进行的任务和下一步progress.md:项目更新和里程碑的历史decision-log.md:重要决策的记录,包括背景和理由system-patterns.md:项目中使用的架构和代码模式
-
MCP服务器:为人工智能助手提供与记忆库交互的工具和资源:
- 作为独立进程运行
- 通过MCP协议与AI助手通信
- 提供一组用于管理内存库的工具
-
模式系统:支持不同的操作模式:
code:专注于代码实现ask:专注于回答问题architect:专注于系统设计debug:专注于调试问题test:专注于测试
数据流🔄
- 初始化:AI助手连接到MCP服务器并初始化内存库
- 工具调用:AI助手调用MCP服务器提供的工具来读取/写入内存库文件
- 上下文维护:记忆库在会话中保持上下文,使人工智能能够回忆起以前的决定和进展
存储体结构📂
记忆库使用标准化的结构来组织信息:
- 产品背景:项目概述、目标、技术和架构
- 活动上下文:当前状态、正在进行的任务、已知问题和下一步行动
- 进展:按时间顺序记录项目更新和里程碑
- 决策日志:重要决策的记录,包括背景、备选方案和后果
- 系统模式:体系结构模式、代码模式和文档模式
高级功能🚀
- UMB指挥部:在会话期间临时更新内存库文件,而不提交更改
- 模式检测:根据用户输入自动检测和切换模式
- 文件迁移:用于在不同文件命名约定之间迁移的工具
- 语言标准化:所有内存库文件均以英文生成,以保持一致性
版本控制📌
该项目如下 语义版本控制 并使用 常规承诺 用于提交消息。当更改合并到主分支中时,版本会自动升级,并根据提交消息生成更改日志。
- 主要版本 当有突破性的更改时,会发生碰撞(提交消息
BREAKING CHANGE或!:) - 次要版本 当添加新功能时,会发生碰撞(提交消息时使用
feat:或feat(scope):) - 补丁版本 所有其他更改(错误修复、文档等)都会被取消
有关更改的完整历史记录,请参阅 更改日志.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 "@aakarsh-sasi/memory-bank-mcp";
// Create a new server instance
const server = new MemoryBankServer();
// Start the server
server.run().catch(console.error);
贡献👥
请看 贡献.md 有关我们的行为准则和提交pull请求流程的详细信息。
许可证📄
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
存储体状态系统🚦
存储体MCP实施了一个状态前缀系统,可立即查看存储体的操作状态:
状态指示灯
使用Memory Bank MCP的AI助手的每个响应都从以下状态指示器之一开始:
[MEMORY BANK: ACTIVE]:记忆库可用,用于提供上下文感知响应[MEMORY BANK: INACTIVE]:内存库不可用或配置不正确[MEMORY BANK: UPDATING]:内存库当前正在更新(在UMB命令执行期间)
该系统确保用户始终知道AI助手是在完全上下文感知的情况下运行,还是在有限的信息下运行。
益处
- 透明度:用户总是知道AI是否可以访问整个项目上下文
- 故障排除:当内存库配置不正确时,会立即显示出来
- 情境感知:帮助用户理解为什么某些响应可能缺乏历史背景
有关更多详细信息,请参阅 存储体状态前缀系统.
