Token导航 LogoToken导航TokenDH.com
Memory MCP (Solidlime) logo
搜索检索stdio官方级别未说明来源级核验

Memory MCP (Solidlime)

MCP Server

MemoryMCP是一个基于SQLite和Qdrant的持久记忆管理服务器,结合Ebbinghaus遗忘曲线进行记忆优化,支持多模态搜索和个性化记忆管理。

工具数

6

提示词数

0

GitHub Stars

0

资源数

0
记忆管理混合搜索PythonClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

solidlime

提供方

solidlime

最后核验

2026/5/17 20:20

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run -d -p 6333:6333 -v "$(pwd)/data/qdrant:/qdrant/storage" qdrant/qdrant

详细介绍

内存MCP

日语专用的永久记忆MCP服务器—SQLite+Qdrant+Ebbinghaus遗忘曲线

![CI](https://github.com/solidlime/MemoryMCP/actions/workflows/ci.yml) ![License: MIT](LICENSE) ![Python 3.12+](https://www.python.org/)

特徴

  • 混合搜索 -Semantic/Keyword/Hybrid(RRF集成)/Sart 4种模式
  • Ebbinghaus忘却曲线R(t) = e^(-t/S) 基于自动重要性衰减和召回增强
  • 核心内存块 —始终 get_context() 将条目添加到文档注册表
  • 实体图表 —通过知识图表管理人物、场所、概念的关系
  • Bi-temporal 状態管理 —完整保留用户信息更改历史记录
  • 矛盾検出 -基于向量相似度自动检测与现有存储的冲突
  • Persona分离 —支持多租户。每个人员的独立数据库向量集合
  • 网页仪表板http://localhost:26262 在浏览器中查看存储图表统计信息
  • 🔮 反射:LLM驱动的来自最近记忆的高级见解(生成代理风格)。由重要性累积自动触发。可配置的阈值和间隔。
  • 🧠 心理模型:从累积的类型标记存储器中提取模式。检测重复模式(例如“用户每天早上喝咖啡”)并创建抽象模型。由每种类型的内存计数自动触发。
  • 沙盒代码执行:在隔离的Docker容器中执行Python/Bash代码(兄弟容器模式)。支持文件操作、软件包安装。需要Docker套接字挂载。
  • 🔍 记忆丰富:创建记忆时,通过LLM自动评估重要性得分并提取实体关系。可配置的提供者/模型。
  • 🧩 备忘录:内存上下文快照+线索生成,用于增强检索(从全局上下文扩展查询)。

快速启动

Docker(推奨)

docker-compose up -d

docker-compose.yml 中描述的场景,使用下列步骤创建明细表,以便在概念设计中分析体量的周长。数据是 ./data 中描述的相应参数的值。

本地开发

# Qdrant 起動
docker run -d -p 6333:6333 -v "$(pwd)/data/qdrant:/qdrant/storage" qdrant/qdrant

# 依存関係(CPU 版 torch)
pip install torch --index-url https://download.pytorch.org/whl/cpu
pip install -r requirements.txt

# サーバー起動
python -m memory_mcp.main

服务器是 http://localhost:26262 中所述修改相应参数的值。

沙盒文件持久化

在Docker中以兄弟容器沙盒模式运行时,在沙盒内创建的文件 在 /sandbox 需要一个主机端路径才能持久。如果文件在主机上不可见:

  1. MEMORY_MCP_SANDBOX__HOST_DATA_ROOT 到主机侧数据路径:
   # docker-compose.yml
   environment:
     MEMORY_MCP_SANDBOX__HOST_DATA_ROOT: /volume1/docker/MemoryMCP/data
  1. 确保 docker 开发包 已安装(pip install docker>=7.0.0)
  1. 验证Docker套接字 已安装: /var/run/docker.sock:/var/run/docker.sock

自动检测主机路径在标准Docker设置中有效,但可能会失败 定制部署(Synology、Podman等)。

MCP工具(6个)

MCP服务器(/mcp 端点)露出LLM的工具组。

get_context()

将当前的佩尔索纳状态、记忆摘要、装备、感情、Block、约定、目标一并返还。会话开始时首先呼叫。

result = get_context()
# → persona, emotion, physical_state, equipment, blocks, recent_memories, promises, goals, stats ...

memory(operation, ...)

存储冲突检测备用核心内存块实体图形操作。

operation说明
create |创建记忆(带感情、重要度、标记)|
read |获取指定key的存储|
update 更新现有存储(有版本历史记录)
delete 删除记忆
check_contradictions |发现与现有存储的矛盾|
history 获取存储编辑历史记录
stats 获取内存统计信息
block_write 写入核心内存块
block_read 读取Block
block_list 获取Block一览表
block_delete 删除Block
entity_search |查找实体(人物、位置、概念)|
entity_graph 获取实体相关性图表
entity_add_relation |添加实体之间的关系|
enrich 重新执行现有存储的LLM补全(重要性重估+实体关系提取)
run_mental_model 手动触发心理模型抽象化
refresh_context_snapshot |重建全局上下文快照|
# 記憶を作成
memory(operation="create", content="ユーザーは苺が好き", importance=0.8, emotion_type="joy")

# Block に書き込み
memory(operation="block_write", block_name="user_model", content="Pythonエンジニア、簡潔な説明を好む")

# エンティティグラフ
memory(operation="entity_graph", entity_id="user_tanaka", depth=2)

search_memory(query, top_k=5, ...)

混合搜索引擎(总是keyword+semantic的RRF集成)。

# ハイブリッド検索(デフォルト)
search_memory(query="最近の出来事", top_k=10)

# 日付フィルタ付き(自然言語)
search_memory(query="成果", date_range="先週")

# 重要度ブースト
search_memory(query="ユーザー情報", importance_weight=0.3, min_importance=0.6)

date_range 表现例: 今日 昨日 先週 先月 3日前 7d 2025-01-01~2025-06-01

update_context(...)

实时更新感情、状态、用户信息。user_info 的变更在Bi-temporal中保持历史记录。

update_context(emotion="joy", emotion_intensity=0.8)
update_context(physical_state="tired", mental_state="focused", environment="home office")
update_context(user_info={"name": "太郎", "preferred_address": "太郎さん"})

参数|说明| |---|---| | emotion / emotion_intensity 感情类型和强度(0.0-1.0) | physical_state / mental_state | 身体的・精神的状態 | | environment 当前环境(例如: "home office") | | user_info | name / nickname / preferred_address 的词典 | persona_info |佩尔索纳自己的信息(nickname, active_promises 等) | | fatigue / warmth / arousal | 身体感覚(0.0–1.0)| | speech_style |说话风格(例如: "甘えた口調") |

item(operation, ...)

物品装备的管理。仅物理项目対象。

operation说明
add 添加项目
remove 删除项目
equip 设置装备插槽(top/bottom/shoes/outer/accessories/head
unequip |解除指定插槽|
update 更新项目信息(wet/dirty等)
search 查找项目(querycategory
history 取得装备变更履历
item(operation="equip", equipment={"top": "白いドレス", "accessories": "花の髪飾り"})
item(operation="search", category="clothing")

sandbox(code, language="python")

在隔离的Docker沙箱中执行代码(兄弟容器模式)。需要Docker套接字挂载。

参数|说明| |---|---| | code 执行的代码字符串(Python/Bash) | language |言语: "python"(默认)或 "bash" |

# Python コード実行
sandbox("import pandas as pd; print(pd.DataFrame({'a': [1,2,3]}))")

# Bash コマンド実行
sandbox("ls -la /sandbox/", language="bash")

# パッケージインストール
sandbox("import subprocess; subprocess.run(['pip', 'install', 'requests'], capture_output=True)")

# ファイル作成(/sandbox 以下は永続化可能)
sandbox("open('/sandbox/output/result.txt', 'w').write('hello')")

嵌入WebUI聊天工具(15个)

WebUI聊天(/chat/{persona})将条目添加到文档注册表。由MCP工具的简易包装+砂箱专用工具构成。

内存操作(12条)

|工具名称|说明|对应MCP| |---|---|---| | memory_create |记忆を作成(content,importance,tags,emotion_type)| memory(operation="create") | | memory_search 搜索存储(query,top_k=1-200) search_memory() | | memory_update |既存记忆を更新(query→検索→上书き)| memory(operation="update") | | context_update | 感情・状態を更新(emotion, mental_state) | update_context() | | context_recall 通过标记指定获取存储(tags,top_k) search_memory(tags=...) | | goal_create |目标を作成(content,importance=0.75)| memory(tags=["goal","active"]) | | goal_achieve |目标を达成(content部分一致)| memory(operation="update", tags=["goal","achieved"]) | | goal_cancel 取消目标 memory(operation="update", tags=["goal","cancelled"]) | | promise_create |约束を记録(content,importance=0.8)| memory(tags=["promise","active"]) | | promise_fulfill 履行约定 memory(operation="update", tags=["promise","fulfilled"]) | | promise_cancel 取消约会 memory(operation="update", tags=["promise","cancelled"]) | | invoke_skill 在独立上下文中运行技能(仅用于构建)

砂箱操作(2个)

|工具名称|说明|对应MCP| |---|---|---| | execute_code 代码执行(Python/Bash、matplotlib图像自动显示) sandbox() | | sandbox_files 文件操作(list/read/write/delete,图像为自动base64)

MCP ↔ Builtin 対応表

功能|MCP工具|构建工具|备注| |---|---|---|---| |记忆CRUD | memory(operation=...) | memory_create/update Builtin是简易包装 | 検索 | search_memory() | memory_search/context_recall 建设者上限为200件 | 状態更新 | update_context() | context_update Builtin仅限感情、状态 | Goal 管理 | memory(tags=["goal"]) | goal_create/achieve/cancel |自动标记Builtin| | Promise 管理 | memory(tags=["promise"]) | promise_create/fulfill/cancel |自动标记Builtin| 执行代码 sandbox() | execute_code/sandbox_files |sandbox_files还集成了图像读取| 实体图表 memory(entity_*) | — | MCP 専用 | | 矛盾検出 | memory(check_contradictions) | — | MCP 専用 | 精神模型 memory(run_mental_model) | — | MCP 専用 | 会话导入 memory(import_conversation) | — | MCP 専用 | 项目管理 item() | — | MCP 専用 | 技能执行 invoke_skill | Builtin 専用 |

设定

所有设置均为环境变量(MEMORY_MCP_ 前缀)控制。嵌套设置 __ 用分隔符指定。

|环境变量|默认|说明| |---|---|---| | MEMORY_MCP_DATA_ROOT | ./data |数据保存位置(自动导出所有子路径)| | MEMORY_MCP_SERVER__PORT | 26262 |HTTP端口| | MEMORY_MCP_SERVER__HOST | 0.0.0.0 绑定地址 | MEMORY_MCP_QDRANT__URL | http://localhost:6333 | Qdrant 接続先 | | MEMORY_MCP_EMBEDDING__MODEL | cl-nagoya/ruri-v3-30m |嵌入模型| | MEMORY_MCP_RERANKER__MODEL | hotchpotch/japanese-reranker-xsmall-v2 Reranker模型 | MEMORY_MCP_TIMEZONE | Asia/Tokyo |时区| | MEMORY_MCP_LOG_LEVEL | INFO 日志级别 | MEMORY_MCP_DEFAULT_PERSONA | default 默认人员名称 | PERSONA | *(无)* 默认人员名称(MEMORY_MCP_DEFAULT_PERSONA 优先)| | MEMORY_MCP_SANDBOX__ENABLED | true 启用Sandbox代码执行 | MEMORY_MCP_SANDBOX__PROVIDER | llm_sandbox Sandbox供应商 | MEMORY_MCP_SANDBOX__DOCKER_HOST | *(自动)* Docker主机URL(空=自动检测套接字) | MEMORY_MCP_SANDBOX__HOST_DATA_ROOT | *(自动)* 主机端数据目录绝对路径(用于sibling-container持久化) | MEMORY_MCP_SANDBOX__TIMEOUT | 30 |代码执行超时(秒)| | MEMORY_MCP_MEMORY_ENRICHMENT__ENABLED | true |记忆作成时のLLM补完(重要度・关系抽出)を有效化| | MEMORY_MCP_MEMORY_ENRICHMENT__PROVIDER | openrouter LLM供应商 | MEMORY_MCP_MEMORY_ENRICHMENT__API_KEY | *(无)* LLM API密钥 | MEMORY_MCP_MEMORY_ENRICHMENT__MODEL | openai/gpt-4o-mini LLM模型 | MEMORY_MCP_MEMORY_ENRICHMENT__BASE_URL | https://openrouter.ai/api/v1 基于LLM API的URL | MEMORY_MCP_MEMORY_ENRICHMENT__MIN_CHARS | 10 |跳过完成的最小字符数| | MEMORY_MCP_MEMORAG__ENABLED | true 启用MemoRAG上下文快照 | MEMORY_MCP_MEMORAG__CLUE_GENERATION_ENABLED | false 启用基于LLM的查询线索生成 | MEMORY_MCP_FORGETTING__ENABLED | true | Ebbinghaus忘却曲线を有效化| | MEMORY_MCP_FORGETTING__DECAY_INTERVAL_SECONDS | 3600 |衰减工作人员执行间隔(秒)| | MEMORY_MCP_FORGETTING__MIN_STRENGTH | 0.01 |最小记忆强度|

人员标识优先级

优先顺位方法
1|Bearer令牌| Authorization: Bearer herta
|2|X-Persona页眉| X-Persona: herta
3环境变数PERSONA=herta / MEMORY_MCP_DEFAULT_PERSONA=herta
|4|默认| "default"

Claude Desktop设定

{
  "mcpServers": {
    "memory": {
      "url": "http://localhost:26262/mcp",
      "headers": {
        "X-Persona": "your_name"
      }
    }
  }
}

体系结构

基于Clean Architecture+DDD的图层配置:

┌───────────────────────────────────────────────────────────┐
│                      API Layer                            │
│   api/mcp/  ── 6 つの MCP ツール                          │
│   api/http/ ── Web ダッシュボード + REST API + 15 ビルトインツール │
├───────────────────────────────────────────────────────────┤
│                  Application Layer                        │
│   application/  ── UseCases(ビジネスフロー制御)          │
├───────────────────────────────────────────────────────────┤
│                    Domain Layer                           │
│   domain/memory/     ── Memory, MemoryStrength, Search    │
│   domain/persona/    ── PersonaState 管理                 │
│   domain/equipment/  ── アイテム・装備                     │
│   domain/search/     ── SearchEngine, Ranker, Strategies  │
├───────────────────────────────────────────────────────────┤
│                 Infrastructure Layer                      │
│   infrastructure/sqlite/     ── SQLite Repository 実装    │
│   infrastructure/qdrant/     ── ベクトルストア             │
│   infrastructure/embedding/  ── 埋め込みモデル            │
└───────────────────────────────────────────────────────────┘

目录配置

memory_mcp/
├── main.py              # エントリポイント(FastMCP + HTTP)
├── config/settings.py   # Pydantic BaseSettings
├── domain/              # ビジネスロジック
│   ├── skill.py              # Skills system
│   └── shared/
│       └── time_utils.py     # 日付範囲パース、時刻ユーティリティ
├── infrastructure/      # SQLite / Qdrant / Embedding
├── application/         # UseCases
│   ├── chat/            # チャットサブパッケージ
│   │   ├── service.py             # ChatService(SSEストリーミング)
│   │   ├── session_store.py       # セッション管理(SQLite永続化)
│   │   ├── memory_llm.py          # MemoryLLM(自動記憶抽出)
│   │   ├── pattern_detector.py    # メンタルモデル抽象化
│   │   ├── summarizer.py          # セッション要約(LLM)
│   │   └── tools/                 # 組み込みツール定義・実行
│   │       ├── definitions.py     # 15 ツールのスキーマ定義
│   │       └── builtin.py         # ツール実装
│   ├── sandbox/          # Sandbox コード実行(Docker sibling-container)
│   └── chat_service.py   # 後方互換 re-export
├── api/mcp/             # MCP ツール 6 本
├── api/http/            # Web ダッシュボード + REST API
└── migration/           # スキーママイグレーション

数据目录

$MEMORY_MCP_DATA_ROOT/     # デフォルト: ./data(Docker: /data)
├── memory/{persona}/      # Persona 別 DB(memory.sqlite 等)
├── import/                # Auto-import 用 ZIP 配置ディレクトリ
│   └── done/              # 処理済み ZIP 移動先
├── cache/                 # モデルキャッシュ(HF_HOME 等を自動設定)
└── config/                # 設定ファイル

聊天功能

WebUI(http://localhost:26262/chat/{persona})或REST API,可与佩尔索纳实时聊天。

上交所API

POST /api/chat/{persona}
Content-Type: application/json

{"message": "こんにちは", "session_id": "my-session"}

响应是SSE流。以下事件将继续:

|事件|说明| |---|---| | text_delta 递增LLM文本 | tool_call 工具调用 | tool_result 工具执行结果 | debug_info 会话、存储、内存结果等调试信息 | done | 完了 |

聊天设置

GET/POST /api/chat/{persona}/config 中找到最佳实践。

|字段|默认|说明| |---|---|---| | provider | anthropic LLM供应商(anthropic / openai / gemini) | | model | claude-opus-4-5 使用模型 | api_key | *(无)* API密钥(保存后显示掩码) | system_prompt | *(无)* |佩尔索纳系统提示| | auto_extract | true 通过MemoryLLM自动存储提取 | extract_model | *(与model相同)* |MemoryLLM专用模型| | extract_max_tokens | 512 最大MemoryLLM令牌数 | max_window_turns | 3 会话窗口的转数 | max_tool_calls | 5 1回合的最大工具调用数 | enable_memory_tools | true 是否注入内置memory工具 | mcp_servers | [] |追加MCP服务器的设置列表| | enabled_skills | [] |要启用的技能名称列表| | reflection_enabled | true | Reflection(高次洞察)を有効化 | | reflection_threshold | 1.0 反射触发重要度累积阈值 | reflection_min_interval_hours | 1.0 | Reflection最小実行间隔(时间)| | mental_model_enabled | true |启用心理模型抽象化| | mental_model_min_samples | 3 精神模型生成所需的最小样本数 | sandbox_enabled | true 允许执行代码(Docker Sandbox) | debug_mode | false 启用调试日志输出 | retrieval_recency_weight | 0.3 搜索得分的最近性权重 | retrieval_importance_weight | 0.3 |检索得分的重要度权重| | retrieval_relevance_weight | 0.4 |搜索得分的关联性权重|

聊天记录持久化

对话历史记录为SQLite(chat_sessions ),模板名称将采用不同的格式。即使重新启动服务器 session_id 如果相同的话,可以继续对话。超过TTL(默认值7天)的会话被自动删除。

MemoryLLM(自动记忆抽出)

auto_extract: true 在这种情况下,在每个回合结束后,MemoryLLM异步启动,并从对话中自动提取以下内容:

  • 事实:用户的喜好、个人信息、约定、重要事件
  • 上下文更新:佩尔索纳的感情、状态变化
  • 库存更新:衣服、随身物品的变化

测试

# 全テスト実行
python -m pytest tests/ -q

# ユニットテストのみ
python -m pytest tests/unit/ -q

# カバレッジレポート付き
python -m pytest tests/ --cov=memory_mcp --cov-report=html

CLI工具

# インポート
python -m memory_mcp.cli import --persona herta --input data/herta.zip

# エクスポート
python -m memory_mcp.cli export --persona herta --output backup.jsonl

# スキーママイグレーション
python -m memory_mcp.cli migrate --target latest

# Persona 統計
python -m memory_mcp.cli stats --persona herta

CI/CD

工作流|触发|内容| |---|---|---| | ci.yml 测试+Lint(ruff) | docker.yml 标签push→Docker映像构建→GHCR

技术栈

|类别|技术| |---|---| |言语| Python 3.12+ | |MCP框架|快速MCP| |数据库|SQLite(WAL模式)| 矢量存储 设置/验证(BaseSettings) |嵌入模型|cl-nagoya/ruri-v3-30m(日语特化)| |重新排序|混合点/日本-重新排序-xsmall-v2| 日志记录 |过梁/格式化器|褶皱|

许可证

IT许可证-了解更多信息 许可证 来修改标记元素的显示属性。

谢辞

______________________________________________________________________

内存MCP --建造于 固体石灰 随着❤️

目录标签

目录标签

记忆管理混合搜索PythonClaude本地部署日语处理遗忘曲线实体图

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

6

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP