Local long-term memory for AI agents as an MCP server: procedural, preference, fact, episodic and trace memories in Markdown files + a SQLite index (keyword, optional vector, graph).
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"halflife-mcp","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# halflife-mcp Local long-term memory for AI agents, served over MCP. It runs on your own laptop: no account, no cloud service, no telemetry. Works with any MCP client that can launch a stdio server, such as Claude Code, Claude Desktop, Cursor, Zed or VS Code. The agent gets five kinds of memory: | Kind | Holds | Fades (half-life) | |---|---|---| | `preference` | how you like things done ("use uv, not pip") | 180 days | | `procedural` | workflows that worked ("release = tag, then `make release`") | 365 days | | `fact` | durable facts not in the code or docs | 180 days | | `episodic` | what happened in a past task: goal, decisions, open items | 30 days | | `trace` | short-lived log of files/commands, for resuming work | 7 days, deleted after 30 | Memories you use get reinforced and stay. Unused ones fade and are archived: moved, never silently deleted. Inferred memories stay *provisional* (hidden) until confirmed. A correction *supersedes* the old memory instead of contradicting it. ## Install You need [uv](https://docs.astral.sh/uv/). Then add the server to your client. **Claude Code** ```bash claude mcp add memory --scope user -- uvx halflife-mcp ``` **Claude Desktop** (Settings → Developer → Edit Config → `claude_desktop_config.json`), Cursor (`~/.cursor/mcp.json`) and most other clients use the same shape: ```json { "mcpServers": { "memory": { "command": "uvx", "args": ["halflife-mcp"] } } } ``` If the client can't find `uvx`, put its absolute path in `command` (`which uvx`). ### Local HTTP mode For clients that connect by URL instead of launching a command, run the server yourself: ```bash uvx halflife-mcp serve --http # http://127.0.0.1:8765/mcp claude mcp add --transport http memory http://127.0.0.1:8765/mcp # e.g. Claude Code ``` There is no authentication, so it listens on loopback only: other machines can't reach it. Requests whose `Host` or `Origin` isn't local are rejected, which stops a web page from talking to i…
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.