Local-first agent memory that preserves what happened, when and why
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
💡 Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Local first. Evidence attached. Time included.
KMP gives Codex and Claude Code local-first memory that preserves what happened, when and why. It stores decisions and evidence, not transcripts, on embedded SQLite, and exposes them through eleven memory tools plus three semantic view tools over a shared ChronoLoom view.
Ask “Show me the memory behind this decision.” The agent retrieves the evidence, opens ChronoLoom at the relevant moment and lights up the proof path. ChronoLoom names who is guiding, shows why the agent moved, and lets you take control without losing the frame or its undo. A shared time window crosses real 3D about layers; a flat camera shows the same memory, with labels as filters.
Agents are good at doing the work in front of them. Tomorrow is harder. A decision survives, its rationale disappears, and somebody gets to rediscover the same incident from scratch.
KMP gives the agent a typed, temporal memory instead of a bag of text:
UNKNOWN is an honest answer when the evidence is not there.The normal path runs entirely on your machine. No KMP account. No hosted memory server. No Underpass cloud.
Then ask Codex to run kmp-setup and restart Codex once.
Restart Claude Code once. Verify either host with its kmp-doctor workflow,
or from a terminal:
That is the happy path. The plugin owns the MCP registration, so do not add a second KMP server by hand. Store selection and repair live in Embedded KMP.
You normally ask for the outcome. The KMP skill chooses the memory moves.
| You say | The agent does | You get |
|---|---|---|
| “Continue the KMP documentation work.” | Wakes project:kmp before re-deriving it. | Current decisions, constraints and next actions. |
| “Why did we choose SQLite?” | Asks memory and follows the stored evidence. | A grounded answer, or UNKNOWN. |
| “What happened yesterday?” | Resolves the interval and navigates every temporal page. | Ordered memory from that period. |
| “Why was the launch postponed in March?” | Asks memory standing within March: only what fell inside competes, and the lifecycles are read as they stood then. | A grounded answer from that time, or UNKNOWN naming the nearest match outside the span. |
| “Remember that retries are capped at two because logs showed amplification.” | Records the decision, its evidence and meaningful relations. | Durable state with an auditable why. |
| “Show the proof between this incident and that decision.” | Traces the typed path and inspects its evidence. | The stored connection, rationale and sources. |
| “Undo that decision.” | Writes a state that supersedes the old one. | Both decisions remain visible in time. |
| “Save the project memory.” | Publishes the maintained project bundle and shows its diff. | Reviewable .kmp/memory.jsonl. |
KMP is memory, not surveillance. Store durable decisions and evidence, not transcripts.
It also waits to be asked. A session that never mentions memory makes no KMP
call at all — the agent works from what is in front of it. Naming KMP, running
a /kmp:* command, or opting in from your project's CLAUDE.md or AGENTS.md
is what opens a route. If you would rather it enter known work on its own:
The plugin installs the skills and declares one local MCP process. The skill
turns intent into one or more of fifteen typed tools. kmp-mcp validates the
request, and the kernel reads or writes the local graph-temporal store. The
agent—not KMP—turns returned evidence into conversational prose.
Ask your agent: “Show me the memory behind this decision.” ChronoLoom opens on the evidence and lights up its proof path.
You control the same view: your agent can steer it; you can click, filter, pan or undo at any time.
Explore ChronoLoom · Technical architecture
| Layer | Owns | Does not own |
|---|---|---|
| Plugin | Installation, host discovery, skills and the single MCP declaration. | Memory semantics or a second tool vocabulary. |
| Skills | When to recover, ask, navigate, audit, write, diagnose, save or restore. | Persistence. |
kmp‑mcp | The schema-checked fifteen-tool boundary over local stdio. | Choosing a workflow from user prose. |
| Kernel | Validation, temporal storage, traversal, deterministic retrieval and proof. | Generating prose or inventing rationale. |
Human workflows such as kmp-setup, kmp-doctor, kmp-info, kmp-catchup,
kmp-save, kmp-restore and kmp-revert compose the MCP surface. They are
not extra memory verbs. The machine-checked ownership map is
plugins/kmp/capabilities.json.
Twelve over memory, three over the view a person is looking at.
| Tool | Purpose |
|---|---|
kmp_wake | Recover compact state before continuing work. |
kmp_ask | Retrieve evidence for a semantic question, or UNKNOWN. |
kmp_relate | Read what the memories of several abouts have to do with each other in a span, off the scopes and clocks they share. |
kmp_goto | Jump to memory at a time, sequence or ref. |
kmp_near | Inspect the temporal neighborhood around a cursor. |
kmp_rewind | Move backward through memory. |
kmp_forward | Move forward through memory. |
kmp_trace | Prove the path between two refs owned by an explicit about. |
kmp_inspect | Inspect one object inside an explicit about, with its links and evidence. |
kmp_write_memory | Validate and record a decision, constraint or outcome. |
kmp_ingest | Ingest an exact canonical memory graph. |
kmp_relabel | Change the labels a memory stands in — add, take off, and why — without rewriting its text. |
kmp_view_open | Open or rehydrate a ChronoLoom view over an about. |
kmp_view_apply_intent | Move that view by declaring meaning — focus, clock, zoom, filters, selection — under optimistic concurrency. |
kmp_view_get_state | Read the view's semantic state, never its pixels. |
The view tools never write memory: they carry a closed, semantic vocabulary with no coordinates in it, and a person at the loom has right of way — an intent prepared against a stale revision conflicts rather than yanking the view away.
tools/list from the running server is authoritative for schemas, outputs and
the relation vocabulary.
| Boundary | Default behavior |
|---|---|
| Memory | Stored on your machine, normally in the repository's .kernel/. |
| MCP transport | Local stdio between the agent host and kmp-mcp. |
| Viewer | Read-only loopback HTTP, normally rooted at http://127.0.0.1:7317/, behind a random per-session capability. |
| External services | None required. |
| Underpass | Receives no memory and operates no service in this path. |
| Updates | Setup may contact GitHub Releases for checksummed packages. |
| Cloud agents | Evidence returned to a cloud agent follows that host's data policy. |
.kernel/ is machine state and is ignored by git. A project-scoped store also
maintains .kmp/memory.jsonl; it leaves your machine only if you deliberately
commit or copy it.
No reviews yet — be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/kmp)<a href="https://allmcps.com/mcp/kmp"><img src="https://allmcps.com/api/badge/kmp?style=directory" alt="KMP on AllMCPs" /></a>