A neutral context layer for AI coding tools. MCP server that exposes structured, curated project context to any MCP-compatible client.
SaferSkills independently audited project-memory-mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A brain for your AI coding tools — one that doesn't forget. Project Memory gives Claude, Cursor, and Claude Code a shared, always-fresh view of your codebase, cutting token usage by up to 88%. See the benchmark →
Status: v0.2.0 on npm — now with one-command install and a native write tool. Published as @feralcaraz/project-memory-mcp.
Every time you switch AI tool, you re-explain the same project from scratch: what it is, what stack, what conventions, what you're currently working on. Project Memory MCP is a small server that lives next to your code and gives any AI client a consistent, up-to-date view of the project — without you having to paste the same context ten times a week.
It speaks the Model Context Protocol, so any MCP client can talk to it.
path becomes optional on every call.MEMORY.md (or any file you point it at): open questions, next steps, and explicit non-goals.target, summarizes the project (most-imported modules, entrypoints). With target, returns one file's imports and the files that import it.MEMORY.md (open questions, next steps, session notes, decisions). Closed enum for sections; load-bearing ones must pre-exist; atomic write via tmp + rename. (new in v0.2.0)On any tool, path is optional IF you've called set_active_project earlier in the session. Otherwise pass it explicitly. There is no silent cwd fallback.
More tools coming (see ARCHITECTURE.md for the roadmap).
No install step needed for normal use. Your MCP client (Claude Desktop, Cursor, etc.) fetches and runs the server on demand via npx. The next section shows how to wire it in.
If you'd rather build from source (for development or to pin a specific commit):
git clone https://github.com/feralcarazp/project-memory-mcp.git
cd project-memory-mcp
npm install
npm run build⚠️ Important — this is not installed by talking to Claude. You don't paste the config into a chat. You edit a file on your computer and then restart the Claude Desktop app. If you paste the config block into a Claude conversation, Claude may respond politely but nothing will get installed. Follow the steps below.
>
This guide is for the Claude Desktop app (the one you download and install). It does not work with claude.ai in a web browser — browser Claude only supports remote URL-based MCP servers, and this one runs locally.
npx @feralcaraz/project-memory-mcp installThis edits claude_desktop_config.json for you — adding the project-memory entry under mcpServers and preserving anything else already in the file. A timestamped backup is written next to the config before any changes.
To remove it later:
npx @feralcaraz/project-memory-mcp uninstallAfter install or uninstall, fully quit and reopen Claude Desktop to pick up the change.
If you'd rather edit the config file by hand, here are the full step-by-step recipes for each OS.
#### macOS
node --version — you should see something like v20.x or higher.Cmd + Shift + G to open the "Go to Folder" prompt. Paste this exact path and press Enter: ~/Library/Application Support/Claude/You should see a file named claude_desktop_config.json. If it's not there, create an empty file with that exact name (including the .json extension).
mcpServers block from another server), add the "project-memory": { … } entry inside it, separated by a comma. {
"mcpServers": {
"project-memory": {
"command": "npx",
"args": ["-y", "@feralcaraz/project-memory-mcp"]
}
}
}Cmd + S. Make sure the extension is still .json — TextEdit sometimes tries to append .txt. If it asks whether to save as rich text or plain text, choose plain text.Cmd + Q inside the app. The red close button (top-left) is NOT enough — the app keeps running in the background.project-memory listed with 6 tools. That means it worked.#### Windows
%APPDATA%\Claude\ into the address bar, and press Enter.claude_desktop_config.json with Notepad (not Word). If the file doesn't exist, create it..json, not .json.txt.Open a new chat in Claude Desktop and try:
Callset_active_projectwith/absolute/path/to/my/project, thenget_open_questionsandget_dependency_graph.
Replace the path with a real folder on your machine. If the three calls run and return markdown, you're done — that's ~700 tokens of full project orientation before any real work begins.
project-memory next to an existing MCP server.Cmd + Q on Mac, system-tray Quit on Windows. Restarting via the red close button is not enough.PATH. Run which npx (Mac) or where npx (Windows) in a terminal. If it prints nothing, reinstall Node from nodejs.org.npx caches packages. Force a refresh: in a terminal, run npx clear-npx-cache or delete the ~/.npm/_npx/ folder, then restart Claude Desktop.~/Library/Logs/Claude/mcp*.log on Mac). Errors show up there when a tool call fails.If you use Claude Code (the CLI), a single command wires it in at user scope (available in every project you open):
claude mcp add --scope user project-memory -- npx -y @feralcaraz/project-memory-mcpConfirm it's live:
claude mcp listYou should see project-memory in the list. Start a new Claude Code session and the five tools become available. For project-scoped installs or other options, see the Claude Code MCP docs.
Cursor supports MCP servers via a settings UI and a config file. Either works.
project-memorynpx-y @feralcaraz/project-memory-mcpCreate or edit ~/.cursor/mcp.json and add the same block you'd use for Claude Desktop:
{
"mcpServers": {
"project-memory": {
"command": "npx",
"args": ["-y", "@feralcaraz/project-memory-mcp"]
}
}
}Restart Cursor. Verify by opening Composer or Chat and asking it to list available tools — project-memory should appear.
If Cursor's UI or config path has moved, the canonical reference is Cursor's MCP docs.
npm run dev # watch mode
npm run typecheck # tsc --noEmit
npm test # vitestBuilt publicly by Fer, with Claude writing the code and Fer directing. See DECISIONS.md for the architectural choices and why they were made.
MIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.