/ Directory / Playground / MCP Memory Service
● Community doobidoo ⚡ Instant

MCP Memory Service

by doobidoo · doobidoo/mcp-memory-service

Drop-in long-term memory for any agent — semantic recall, knowledge graph, autonomous consolidation, and a REST API for non-MCP frameworks.

mcp-memory-service stores agent-relevant facts, decisions, and snippets across sessions. It builds a knowledge graph as it goes, runs autonomous consolidation jobs to merge duplicates and surface patterns, and exposes the same store over MCP and REST so it works in Claude, LangGraph, CrewAI, and AutoGen pipelines simultaneously.

Why use it

Key features

Live Demo

What it looks like in practice

mcp-memory-service.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "mcp-memory-service": {
      "command": "uvx",
      "args": [
        "mcp-memory-service"
      ]
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "mcp-memory-service": {
      "command": "uvx",
      "args": [
        "mcp-memory-service"
      ]
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "mcp-memory-service": {
      "command": "uvx",
      "args": [
        "mcp-memory-service"
      ]
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mcp-memory-service": {
      "command": "uvx",
      "args": [
        "mcp-memory-service"
      ]
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "mcp-memory-service",
      "command": "uvx",
      "args": [
        "mcp-memory-service"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "mcp-memory-service": {
      "command": {
        "path": "uvx",
        "args": [
          "mcp-memory-service"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add mcp-memory-service -- uvx mcp-memory-service

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use MCP Memory Service

Keep Claude in sync across a multi-week coding project

👤 Developers on long-running projects ⏱ ~15 min beginner

When to use: Every session you spend 10 minutes reminding Claude of project conventions, decisions, and TODOs.

Prerequisites
  • Memory service running — uvx mcp-memory-service (defaults to ~/.mcp-memory.db)
Flow
  1. Seed core context
    Use mcp-memory-service. Store these as project-level memory: 'use bun not npm', 'all DB writes go through src/db/repo.ts', 'no class components in src/ui'.✓ Copied
    → 3 memories stored with project tag
  2. Use in next session
    Recall any project-level rules before suggesting changes to src/ui/Form.tsx.✓ Copied
    → Relevant rules surfaced; suggestion respects them
  3. Capture new decisions
    Save: 'switched from React Query to SWR on 2026-04-22 because of Suspense compat'.✓ Copied
    → Memory stored with date; will surface next time topic comes up

Outcome: Claude treats your project like a continuous engagement, not 100 cold starts.

Pitfalls
  • Memory grows unbounded; recall starts pulling old/irrelevant stuff — Run consolidate weekly; tag memories so you can scope recall to recent + this-project
Combine with: filesystem

Give a personal assistant agent a persistent profile of you

👤 People building daily-driver Claude agents ⏱ ~10 min beginner

When to use: Your daily agent should know your preferences, recurring meetings, and people without re-asking.

Flow
  1. Onboard the profile
    Use mcp-memory-service. Store: my timezone (Asia/Tokyo), my partner's name, my work hours (10–7), recurring 1:1s.✓ Copied
    → Profile stored with type=profile
  2. Recall on the fly
    Schedule 'lunch w/ Alice' for next Tuesday — pick a time that respects my work hours.✓ Copied
    → Suggestion uses your hours from memory; no re-asking

Outcome: Less repeated context-setting per task.

Pitfalls
  • Sensitive details (medical, financial) stored unencrypted — Use a separate DB path (encrypted FS or SQLCipher build); or simply don't store medical/financial in this layer
Combine with: google-workspace-mcp

Build a research knowledge graph as you read papers

👤 Researchers, analysts, deep-dive readers ⏱ ~60 min intermediate

When to use: You're reading 30 papers and want to track entities, claims, and contradictions.

Flow
  1. Ingest as you go
    For each paper I link, extract: authors, key claims, methods, datasets — store as linked nodes.✓ Copied
    → Node count growing; links visible
  2. Find contradictions
    Across stored papers, find claims that contradict. List with sources.✓ Copied
    → Pairs of conflicting claims with citations
  3. Generate a survey
    Draft a 2-page survey with the dominant claim threads + contradictions noted.✓ Copied
    → Markdown survey with sourced claims

Outcome: A real synthesis, not just notes.

Pitfalls
  • Extraction quality varies — some claims are noise — Periodically prune low-confidence nodes; the consolidation job helps but isn't magic
Combine with: filesystem

Share project decision log across teammates' agents

👤 Small teams using AI dev agents ⏱ ~30 min advanced

When to use: Three people on the team use Claude Code; nobody knows what decisions the others' agents have already made.

Prerequisites
  • Hosted instance reachable by all — Run with --host 0.0.0.0 on a shared dev box; or deploy Docker image
Flow
  1. Point team configs at shared service
    Update each teammate's MCP config to use the shared URL with separate auth tokens.✓ Copied
    → All agents read/write the same store
  2. Convention: tag decisions
    Convention: anything stored as type=decision is team-visible; type=personal is namespaced.✓ Copied
    → Tags applied; recall scoped accordingly

Outcome: Team-level memory without a wiki.

Pitfalls
  • Personal notes accidentally tagged as team-visible — Default to type=personal; require explicit type=decision opt-in for team notes
Combine with: github

Combinations

Pair with other MCPs for X10 leverage

mcp-memory-service + filesystem

Anchor memory in repo files — link memory_id ↔ file path

When I edit src/db/repo.ts, recall any decisions referencing it before suggesting changes.✓ Copied
mcp-memory-service + github

Auto-store PR review summaries as decision memory

After every merged PR, store the design rationale + reviewer concerns as type=decision tagged with the repo.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
store_memory content, tags?, type?, metadata? On any new fact / decision worth keeping 0
recall query, top_k?, tags?, since? First step before answering — don't reinvent context 0
graph_neighbors node_id, depth? Explore related entities/decisions 0
consolidate scope? Weekly housekeeping; merges duplicates LLM tokens for summarization
delete_memory memory_id Right-to-be-forgotten or wrong-data correction 0

Cost & Limits

What this costs to run

API quota
None — all local
Tokens per call
Recall returns 200–2000 tokens depending on top_k
Monetary
Free; consolidation uses local or BYO LLM
Tip
Cap top_k=5 for most recall calls; let consolidation handle dedupe instead of overstuffing prompts

Security

Permissions, secrets, blast radius

Minimum scopes: filesystem write to db path
Credential storage: DB at ~/.mcp-memory.db; encrypt the FS or use SQLCipher build for sensitive data
Data egress: None by default; consolidation can call out if you wire it to an LLM
Never grant: World-readable DB on shared hosts

Troubleshooting

Common errors and fixes

Recall returns nothing

Check tags filter; embeddings index may need rebuild after schema changes

Verify: Look at tool result count and the tags you pass
DB locked errors under concurrent agents

Switch to Postgres backend or enable SQLite WAL mode (default in recent versions)

Verify: PRAGMA journal_mode;
Consolidation runs forever

Scope it: consolidate(scope='last_week') instead of full DB

Memories full of off-topic chat

Be stricter at store time — only call store_memory on facts/decisions, not casual chat

Verify: Audit recent stores; delete cruft

Alternatives

MCP Memory Service vs others

AlternativeWhen to use it insteadTradeoff
claude-mem-skillYou want session-bridging compression, not a long-term knowledge storeclaude-mem is per-session continuity; this is true persistent memory + graph
Mem0You want a hosted memory layer with SDKsCosts money at scale; data leaves your machine
Letta (formerly MemGPT)You want full agent runtime with built-in memory, not just a memory layerHeavier; opinionated about agent architecture

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills