io.github.kurovu146/memory-fts

Official registry Developer tools

Long-term memory for Claude Code with SQLite FTS5 search and BM25 ranking

What can you do with io.github.kurovu146/memory-fts?

  • 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

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

NPM package claude-memory-fts
Claude Code
claude mcp add memory-fts -e 'MEMORY_DB_PATH=<MEMORY_DB_PATH>' -- npx -y claude-memory-fts@1.0.1
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "memory-fts": {
            "command": "npx",
            "args": [
                "-y",
                "claude-memory-fts@1.0.1"
            ],
            "env": {
                "MEMORY_DB_PATH": "<MEMORY_DB_PATH>"
            }
        }
    }
}

Environment variables

  • MEMORY_DB_PATH Custom path to the SQLite database file (default: ~/.claude/memory.db)

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. claude-memory-fts
  2. Features
  3. Install
  4. CLI Commands
  5. Configuration
  6. Tools
  7. Resources
  8. How It Works
  9. Development
  10. License

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

# 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-ftsStart MCP server (used by Claude Code)
npx claude-memory-fts --contextOutput top 30 facts (used by hook script)
npx claude-memory-fts --setup-hookAuto-configure context injection hook

Configuration

Environment VariableDefaultDescription
MEMORY_DB_PATH~/.claude/memory.dbPath 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-fts

Tools

memory_save

Save a fact to long-term memory.

ParameterTypeRequiredDescription
factstringyesThe information to remember
categorystringnoOne 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
keywordstringyesSearch keyword or phrase
limitnumbernoMax results (default: 10)
memory_update

Update a memory's content or category by ID.

ParameterTypeRequiredDescription
idnumberyesMemory ID
factstringnoNew content (omit to keep current)
categorystringnoNew category (omit to keep current)
memory_list

List all saved memories grouped by category.

ParameterTypeRequiredDescription
categorystringnoFilter by category
limitnumbernoMax results (default: 50)
memory_delete

Delete a memory by ID.

ParameterTypeRequiredDescription
idnumberyesMemory 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

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 io.github.kurovu146/memory-fts?

Long-term memory for Claude Code with SQLite FTS5 search and BM25 ranking

How do I install io.github.kurovu146/memory-fts?

It runs on your machine. In Claude Code: claude mcp add memory-fts -e 'MEMORY_DB_PATH=<MEMORY_DB_PATH>' -- npx -y claude-memory-fts@1.0.1. For other clients, paste the JSON configuration from this page into their MCP settings.

Does io.github.kurovu146/memory-fts need an API key?

Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.

Is io.github.kurovu146/memory-fts open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains io.github.kurovu146/memory-fts?

It is published by kurovu146. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.