Self-hosted memory for
AI assistants & teams
MCP-compatible memory server with hybrid BM25 + semantic search, backed by PostgreSQL + pgvector. Self-host or use our cloud. Local ONNX embeddings, no external API keys.
Who is it for?
Three reasons people run their own memory server.
Your AI that actually remembers
One memory, all your AI tools. Claude Code, claude.ai, ChatGPT, Cursor — they all read and write the same store. Switch apps mid-task and your context comes with you.
Family knowledge base
Separate workspaces for school, vacations, household — shared with the whole family. Everyone’s AI assistant stays in sync, without group chats or repeated explanations.
Project decisions that outlive the chat
Document why something is built the way it is. “This workaround exists because…” doesn’t get lost when team members change, chats expire, or a new AI session starts.
How Memlord compares
Side-by-side with the most popular self-hosted MCP memory alternatives.
| Memlord | OpenMemory | mcp-memory-service | basic-memory | |
|---|---|---|---|---|
| Search | BM25 + vector + RRF | Vector only (Qdrant) | BM25 + vector + RRF | BM25 + vector |
| Embeddings | Local ONNX, zero config | OpenAI default | Local ONNX, zero config | Local FastEmbed |
| Storage | PostgreSQL + pgvector | PostgreSQL + Qdrant | SQLite-vec | SQLite + Markdown |
| Multi-user | ✓ Full isolation | ✗ single-user | ⚠ agent-ID scoping | ✗ |
| Workspaces | ✓ shared + invites | ⚠ "Apps" namespace | ⚠ tags + conv_id | ✓ per-project flag |
| Authentication | ✓ OAuth 2.1 | ✗ none | ✓ OAuth 2.0 + PKCE | ✗ |
| Web UI | ✓ browse, edit, export | ✓ Next.js dashboard | ✓ graph viz, scoring | ✗ cloud only |
| MCP tools | 10 | 5 | 15+ | ~20 |
| Self-hosted | ✓ single process | ⚠ 3 containers | ✓ | ✓ |
| Time-aware search | ✓ natural language | ⚠ REST only | — | ✓ recent_activity |
| Token efficiency | ✓ progressive disclosure | ✗ | — | ✓ build_context |
| License | AGPL-3.0 / Commercial | Apache 2.0 | Apache 2.0 | AGPL-3.0 |
Get up and running
Two files and one command. Or run bare metal with uv.
No setup needed — already running at app.memlord.com.
Sign up and get your MCP endpoint at app.memlord.com/mcp. Skip to step 2.
# Grab the two files you need curl -O https://raw.githubusercontent.com/MyrikLD/memlord/main/docker-compose.yml curl -O https://raw.githubusercontent.com/MyrikLD/memlord/main/.env.example # Configure BASE_URL and JWT_SECRET mv .env.example .env $EDITOR .env # PostgreSQL + pgvector + app — all in one docker compose up -d
Web UI at http://localhost:8000 · MCP endpoint at /mcp
# Install dependencies uv sync --dev # Download ONNX model (~23 MB) uv run python scripts/download_model.py # Run migrations alembic upgrade head # Start the server memlord
Web UI at http://localhost:8000 · MCP endpoint at /mcp
Run in terminal:
claude mcp add --transport http memlord https://app.memlord.com/mcp
Then inside Claude Code run /mcp, select memlord and
complete the OAuth flow.
Add to claude_desktop_config.json:
{
"mcpServers": {
"memlord": {
"type": "http",
"url": "https://app.memlord.com/mcp"
}
}
} Restart Claude Desktop — it will prompt you to sign in on first use.
macOS: ~/Library/Application
Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Go to claude.ai → Settings → Connectors and add this URL:
https://app.memlord.com/mcp Authorize the OAuth flow when prompted. The server must be publicly reachable — localhost won't work.
Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json
(project):
{
"mcpServers": {
"memlord": {
"url": "https://app.memlord.com/mcp"
}
}
} Restart Cursor — OAuth flow will open automatically on first use.
Go to Settings → Apps → Add and enter this URL:
https://app.memlord.com/mcp Authorize the OAuth flow when prompted. Requires Pro/Plus/Business/Enterprise. The server must be publicly reachable — localhost won't work.
How it works
Each search runs BM25 and vector KNN in parallel, then fuses results for best relevance.
Store typed memories
Save facts, preferences, instructions and feedback with tags. Content is embedded locally on write.
Search by meaning or keywords
Hybrid retrieval finds what you mean even when you don't remember exact wording.
Recall by time
Natural-language date expressions like "last week" or "yesterday" filter results temporally.
Fetch full content on demand
Progressive disclosure keeps context windows lean — expand only the memory you need.
Built to actually work
Under the hood: what makes Memlord reliable, private, and fast.
Hybrid Search
BM25 full-text and vector KNN run in parallel, merged via Reciprocal Rank Fusion. Best of both worlds — exact keyword matches and semantic similarity.
Multi-user & Workspaces
Each user sees only their own memories. Shared workspaces for team knowledge with invite links. Full isolation between users.
OAuth 2.1 Built-in
Full in-process authorization server, always enabled. No external auth dependency. Connect any MCP client securely.
Zero-config Embeddings
Local ONNX model (all-MiniLM-L6-v2, 384d) ships with the server. No Ollama, no OpenAI API key, no internet required for inference.
Web UI
Browse, search, edit and delete memories in the browser. Export and import as JSON. Manage workspace invites. No CLI required.
PostgreSQL Backend
pgvector for embeddings, tsvector for full-text. A production-grade database that scales beyond a single machine’s SQLite.
Progressive Disclosure
Search returns compact snippets by default. Call get_memory(id) only for what you need, keeping token usage low.
Deduplication
Automatically detects near-identical memories before saving. Prevents noise accumulation when the same fact is stored repeatedly.
10 MCP Tools
A complete toolkit for memory management, exposed as MCP tools ready for any compatible AI client.
Dual Licensed
Free for open-source. Commercial license for proprietary deployments.
Free for personal use and open-source projects. If you run a modified version as a network service, you must publish your source code.
For proprietary or closed-source deployments. No copyleft obligations. Contact us to purchase a license.