project-mem-mcp

PyneSys/project-mem-mcp

3.2

If you are the rightful owner of project-mem-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

An MCP Server to store and retrieve project information from memory file, allowing AI agents to maintain persistent memory about projects between conversations.

Tools

Functions exposed to the LLM to take actions

get_project_memory

Get the whole project memory for the given project path in Markdown format. This must be used in the beginning of the first request of every conversation.

The memory file contains vital information about the project such as descriptions, ongoing tasks, references to important files, and other project resources.

:return: The project memory content in Markdown format :raises FileNotFoundError: If the project path doesn't exist or MEMORY.md is missing :raises PermissionError: If the project path is not in allowed directories

set_project_memory

Set the whole project memory for the given project path in Markdown format.

Use this tool when:

  • Creating a memory file for a new project
  • Completely replacing an existing memory file
  • When update_project_memory fails to apply patches
  • When extensive reorganization of the memory content is needed

Guidelines for content:

  • The project memory file must be in English! Any non-English text in the memory file is considered a critical error!
  • Should be detailed and comprehensive to support effective project understanding
  • Store rich context including architectural decisions, code patterns, and technical reasoning
  • Include thorough documentation of project components, workflows, and interfaces
  • Recommended to maintain structured sections for easier navigation
  • Aim for practical size limits (typically around 50-100KB or equivalent to ~10-20 pages of text)
  • Remove information that is proven wrong or becomes obsolete

:raises FileNotFoundError: If the project path doesn't exist :raises PermissionError: If the project path is not in allowed directories

update_project_memory

Update the project memory by applying a block-based patch to the memory file. The language of the memory file is English! Any non-English text in the memory file is considered a critical error!

Required block format:

<<<<<<< SEARCH
Text to find in the memory file
=======
Text to replace it with
>>>>>>> REPLACE

You can include multiple search-replace blocks in a single request:

<<<<<<< SEARCH
First text to find
=======
First replacement
>>>>>>> REPLACE
<<<<<<< SEARCH
Second text to find
=======
Second replacement
>>>>>>> REPLACE

This tool verifies that each search text appears exactly once in the file to ensure the correct section is modified. If a search text appears multiple times or isn't found, it will report an error.

:return: Success message with number of blocks applied :raises FileNotFoundError: If the project path or memory file doesn't exist :raises ValueError: If patch format is invalid or search text isn't unique :raises RuntimeError: If patch application fails for any reason

Prompts

Interactive templates invoked by user choice

No prompts

Resources

Contextual data attached and managed by the client

No resources