project-mem-mcp

查看源码
2025-5-12
Words 1165Read Time 3 min
Score:85

用于AI代理持久存储和检索项目信息的MCP服务器,支持Markdown格式的内存文件管理。

Python

Project Memory MCP

一个用于从内存文件中存储和检索项目信息的 MCP 服务器。该工具允许 AI 代理(如 Claude)在对话之间保持对项目的持久记忆。

概述

Project Memory MCP 提供了一种简单的方式来实现:
  • 以 Markdown 格式存储项目信息
  • 在对话开始时检索项目信息
  • 使用补丁更新项目信息
内存信息存储在每个项目目录下的 MEMORY.md 文件中。

安装

使用 uvx

该方法使用 uvx(来自 uv Python 包管理器)运行服务器,无需永久安装:

前提条件

如果尚未安装 uvx,请从 uv 安装。

设置 MCP 客户端(Claude Desktop、Cursor 等)

将以下配置与现有配置文件(如 claude_desktop_config.json)合并:
注意:/Users/your-username 替换为你自己的项目和代码目录的实际路径。

从源码安装

前提条件

  • Python 3.11 或更高版本
  • Pip 包管理器

克隆仓库

设置 MCP 客户端(Claude Desktop、Cursor 等)

将以下配置与现有配置文件(如 claude_desktop_config.json)合并:
注意:/Users/your-username 替换为你自己的项目和代码目录的实际路径。

参数

--allowed-dir 参数用于指定服务器可以访问的目录。可以多次使用该参数以允许多个目录的访问。所有在允许目录内的子目录也将被允许。 该参数是可选的。如果未提供,服务器将只能访问运行服务器的用户的主目录。

使用

MCP 服务器由客户端(如 Claude Desktop)根据你提供的配置启动。你无需手动启动服务器。

工具

Project Memory MCP 提供了三个工具:

get_project_memory

检索整个项目内存,以 Markdown 格式返回。应在每次关于项目的对话开始时使用。
  • project_path: 项目目录的完整路径。
  • 返回 MEMORY.md 文件的内容作为字符串。
  • 如果项目或内存文件不存在,则抛出 FileNotFoundError
  • 如果项目路径不在允许的目录中,则抛出 PermissionError

set_project_memory

设置(覆盖)整个项目内存。在创建新内存文件、替换整个内存或 update_project_memory 失败时使用。
  • project_path: 项目目录的完整路径。
  • project_info: 以 Markdown 格式表示的完整项目信息。
  • 用提供的内容覆盖 MEMORY.md 文件。
  • 如果项目路径不存在,则抛出 FileNotFoundError
  • 如果项目路径不在允许的目录中,则抛出 PermissionError

update_project_memory

通过应用一个或多个基于块的补丁来更新项目内存。对于小的更改,这种方式更高效。
  • project_path: 项目目录的完整路径。
  • patch_content: 使用 SEARCH/REPLACE 标记的基于块的补丁内容(见下文)。
  • 每个补丁块必须具有以下格式:
    • 可以在单个请求中包含多个块。
  • 每个搜索文本必须在文件中恰好出现一次,否则将抛出错误。
  • 如果项目或内存文件不存在,则抛出 FileNotFoundError
  • 如果补丁格式无效或搜索文本不唯一,则抛出 ValueError
  • 如果补丁应用失败,则抛出 RuntimeError

示例工作流程

  1. 开始与 LLM 关于项目的对话
  1. LLM 使用 get_project_memory 检索项目信息
  1. 在对话过程中,LLM 使用 update_project_memory 持久化新信息
  1. 如果更新失败,LLM 可以使用 set_project_memory 代替

Claude Desktop

如果你使用 Claude Desktop,最好使用项目功能。
编辑项目说明:
  • 添加如下一行:"项目的路径是 <project_path>"
  • 如果并不总是使用内存,可以添加如下一行:"始终使用项目内存,这不是可选的"

安全注意事项

  • 内存文件不应包含敏感信息
  • 项目路径会针对允许的目录进行验证
  • 所有文件操作仅限于允许的目录

依赖

  • fastmcp (>=2.2.0, <3.0.0)

许可证

MIT
上一篇
Web-Scraping-Agent-with-N8N-and-MCP-Server
下一篇
fastmcp