返回市场
内存0-MCP项目管理服务器

内存0-MCP项目管理服务器

作者:KunihiroS6 星标更新:2025-05-06

项目介绍

mem0 MCP Server 项目管理

版本:0.3.2

mem0 MCP Server 桥接 MCP 主机应用程序与 mem0 云服务,实现结构化的项目记忆管理和项目相关信息的语义搜索。


发布说明

v0.3.1 和 v0.3.2

  • 修复:"添加项目记忆"工具通过调整消息格式以适应 mem0 API 而正常工作。
  • 在 MCP 主机配置示例中添加了版本规范。(用于缓存故障排除)

v0.3.0

  • 修复:由于 mem0 云服务更改了数据处理方式,因此更改了数据处理方式。
  • 从基于 JavaScript 对象的模板更改为基于 TOML 的模板和指南,这使得 mem0 云服务的数据提取更加高效。
  • 添加日志功能(详情见 MCP 主机配置部分)。

v0.2.0

  • 从基于 SSE 的调用切换到基于 stdio 的调用,以提高与 MCP 主机的兼容性。
  • 增加对 pipx 安装和执行的支持。
  • 通过 pyproject.toml 脚本入口简化部署。

功能

  • 项目记忆存储和检索
  • 项目信息的语义搜索
  • 结构化项目管理数据处理
  • 全面测试的基于 stdio 的 MCP Server 工具
  • 灵活的日志记录:默认为 stderr,通过 --logfile 输出到文件
  • 通过 pipx 兼容接口智能调用 CLI

MCP 主机配置

运行此 MCP Server 时,您必须通过命令行参数明确指定日志输出模式以及(如果启用)绝对日志文件路径

  • --log=off :禁用所有日志记录(不写入任何日志)
  • --log=on --logfile=/绝对路径/到/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 Server 进程访问和写入。
  • 如果遇到运行此服务器的问题,可能是由于缓存了旧版本的 mem0-mcp-for-pm。请尝试使用最新版本(将 x.y.z 设置为最新版本)的 mem0-mcp-for-pm 运行它,如下设置。
"mem0": {
  "command": "pipx",
  "args": ["run", "mem0-mcp-for-pm==x.y.z", "--log=off"],
  "env": {
    "MEM0_API_KEY": "{apikey}"
  }
}

工具

  • add_project_memory
  • get_all_project_memories
  • search_project_memories
  • update_project_memory
  • delete_project_memory
  • delete_all_project_memories

所有工具均通过基于 stdio 的 MCP 协议可用。


日志记录

  • 默认:stderr
  • 可选:--logfile /路径/到/logfile.log

许可证

参见 LICENSE 文件。

技术细节

此分支的独特之处在于 MCP 主机与 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. 最佳实践

  • 保持字段名称和结构的一致性。
  • 始终包括 projecttimestamp
  • 使用清晰、描述性的标签和元数据。
  • 如需,利用 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. 信息生命周期管理

使用 immutableexpiration_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. 实施策略

要实施上述改进,我们建议采取以下步骤:

  1. 增强 add_project_memory 方法

    • 更新文档字符串:改善使用示例和参数描述。
    • 错误处理:提供更多详细的错误信息。
    • 响应格式:明确声明使用的参数。
  2. 更新自定义指令

    • 丰富模板示例。
    • 明确推荐 run_id 的使用(引入分层结构)。
    • 标准化元数据模式。
    • 提供实际使用示例。

这些改进将提升信息管理的易用性和效率,同时保持与现有 API 的兼容性。

5. 总结

提出的改进在以下方面提供价值,同时保持与现有 mem0 MCP 服务器功能的兼容性:

结束