mem0 MCP 服务器用于项目管理
mem0 MCP Server 是 MCP Host 应用程序和 mem0 云服务之间的桥梁,为 MCP Host AI 提供内存功能。
此分支是为了将范围从编码更改为项目管理。分支内容涉及与项目管理主题相关的更多高级上下文。
此外,该分叉实验性地将编码格式集成到类似人类协议的高级上下文中。
特征
- 分叉是为了将用途从原始编码范围更改为项目管理范围。
- 项目记忆存储和检索
- 语义搜索查找相关项目信息
- 结构化项目管理数据处理
安装和使用
前提条件和要求
- Python 12.0 或更新版本,
- mcp-proxy(适用于 Cline 或 Roo 代码)
细节
- 克隆存储库并进入。
- 使用
uv
设置虚拟环境。
- 使用
uv
激活虚拟环境。
source .venv/bin/activate
- 使用
uv
安装依赖项。
# Install in editable mode from pyproject.toml
uv pip install -e .
- 在 repo 根目录中创建 .gitignore。
- 更新 .gitignore
# Python
__pycache__/
*.py[cod]
*.egg-info/
# Environment variables
.env
# Egg info
mem0_mcp.egg-info/
- 在 repo 根目录中创建 .env。
- 更新 .env
MEM0_API_KEY={your API Key}
- 克隆并安装以下OSS。
https://github.com/sparfenyuk/mcp-proxy
- 添加 MCP 服务器设置。
"mem0": {
"command": "PATH_TO/mcp-proxy", # ex: /home/{user}/.local/bin/mcp-proxy
"args": [
"http://127.0.0.1:6789/sse" # configure port as you need
]
}
- 启动 MCP 服务器(需要激活虚拟环境)
python main.py --host 127.0.0.1 --port 6789
- 通过 MCP Host(如 Cline)检查功能
Hey, can you get all memories on mem0?
手术
- 确保 MCP Server 快速运行。
- 自动运行服务器的方法有几种,比如添加脚本 .bashrc
- 设置自动化,因为您的环境更容易使用。
可用工具
- add_project_memory:添加新的项目管理信息
- get_all_project_memories:检索所有存储的项目信息
- search_project_memories:搜索特定项目信息
技术细节
此 fork 的独特之处在于,MCP Host 和 mem0 之间的结构化格式需要采用类似 JavaScript 对象的编码格式。请确保设置自定义指令以便更好地处理。
定制指令
为了使 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. Sprint 管理示例
// 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 服务器功能兼容的同时,通过以下方式提供价值:
- 增强的结构化信息管理:模板和标准化元数据促进一致的信息结构。
- 改进的上下文管理:
run_id
的分层使用使得管理相关信息更加容易。 - 提高可用性:详细的文档和实际示例降低了学习曲线。
这些增强功能将进一步提高 mem0 MCP 服务器作为项目管理工具的有效性。