trackmcp
Back to directory
kurovu146

claude-memory-mcp

View on GitHub

Long-term memory MCP server for Claude Code with SQLite FTS5 full-text search

0 stars TypeScriptOthers Updated Apr 11, 2026

Documentation

claude-memory-fts

Long-term memory MCP server for Claude Code. Stores facts in a local SQLite database with hybrid search (FTS5 + semantic vector similarity) and automatic context injection.

Features

  • Hybrid search — FTS5 keyword search + semantic vector similarity, merged via Reciprocal Rank Fusion (RRF)
  • Semantic understanding — find memories by meaning, not just keywords (powered by all-MiniLM-L6-v2 embeddings)
  • Auto context injection — top 30 most important memories injected into every prompt via hook
  • Importance ranking — facts ranked by access frequency, recency decay, and category weight
  • Access tracking — tracks how often each memory is accessed
  • Upsert — automatically updates existing facts instead of duplicating
  • Categorized — organize by type: preference, decision, technical, project, workflow, personal, general
  • MCP Resources — exposes `memory://context` resource for session context
  • Zero config — works out of the box, stores data in `~/.claude/memory.db`

Install

bash
# Add to Claude Code
claude mcp add memory -- npx claude-memory-fts

# Auto-configure context injection hook (recommended)
npx claude-memory-fts --setup-hook

The `--setup-hook` command automatically:

1. Creates `~/.claude/scripts/memory-context.sh`

2. Adds a `UserPromptSubmit` hook to `~/.claude/settings.json`

3. Top 30 memories are injected into every prompt automatically

CLI Commands

CommandDescription
`npx claude-memory-fts`Start MCP server (used by Claude Code)
`npx claude-memory-fts --context`Output top 30 facts (used by hook script)
`npx claude-memory-fts --setup-hook`Auto-configure context injection hook

Configuration

Environment VariableDefaultDescription
`MEMORY_DB_PATH``~/.claude/memory.db`Path to the SQLite database file

Example with custom path:

bash
claude mcp add memory -e MEMORY_DB_PATH=/path/to/my/memory.db -- npx claude-memory-fts

Tools

`memory_save`

Save a fact to long-term memory.

ParameterTypeRequiredDescription
`fact`stringyesThe information to remember
`category`stringnoOne of: `preference`, `decision`, `personal`, `technical`, `project`, `workflow`, `general`

Hybrid search: runs FTS5 and semantic search in parallel, merges results with RRF. Falls back to LIKE for partial matches.

ParameterTypeRequiredDescription
`keyword`stringyesSearch keyword or phrase
`limit`numbernoMax results (default: 10)

`memory_update`

Update a memory's content or category by ID.

ParameterTypeRequiredDescription
`id`numberyesMemory ID
`fact`stringnoNew content (omit to keep current)
`category`stringnoNew category (omit to keep current)

`memory_list`

List all saved memories grouped by category.

ParameterTypeRequiredDescription
`category`stringnoFilter by category
`limit`numbernoMax results (default: 50)

`memory_delete`

Delete a memory by ID.

ParameterTypeRequiredDescription
`id`numberyesMemory ID

Resources

`memory://context`

MCP resource exposing top 30 facts ranked by importance score:

  • Access frequency — frequently accessed facts score higher (capped at 20 points)
  • Recency — recently updated facts score higher (10 points, decays over 90 days)
  • Category weight — preference/decision (3), workflow/technical (2), project/personal (1), general (0)

How It Works

Search Pipeline

1. FTS5 + BM25 and semantic vector similarity run in parallel

2. Results are merged and deduplicated using Reciprocal Rank Fusion (k=60)

3. Facts appearing in both lists get naturally boosted

4. If both return empty, falls back to LIKE substring matching

5. Access count is tracked on every search hit

Embeddings

  • Model: all-MiniLM-L6-v2 (384 dimensions, ~23MB)
  • Generated locally via `@xenova/transformers` — no API calls, no data leaves your machine
  • Embeddings are created on save and backfilled on server startup
  • Cosine similarity with 0.3 threshold to filter noise

Storage

  • SQLite with WAL mode for fast concurrent reads/writes
  • FTS5 virtual table synced via triggers for real-time full-text indexing
  • Embeddings stored as BLOB columns alongside facts

Development

bash
git clone https://github.com/kurovu146/claude-memory-mcp.git
cd claude-memory-mcp
npm install
npm run build
npm test

License

MIT

Frequently asked questions

What is claude-memory-mcp?

claude-memory-mcp is Long-term memory MCP server for Claude Code with SQLite FTS5 full-text search

How do I install claude-memory-mcp?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is claude-memory-mcp open source?

Yes — it is hosted on GitHub at https://github.com/kurovu146/claude-memory-mcp.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP