mem0 MCP Server for Project Management
一个连接 MCP 主机应用程序和 mem0 云服务的桥梁,专门用于项目管理,具有以结构化格式存储、检索和搜索项目信息的能力。
README
用于项目管理的 mem0 MCP 服务器
mem0 MCP 服务器是 MCP Host 应用程序和 mem0 云服务之间的桥梁,为 MCP Host AI 提供内存功能。
此仓库已被 Fork,目的是将范围从编码更改为项目管理。 此 Fork 更侧重于与项目管理主题相关的高级上下文。
此外,此 Fork 实验性地将编码格式集成到高级上下文中,例如人类协议。
特性
- Forked 的目的是将用途从原始编码范围更改为项目管理范围。
- 项目内存存储和检索
- 用于查找相关项目信息的语义搜索
- 结构化项目管理数据处理
安装和使用
前提条件和要求
- Python 12.0 或更高版本
- mcp-proxy(如果使用 Cline 或 Roo 代码)
详细步骤
-
克隆存储库并进入。
-
使用
uv设置虚拟环境。
uv venv --python 3.12
- 使用
uv激活虚拟环境。
source .venv/bin/activate
- 使用
uv安装依赖项。
# 从 pyproject.toml 以可编辑模式安装
uv pip install -e .
- 在仓库根目录中创建 .gitignore 文件。
touch .gitignore
- 更新 .gitignore 文件。
# Python
__pycache__/
*.py[cod]
*.egg-info/
# Environment variables
.env
# Egg info
mem0_mcp.egg-info/
- 在仓库根目录中创建 .env 文件。
touch .env
- 更新 .env 文件。
MEM0_API_KEY={你的 API 密钥}
- 克隆并安装以下 OSS。
https://github.com/sparfenyuk/mcp-proxy
- 添加 MCP 服务器设置。
- Cline
"mem0": {
"command": "PATH_TO/mcp-proxy", # 例如: /home/{user}/.local/bin/mcp-proxy
"args": [
"http://127.0.0.1:6789/sse" # 根据需要配置端口
]
}
- 启动 MCP 服务器(需要激活虚拟环境)
python main.py --host 127.0.0.1 --port 6789
- 通过 MCP Host(如 Cline)检查功能。
Hey, can you get all memories on mem0?
运行
- 确保 MCP 服务器快速运行。
- 有几种方法可以自动运行服务器,例如添加脚本到 .bashrc
- 根据您的环境设置自动运行,以便更易于使用。
可用工具
- add_project_memory:添加新的项目管理信息
- get_all_project_memories:检索所有存储的项目信息
- search_project_memories:搜索特定的项目信息
技术细节
此 Fork 的独特之处在于 MCP Host 和 mem0 之间的结构化格式预计采用编码格式,例如 Javascript 对象。 请确保您设置了自定义指令,以便更好地处理。
自定义指令
为了使 mem0 能够适应项目管理的目的,此 Fork 具有以下 AI 指令。
对于 mem0
- 检查源代码。
对于 MCP Host
- 以下只是示例,请自行找到最佳方案!
mem0 有效项目内存指南(增强版)
本指南概述了使用 mem0 有效管理项目信息的策略和模板。目的是通过结构化模板和元数据管理来提高项目数据的可搜索性和可重用性。
信息结构和模板
mem0 可以有效地管理以下类型的信息。使用结构化模板可以提高可搜索性和可重用性。请注意,提供的模板是示例,应进行调整以适应特定的项目需求。
1. 项目状态管理
模板:
// [PROJECT: project-name] [TIMESTAMP: yyyy-MM-ddTHH:mm:ss+09:00] [TYPE: Project Status]
const projectStatus = {
overview: {
name: "项目名称", // 必需
purpose: "项目目的", // 必需
version: "1.2.0", // 可选
phase: "开发" // 可选
},
progress: {
completionLevel: 0.65, // 完成率(介于 0 和 1 之间的值)
milestones: [
{ name: "计划阶段", status: "已完成", date: "2025-02-15" },
{ name: "开发阶段", status: "进行中", progress: 0.70 }
]
},
currentFocus: ["实施功能 X", "优化组件 Y"],
risks: ["对 API 稳定性的担忧", "资源短缺"]
};
2. 任务管理
模板:
// [PROJECT: project-name] [TIMESTAMP: yyyy-MM-ddTHH:mm:ss+09:00] [TYPE: Task Management]
const taskManagement = {
highPriority: [
{
description: "实施功能 X", // 必需
status: "进行中", // 必需
deadline: "2025-03-15", // 可选
assignee: "团队 A", // 可选
dependencies: "组件 Y" // 可选
}
],
mediumPriority: [],
completedTasks: [
{
description: "设置开发环境",
status: "已完成"
}
]
};
3. 会议纪要
模板:
// [PROJECT: project-name] [TIMESTAMP: yyyy-MM-ddTHH:mm:ss+09:00] [TYPE: Meeting Summary]
const meetingMinutes = {
title: "每周进度会议",
date: "2025-03-23",
attendees: [
{ department: "开发", members: ["Sato", "Suzuki"] },
{ department: "设计", members: ["Tanaka"] }
],
topics: ["进度报告", "风险管理", "下周计划"],
decisions: [
"批准额外资源分配",
"将发布日期推迟一周"
],
actionItems: [
{ description: "添加资源的程序", assignee: "Sato", dueDate: "2025-03-25" },
{ description: "修改测试计划", assignee: "Suzuki", dueDate: "2025-03-24" }
]
};
有效的信息管理技术
1. 上下文管理 (run_id)
使用 mem0 的 run_id 参数,您可以逻辑地对相关信息进行分组。这有助于维护特定的对话流程或项目上下文。
推荐格式:
project:project-name:category:subcategory
使用示例:
// 管理与特定功能相关的信息
add_project_memory(
"// [PROJECT: 成员系统] [TYPE: 技术规范]\nconst authSpec = {...};",
run_id="project:member-system:feature:authentication",
metadata={"type": "specification"}
);
// 为同一功能添加任务
add_project_memory(
"// [PROJECT: 成员系统] [TYPE: 任务管理]\nconst authTasks = {...};",
run_id="project:member-system:feature:authentication",
metadata={"type": "task"}
);
// 搜索相关信息
search_project_memories("authentication", {
"run_id": "project:member-system:feature:authentication"
});
2. 有效使用元数据
使用元数据可以增强信息的可搜索性。我们建议使用以下模式:
{
"type": "meeting|task|decision|status|risk", // 信息类型
"priority": "high|medium|low", // 优先级
"tags": ["frontend", "backend", "design"], // 相关标签
"status": "pending|in-progress|completed" // 状态
}
使用示例:
// 注册高优先级任务
add_project_memory(
"// [PROJECT: 成员系统] [TYPE: 任务管理]\nconst task = {...};",
metadata={
"type": "task",
"priority": "high",
"tags": ["frontend", "authentication"]
}
);
// 搜索具有特定标签的任务
search_project_memories("task", {
"metadata": {
"tags": ["frontend"]
}
});
3. 信息生命周期管理
使用 immutable 和 expiration_date 参数,您可以管理信息的生命周期。
使用示例:
// 记录不可变的决策
add_project_memory(
"// [PROJECT: 成员系统] [TYPE: 决策记录]\nconst decision = {...};",
immutable=True, // 设置为不可变
metadata={"type": "decision"}
);
// 具有到期日期的信息
add_project_memory(
"// [PROJECT: 成员系统] [TYPE: 会议纪要]\nconst meeting = {...};",
expiration_date="2025-06-30", // 在此日期到期
metadata={"type": "meeting"}
);
实际使用模式
1. Sprint 管理示例
// 在开始时注册 sprint 计划
add_project_memory(
"// [PROJECT: 成员系统] [TIMESTAMP: 2025-05-01T10:00:00+09:00] [TYPE: 项目状态]\n" +
"const sprintPlan = {\n" +
" sprint: \"Sprint-2025-05\",\n" +
" duration: \"2 weeks\",\n" +
" goals: [\"实施身份验证功能\", \"改进 UI\"],\n" +
" tasks: [\n" +
" { description: \"实施登录屏幕\", assignee: \"Tanaka\", estimate: \"3 days\" },\n" +
" { description: \"API 集成\", assignee: \"Sato\", estimate: \"2 days\" }\n" +
" ]\n" +
"};",
run_id="project:member-system:sprint:2025-05",
metadata={"type": "status", "tags": ["sprint-planning"]}
);
// Sprint 中期进度报告
add_project_memory(
"// [PROJECT: 成员系统] [TIMESTAMP: 2025-05-08T15:00:00+09:00] [TYPE: 项目状态]\n" +
"const progress = {\n" +
" sprint: \"Sprint-2025-05\",\n" +
" completionLevel: 0.4,\n" +
" status: [\n" +
" { task: \"实施登录屏幕\", progress: 0.7, status: \"in-progress\" },\n" +
" { task: \"API 集成\", progress: 0.2, status: \"in-progress\" }\n" +
" ],\n" +
" blockers: [\"API 响应规范中的更改\"]\n" +
"};",
run_id="project:member-system:sprint:2025-05",
metadata={"type": "status", "tags": ["sprint-progress"]}
);
2. 风险管理示例
// 注册风险
add_project_memory(
"// [PROJECT: 成员系统] [TIMESTAMP: 2025-05-03T11:00:00+09:00] [TYPE: 风险评估]\n" +
"const risk = {\n" +
" description: \"对外部 API 稳定性的担忧\",\n" +
" impact: \"高\",\n" +
" probability: \"中\",\n" +
" mitigation: \"实施回退机制\",\n" +
" owner: \"开发负责人\"\n" +
"};",
run_id="project:member-system:risk:api-stability",
metadata={"type": "risk", "priority": "high"}
);
// 更新风险状态
add_project_memory(
"// [PROJECT: 成员系统] [TIMESTAMP: 2025-05-10T16:30:00+09:00] [TYPE: 风险评估]\n" +
"const riskUpdate = {\n" +
" description: \"对外部 API 稳定性的担忧\",\n" +
" status: \"已解决\",\n" +
" resolution: \"回退机制实施完成\"\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 服务器功能兼容性的同时,拟议的改进在以下方面提供了价值:
- 增强的结构化信息管理: 模板和标准化的元数据促进了一致的信息结构。
- 改进的上下文管理: 分层使用
run_id使管理相关信息更容易。 - 改进的可用性: 详细的文档和实际示例减少了学习曲线。
这些增强功能将进一步提高 mem0 MCP 服务器作为项目管理工具的有效性。
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。