关于 mem0-mcp-for-pm
mem0-mcp-for-pm 是连接 MCP 主机与 mem0 云服务的 MCP 服务,用于结构化存储和语义检索项目记忆。它面向项目管理信息,并采用 TOML 格式条目。
主要功能
- 01存储和检索项目记忆
- 02语义搜索项目信息
- 03更新和删除项目记忆
- 04使用 TOML 结构化条目
- 05配置标准错误或文件日志
适用场景
- 01记录项目状态和任务详情
- 02搜索已存储的项目决策和更新
- 03按项目上下文归组相关记忆
MCP 相关
它通过基于 stdio 的 MCP 工具连接 mem0 云服务,支持添加、检索、搜索、更新和删除项目记忆。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
用于项目管理的 mem0 MCP 服务

版本:0.3.3
mem0 MCP 服务连接 MCP Host 应用与 mem0 云服务,实现结构化项目记忆管理,并支持对项目相关信息进行语义搜索。
发行说明
v0.3.3
- 修复:
get_all_project_memories和search_project_memories现在可与 mem0 v2 API 正常配合使用。- mem0 v2 API 将
user_id参数替换为必需的filters对象:{"AND": [{"user_id": {"in": ["..."]}}]}。 - 直接传入
user_id现在会导致"Filters are required and cannot be empty"错误。本版本会自动转换该参数。
- mem0 v2 API 将
v0.3.1 和 v0.3.2
- 修复:调整消息格式以适配 mem0 API,使“添加项目记忆”工具正常工作。
- 在 MCP Host 配置示例中添加版本指定。(用于排查缓存问题)
v0.3.0
- 修复:由于 mem0 云服务更改了数据处理方式,相应的数据处理方式也进行了更改。
- 将基于 JavaScript 对象的模板和指南改为基于 TOML 的模板和指南,后者更便于 mem0 云服务提取数据。
- 添加日志功能(详情请参阅 MCP Host 配置部分)。
v0.2.0
- 从基于 SSE 的调用切换为基于 stdio 的调用,以提高与 MCP Host 的兼容性
- 添加对基于 pipx 的安装和运行的支持
- 通过
pyproject.toml脚本入口简化部署
功能
- 项目记忆存储和检索
- 项目信息语义搜索
- 结构化项目管理数据处理
- 全面测试的基于 stdio 的 MCP 服务工具
- 灵活的日志记录:默认输出到 stderr,也可通过
--logfile输出到文件 - 通过兼容 pipx 的接口智能调用 CLI
MCP Host 配置
运行此 MCP 服务时,必须通过命令行参数明确指定日志输出模式,以及(启用日志时)日志文件的绝对路径。
--log=off:禁用所有日志(不写入任何日志)--log=on --logfile=/absolute/path/to/logfile.log:启用日志,并将日志写入指定的绝对文件路径- 启用日志时,必须提供这两个参数。如果缺少任一参数、路径不是绝对路径或提供了无效值,服务将报错退出。
示例:禁用日志
"mem0": {
"command": "pipx",
"args": ["run", "mem0-mcp-for-pm", "--log=off"],
"env": {
"MEM0_API_KEY": "{apikey}"
}
}
示例:启用日志(必须提供日志文件绝对路径)
"mem0": {
"command": "pipx",
"args": ["run", "mem0-mcp-for-pm", "--log=on", "--logfile=/workspace/logs/mem0-mcp-server.log"],
"env": {
"MEM0_API_KEY": "{apikey}"
}
}
注意:
- 启用日志时,日志只会写入指定的绝对文件路径。使用相对路径或省略
--logfile都会导致错误。- 禁用日志时,不会输出任何日志。
- 如果缺少必需参数或参数无效,服务将无法启动,并会打印错误消息。
- 日志文件必须可供 MCP 服务进程访问和写入。
- 如果此服务无法正常运行,可能是因为缓存了旧版本的 mem0-mcp-for-pm。请尝试通过以下设置,使用 mem0-mcp-for-pm 的最新版本(将
x.y.z替换为最新版本)运行。
故障排除:pipx 缓存问题
通过 pipx 安装时,实际进程可能从 ~/.local/share/pipx/venvs/ 而非 ~/.cache/pipx/ 下的缓存环境运行。在这种情况下,使用 pipx install --force 重新安装会更新 venvs 目录,但运行中的进程仍会使用旧缓存中的代码。
症状
- 你使用
pipx install --force .重新安装后,行为仍未改变。 ps aux | grep mem0显示进程从~/.cache/pipx/<hash>/bin/python运行。
解决方法
选项 1:在 MCP Host 配置中指定固定版本(推荐)
显式固定版本,以便 pipx 每次都从 PyPI 获取正确的版本:
"mem0": {
"command": "pipx",
"args": ["run", "mem0-mcp-for-pm==0.3.3", "--log=off"],
"env": {
"MEM0_API_KEY": "{apikey}"
}
}
选项 2:手动清除 pipx 缓存
# Find and remove the stale cache directory
ls ~/.cache/pipx/
rm -rf ~/.cache/pipx/<hash-directory>/
# Then reinstall
pipx install --force mem0-mcp-for-pm
选项 3:终止正在运行的进程
重新安装后,终止旧进程,以便 MCP Host(例如 VS Code)使用新二进制文件重新启动它:
kill $(ps aux | grep mem0-mcp-for-pm | grep -v grep | awk '{print $2}')
然后重新加载或重启 MCP Host 应用程序。
"mem0": {
"command": "pipx",
"args": ["run", "mem0-mcp-for-pm==x.y.z", "--log=off"],
"env": {
"MEM0_API_KEY": "{apikey}"
}
}
工具
add_project_memoryget_all_project_memoriessearch_project_memoriesupdate_project_memorydelete_project_memorydelete_all_project_memories
所有工具均可通过基于 stdio 的 MCP 协议使用。
日志记录
- 默认:stderr
- 可选:
--logfile /path/to/logfile.log
许可证
请参阅 LICENSE 文件。
技术细节
此分支的独特之处在于,MCP Host 与 mem0 之间采用结构化格式,预期使用 TOML 等编码格式。 请务必设置自定义指令,以便更好地处理。
自定义指令
为了让 mem0 更好地满足项目管理需求,此分支为 AI 设置了以下指令。
对于 mem0
- 检查源代码。
对于 MCP Host
要在 mem0 中注册项目信息,所有条目始终使用 TOML 格式。
请遵循以下指南,以确保 AI 能够更有效地提取信息、进行搜索,并支持项目管理:
1. 使用 TOML 作为基础格式
- 所有项目记忆条目都必须以 TOML 格式的字符串提供。
- 至少始终包含以下顶层字段:
category(例如“任务管理”“项目状态”等)project(项目名称)timestamp(ISO 8601 格式,例如 "2025-04-29T16:00:00+09:00")
2. 推荐模板
以下是适用于常见项目管理场景的 TOML 模板。
请根据需要进行调整,同时保持结构和元数据一致,以便更好地搜索和提取信息。
项目状态示例
category = "Project Status"
project = "project-name"
timestamp = "2025-04-29T16:00:00+09:00"
name = "Project Name"
purpose = "Project Purpose"
version = "1.2.0"
phase = "development"
completionLevel = 0.65
milestones = ["Planning", "Development"]
currentFocus = ["Implementing Feature X", "Optimizing Component Y"]
[metadata]
type = "status"
priority = "high"
tags = ["backend", "release"]
任务管理示例
category = "Task Management"
project = "project-name"
timestamp = "2025-04-29T16:00:00+09:00"
[[tasks]]
description = "Implement Feature X"
status = "in-progress"
deadline = "2025-05-15"
assignee = "Team A"
dependencies = ["Component Y"]
[metadata]
type = "task"
priority = "high"
tags = ["frontend", "authentication"]
3. 使用 run_id 管理上下文
- 使用
run_id参数对相关条目进行逻辑分组。 - 推荐格式:
project:project-name:category:subcategory - 示例:
run_id = "project:member-system:feature:authentication"
4. 元数据用法
- 始终添加
[metadata]TOML 表,以增强搜索和筛选能力。 - 示例:
[metadata] type = "task" priority = "high" tags = ["frontend"]
5. 信息生命周期
- 使用
immutable = true防止更新。 - 使用
expiration_date = "YYYY-MM-DD"设置过期时间。
6. 最佳实践
- 保持字段名称和结构一致。
- 始终包含
project和timestamp。 - 使用清晰、具体的标签和元数据。
- 如有需要,可利用 TOML 注释提供面向人类或 AI 的提示。
遵循这些基于 TOML 的指南,可以最大限度地提升 mem0 在项目记忆提取和管理方面的效果。
如需了解更高级的用例,请参阅源代码和服务端自定义指令。
- 以下仅为示例,请自行寻找最适合的方式!!
高效项目记忆指南(增强版)
本指南介绍如何使用 mem0 高效管理项目信息的策略和模板。目标是通过结构化模板和元数据管理,提升项目数据的可搜索性和可复用性。
信息结构与模板
mem0 可以有效管理以下类型的信息。使用结构化模板有助于提升可搜索性和可复用性。请注意,以下模板仅供参考,应根据具体项目需求进行调整。
1. 项目状态管理
模板:
category = "Project Status"
project = "project-name"
timestamp = "2025-04-29T16:00:00+09:00"
name = "Project Name"
purpose = "Project Purpose"
version = "1.2.0"
phase = "development"
completionLevel = 0.65
milestones = ["Planning Phase", "Development Phase"]
currentFocus = ["Implementing Feature X", "Optimizing Component Y"]
risks = ["Concerns about API stability", "Resource shortage"]
2. 任务管理
模板:
category = "Task Management"
project = "project-name"
timestamp = "2025-04-29T16:00:00+09:00"
[[tasks]]
description = "Implement Feature X"
status = "in-progress"
deadline = "2025-03-15"
assignee = "Team A"
dependencies = ["Component Y"]
[[tasks]]
description = "Setup Development Environment"
status = "completed"
3. 会议摘要
模板:
category = "Meeting Summary"
project = "project-name"
timestamp = "2025-04-29T16:00:00+09:00"
title = "Weekly Progress Meeting"
date = "2025-03-23"
attendees = ["Sato", "Suzuki", "Tanaka"]
topics = ["Progress Report", "Risk Management", "Next Week's Plan"]
decisions = ["Approve additional resource allocation", "Delay release date by one week"]
[[actionItems]]
description = "Procedure for adding resources"
assignee = "Sato"
dueDate = "2025-03-25"
[[actionItems]]
description = "Revise test plan"
assignee = "Suzuki"
dueDate = "2025-03-24"
高效的信息管理技巧
1. 上下文管理(run_id)
使用 mem0 的 run_id 参数,可以对相关信息进行逻辑分组。这有助于保持特定的对话流程或项目上下文。
推荐格式:
project:project-name:category:subcategory
使用示例:
run_id = "project:member-system:feature:authentication"
2. 有效使用元数据
使用元数据可以提升信息的可搜索性。我们建议使用以下架构:
[metadata]
type = "meeting|task|decision|status|risk"
priority = "high|medium|low"
tags = ["frontend", "backend", "design"]
status = "pending|in-progress|completed"
3. 信息生命周期管理
使用 immutable 和 expiration_date 参数,可以管理信息的生命周期。
使用示例:
immutable = true
expiration_date = "2025-06-30"
实用使用模式
1. 冲刺管理示例
category = "Project Status"
project = "member-system"
timestamp = "2025-05-01T10:00:00+09:00"
sprint = "Sprint-2025-05"
duration = "2 weeks"
goals = ["Implement authentication feature", "Improve UI"]
[[tasks]]
description = "Implement login screen"
assignee = "Tanaka"
estimate = "3 days"
[[tasks]]
description = "API integration"
assignee = "Sato"
estimate = "2 days"
[metadata]
type = "status"
tags = ["sprint-planning"]
category = "Project Status"
project = "member-system"
timestamp = "2025-05-08T15:00:00+09:00"
sprint = "Sprint-2025-05"
completionLevel = 0.4
[[status]]
task = "Implement login screen"
progress = 0.7
status = "in-progress"
[[status]]
task = "API integration"
progress = 0.2
status = "in-progress"
blockers = ["Change in API response specification"]
[metadata]
type = "status"
tags = ["sprint-progress"]
2. 风险管理示例
category = "Risk Management"
project = "member-system"
timestamp = "2025-05-03T11:00:00+09:00"
[[risks]]
description = "Concerns about external API stability"
impact = "High"
probability = "Medium"
mitigation = "Implement fallback mechanism"
owner = "Development Lead"
status = "open"
[metadata]
type = "risk"
priority = "high"
category = "Risk Management"
project = "member-system"
timestamp = "2025-05-10T16:30:00+09:00"
[[risks]]
description = "Concerns about external API stability"
status = "Resolved"
resolution = "Fallback mechanism implementation completed"
[metadata]
type = "risk"
priority = "medium"
要点
- 标准元数据:始终包含项目名称和时间戳。
- 数据格式:所有条目均使用 TOML,并包含
[metadata]表。 - 上下文管理:使用
run_id进行分层管理,以保持信息的相关性。 - 搜索效率:一致的元数据和结构有助于提升搜索效率。
4. 实施策略
为实施上述改进,我们建议采取以下步骤:
-
增强
add_project_memory方法:- 更新文档字符串:改进使用示例和参数说明。
- 错误处理:提供更详细的错误信息。
- 响应格式:明确说明所用参数。
-
更新自定义指令:
- 丰富模板示例。
- 明确
run_id的推荐用法(引入分层结构)。 - 统一元数据架构。
- 提供实用的使用示例。
在保持与现有 mem0 MCP 服务函数兼容的同时,这些改进将提升信息管理的易用性和效率。
5. 总结
在保持与现有 mem0 MCP 服务函数兼容的同时,拟议的改进将在以下方面带来价值:
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。