May 24, 2026
MCP memory server or markdown files? Where AI coding context should actually live
Your AI workflow breaks when context lives half in chat history, half in random notes, and nowhere authoritative. The durable record should live in portable files, with an MCP server acting as the read layer.
You wire up a local MCP memory server, ask your editor to save context there, and for a few days it feels clean. Then you switch tools, or inspect the stored state by hand, or try to answer a simple question like “what is the actual record of this project’s last session?” Suddenly the answer is fuzzy. Some context lives in chat threads. Some lives in a server-specific store. Some lives in a scratch markdown file you forgot to update.
That is the moment AI coding starts to feel brittle. Not because the model is weak, but because your workflow has no clear system of record. You do not know what should persist, where it should live, or which layer a new tool should trust when it joins the project.
This is a memory layer problem. Most AI setups blur together two separate jobs: storing durable project context, and delivering that context into the current session. When one tool does both, it feels convenient right up until you need portability.
The reason this keeps happening is that MCP servers are great transport layers, not great sources of truth by themselves. They are excellent at exposing resources and tools to an editor. They are not automatically a durable, inspectable, portable memory model. If your continuity depends on one server’s internal storage shape, you have built session memory that is hard to audit and even harder to move.
Plain files solve the opposite problem. Markdown is easy to inspect, diff, back up, and carry between tools. If you keep checkpoints, next steps, and decision notes in local files at the repo root, you always know where the durable context lives. But files alone do not get that context into Claude Code, Cursor, Windsurf, or the next MCP client at the moment you need it. They need a delivery layer.
That is the natural split: files for record, MCP for access. If the context needs to survive a model swap, an editor change, or a month away from the project, it should live in portable local files first. The MCP memory server should sit on top of that layer, reading it and handing the right slice to the current AI session.
That is how KeepGoing’s MCP server is meant to be used. The durable context lives in your project, under .keepgoing/, where it stays local and inspectable. The server then exposes that continuity to any MCP-compatible tool, so a new session can ask for momentum or a re-entry briefing without inventing a second private memory store. You get local AI session memory that is portable, readable, and not trapped inside one editor.
If you are designing your own setup, draw the line clearly. Put the durable facts in files. Let the MCP layer read those files and serve them into the session. Start there, then add structure later if you need it. A memory system gets much easier to trust once you can answer one basic question without hesitation: this is where the context actually lives.
Get notified about new posts