Local-first memory for Claude Code and any MCP client: hybrid search + knowledge graph in one SQLite file, $0/token, no cloud.
claude mcp add mcp-memory-graph -- npx -y mcp-memory-graph{
"mcpServers": {
"mcp-memory-graph": {
"command": "npx",
"args": ["-y", "mcp-memory-graph"]
}
}
}MCP Servers overview
# MCP Memory Graph
[](https://www.npmjs.com/package/mcp-memory-graph)
[](https://www.npmjs.com/package/mcp-memory-graph)
[](./LICENSE)
[](./package.json)
[](https://github.com/YonasValentin/mcp-memory-graph/actions/workflows/ci.yml)
[](https://modelcontextprotocol.io/)
[](https://docs.anthropic.com/en/docs/claude-code)
[](#why-this-exists)
A memory server for [Claude Code](https://docs.anthropic.com/en/docs/claude-code) and any other [MCP](https://modelcontextprotocol.io/) client. It gives your AI assistant a permanent, searchable memory that lives in one SQLite file on your machine. Store a decision today, ask about it next month, and the answer comes back. Everything runs locally: the embedding model, the search index, the knowledge graph. No cloud account, no API key, no per-token cost.
> **License:** source-available and free for noncommercial use ([PolyForm Noncommercial 1.0.0](./LICENSE)): personal projects, hobby, study, research, charity, education, and government. Commercial use requires a paid license ([COMMERCIAL.md](./COMMERCIAL.md)).
**Who it's for:** developers who want Claude (or Cursor, Codex, any MCP client) to remember decisions across sessions. Solo builders and hobbyists use it free. Teams share a knowledge base over git. And anyone who wants to replace a cloud memory service (mem0, Zep, Letta, Supermemory) with something that runs entirely on their own machine.
## What it looks like
Run `npx mcp-memory-graph serve` and you get a local web dashboard for browsing and searching your memory outside Claude.

Search works by meaning, not keywords. The query below ("how do we handle payments") finds the Stripe, GDPR, and Postgres notes even though none of them contains that phrase — each result carries a confidence score and a match-type badge:

Browse and sort the whole store in one table — scope, type, tags, quality score, and how often each memory has been read:

## How it compares
mem0, Zep, Letta, and Supermemory are the usual names for AI memory, and several of them have open-source cores. This one is built around a different default: nothing leaves your machine and there's no infrastructure to run.
| | MCP Memory Graph | Typical hosted memory service |
|---|---|---|
| Where it runs | One SQLite file on your machine | A managed cloud service (some also self-host) |
| Embeddings | Local model in Node (MiniLM), no API key | Usually a cloud embedding API |
| Cost per token | $0 — nothing is metered | Usage-based, or a server you operate |
| Extra infrastructure | None | Often Postgres/pgvector, Redis, or a Python service |
| Claude Code integration | First-class: hooks auto-capture and recall | Manual wiring |
| Benchmarks | Committed corpus + runner, reproducible locally | Mostly self-reported |
The trade-off is honest: a single-process SQLite server tops out in the low hundreds of thousands of vectors (see [Limitations](#limitations)), and a hosted service will scale past that without you thinking about it. If you're a solo developer or a small team who wants memory that's private, free, and zero-ops, that ceiling is rarely the thing you hit first.
## Why this exists
AI assistants forget everything between sessions. Your decisions, your patterns, the bug you fixed last Tuesday: all gone when the conversation ends. This server fixes that.
- Knowledge stored today is searchable tomorrow, next week, next year.
- Search works by meaning, not just keywords. "contract notice period" finds "90-day renewal clause".
- It improves itself. It tracks what gets used, scores quality, extracts learnings from your sessions, and cleans itself up on a schedule.
- It stays private. Local embeddings, no cloud APIs, no telemetry. The one exception is the optional Stop hook, which sends your session transcript to your own locally installed Claude Code (`claude -p`) for learning extraction. You can turn that off with `review_on_stop: false`.
- It works for any kind of knowledge. Engineers store architecture decisions, lawyers store contract patterns, accountants store audit procedures.
## Quick start (about 5 minutes)
You need Node.js 20 or newer and Claude Code installed.
**1. Get the server.** From npm (easiest):
```bash
npm install -g mcp-memory-graph
```
Or from source:
```bash
git clone https://github.com/YonasValentin/mcp-memory-graph.git
cd mcp-memory-graph
npm install
npm run build
```
**2. Register the server with Claude Code** *(optional — `init` in step 3 does this for you at user scope):*
```bash
# npm install:
claude mcp add memory-server -- npx -y mcp-memory-graph
# from source:
claude mcp add memory-server node /path/to/mcp-memory-graph/dist/index.js
```
**3. Install the hooks (recommended):**
```bash
npx mcp-memory-graph init
```
This is the one command that wires everything up: it registers the MCP server (user scope), installs the auto-capture/recall hooks and the usage skill, writes config, and schedules a nightly cleanup. Answer the prompts, or pass `--yes` to accept the defaults. (Skip the auto-registration with `--no-register` if you manage `claude mcp` yourself.)
**4. Try it.** Open a Claude Code session and say:
```
Remember this: we use Postgres for the main app database. Decided 2026-06-01,
because we need JSONB and full-text search in one place.
```
Then, in a later session:
```
What database did we decide to use, and why?
```
Claude searches its memory and answers with the stored decision. That's the whole loop.
**5. Verify the install.** Ask Claude:
```
What memory tools do you have available?
```
It should list all 50 tools (44 `memory_*`, 3 `vault_*`, 3 `core_memory_*`).
The first time a memory tool runs, the embedding model (about 30 MB) downloads from HuggingFace and is cached at `~/.cache/huggingface/`. Every start after that is instant.
To undo everything: `npx mcp-memory-graph uninstall`.
## Upgrading
```bash
npm install -g mcp-memory-graph@latest # or just let `npx -y mcp-memory-graph` pull it
npx mcp-memory-graph init # re-run to refresh on-disk hooks + the nightly schedule
```
Upgrading the package updates the **code** that runs each session (hooks, tools, the server), so server-side fixes apply the next time a tool runs — nothing else needed for those.
But files that `init` wrote earlier are **not** rewritten by a package upgrade: the Claude Code hook registrations in `settings.json` and the macOS launchd plist at `~/Library/LaunchAgents/com.mcp-memory.consolidate.plist`. If you installed before **2.6.3**, that plist used a bare `node` that launchd (whose minimal PATH excludes nvm) could not run — so the nightly consolidation silently never fired. **Re-run `npx mcp-memory-graph init` once after upgrading** to regenerate it with an absolute node path and an output log. Verify it then runs:
```bash
launchctl start com.mcp-memory.consolidate
cat ~/.mcp-memory/consolidation.log # should show a "Consolidation complete" report
```
To clear conflict noise that accumulated while the job wasn't running: `npx mcp-memory-graph consolidate`.
## How it works, in plain terms
When you store a memory, the server turns the text into a vector (a list of 384 numbers that captures its meaning) using a small model that runs inside Node.js. It also indexes the text for keyword search. Both live in one SQLite file, by default at `~/.mcp-memory/memory.db`.
When you search, the server runs both kinds of search at once, merges the rankings, and returns the best matches with a confidence label. A second model can then re-sort the top results for better precision (this is the reranker, on by default for MCP clients, and it costs about 200 ms).
On top of that sits a knowledge graph: memories link to entities and to each other, so the server can answer questions that need more than one hop, like "what does the payment service depend on?". A nightly "dream cycle" deduplicates, re-scores, prunes, and reports gaps.
## The benchmarks, and how to read them
Every number below was produced locally: real embedding model, real production handlers, no network. You can rerun all of them on your own machine.
A quick primer if benchmarks are new to you. A *gold set* is a list of questions where the right answer is known in advance. *Precision@1* asks: was the top result the right one? *Recall@5* asks: was the right answer anywhere in the top 5? *MRR* (mean reciprocal rank) rewards putting the right answer near the top. The *reranker* is a second model that re-sorts the top 50 results; it is slower but noticeably more accurate.
### Local gold set
| | precision@1 | precision@3 | MRR | search p95 |
|---|---|---|---|---|
| Hybrid (RRF) | 0.563 | 0.750 | 0.704 | ~4 ms |
| **+ cross-encoder rerank** (MCP default) | **0.813** | **0.875** | **0.867** | ~230 ms |
Reproduce with `npm run bench`. Full methodology, the gold set itself, and every miss are printed and documented in [`docs/BENCHMARKS.md`](docs/BENCHMARKS.md).
### Scale
With the real embedder and a file-backed SQLite database, retrieval What people ask about mcp-memory-graph
What is YonasValentin/mcp-memory-graph?
+
YonasValentin/mcp-memory-graph is mcp servers for the Claude AI ecosystem. Local-first memory for Claude Code and any MCP client: hybrid search + knowledge graph in one SQLite file, $0/token, no cloud. It has 1 GitHub stars and was last updated today.
How do I install mcp-memory-graph?
+
You can install mcp-memory-graph by cloning the repository (https://github.com/YonasValentin/mcp-memory-graph) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is YonasValentin/mcp-memory-graph safe to use?
+
YonasValentin/mcp-memory-graph has not been audited yet by our security agent. Review the original repository on GitHub before using it in production.
Who maintains YonasValentin/mcp-memory-graph?
+
YonasValentin/mcp-memory-graph is maintained by YonasValentin. The last recorded GitHub activity is from today, with 0 open issues.
Are there alternatives to mcp-memory-graph?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy mcp-memory-graph to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/yonasvalentin-mcp-memory-graph)<a href="https://claudewave.com/repo/yonasvalentin-mcp-memory-graph"><img src="https://claudewave.com/api/badge/yonasvalentin-mcp-memory-graph" alt="Featured on ClaudeWave: YonasValentin/mcp-memory-graph" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
The fastest path to AI-powered full stack observability, even for lean teams.
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!
⭐AI-driven public opinion & trend monitor with multi-platform aggregation, RSS, and smart alerts.🎯 告别信息过载,你的 AI 舆情监控助手与热点筛选工具!聚合多平台热点 + RSS 订阅,支持关键词精准筛选。AI 智能筛选新闻 + AI 翻译 + AI 分析简报直推手机,也支持接入 MCP 架构,赋能 AI 自然语言对话分析、情感洞察与趋势预测等。支持 Docker ,数据本地/云端自持。集成微信/飞书/钉钉/Telegram/邮件/ntfy/bark/slack 等渠道智能推送。