Persistent AI memory with hybrid search and embedded sync.
Mnemo MCP Server
mcp-name: io.github.n24q02m/mnemo-mcp
Persistent AI memory with hybrid search and embedded sync. Open, free, unlimited.
Features
- Hybrid search -- FTS5 full-text + sqlite-vec semantic + reranking for precision
- Knowledge graph -- Automatic entity extraction and relation tracking across memories
- Importance scoring -- LLM-scored 0.0-1.0 per memory for smarter retrieval
- Auto-archive -- Configurable age + importance threshold to keep memory clean
- STM-to-LTM consolidation -- LLM summarization of related memories in a category
- Duplicate detection -- Warns before adding semantically similar memories
- Zero config -- Built-in local Qwen3 embedding + reranking, no API keys needed. Optional cloud providers (Jina AI, Gemini, OpenAI, Cohere)
- Multi-machine sync -- JSONL-based merge sync via embedded rclone (Google Drive, S3, Dropbox)
- Proactive memory -- Tool descriptions guide AI to save preferences, decisions, facts
Quick Start
Claude Code Plugin (Recommended)
claude plugin add n24q02m/mnemo-mcp
MCP Server
Option 1: uvx
{
"mcpServers": {
"mnemo": {
"command": "uvx",
"args": ["mnemo-mcp@latest"],
"env": {
// -- optional: cloud embedding + reranking (Jina AI recommended)
"API_KEYS": "JINA_AI_API_KEY:jina_...",
// -- or: "API_KEYS": "GOOGLE_API_KEY:AIza...,COHERE_API_KEY:co-...",
// -- without API_KEYS, uses built-in local Qwen3 ONNX models (CPU, ~570MB first download)
// -- optional: LiteLLM Proxy (production, selfhosted gateway)
// "LITELLM_PROXY_URL": "http://10.0.0.20:4000",
// "LITELLM_PROXY_KEY": "sk-your-virtual-key",
// -- optional: sync memories across machines via rclone
"SYNC_ENABLED": "true", // default: false
"SYNC_INTERVAL": "300" // auto-sync every 5min (0 = manual only)
}
}
}
}
Option 2: Docker
{
"mcpServers": {
"mnemo": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"--name", "mcp-mnemo",
"-v", "mnemo-data:/data",
"-e", "API_KEYS",
"-e", "SYNC_ENABLED",
"-e", "SYNC_INTERVAL",
"n24q02m/mnemo-mcp:latest"
],
"env": {
"API_KEYS": "JINA_AI_API_KEY:jina_...",
"SYNC_ENABLED": "true",
"SYNC_INTERVAL": "300"
}
}
}
}
Pre-install (optional)
# Pre-download embedding model (~570MB) and validate API keys
uvx mnemo-mcp warmup
# With cloud embedding (validates API key, skips local download if cloud works)
API_KEYS="JINA_AI_API_KEY:jina_..." uvx mnemo-mcp warmup
Sync setup
Sync is fully automatic. Just set SYNC_ENABLED=true and the server handles everything:
- First sync: rclone is auto-downloaded, a browser opens for OAuth authentication
- Token saved: OAuth token is stored locally at
~/.mnemo-mcp/tokens/(600 permissions) - Subsequent runs: Token is loaded automatically -- no manual steps needed
For non-Google Drive providers, set SYNC_PROVIDER and SYNC_REMOTE:
{
"SYNC_ENABLED": "true",
"SYNC_PROVIDER": "dropbox",
"SYNC_REMOTE": "dropbox"
}
Tools
| Tool | Actions | Description |
|---|---|---|
memory |
add, search, list, update, delete, export, import, stats, restore, archived, consolidate |
Core memory CRUD, hybrid search, import/export, archival, and LLM consolidation |
Tools (1)
memoryCore memory CRUD, hybrid search, import/export, archival, and LLM consolidation.Environment Variables
API_KEYSOptional cloud provider API keys for embedding and reranking.SYNC_ENABLEDEnable memory synchronization across machines.SYNC_INTERVALAuto-sync interval in seconds.SYNC_PROVIDERStorage provider for rclone sync (e.g., dropbox, s3).SYNC_REMOTERemote path configuration for rclone.Configuration
{"mcpServers": {"mnemo": {"command": "uvx", "args": ["mnemo-mcp@latest"], "env": {"SYNC_ENABLED": "true", "SYNC_INTERVAL": "300"}}}}