PyneSys/project-mem-mcp
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