MCP Server · Local-First · Open Source

Your AI's
private memory

A local MCP memory server that never phones home.

Get Started View on GitHub
scroll
100%
Local by default
5
MCP tools
Hybrid
Dense + BM25 search
0
Cloud dependencies

Built for intelligence,
designed for privacy.

MemCP gives AI assistants a persistent, searchable memory that lives entirely on your machine — no APIs, no telemetry, no subscriptions.

add_memory

Intelligent Write-time Deduplication

Score-banded deduplication at insert time. Auto, skip, or merge policies. Near-duplicate memories are detected before they pollute your store.

search_memory

Hybrid Dense + BM25 Retrieval

Combines semantic vector search with keyword ranking. Tune with top_k, min_score, compact mode, and full score explainability.

list_memories

Inspect Everything

Browse your entire memory store. See what the AI knows, how it's indexed, and when it was stored. Full transparency, always.

delete_memory / clear_memories

Surgical or Nuclear Removal

Delete a single memory by ID or wipe the entire store. You are always in control of what persists and what doesn't.

From install to memory in under a minute.

01 /

Install with uv

One-line setup. No Docker. No cloud account. Uses your local Python environment.

02 /

Configure Claude Desktop

Drop a JSON block into your Claude Desktop MCP config. The server starts automatically on demand.

03 /

Your AI remembers

Memories are stored locally in Qdrant, embedded with sentence-transformers. Everything stays on your machine.

bash — memcp install
# clone & install
git clone https://github.com/itsmejay80/MemCP
cd memcp
uv venv && source .venv/bin/activate
uv pip install -e .

# run the MCP server
uv run memcp run

INFO: MemCP server starting...
INFO: Qdrant path: ~/.memcp/db
INFO: Embedding model: all-MiniLM-L6-v2
✓ MCP server ready on stdio

One config block.
That's it.

Add MemCP to Claude Desktop's MCP configuration and it starts automatically whenever Claude needs to recall something. Optionally protect it with an auth token.

QDRANT_MODE=local fully embedded, no server
MEMCP_AUTH_TOKEN optional — enforces per-call auth
offline after first model download
{
  "mcpServers": {
    "memcp": {
      "command": "memcp",
      "args": ["run"],
      "env": {
        "QDRANT_MODE":        "local",
        "MEMCP_AUTH_TOKEN":  "your-secret-token"
      }
    }
  }
}

Built on trusted,
proven primitives.

FastMCP

MCP server framework

Qdrant

Embedded vector database

sentence-transformers

Local dense embeddings

rank-bm25

BM25 keyword ranking

uv

Fast Python packaging

Everything is configurable.

Variable Default Description
QDRANT_MODE local Use local (embedded) or remote
QDRANT_PATH ~/.memcp/db Local database directory path
EMBEDDING_MODEL all-MiniLM-L6-v2 Any sentence-transformers model ID
TOP_K 10 Default search result count
MIN_SCORE 0.2 Minimum relevance threshold for results
DEDUPE_SKIP_THRESHOLD 0.92 Score above which deduplication applies
DEDUPE_MERGE_THRESHOLD 0.97 Score above which memories auto-merge
MEMCP_AUTH_TOKEN If set, enforces token auth on all tools
ATOMIC_EXTRACT true Enable local sentence-based fact extraction