Skip to content

Claude Code & Claude Desktop

For AI Agents

Machine-readable docs: mnemoverse/llms.txt (works in all sandboxes)

Give Claude persistent memory. One command — it never forgets again.

Claude Code — add via CLI:

bash
claude mcp add mnemoverse \
  -e MNEMOVERSE_API_KEY=mk_live_YOUR_KEY \
  -- npx -y @mnemoverse/mcp-memory-server@latest

That's it. Claude Code now has long-term memory across all sessions.

Get your API key at console.mnemoverse.com (free tier, no credit card).

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

Claude Desktop — add to claude_desktop_config.json:

json
{
  "mcpServers": {
    "mnemoverse": {
      "command": "npx",
      "args": [
        "-y",
        "@mnemoverse/mcp-memory-server@latest"
      ],
      "env": {
        "MNEMOVERSE_API_KEY": "mk_live_YOUR_KEY"
      }
    }
  }
}

⚠️ Restart Claude Desktop after saving. MCP servers are only picked up on client startup.

Try It

Say to Claude:

"Remember that I always deploy to Railway using railway up"

Then in a new session:

"Deploy this project"

Claude remembers.

Tools

The MCP server gives Claude 6 tools:

memory_write — Store a memory

When Claude learns something worth keeping — a preference, a lesson, a decision — it stores it.

You: "I prefer Tailwind over CSS modules"
Claude: [calls memory_write]
    content: "User prefers Tailwind CSS over CSS modules for styling"
    concepts: ["tailwind", "css", "styling", "preferences"]
→ Stored (importance: 0.82)
NameTypeRequiredDescription
contentstringYesWhat to remember (1-10,000 chars)
conceptsstring[]NoKey concepts for linking memories
domainstringNoNamespace: "engineering", "user:alice"

memory_read — Recall memories

Before starting a task, Claude checks what it already knows.

You: "Set up the database"
Claude: [calls memory_read]
    query: "database setup preferences and history"
→ 1. [92%] Project uses PostgreSQL 15 + Prisma ORM (engineering)
  2. [87%] Always run migrations with --create-only first (lessons)
  3. [71%] DB hosted on Supabase, connection string in .env.local
NameTypeRequiredDescription
querystringYesNatural language search (1-5,000 chars)
top_kintegerNoMax results (default: 5, max: 50)
domainstringNoFilter by namespace

memory_feedback — Rate memories

After using a memory, Claude reports whether it helped. Good memories surface faster next time.

Claude: [calls memory_feedback]
    atom_ids: ["550e8400-..."]
    outcome: 1.0  // Very helpful!
→ Feedback recorded for 1 memory.
NameTypeRequiredDescription
atom_idsstring[]YesMemory IDs from read results
outcomenumberYes-1.0 (harmful) to 1.0 (very helpful)

memory_stats — Check status

Claude: [calls memory_stats]
→ Memories: 1,250 (500 episodes, 450 prototypes)
  Associations: 8,500 Hebbian edges
  Domains: engineering, user:alice, project:acme
  Avg quality: valence 0.65, importance 0.72

memory_delete — Forget one memory

For when Claude stored a wrong fact or the user explicitly asks to forget something specific.

You: "Forget what I said about Railway — we moved to Fly.io"
Claude: [calls memory_read to find the atom_id, then memory_delete]
    atom_id: "550e8400-e29b-41d4-a716-446655440000"
→ Deleted memory 550e8400-....
NameTypeRequiredDescription
atom_idstringYesThe atom_id of the memory to delete (from memory_read results)

Idempotent — deleting an already-gone memory returns "No memory found with id ..." instead of an error.

memory_delete_domain — Wipe an entire topic

For broad cleanups when the user wants to forget everything in a namespace — e.g. "wipe my benchmark experiments". This is much more destructive than memory_delete, so Claude should only call it after an explicit user request, and the confirm: true parameter is a safety interlock enforced by the schema.

You: "Wipe everything about project:old-client"
Claude: [calls memory_delete_domain]
    domain: "project:old-client"
    confirm: true
→ Deleted 42 memories from domain "project:old-client".
NameTypeRequiredDescription
domainstringYesThe domain namespace to wipe (must match exactly)
confirmliteral trueYesSafety interlock — must be exactly true

What to Remember

CategoryExample
Preferences"User prefers dark mode", "Always use pnpm, not npm"
Project context"This repo uses PostgreSQL + Prisma", "Deploy target is Railway"
Lessons learned"Never deploy on Fridays", "Run tests before push"
Decisions"Chose REST over GraphQL for caching simplicity"
People"Alice owns the design system", "Bob reviews all API changes"
Patterns"Exponential backoff fixed timeout issues in this service"

Universal Memory

Same API key, same memories — across all tools.

                    ┌── Claude Code ← you are here
                    ├── Claude Desktop ← you are here
   Mnemoverse API ──├── Cursor / VS Code / Windsurf
   (one memory)     ├── ChatGPT (Custom Actions)
                    └── Python SDK / REST

Write a memory in Claude Code → ChatGPT reads it. Learn something in Claude Desktop → Cursor knows it.

Configuration

VariableRequiredDefault
MNEMOVERSE_API_KEYYes
MNEMOVERSE_API_URLNohttps://core.mnemoverse.com/api/v1

Source & Distribution

npm versionMCP Registry

The MCP server is also listed on the Official MCP Registry. Source on GitHub under MIT.