mem0-MCP项目管理桥
一座连接MCP主机应用程序和mem0云服务的桥梁,专为项目管理设计,具备以结构化格式存储、检索和搜索项目信息的能力。
服务介绍
mem0 MCP 服务器用于项目管理
版本: 0.2.0
mem0 MCP 服务器连接了 MCP 主机应用程序和 mem0 云服务,实现了结构化的项目记忆管理和与项目相关的语义搜索。
发布说明
v0.2.0
- 从基于 SSE 的调用切换到基于 stdio 的调用来提高与 MCP 主机的兼容性
- 增加了对通过 pipx 安装和执行的支持
- 通过
pyproject.toml脚本入口简化了部署
功能
- 项目记忆存储和检索
- 项目信息的语义搜索
- 结构化项目管理数据处理
- 全面测试的基于 stdio 的 MCP 服务器工具
- 灵活的日志记录:默认为 stderr,可通过
--logfile输出到文件 - 通过兼容 pipx 的接口进行智能 CLI 调用
MCP 主机配置
MCP 主机示例配置:
"mem0": {
"command": "pipx",
"args": ["run", "mem0-mcp-for-pm"],
"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 文件。
技术细节
此分支的独特之处在于,期望在编码格式(如 JavaScript 对象)中实现 MCP 主机和 mem0 之间的结构化格式。
确保设置自定义指令以便更好地处理。
自定义指令
为了使 mem0 更适合项目管理目的,此分支针对 AI 提供了以下指令。
对于 mem0
- 检查源代码。
对于 MCP 主机
- 以下只是一个示例,请自行找到最适合的方法!
高效项目记忆的 mem0 指南(增强版)
本指南概述了使用 mem0 有效管理项目信息的策略和模板。目的是通过结构化模板和元数据管理来提高项目数据的搜索性和可重用性。
信息结构和模板
mem0 可以有效地管理以下类型的信息。使用结构化模板可以提高搜索性和可重用性。请注意,提供的模板只是示例,应根据具体项目需求进行调整。
1. 项目状态管理
模板:
// [PROJECT: project-name] [TIMESTAMP: yyyy-MM-ddTHH:mm:ss+09:00] [TYPE: Project Status]
const projectStatus = {
overview: {
name: "Project Name", // Required
purpose: "Project Purpose", // Required
version: "1.2.0", // Optional
phase: "development" // Optional
},
progress: {
completionLevel: 0.65, // Completion rate (value between 0 and 1)
milestones: [
{ name: "Planning Phase", status: "completed", date: "2025-02-15" },
{ name: "Development Phase", status: "in-progress", progress: 0.70 }
]
},
currentFocus: ["Implementing Feature X", "Optimizing Component Y"],
risks: ["Concerns about API stability", "Resource shortage"]
};
2. 任务管理
模板:
// [PROJECT: project-name] [TIMESTAMP: yyyy-MM-ddTHH:mm:ss+09:00] [TYPE: Task Management]
const taskManagement = {
highPriority: [
{
description: "Implement Feature X", // Required
status: "in-progress", // Required
deadline: "2025-03-15", // Optional
assignee: "Team A", // Optional
dependencies: "Component Y" // Optional
}
],
mediumPriority: [],
completedTasks: [
{
description: "Setup Development Environment",
status: "completed"
}
]
};
3. 会议总结
模板:
// [PROJECT: project-name] [TIMESTAMP: yyyy-MM-ddTHH:mm:ss+09:00] [TYPE: Meeting Summary]
const meetingMinutes = {
title: "Weekly Progress Meeting",
date: "2025-03-23",
attendees: [
{ department: "Development", members: ["Sato", "Suzuki"] },
{ department: "Design", members: ["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" },
{ description: "Revise test plan", assignee: "Suzuki", dueDate: "2025-03-24" }
]
};
有效的信息管理技术
1. 上下文管理 (run_id)
通过使用 mem0 的 run_id 参数,您可以逻辑地分组相关信息。这有助于维护特定的对话流程或项目上下文。
推荐格式:
project:project-name:category:subcategory
使用示例:
// Managing information related to a specific feature
add_project_memory(
"// [PROJECT: Member System] [TYPE: Technical Specification]\nconst authSpec = {...};",
run_id="project:member-system:feature:authentication",
metadata={"type": "specification"}
);
// Adding a task for the same feature
add_project_memory(
"// [PROJECT: Member System] [TYPE: Task Management]\nconst authTasks = {...};",
run_id="project:member-system:feature:authentication",
metadata={"type": "task"}
);
// Searching for related information
search_project_memories("authentication", {
"run_id": "project:member-system:feature:authentication"
});
2. 有效使用元数据
使用元数据可以增强信息的搜索性。我们建议使用以下模式:
{
"type": "meeting|task|decision|status|risk", // Type of information
"priority": "high|medium|low", // Priority
"tags": ["frontend", "backend", "design"], // Related tags
"status": "pending|in-progress|completed" // Status
}
使用示例:
// Registering a high-priority task
add_project_memory(
"// [PROJECT: Member System] [TYPE: Task Management]\nconst task = {...};",
metadata={
"type": "task",
"priority": "high",
"tags": ["frontend", "authentication"]
}
);
// Searching for tasks with a specific tag
search_project_memories("task", {
"metadata": {
"tags": ["frontend"]
}
});
3. 信息生命周期管理
使用 immutable 和 expiration_date 参数,您可以管理信息的生命周期。
使用示例:
// Recording an immutable decision
add_project_memory(
"// [PROJECT: Member System] [TYPE: Decision Record]\nconst decision = {...};",
immutable=True, // Set as immutable
metadata={"type": "decision"}
);
// Information with an expiration date
add_project_memory(
"// [PROJECT: Member System] [TYPE: Meeting Summary]\nconst meeting = {...};",
expiration_date="2025-06-30", // Expires on this date
metadata={"type": "meeting"}
);
实际使用模式
1. 冲刺管理示例
// Registering the sprint plan at the start
add_project_memory(
"// [PROJECT: Member System] [TIMESTAMP: 2025-05-01T10:00:00+09:00] [TYPE: Project Status]\n" +
"const sprintPlan = {\n" +
" sprint: \"Sprint-2025-05\",\n" +
" duration: \"2 weeks\",\n" +
" goals: [\"Implement authentication feature\", \"Improve UI\"],\n" +
" tasks: [\n" +
" { description: \"Implement login screen\", assignee: \"Tanaka\", estimate: \"3 days\" },\n" +
" { description: \"API integration\", assignee: \"Sato\", estimate: \"2 days\" }\n" +
" ]\n" +
"};",
run_id="project:member-system:sprint:2025-05",
metadata={"type": "status", "tags": ["sprint-planning"]}
);
// Mid-sprint progress report
add_project_memory(
"// [PROJECT: Member System] [TIMESTAMP: 2025-05-08T15:00:00+09:00] [TYPE: Project Status]\n" +
"const progress = {\n" +
" sprint: \"Sprint-2025-05\",\n" +
" completionLevel: 0.4,\n" +
" status: [\n" +
" { task: \"Implement login screen\", progress: 0.7, status: \"in-progress\" },\n" +
" { task: \"API integration\", progress: 0.2, status: \"in-progress\" }\n" +
" ],\n" +
" blockers: [\"Change in API response specification\"]\n" +
"};",
run_id="project:member-system:sprint:2025-05",
metadata={"type": "status", "tags": ["sprint-progress"]}
);
2. 风险管理示例
// Registering a risk
add_project_memory(
"// [PROJECT: Member System] [TIMESTAMP: 2025-05-03T11:00:00+09:00] [TYPE: Risk Assessment]\n" +
"const risk = {\n" +
" description: \"Concerns about external API stability\",\n" +
" impact: \"High\",\n" +
" probability: \"Medium\",\n" +
" mitigation: \"Implement fallback mechanism\",\n" +
" owner: \"Development Lead\"\n" +
"};",
run_id="project:member-system:risk:api-stability",
metadata={"type": "risk", "priority": "high"}
);
// Updating the risk status
add_project_memory(
"// [PROJECT: Member System] [TIMESTAMP: 2025-05-10T16:30:00+09:00] [TYPE: Risk Assessment]\n" +
"const riskUpdate = {\n" +
" description: \"Concerns about external API stability\",\n" +
" status: \"Resolved\",\n" +
" resolution: \"Fallback mechanism implementation completed\"\n" +
"};",
run_id="project:member-system:risk:api-stability",
metadata={"type": "risk", "priority": "medium"}
);
重要点
- 标准元数据:始终包含项目名称和时间戳。
- 数据格式:使用结构化数据(JavaScript 对象、JSON、YAML)。
- 上下文管理:分层使用
run_id以保持信息的相关性。 - 搜索效率:一致的元数据和结构提高了搜索效率。
4. 实施策略
为了实现上述改进,我们建议以下步骤:
-
增强
add_project_memory方法:- 更新文档字符串:改进使用示例和参数描述。
- 错误处理:提供更多详细的错误信息。
- 响应格式:明确说明使用的参数。
-
更新自定义指令:
- 丰富模板示例。
- 明确推荐
run_id的使用方法(引入分层结构)。 - 标准化元数据模式。
- 提供实际使用示例。
这些改进将提高信息管理的可用性和效率,同时保持与现有 API 的兼容性。
5. 总结
所提出的改进在保持与现有的 mem0 MCP 服务器功能兼容的同时,在以下几个方面提供了价值: