记忆服务器

Memory Server MCP 是一个个人记忆服务器,通过MCP(Model Context Protocol)与Cursor/Claude集成,解决长时间对话中的上下文丢失问题,为LLM提供长期记忆功能。

  • by atosantasan
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 atosantasan/memory-server-mcp

使用说明

内存服务器MCP

个人内存服务器-Cursor/Claude集成MCP(Model Context Protocol)兼容服务器

概要

此项目旨在解决长时间对话中的上下文丢失问题MCP(Model Context Protocol)通过,通过Cursor/Claude中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。LLM提供长期存储功能,能动地参照·活用被保存了的信息,实现更连贯性有效的开发支援。

🚀 项目完成情况

✅ 完全完成(2025-01-01)

  • 3服务器隔离体系结构实施完成
  • WebUI集成实施完成
  • EXE版发布包制作完成
  • 全部功能测试完成
  • 复数Cursor接続对应完了

🏗️ 体系结构

本项目采用三个独立服务器组成的分布式体系结构:

  1. MCP服务器 (端口8000)-MCP协议专用服务器

    • Cursor/Claude等的AI与工具通信
    • stdio经过MCP协议处理
  2. WebUI服务器 (端口8001)-Web 接口,接口

    • 基于浏览器的内存管理UI
    • API Server代理功能
  3. API服务器 (端口8002)-REST API专用服务器

    • HTTP通过内存操作API
    • WebUI和外部应用程序

主要功能

📋 核心功能

  • 存储器入口管理:将文本信息与标记、关键字和摘要一起保存
  • 高速検索机能:通过关键字和标签灵活搜索
  • MCP统合: LLM可直接访问的工具组
  • REST API: HTTP内存操作
  • Web用户界面:基于浏览器的直观管理界面

🔧 技术的特征

  • 3服务器隔离体系结构:按功能分离的稳健设计
  • 軽量设计: SQLite基于单个文件数据库
  • 本地运行:完全本地行为,无外部相关性
  • 携带式:使用单个文件数据库进行简单迁移
  • 安定性重视:可靠性优先于速度的设计
  • EXE配布対応: PyInstaller的单一执行文件化
  • 复数接続对应:多个Cursor支持来自实例的并发连接

📦 安装和启动

🎯 建议:EXE使用版本

它是最简单和最值得推荐的方法

  1. dist/MemoryServerMCP.exe (42MB) 执行
  2. 自动启动三台服务器
  3. 立即可用

可用端点:

  • Web用户界面: http://localhost:8001
  • REST API: http://localhost:8002
  • 健康检查: http://localhost:8002/health
  • MCP协议: stdio経由(Cursor/Claude用)

🐍 开发人员:Python使用版本

所需环境

  • python: 3.8以上(推奨: 3.9以上)
  • 点: Python包管理器
  • 操作系统: Windows、macOS、Linux(跨平台支持)

安装过程

1.下载项目

# GitHubからクローン(または手動でファイルをダウンロード)
git clone <repository-url>
cd memory-server-mcp

2.创建虚拟环境(推荐)

# 仮想環境を作成
python -m venv venv

# 仮想環境を有効化
# Windows:
venv\Scripts\activate
# macOS/Linux:
source venv/bin/activate

3.安装相关性

# 必要なパッケージをインストール
pip install -r requirements.txt

4.服务器启动和测试

# 3つのサーバーを同時起動(初回実行時にデータベースが自動作成されます)
python main.py

成功启动后,将显示以下消息:

INFO - Memory Server starting...
INFO - Database initialized at: memory.db
INFO - 🔧 MCP Server: http://localhost:8000
INFO - 🌐 WebUI Server: http://localhost:8001  
INFO - 🚀 API Server: http://localhost:8002
INFO - All servers started successfully!

5.动作确认

检查每个服务器的行为:

# MCP Server(メイン)のヘルスチェック
curl http://localhost:8000/health

# API Server の動作確認
curl http://localhost:8002/health

# WebUI にブラウザでアクセス
# http://localhost:8001

🚀 使用方法

服务器启动

正常启动(3台服务器同时启动)

# EXE版
./dist/MemoryServerMCP.exe

# Python版
python main.py

服务器成功启动后,以下功能可用:

🔧 MCP Server (端口8000):

  • LLM接受来自的工具调用
  • stdio经过MCP协议处理

🌐 WebUI Server (端口8001):

  • 基于浏览器的内存管理画面
  • 直观的CRUD操作界面
  • API Server代理功能

🚀 API Server (端口8002):

  • REST API 内存操作
  • 与外部应用程序协作
  • 快速JSON 响应

Python单独启动版本选项

# REST APIのみ起動(開発・テスト用)
python main.py --api-only

# 設定確認モード
python main.py --check-config

🔗 光标/克劳德でのMCP設定

1. MCP创建配置文件

EXE使用版本时 (推奨):

{
  "mcpServers": {
    "memory-server": {
      "command": "path/to/MemoryServerMCP.exe",
      "args": [],
      "env": {
        "MEMORY_LOG_LEVEL": "WARNING"
      },
      "disabled": false,
      "autoApprove": [
        "add_note_to_memory",
        "search_memory",
        "get_project_rules",
        "list_all_memories"
      ]
    }
  }
}

Python使用版本时:

{
  "mcpServers": {
    "memory-server": {
      "command": "python",
      "args": ["path/to/your/main.py"],
      "cwd": "path/to/your/memory-server-mcp",
      "env": {
        "MEMORY_SERVER_HOST": "localhost",
        "MEMORY_SERVER_PORT": "8000",
        "MEMORY_LOG_LEVEL": "INFO"
      },
      "disabled": false,
      "autoApprove": [
        "add_note_to_memory",
        "search_memory", 
        "get_project_rules",
        "list_all_memories",
        "update_memory_entry",
        "delete_memory_entry"
      ]
    }
  }
}

2.确认设置

Cursor IDE确认以下内容:

  1. 打开命令选项板(Cmd/Ctrl+Shift+P)
  2. "MCP" 查找
  3. "MCP Server View" 查看服务器状态
  4. 显示绿色状态时连接成功

环境变量设置

您可以使用以下环境变量自定义设置:

# サーバー設定
export MEMORY_SERVER_HOST=localhost
export MEMORY_SERVER_PORT=8000

# データベース設定
export MEMORY_DB_PATH=memory.db

# ログ設定
export MEMORY_LOG_LEVEL=INFO
export MEMORY_LOG_FILE=memory_server.log

# 検索設定
export MEMORY_MAX_SEARCH_RESULTS=100

MCP工具

LLM的工具:

  1. add_note_to_mer:将注释添加到内存
  2. search_memory:使用关键字或标记查找内存
  3. update_memory_tentry:更新现有内存条目
  4. delete_memory_tentry:删除内存条目
  5. list_all_memories:列出所有内存条目
  6. get_project_rules:获取项目规则标记的内存

🌐 Web UI 使用(建议)

访问方法: http://localhost:8001

主要功能

  • 📝 创建内存条目:直观的表单输入
  • 📊 一覧表示:用标签和关键词简单易懂地整理
  • 🔍 検索机能:实时搜索
  • ✏️ 编集・削除:单击一次操作
  • 📱 响应响应响应:移动设备也很舒适

🚀 REST API端点

基本URL: http://localhost:8002

存储器入口管理

  • POST /memories -创建新的内存条目
  • GET /memories -查找和浏览内存条目
  • GET /memories/{id} -获取特定的内存条目
  • PUT /memories/{id} -更新内存条目
  • DELETE /memories/{id} -删除内存条目

搜索和过滤

  • GET /memories/search?q={query} -关键字搜索
  • GET /memories/tags/{tag} -按标记过滤
  • GET /memories/rules -获取带有规则标记的条目

健康检查

  • GET /health -详细的健康检查
  • GET / -服务器状态确认

服务器管理

启动和关闭

服务器提供以下功能:

  • 大关断: Ctrl+C 在工作空间的边缘SIGTERM 安全停止服务器
  • 自动设定検证:启动时确认设置值的有效性
  • 详细日志:启动进程和配置信息详细日志
  • 错误处理:详细报告启动错误

日志管理

  • 日志文件: memory_server.log(默认值)
  • 日志级别:DEBUG, INFO, WARNING, ERROR, CRITICAL
  • 输出到控制台和文件
  • 第三方库日志级别自动调整

数据结构

存储器入口

{
  "id": 1,
  "content": "メモリの内容",
  "tags": ["プロジェクト", "ルール"],
  "keywords": ["Python", "FastAPI"],
  "summary": "短い要約",
  "created_at": "2025-01-01T00:00:00",
  "updated_at": "2025-01-01T00:00:00"
}

数据库架构

SQLite数据库(memory.db)创建以下表:

  • memory_entries:主内存条目表
  • 用于提高搜索性能的各种索引
  • 触发自动更新时间戳

开発

测试运行

项目包括全面的测试套件:

# 全テストを実行(推奨)
python -m pytest

# 個別テストの実行
python test_server_startup.py          # 基本的なサーバー起動テスト
python test_full_server_startup.py     # 完全なサーバー起動テスト
python test_memory_service.py          # データアクセス層テスト
python test_mcp_tools.py               # MCPツール機能テスト
python test_mcp_integration.py         # MCP統合テスト
python test_api.py                     # REST APIテスト

# カバレッジレポート付きテスト(pytest-covがインストールされている場合)
python -m pytest --cov=main --cov-report=html

依赖关系详细信息

requirements.txt中包含的包:

fastapi>=0.104.0        # 高速なWeb APIフレームワーク
uvicorn>=0.24.0         # ASGIサーバー
fastmcp>=0.1.0          # MCPプロトコル実装
pydantic>=2.0.0         # データバリデーション
pytest>=7.0.0           # テストフレームワーク
jinja2>=3.0.0           # WebUIテンプレートエンジン
python-multipart>=0.0.6 # マルチパートフォーム処理
httpx>=0.25.0           # 非同期HTTPクライアント

它们都很轻,不依赖外部服务。

项目结构

memory-server-mcp/
├── 📁 配布用ファイル
│   ├── dist/MemoryServerMCP.exe          # EXE配布版(42MB)
│   └── MemoryServerMCP.spec              # PyInstallerビルド設定
├── 📁 コアサーバーファイル
│   ├── main.py                           # MCPサーバー(ポート8000)
│   ├── webui_server.py                   # WebUIサーバー(ポート8001)
│   ├── api_server.py                     # APIサーバー(ポート8002)
│   └── requirements.txt                  # Python依存関係
├── 📁 WebUI関連
│   ├── templates/                        # HTMLテンプレート
│   │   ├── base.html                     # ベーステンプレート
│   │   ├── index.html                    # メイン画面
│   │   ├── create.html                   # 作成フォーム
│   │   ├── edit.html                     # 編集フォーム
│   │   └── error.html                    # エラー画面
│   └── static/                           # 静的ファイル
│       ├── css/style.css                 # スタイルシート
│       └── js/app.js                     # JavaScript
├── 📁 ビルド関連
│   ├── build_windows_exe.py              # EXE版ビルドスクリプト
│   └── pyinstaller_hooks/                # PyInstallerフック
├── 📁 テストファイル群
│   ├── test_api.py                       # REST APIテスト
│   ├── test_memory_service.py            # データアクセス層テスト
│   ├── test_mcp_tools.py                 # MCPツールテスト
│   ├── test_mcp_integration.py           # MCP統合テスト
│   ├── test_server_startup.py            # サーバー起動テスト
│   └── test_full_server_startup.py       # 完全起動テスト
├── 📁 データと設定
│   ├── memory.db                         # SQLiteデータベース
│   ├── memory_server.log                 # ログファイル
│   ├── mcp_config_cursor.json            # Cursor設定例
│   └── 要件.md                          # プロジェクト要件
└── 📁 その他
    ├── README.md                         # このドキュメント
    └── .git/                            # Gitリポジトリ

重要文件

执行文件

  • dist/MemoryServerMCP.exe: EXE版本分发文件(推荐)
  • main.py: MCP服务器(端口8000)
  • webui_server.py: WebUI服务器(端口8001)
  • api_server.py: API服务器(端口8002)

数据和日志

  • memory.db: SQLite数据库(便携式、可备份)
  • memory_server.log:详细日志信息(用于故障排除)

设置和依赖关系

  • 需求.txt: Python依存关系定义
  • mcp_config_cursor.json: Cursor设定例

故障排除

常见问题及解决办法

1.服务器启动错误

问题: Address already in use 错误

# 解決方法: 各ポートを変更
export MEMORY_SERVER_PORT=8100    # MCPサーバー
export MEMORY_WEBUI_PORT=8101     # WebUIサーバー  
export MEMORY_API_PORT=8102       # APIサーバー
python main.py

问题: Permission denied 无法访问数据库文件

# 解決方法: ファイル権限を確認・修正
chmod 644 memory.db
# または、別の場所にデータベースを作成
export MEMORY_DB_PATH=/tmp/memory.db

2. MCP连接错误

问题: Cursor IDE单击功能区上MCP无法连接到服务器

  • EXE使用版本:EXE检查文件路径是否正确
  • Python使用版本:确认虚拟环境是否已启用
  • 确认每个服务器是否实际启动:
    • MCP: curl http://localhost:8000/health
    • WebUI: curl http://localhost:8001
    • API curl http://localhost:8002/health
  • 多个Cursor使用实例时逐个检查连接

问题: MCP未显示工具

  • autoApprove 确认列表中是否包含工具名称
  • Cursor IDE单击功能区上MCP重新启动服务器(从MCP Server View)

3.性能问题

问题:搜索速度慢

# 解決方法: 検索結果数を制限
export MEMORY_MAX_SEARCH_RESULTS=50

问题:内存使用量大

  • 检查数据库文件的大小
  • 删除不需要的内存条目
  • 日志级别WARNING 更改为

4.数据相关问题

问题:数据未保存

  • 检查数据库文件的写入权限
  • 检查磁盘空间
  • 在日志文件中检查错误消息

问题:出现乱码

  • UTF-8确认是否使用编码
  • 环境变数 PYTHONIOENCODING=utf-8 的规格化距离的幂函数

日志确认方法

详细的错误信息可以通过以下方法进行确认:

# リアルタイムでログを監視
tail -f memory_server.log

# エラーレベルのログのみ表示
grep "ERROR\|CRITICAL" memory_server.log

# 最新の100行を表示
tail -n 100 memory_server.log

调试模式

如果需要更多信息:

# デバッグレベルでログを出力
export MEMORY_LOG_LEVEL=DEBUG
python main.py

支持和反馈

问题未解决:

  1. memory_server.log 确认的相关部分
  2. 记录环境信息(OS、Python版本)
  3. 明确再现步骤
  4. GitHubのIssueで報告

💡 使用例

🌐 Web UI 使用的基本操作

  1. 在浏览器中http://localhost:8001访问
  2. 单击“新建”按钮
  3. 输入内存条目:
    • 内容:在“项目中PEP8严格遵守“
    • 标记:“规则”、“编码约定”
    • 关键词:“PEP8”,“Python”
    • 摘要:“Python编码约定的方针”
  4. 保存后、一覧画面で确认・検索・编集が可能

🤖 Cursor/Claude 中的MCP 使用流程

  1. 保存项目规则:
# CursorでLLMに以下のように指示
"このプロジェクトでは、Pythonのコーディング規約としてPEP8を厳密に守り、型ヒントを必須とする、というルールをメモリに保存してください"
  1. 记录技术决定:
"FastAPIとSQLiteを使用する理由は軽量性とポータビリティを重視するため、という決定をメモリに保存してください"
  1. 在后续对话中自动浏览:
# LLMは自動的に保存されたルールを参照して回答
"新しいAPIエンドポイントを作成したいのですが..."
# → LLMは保存されたコーディング規約に基づいて提案

REST API使用例

# メモリエントリを作成(API Server使用)
curl -X POST "http://localhost:8002/memories" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "プロジェクトではPEP8を厳密に守る",
    "tags": ["ルール", "コーディング規約"],
    "keywords": ["PEP8", "Python", "コーディング"],
    "summary": "Pythonコーディング規約の方針"
  }'

# キーワードで検索
curl "http://localhost:8002/memories/search?q=PEP8"

# タグで検索
curl "http://localhost:8002/memories/tags/ルール"

# WebUI経由でのAPI呼び出し
curl "http://localhost:8001/api/memories"

备份和迁移数据

备份

# データベースファイルをコピー
cp memory.db memory_backup_$(date +%Y%m%d).db

# 設定ファイルも含めてバックアップ
tar -czf memory_server_backup.tar.gz memory.db memory_server.log .kiro/

迁移到其他计算机

# 1. プロジェクトファイルをコピー
scp -r memory-server-mcp/ user@newmachine:/path/to/destination/

# 2. 新しいマシンで依存関係をインストール
cd /path/to/destination/memory-server-mcp/
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt

# 3. サーバーを起動
python main.py

性能和限制

推奨使用量

  • 内存条目数:最多10000个(保持快速搜索)
  • 每个条目的大小: 10KB以下(大代码块利用摘要)
  • 同时接続数:最多10个连接(假设为个人使用)

系统要求

  • 随机存取存储器: 最小256MB、推奨512MB
  • 磁盘空间: 最小100MB、推奨1GB
  • 中央处理器:可选(由于设计轻巧,即使在低规格下也能工作)

安全注意事项

  • 本地运行:无外部网络通信
  • 数据加密: SQLite文件为明文(可选加密)
  • 访问控制: localhost仅访问
  • 日志管理:避免记录和输出敏感信息的设计

许可证

这个项目MIT在许可证下公开。

貢献

错误报告和功能要求GitHub的,之Issue请通知我。也欢迎拉式请求。

📋 更新履歴

  • v2.0.0版本 (2025-01-01):3服务器架构完成版

    • 🏗️ 3服务器隔离体系结构实现
    • 🌐 WebUI集成(端口8001)
    • 🚀 独立API服务器(端口8002)
    • 📦 EXE版本分发包(42MB)
    • 🔧 复数Cursor接続对应
    • 🎨 回动WebUI
    • 📊 全面测试套件扩展
  • v1.0.0:首次发布

    • MCP统合机能
    • REST API
    • SQLite数据库
    • 基本测试套件