Back to Directory/Developer Tools

io.github.n24q02m/mnemo-mcp

Persistent AI memory with hybrid search (FTS5 + semantic) and cross-machine sync.

Developer ToolsPythonv1.9.1

Mnemo MCP Server

mcp-name: io.github.n24q02m/mnemo-mcp

Persistent AI memory with hybrid search and embedded sync. Open, free, unlimited.

CI codecov PyPI Docker License: MIT

Python SQLite MCP semantic-release Renovate

<a href="https://glama.ai/mcp/servers/n24q02m/mnemo-mcp"> </a>

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)

Via marketplace (includes skills: /session-handoff, /knowledge-audit):

bash
/plugin marketplace add n24q02m/claude-plugins
/plugin install mnemo-mcp@claude-plugins

Or install this plugin only:

bash
/plugin marketplace add n24q02m/mnemo-mcp
/plugin install mnemo-mcp

Configure env vars in ~/.claude/settings.local.json or shell profile. See Environment Variables.

MCP Server

Option 1: uvx

jsonc
{
  "mcpServers": {
    "mnemo": {
      "command": "uvx",
      "args": ["--python", "3.13", "mnemo-mcp@latest"]
    }
  }
}
<details> <summary>Other MCP clients (Cursor, Codex, Gemini CLI)</summary>
jsonc
// Cursor (~/.cursor/mcp.json), Windsurf, Cline, Amp, OpenCode
{
  "mcpServers": {
    "mnemo": {
      "command": "uvx",
      "args": ["--python", "3.13", "mnemo-mcp@latest"]
    }
  }
}
toml
# Codex (~/.codex/config.toml)
[mcp_servers.mnemo]
command = "uvx"
args = ["--python", "3.13", "mnemo-mcp@latest"]
</details>

Option 2: Docker

jsonc
{
  "mcpServers": {
    "mnemo": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "--name", "mcp-mnemo",
        "-v", "mnemo-data:/data",
        "-e", "API_KEYS",
        "-e", "SYNC_ENABLED",
        "n24q02m/mnemo-mcp:latest"
      ]
    }
  }
}

Configure env vars in ~/.claude/settings.local.json or your shell profile. See Environment Variables below.

Pre-install (optional)

Pre-download the embedding model (~570 MB) to avoid first-run delays. Use the setup MCP tool after connecting:

setup(action="warmup")

Sync setup

Sync is fully automatic. Just set SYNC_ENABLED=true and the server handles everything:

  1. First sync: rclone is auto-downloaded, a browser opens for OAuth authentication
  2. Token saved: OAuth token is stored locally at ~/.mnemo-mcp/tokens/ (600 permissions)
  3. Subsequent runs: Token is loaded automatically -- no manual steps needed

For non-Google Drive providers, set SYNC_PROVIDER and SYNC_REMOTE:

jsonc
{
  "SYNC_ENABLED": "true",
  "SYNC_PROVIDER": "dropbox",
  "SYNC_REMOTE": "dropbox"
}

Tools

ToolActionsDescription
memoryadd, search, list, update, delete, export, import, stats, restore, archived, consolidateCore memory CRUD, hybrid search, import/export, archival, and LLM consolidation
configstatus, sync, setServer status, trigger sync, update settings
setupwarmup, setup_syncPre-download embedding model, authenticate sync provider
help--Full documentation for any tool

MCP Resources

URIDescription
mnemo://statsDatabase statistics and server status
mnemo://recent10 most recently updated memories

MCP Prompts

PromptParametersDescription
save_summarysummaryGenerate prompt to save a conversation summary as memory
recall_contexttopicGenerate prompt to recall relevant memories about a topic

Configuration

VariableRequiredDefaultDescription
API_KEYSNo--API keys (ENV:key,ENV:key). Enables cloud embedding + reranking
LITELLM_PROXY_URLNo--LiteLLM Proxy URL. Enables proxy mode
LITELLM_PROXY_KEYNo--LiteLLM Proxy virtual key
DB_PATHNo~/.mnemo-mcp/memories.dbDatabase location
EMBEDDING_BACKENDNoauto-detectlitellm (cloud) or local (Qwen3)
EMBEDDING_MODELNoauto-detectLiteLLM embedding model name
EMBEDDING_DIMSNo0 (auto=768)Embedding dimensions
RERANK_ENABLEDNotrueEnable reranking (improves search precision)
RERANK_BACKENDNoauto-detectlitellm (cloud) or local (Qwen3)
RERANK_MODELNoauto-detectLiteLLM reranker model name
RERANK_TOP_NNo10Number of top results to keep after reranking
LLM_MODELSNogemini/gemini-3-flash-previewLLM model for graph extraction, importance scoring, consolidation
ARCHIVE_ENABLEDNotrueEnable auto-archiving of old low-importance memories
ARCHIVE_AFTER_DAYSNo90Days before a memory is eligible for auto-archive
ARCHIVE_IMPORTANCE_THRESHOLDNo0.3Memories below this importance score are auto-archived
DEDUP_THRESHOLDNo0.9Similarity threshold to block duplicate memories
DEDUP_WARN_THRESHOLDNo0.7Similarity threshold to warn about similar memories
RECENCY_HALF_LIFE_DAYSNo7Half-life for temporal decay in search scoring
SYNC_ENABLEDNofalseEnable rclone sync
SYNC_PROVIDERNodriverclone provider type (drive, dropbox, s3, etc.)
SYNC_REMOTENogdriverclone remote name
SYNC_FOLDERNomnemo-mcpRemote folder
SYNC_INTERVALNo300Auto-sync interval in seconds (0=manual)
LOG_LEVELNoINFOLogging level

Embedding & Reranking

Both embedding and reranking are always available -- local models are built-in and require no configuration.

  • Jina AI (recommended): A single JINA_AI_API_KEY enables both embedding and reranking
  • Embedding priority: Jina AI > Gemini > OpenAI > Cohere. Local Qwen3 fallback always available
  • Reranking priority: Jina AI > Cohere. Local Qwen3 fallback always available
  • GPU auto-detection: CUDA/DirectML auto-detected, uses GGUF models for better performance
  • All embeddings stored at 768 dims. Switching providers never breaks the vector table

Security

  • Graceful fallbacks -- Cloud → Local embedding, no cross-mode fallback
  • Sync token security -- OAuth tokens stored at ~/.mnemo-mcp/tokens/ with 600 permissions
  • Input validation -- Sync provider, folder, remote validated against allowlists
  • Error sanitization -- No credentials in error messages

Build from Source

bash
git clone https://github.com/n24q02m/mnemo-mcp.git
cd mnemo-mcp
uv sync
uv run mnemo-mcp

Compatible With

Claude Code Claude Desktop Cursor VS Code Copilot Antigravity Gemini CLI OpenAI Codex OpenCode

Also by n24q02m

ServerDescription
wet-mcpWeb search, content extraction, and documentation indexing
better-notion-mcpMarkdown-first Notion API with 9 composite tools
better-email-mcpEmail (IMAP/SMTP) with multi-account and auto-discovery
better-godot-mcpGodot Engine 4.x with 18 tools for scenes, scripts, and shaders
better-telegram-mcpTelegram dual-mode (Bot API + MTProto) with 6 composite tools
better-code-review-graphKnowledge graph for token-efficient code reviews

Contributing

See CONTRIBUTING.md.

License

MIT -- See LICENSE.

Learn More