projectmem — Claude Code MCP server: what it does, how to install
Local-first memory for coding agents that stores past decisions and warns before repeating failed code fixes.
claude mcp add projectmem -- uvx projectmemWhat projectmem does
The server maintains project history directly in your repository inside the .projectmem/ folder. Instead of re-reading raw chat transcripts, it records typed events: issues encountered, attempted changes, decisions, and notes in an events.jsonl file.
It exposes 17 tools to the AI agent over MCP. The core safeguard is a pre-commit warning that triggers before the agent applies a fix that already failed earlier in the project. Project health and visual summaries run locally via the companion pjm CLI.
Storage stays entirely local without cloud accounts or telemetry. Adding memory to a repository takes pjm init, but you must fully restart your coding client after updating the MCP configuration or the server will fail to load.
What it helps with
- persist debugging decisions and fixes across separate agent sessions
- stop the agent from reapplying previously failed bug fixes
- keep project memory strictly local inside
.projectmem/without cloud sync - inspect past failures and resolved cases with
pjm visualize
Example prompts for the agent
- Check
projectmembefore patching this bug to see what failed previously. - Record our fix for the connection timeout issue into project memory.
- Run a pre-check on my changes against past failed attempts.
How to install projectmem
Platform CLI
claude mcp add projectmem -- uvx projectmemuvx runs the command named after the package; if the README names another one, use uvx --from projectmem <command>
Platform CLI
codex mcp add projectmem -- uvx projectmemuvx runs the command named after the package; if the README names another one, use uvx --from projectmem <command>
Config file
{
"mcpServers": {
"projectmem": {
"command": "uvx",
"args": [
"projectmem"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from projectmem <command>
Config file
{
"servers": {
"projectmem": {
"type": "stdio",
"command": "uvx",
"args": [
"projectmem"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from projectmem <command>
Platform CLI
gemini mcp add projectmem uvx projectmemuvx runs the command named after the package; if the README names another one, use uvx --from projectmem <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about projectmem
How do I install projectmem in Claude Code?
Run claude mcp add projectmem -- uvx projectmem. Fully restart Claude Code afterward, as MCP servers load only during a cold start.
What does projectmem do?
It acts as a local memory layer that logs project issues, attempts, decisions, and successful fixes inside .projectmem/events.jsonl. The agent consults this log so it avoids repeating mistakes made in previous sessions.
Does projectmem upload repository data anywhere?
No, projectmem operates strictly offline without telemetry or user accounts. The only network call occurs if you explicitly enable update checking with the --online flag.