codemem MCP server
io.github.jeang42/codemem·v0.1.0·2 starsShared memory for coding agents: projects, reusable code, sessions and commits across machines
2 stars
Reviews
Write oneNobody has reviewed codemem yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
codemem tools (20, 2 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
activityWhat happened recently: commits pushed and sessions logged, across all machines.
add_noteAdd a note. kind: decision|howto|resource|issue|idea|note. howto notes are what future sessions get from howto(); decisions explain why something is the way it is.
add_scan_rootRegister a directory to be scanned for projects on a machine. Remote machines run client/codemem_agent.py which reads its roots from here. Use when a directory is organised enough.
delete_notewrite actionDelete a note by id, with its search and embedding rows. Use it to remove a note written by mistake or superseded by a corrected one; the deleted row is returned so it can be written back. Note ids come from search results and the notes list. Deleting is not how you edit a note that is merely out of date — add a newer one instead, because notes are a dated record.
find_assetsFind reusable assets. With a query it searches; without, it lists (optionally by kind, tag, project). exclude_maturity="junk,broken,sunset,antiquated" leaves only things worth building on. imports="chromadb" answers "which files/projects use this library" exactly, from parsed import statements.
handoffRecord or advance a handoff: one implementation replacing another. One record per name; each call appends a dated stage entry. stage: candidate|shadow|verified|promoted|retired|rolled-back. old/new: asset or project names being replaced/replacing. promotion_class: library|service|agent-facing|pipeline|data-store. report: path to the parity report. note: what happened, failures included. Empty name
helpHow to use codemem: workflow, tool list, label vocabularies, data sources. Call with no arguments for the overview; a topic (e.g. "maturity", "audience", "vendor", "session") narrows it. Cheap: no DB access.
howtoHow-to knowledge: publishing to the git host, adding a machine, using codemem, and whatever docs are ingested. Searches howto notes first, then ingested docs. Empty topic lists available howtos.
link_itemsLink two things. relation: uses|could-reuse|supersedes|derived-from|shares-code-with|deploys-to|related. Give project names, or asset names (from_asset/to_asset) instead.
list_handoffsHandoffs in flight (or at a given stage), newest activity first. Each shows old, new, class, stage, last entry.
list_projectsList projects with a one-line summary each. Filter by status, tag, machine (has a location there), audience, maturity (e.g. "authoritative") or exclude_maturity (e.g. "junk,antiquated"). origin: "own" (default) | "vendor" (cloned third-party repos) | "all".
log_sessionRecord what a working session did. Call at the end of meaningful work. summary is required; the rest are free text. resources: tools, APIs, models, other projects used.
project_briefEverything known about one project: description, locations on each machine, reusable assets, recent notes, recent commits, links. Accepts a project name or a working-directory path.
rateRate a project (or an asset, by giving asset_kind) so future sessions know what is usable and what is not. maturity: authoritative (the one to use) | usable | experimental | antiquated (superseded, prefer newer) | sunset (being retired) | broken | junk (reference only). note: why, and what to use instead. Empty maturity returns the vocabulary and current ratings.
register_assetRecord something reusable so it is found next time instead of rebuilt. kind: script|module|function|prompt|skill|mcp-server|docker|service|config|dataset|model|doc|tool|pattern. usage: the one line someone needs to reuse it (command, import, URL). maturity: authoritative|usable|experimental|antiquated|sunset|broken|junk (+ maturity_note why).
scan_pathScan a directory on the SERVER machine now and record the projects found. For other machines use codemem_agent.py. Empty path scans this machine's registered roots.
searchHybrid search (BM25 + embeddings) across projects, assets, notes, commits, locations and docs. kinds: comma list to restrict, e.g. "asset,note". exclude_audience: comma list of project audiences to leave out (e.g. "unrestricted" when working professionally). exclude_maturity: ratings to drop, e.g. "junk,broken,sunset" when you only want things safe to build on. Results carry a maturity field; auth
statsCounts of everything, machines seen, index/embedding coverage, server config.
update_projectwrite actionCreate or enrich a project. Only supplied fields change. status: active|paused|done|abandoned|archived. audience: unrestricted (default: personal work, unfiltered) | professional | employer (free text, used for filtering). origin: own | vendor (a third-party clone; hidden from search and lists by default). tags: comma list. visibility: private (default, the owner only) | shared (named people) | pu
verifyRecord that you ran this project (or asset, with asset_kind) today and it worked. Restarts its trust freshness clock (half-life 180 days from verification). note: what you checked. Use after actually exercising the code, not after reading it.
Public scan report
scanner v0.1.9 · 2026-09-25 · same rubric, same numbers if you re-run it
- Code scan17 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 0 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How codemem compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 92/100
- higher than 95% of 48,255 servers
- Tools
- 20
- the typical server has 7
- Tools that change things
- 10%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 2
- more than 75% of 28,688 servers
What its tools let an agent do: 15 read · 3 create · 1 change · 1 delete
Install codemem in Claude Code, Cursor or VS Code
claude mcp add codemem -- uvx codemem-mcp
What the publisher says
From the codemem repository's README, as published. We do not edit it. Read it on GitHub
codemem
<!-- mcp-name: io.github.jeang42/codemem -->
Your coding agents keep rebuilding what you already have. codemem remembers what they built, across every project and every machine, and scores each piece on evidence of whether it worked.
It is an MCP server for Claude Code and other MCP clients. It knows what projects exist, where they live, what reusable pieces they contain, what each session did and decided, every commit pushed to the git host, and how to do recurring things. Everything is searchable from any machine, from an agent, or from the web UI. It is written to during work, not after.
One Python process, SQLite, no external services required.
What makes it different
Inventory scripts snapshot a directory and you read the report once. Registries list what people published. codemem does neither.
how recently it changed, how much work went into it, whether it is actually deployed and running, whether anything else imports it, and whether a human vouched for it. verify records "I ran it today and it works" and restarts the freshness clock. Scores are recomputed on every sync, so they decay when you stop touching something.
- Trust from evidence, not from stars. Every project and asset gets a computed score from
service units, Dockerfiles and MCP servers, hashes their functions, and links repos that share code. It will tell you that you wrote the same retry wrapper in three places.
- It finds the copies you forgot. Discovery mines every repo at HEAD for scripts, modules,
and gives the next session a brief on the project it just opened. The catalogue builds itself.
- Agents feed it automatically. A session hook records what each Claude Code session did,
sunset, broken, junk, each with a reason. Search ranks by it, and you can exclude the ratings you should not build on.
- Maturity is a first-class label. authoritative, usable, experimental, antiquated,
symbols, function hashes, commit records. It does not copy your source anywhere.
- Your code stays where it is. codemem stores metadata: names, descriptions, imports,
Endpoints
Normally runs on the git host, the machine holding the bare repos, so it can read them directly.
Security: codemem has no authentication. It is built for a trusted network, and anyone who
can reach the port can read and write everything. Do not expose it to the internet without an
authenticating proxy in front of it. See docs/architecture.md.
Requirements
Python 3.11 or newer, and git. Optional: a git host with bare repos for the commit feed, Gitea for descriptions and web links, and Ollama for semantic search, drafted descriptions and the review pass. Everything works without the optional pieces; search falls back to BM25 alone.
Why
A developer with many project folders across several machines has no way for a new Claude Code session to know that a retry wrapper, a Gradio helper, a GPU monitor or a data pipeline already exists somewhere. So they get rebuilt. Snapshot inventory scripts (run, read, forget) do not fix that. codemem is the live, writable layer: it is written to during work, not after.
The content is whatever is there. codemem does not filter or judge. Each project carries an audience: unrestricted (the default), professional, or employer, so a search or a view can exclude one when the context calls for it. Nothing is hidden unless asked, with one exception: cloned third-party repos are marked origin = vendor and stay out of search and lists until you ask for them. See docs/USER_GUIDE.md.
Install from PyPI
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
codemem: common questions
- Is codemem MCP server safe?
- Yes, by our scan: it is graded A (92/100). Read the codemem safety report
- How do I install codemem?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does codemem need an API key?
- No secret keys are declared. It reads 7 settings from the environment.
- Is codemem maintained?
- The last commit was 40 days ago (2026-09-25). The latest release is v0.1.0.
- What can I use instead of codemem?
- Servers from other publishers that do the same job: Deja Vu MCP server, Claudexor MCP server and e2e MCP server.
- How does codemem compare with other MCP servers?
- safety score 92/100 (higher than 95% of 48,255 servers); tools 20 (the typical server has 7); tools that change things 10% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.
Alternatives to codemem
Same job from other publishers: the closest match first, then the best rated.
- Deja Vudeja-vu: local memory over the session histories of forty-three coding agents.not reviewedEstablishedA
- ClaudexorRoute coding work across Claude Code, Codex, Cursor, and OpenCode with shared context.not reviewedEstablishedA
- e2eOpen live web and mobile app sessions from an e2e project to inspect the app and try locators.not reviewedWidely usedA
- Concord MCPCross-harness communication and shared work-state for AI coding agents.not reviewedEstablishedA
MemorixLocal-first project memory with legacy MCP and 2026 discovery compatibility.not reviewedEstablishedB