claude-memory-fts
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://contextresource for session contextZero config — works out of the box, stores data in
~/.claude/memory.db
Install
# Add to Claude Code
claude mcp add memory -- npx claude-memory-fts
# Auto-configure context injection hook (recommended)
npx claude-memory-fts --setup-hookThe --setup-hook command automatically:
Creates
~/.claude/scripts/memory-context.shAdds a
UserPromptSubmithook to~/.claude/settings.jsonTop 30 memories are injected into every prompt automatically
CLI Commands
Command | Description |
| Start MCP server (used by Claude Code) |
| Output top 30 facts (used by hook script) |
| Auto-configure context injection hook |
Configuration
Environment Variable | Default | Description |
|
| Path to the SQLite database file |
Example with custom path:
claude mcp add memory -e MEMORY_DB_PATH=/path/to/my/memory.db -- npx claude-memory-ftsTools
memory_save
Save a fact to long-term memory.
Parameter | Type | Required | Description |
| string | yes | The information to remember |
| string | no | One of: |
memory_search
Hybrid search: runs FTS5 and semantic search in parallel, merges results with RRF. Falls back to LIKE for partial matches.
Parameter | Type | Required | Description |
| string | yes | Search keyword or phrase |
| number | no | Max results (default: 10) |
memory_update
Update a memory's content or category by ID.
Parameter | Type | Required | Description |
| number | yes | Memory ID |
| string | no | New content (omit to keep current) |
| string | no | New category (omit to keep current) |
memory_list
List all saved memories grouped by category.
Parameter | Type | Required | Description |
| string | no | Filter by category |
| number | no | Max results (default: 50) |
memory_delete
Delete a memory by ID.
Parameter | Type | Required | Description |
| number | yes | Memory 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
FTS5 + BM25 and semantic vector similarity run in parallel
Results are merged and deduplicated using Reciprocal Rank Fusion (k=60)
Facts appearing in both lists get naturally boosted
If both return empty, falls back to LIKE substring matching
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 machineEmbeddings 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
git clone https://github.com/kurovu146/claude-memory-mcp.git
cd claude-memory-mcp
npm install
npm run build
npm testLicense
MIT
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kurovu146/claude-memory-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server