mem0 用于项目管理的 MCP 服务器
版本:0.3.0
mem0 MCP Server 连接 MCP Host 应用程序和 mem0 云服务,实现结构化项目内存管理和项目相关信息的语义搜索。
发行说明
v0.3.0
修复:由于mem0云服务改变了处理数据的方式,因此处理数据的方式也发生了改变。
将基于 JavaScript 对象的模板更改为基于 TOML 的模板和指南,以便 mem0 云服务更高效地提取数据。
添加了日志记录功能(有关详细信息,请参阅 MCP 主机配置部分)。
v0.2.0
从基于 SSE 的调用切换到基于 stdio 的调用,以便更好地兼容 MCP 主机
增加了基于 pipx 的安装和执行支持
通过
pyproject.toml脚本入口点简化部署
Related MCP server: Mem0 MCP Server
特征
项目记忆存储和检索
项目信息的语义搜索
结构化项目管理数据处理
经过全面测试的基于 stdio 的 MCP 服务器工具
灵活的日志记录:默认为 stderr,通过
--logfile输出文件通过 pipx 兼容接口进行智能 CLI 调用
MCP 主机配置
运行此 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 服务器进程必须能够访问和写入日志文件。
工具
add_project_memoryget_all_project_memoriessearch_project_memoriesupdate_project_memorydelete_project_memorydelete_all_project_memories
所有工具均可通过基于 stdio 的 MCP 协议使用。
日志记录
默认值:stderr
可选:
--logfile /path/to/logfile.log
执照
参见许可证文件。
技术细节
此 fork 的独特之处在于 MCP Host 和 mem0 之间的结构化格式需要采用类似 TOML 的编码格式。请确保设置自定义指令以便更好地处理。
定制指令
为了使 mem0 能够满足项目管理的目的,此分叉有以下针对 AI 的指令。
对于 mem0
检查源代码。
对于 MCP 主机
要在 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 有效管理项目信息的策略和模板。旨在通过结构化模板和元数据管理提高项目数据的可搜索性和可重用性。
信息结构和模板
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. Sprint 管理示例
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.实施策略
为了实现上述改进,我们建议采取以下步骤:
增强:
更新文档字符串:改进使用示例和参数描述。
错误处理:提供更详细的错误信息。
响应格式:明确说明所使用的参数。
更新自定义说明:
丰富模板示例。
阐明
run_id的推荐用法(引入层次结构)。标准化元数据模式。
提供实际使用示例。
这些改进将增强信息管理的可用性和效率,同时保持与现有 API 的兼容性。
5.总结
所提出的改进在保持与现有 mem0 MCP 服务器功能兼容的同时,通过以下方式提供价值: