Living Memory
An MCP memory server. One memory your agents share — across models, devices and apps.
التثبيت
أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: .cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).
claude mcp add --transport http living-memory 'https://lme.viibe.to/mcp'
{
"mcpServers": {
"living-memory": {
"type": "http",
"url": "https://lme.viibe.to/mcp"
}
}
}
@nature-labs/lme-mcpclaude mcp add living-memory -- npx -y @nature-labs/lme-mcp@0.1.2
{
"mcpServers": {
"living-memory": {
"command": "npx",
"args": [
"-y",
"@nature-labs/lme-mcp@0.1.2"
]
}
}
}
التوثيق
مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.
المحتويات
Living Memory Engine
A persistent world your agents share across sessions and models.
Living Memory Engine (LME) is a Model Context Protocol (MCP) memory server. It gives your agents — Claude Code, Cursor, ChatGPT, claude.ai, any MCP client — one shared place to remember, search, and hand work to each other. A fact told to one agent — or work left behind by one — can be picked up by a different agent, from a different vendor, tomorrow.
- Website: https://viibe.to/living-memory/
- Remote MCP endpoint:
https://lme.viibe.to/mcp(Streamable HTTP, OAuth 2.1 with dynamic client registration) - Free room: no signup —
POST https://lme.viibe.to/ons/newreturns a ready MCP URL - Local stdio server:
@nature-labs/lme-mcpon npm (open source, this repo) - Agent guide: SKILL.md · llms.txt
The mental model
A world is a place that persists — a project, not a person and not an agent. Agents are visitors: they arrive, leave something behind, and are replaced. Coordination happens by changing the shared place, not by agents addressing each other. Memory is what must persist and be searched; a handoff is what is in flight and expires. The human is the only participant who was present for all of it.
Connect
Remote — hosted world or free room
The hosted server speaks Streamable HTTP with OAuth 2.1 (dynamic client registration).
Claude Code:
claude mcp add --transport http living-memory https://lme.viibe.to/mcp
claude.ai / Claude Desktop: Settings → Connectors → Add custom connector → https://lme.viibe.to/mcp.
ChatGPT: Settings → enable Developer Mode, then add https://lme.viibe.to/mcp as a custom connector. Availability may depend on your ChatGPT plan.
It's 2026. MCP client support changes faster than READMEs do — ask your agent whether your client supports remote MCP today.
Free room, no signup — for trying the whole loop, or for clients without OAuth:
curl -X POST https://lme.viibe.to/ons/new
# → {"url": "https://lme.viibe.to/t/<token>/mcp", "expiresAt": "..."}
The returned URL is a private streamable-HTTP MCP endpoint (no auth header). The room stays available while it's used — any successful use keeps it alive; left inactive it is eventually forgotten, and its data is then deleted. A room differs from a world by how long it lasts, not by what it can do.
Local — stdio, open source
The npm package runs the memory surface as a local stdio server: one JSON file on your machine, can run fully offline.
claude mcp add living-memory -s user -- npx -y @nature-labs/lme-mcp
Any stdio MCP client: command npx, args ["-y", "@nature-labs/lme-mcp"]. Setup, embedding providers, environment, and failure modes: lme-mcp/README.md — written to be read by a coding agent, so hand it to yours.
The tools
| Tool | What it does |
|---|---|
memory_add | Store a durable fact, decision, or correction |
memory_search | Recall by meaning (MMR retrieval), not string match |
memory_state | What is in memory right now — counts and recent facts |
memory_forget | Remove a memory |
handoff_post / handoff_read / handoff_list | A private 1–72 h message bus between your agents — raw notes passed verbatim, with sender and route stamped by the server |
world_list | Which worlds this connection can reach |
client_mint / client_list / client_revoke | Issue and withdraw revocable URL keys for agents that cannot sign in (hosted world, signed-in owner only) |
The authenticated hosted world has all eleven tools. A free room has the memory surface, the handoff mailbox, and world_list. The local stdio server has the four memory tools.
Rooms and worlds
| Free room | World | |
|---|---|---|
| Lifetime | Stays while used; forgotten after inactivity | Persists |
| Signup | None — mint a URL | OAuth sign-in, $9/month |
| Memory + handoff | Yes — full loop | Yes |
Client keys (client_mint) | No | Yes — 90-day revocable leases |
Handoff is not a paid feature: a room has it too, with a smaller mailbox (8 live notes) and notes that cannot outlive the room. The difference is lifetime, not capability.
Working with a world
The tools tell you what exists; this is how visitors are expected to behave:
- Arrive by reading. Call
memory_state/memory_searchbefore starting work — the world, not the conversation, is where the current position lives. - Durable goes to memory. A decision, fact, or correction that must survive you →
memory_add. - In-flight goes to handoff. Work you are passing to the next agent →
handoff_post. Handoff notes expire — never use them as permanent storage. - Leave the world resumable. Before you stop, write the state that lets the next visitor start from where you are, not from zero.
- Agents don't need to talk to each other. Change the shared world; the next agent reads the world.
How memory works
The engine underneath (engine/, @nature-labs/living-memory-engine) models memory as a mind, not a log:
- No context stuffing. The full history is never re-sent. Each recall retrieves the top-K most relevant memories by semantic similarity with diversity (MMR).
- Forgetting is a feature. Memories decay (Ebbinghaus-style), reinforce when used, and merge when duplicated, so an agent can run indefinitely on a small, bounded context instead of an ever-growing transcript.
- Deterministic evaluation.
engine/eval/run.tsdrives the real engine through four hypothesis scenarios against a naive resend-everything baseline — a measurement, not a test suite, and it reports the misses too (cd engine && npm run eval).
What's in this repo
| Dir | Role |
|---|---|
lme-mcp/ | The stdio MCP server published as @nature-labs/lme-mcp |
engine/ | @nature-labs/living-memory-engine — the framework-agnostic memory engine (decay / consolidation / crystallization / retrieval), pure ports & adapters |
web/ | The original browser lab: Vite + vanilla TS chat app where the engine was proven by เชียงใหม่ (Chiang Mai), a city-entity that senses real weather and remembers you across sessions — live at cm.viibe.to |
mobile/ | An earlier Expo prototype. Frozen |
The hosted remote server (lme.viibe.to) runs the same engine; its deployment lives outside this repo.
Status
Pre-alpha, evolving fast. The connect paths above are tested — the local package's verified agent/provider matrix is in lme-mcp/README.md. Product changes are logged, dated and verified, at What's new.
License
Apache-2.0.
Built as part of the Viibe World OS — a system that knows it is a system.
الأسئلة الشائعة
ما هو Living Memory؟
An MCP memory server. One memory your agents share — across models, devices and apps.
كيف أثبّت Living Memory؟
يعمل كخادم بعيد. في Claude Code: claude mcp add --transport http living-memory 'https://lme.viibe.to/mcp'. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.
هل يحتاج Living Memory إلى مفتاح API؟
لا يذكر إدراجه في السجل أي مفتاح أو سر إلزامي. قد تتطلب بعض الميزات حسابًا لدى الخدمة التي يتصل بها.
هل Living Memory مفتوح المصدر؟
نعم. شيفرته متاحة على GitHub بترخيص Apache-2.0.
من يصون Living Memory؟
ينشره v1b3x0r. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.
من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.