🚀 Memory Bank MCP Server
Memory Bank MCP Server是一個基於MCP協議的內存銀行服務器,支持多項目隔離和Markdown格式文檔管理,適用於大型語言模型(LLM)工具調用。它能有效解決多項目管理難題,為大型語言模型提供便捷的數據調用和管理方式。
🚀 快速開始
Memory Bank MCP Server是一個強大的工具,以下將為你介紹如何快速啟動並使用它。
前提條件
- Node.js 16+ (推薦18+)
- npm 7+ 或 yarn 1.22+
安裝步驟
- 克隆代碼庫
git clone https://github.com/your-username/memory-bank-mcp-server.git
cd memory-bank-mcp-server
- 安裝依賴
npm install
- 構建項目
npm run build
- 啟動服務器
npm start
npm start -- web
npm start -- mcp
環境變量
可以通過創建.env
文件或設置環境變量來配置服務器:
PORT=3000 # Web服務器端口
ROOT_DIR=/app/data # 數據存儲根目錄
SESSION_SECRET=your-secret-key # 會話密鑰
✨ 主要特性
- 符合MCP協議:完全符合Model Context Protocol規範,可被大模型直接調用。
- 多項目隔離:支持多個項目隔離管理,各項目任務及進度等信息分開存儲。
- Markdown格式:所有項目文檔使用Markdown格式存儲,易於編輯和維護。
- Web界面:提供直觀的Web管理界面,可以查看和編輯項目文檔。
- 靈活規則系統:支持全局規則和項目特定規則設置,項目規則優先於全局規則。
- 導入導出功能:支持項目級別的數據導入和導出。
- 無需數據庫:使用文件系統進行存儲,降低部署門檻。
🔧 技術細節
Memory Bank MCP Server採用了模塊化設計,主要包含以下組件:
- MCP服務器:實現MCP協議,提供工具接口給LLM調用
- Web服務器:提供REST API和前端界面
- 文件存儲系統:使用JSON文件和Markdown文件進行數據持久化
- 項目管理系統:隔離不同項目的數據和規則
📦 安裝指南
前提條件
- Node.js 16+ (推薦18+)
- npm 7+ 或 yarn 1.22+
安裝步驟
- 克隆代碼庫
git clone https://github.com/your-username/memory-bank-mcp-server.git
cd memory-bank-mcp-server
- 安裝依賴
npm install
- 構建項目
npm run build
- 啟動服務器
npm start
npm start -- web
npm start -- mcp
環境變量
可以通過創建.env
文件或設置環境變量來配置服務器:
PORT=3000 # Web服務器端口
ROOT_DIR=/app/data # 數據存儲根目錄
SESSION_SECRET=your-secret-key # 會話密鑰
💻 使用示例
基礎用法
以下是一個簡單的示例,展示如何在命令行中啟動MCP服務器:
npm start -- mcp
高級用法
如果你想在Cursor中使用Memory Bank MCP Server,可以按照以下步驟進行配置:
- 啟動MCP服務器
npm start -- mcp
- 在Cursor中打開設置,找到"AI設置"
- 在Tool Providers部分添加自定義工具提供商:
- 名稱: Memory Bank
- 描述: 多項目Markdown文檔管理工具
- 命令:
node [你的安裝路徑]/memory-bank-mcp-server/dist/index.js mcp
- 勾選"啟用"
- 保存設置並重啟Cursor
- 現在你可以在Cursor中使用像這樣的命令調用Memory Bank:
使用Memory Bank創建一個新項目,名稱為"我的項目",描述為"這是我的第一個項目"
📚 詳細文檔
數據存儲
服務器採用文件系統進行數據存儲,主要包含以下文件和目錄:
data/
├── projects.json # 項目元數據
├── documents.json # 文檔元數據
├── rules.json # 規則元數據
├── projects/ # 項目文件目錄
│ ├── {project-id}/ # 單個項目目錄
│ │ ├── projectbrief.md # 項目概述
│ │ ├── activeContext.md # 當前上下文
│ │ ├── tasks.md # 任務清單
│ │ └── ... # 其他文檔
├── templates/ # 文檔模板目錄
Markdown文件格式
項目文檔採用Markdown格式存儲,以下是幾種主要文檔類型:
- projectbrief.md - 項目概述
# 項目概述
## 項目名稱
## 目標
## 需求
## 技術棧
## 時間線
- tasks.md - 任務跟蹤
# 任務
## 待辦任務
- [ ] 任務1
- [ ] 任務2
## 進行中任務
- [ ] 任務3
## 已完成任務
- [x] 任務4
API參考
項目管理
GET /api/projects
- 獲取所有項目
GET /api/projects/:id
- 獲取項目詳情
POST /api/projects
- 創建新項目
PUT /api/projects/:id
- 更新項目
DELETE /api/projects/:id
- 刪除項目
文檔管理
GET /api/projects/:projectId/documents
- 獲取項目文檔列表
GET /api/projects/:projectId/documents/:type
- 獲取文檔內容
PUT /api/projects/:projectId/documents/:type
- 更新文檔內容
規則管理
GET /api/projects/:projectId/rules
- 獲取項目規則列表
GET /api/rules/:id
- 獲取規則內容
POST /api/rules
- 創建規則
PUT /api/rules/:id
- 更新規則
DELETE /api/rules/:id
- 刪除規則
MCP工具接口
服務器提供以下MCP工具接口供大模型調用:
list_projects
- 獲取所有項目
create_project
- 創建新項目
update_project
- 更新項目
delete_project
- 刪除項目
list_documents
- 獲取項目文檔列表
get_document
- 獲取文檔內容
update_document
- 更新文檔內容
list_rules
- 獲取項目規則列表
get_rule
- 獲取規則內容
create_rule
- 創建規則
update_rule
- 更新規則
delete_rule
- 刪除規則
與Cursor配合使用
配置步驟
- 啟動MCP服務器
npm start -- mcp
- 在Cursor中打開設置,找到"AI設置"
- 在Tool Providers部分添加自定義工具提供商:
- 名稱: Memory Bank
- 描述: 多項目Markdown文檔管理工具
- 命令:
node [你的安裝路徑]/memory-bank-mcp-server/dist/index.js mcp
- 勾選"啟用"
- 保存設置並重啟Cursor
- 現在你可以在Cursor中使用像這樣的命令調用Memory Bank:
使用Memory Bank創建一個新項目,名稱為"我的項目",描述為"這是我的第一個項目"
與cursor-memory-bank的區別與改進
與原始的cursor-memory-bank項目相比,本項目的主要區別和改進包括:
- MCP協議支持:實現了完整的MCP協議,可以被大模型直接調用
- 多項目隔離:支持管理多個項目,每個項目擁有獨立的文檔和規則
- Web界面:提供了可視化的Web管理界面
- 規則系統:支持全局規則和項目特定規則設置
- 更靈活的文檔管理:支持自定義文檔類型和模板
- 模塊化設計:採用模塊化架構,易於擴展和維護
最佳實踐
- 文檔命名:為每個文檔使用清晰、一致的命名約定
- 項目結構:為每個項目創建一致的文檔結構
- 規則管理:在全局規則中設置通用規則,在項目規則中設置特定項目的規則
- 定期備份:定期導出項目數據進行備份
- Markdown格式:利用Markdown的格式特性,如標題層級、列表和表格,使文檔更有結構
注意事項
⚠️ 重要提示
- 文件修改是立即生效的,無需重啟服務器
- 刪除項目將刪除該項目的所有文檔和規則,此操作不可撤銷
- 項目ID在創建後不可更改
- 文檔內容使用UTF-8編碼存儲
故障排除
- MCP服務器連接失敗:檢查命令路徑是否正確,確保服務器已啟動
- Web界面訪問失敗:檢查端口是否被佔用,確保服務器已啟動
- 文檔保存失敗:檢查文件系統權限,確保目錄可寫
- 導入項目失敗:檢查導入文件格式是否正確
未來計劃
- 添加用戶認證系統
- 支持實時協作編輯
- 增加更多文檔類型模板
- 支持文檔版本歷史
- 添加搜索功能
- 支持更多導入/導出格式
📄 許可證
本項目採用MIT許可證,詳見LICENSE文件。
貢獻
歡迎提交問題報告、功能建議和代碼貢獻。請先創建issue討論您要進行的更改。