io.github.kurovu146/memory-fts
Long-term memory for Claude Code with SQLite FTS5 search and BM25 ranking
ماذا يمكنك أن تفعل مع 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://contextresource for session context
التثبيت
أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: .cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).
claude-memory-ftsclaude mcp add memory-fts -e 'MEMORY_DB_PATH=<MEMORY_DB_PATH>' -- npx -y claude-memory-fts@1.0.1
{
"mcpServers": {
"memory-fts": {
"command": "npx",
"args": [
"-y",
"claude-memory-fts@1.0.1"
],
"env": {
"MEMORY_DB_PATH": "<MEMORY_DB_PATH>"
}
}
}
}
متغيرات البيئة
MEMORY_DB_PATHCustom path to the SQLite database file (default: ~/.claude/memory.db)
التوثيق
مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.
المحتويات
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 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:
- Creates
~/.claude/scripts/memory-context.sh - Adds a
UserPromptSubmithook to~/.claude/settings.json - Top 30 memories are injected into every prompt automatically
CLI Commands
| Command | Description |
|---|---|
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 Variable | Default | Description |
|---|---|---|
MEMORY_DB_PATH | ~/.claude/memory.db | 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-fts
Tools
memory_save
Save a fact to long-term memory.
| Parameter | Type | Required | Description |
|---|---|---|---|
fact | string | yes | The information to remember |
category | string | no | One of: preference, decision, personal, technical, project, workflow, general |
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 |
|---|---|---|---|
keyword | string | yes | Search keyword or phrase |
limit | number | no | Max results (default: 10) |
memory_update
Update a memory's content or category by ID.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | number | yes | Memory ID |
fact | string | no | New content (omit to keep current) |
category | string | no | New category (omit to keep current) |
memory_list
List all saved memories grouped by category.
| Parameter | Type | Required | Description |
|---|---|---|---|
category | string | no | Filter by category |
limit | number | no | Max results (default: 50) |
memory_delete
Delete a memory by ID.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | 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 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
الأسئلة الشائعة
ما هو io.github.kurovu146/memory-fts؟
Long-term memory for Claude Code with SQLite FTS5 search and BM25 ranking
كيف أثبّت io.github.kurovu146/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 من هذه الصفحة في إعدادات MCP الخاصة بهم.
هل يحتاج io.github.kurovu146/memory-fts إلى مفتاح API؟
لا يذكر إدراجه في السجل أي مفتاح أو سر إلزامي. قد تتطلب بعض الميزات حسابًا لدى الخدمة التي يتصل بها.
هل io.github.kurovu146/memory-fts مفتوح المصدر؟
نعم. شيفرته متاحة على GitHub بترخيص MIT.
من يصون io.github.kurovu146/memory-fts؟
ينشره kurovu146. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.
من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.