A local-first AI memory system with hybrid search, MCP integration, and a knowledge graph.
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
claude mcp add memory-vault -- python -m -e{
"mcpServers": {
"memory-vault": {
"command": "python",
"args": ["-m", "spacy"]
}
}
}Resumen de MCP Servers
# Memory Vault
[](https://github.com/MihaiBuilds/memory-vault/actions/workflows/test.yml)
[](LICENSE)
[](https://www.python.org/downloads/)
[](https://github.com/MihaiBuilds/memory-vault/releases/latest)
[](https://github.com/MihaiBuilds/memory-vault/pkgs/container/memory-vault)
[](https://registry.modelcontextprotocol.io/?q=mihaibuilds)
[](https://github.com/astral-sh/ruff)
**The memory database for AI applications.** Self-hosted Postgres + pgvector with hybrid search, MCP-native, and a knowledge graph baked in.
Every conversation with Claude or ChatGPT starts from zero. No memory of what you built last week, what decisions you made last month, what problems you've already solved. You either re-explain everything from scratch, or paste in a wall of context and hope it fits in the window.
Memory Vault is the persistent layer underneath. It stores what you want your AI to remember — decisions, conversations, notes, project context — in a single Postgres database with hybrid semantic + keyword search. Claude can recall and store memories during any session via MCP, you can chat with your own memories through a local LLM, or you can build your own AI tool on top of the REST API.
---

> _Chat with your vault using a local LLM. Every answer shows the exact memories it was grounded in — click any source to verify._
---
## Status
**v1.0 — released 2026-05-07.** First stable release of Memory Vault. M1-M7 (hybrid search, Docker, MCP, REST API, dashboard, knowledge graph, local LLM chat) all shipped and stable.
See [CHANGELOG.md](CHANGELOG.md) for the full per-release history, or [GitHub Releases](https://github.com/MihaiBuilds/memory-vault/releases) for the platform-native view.
Semver from here forward — the public surface (REST API endpoints, MCP tool signatures, DB schema) is stable. Breaking changes only on a major version bump.
---
## Quick Start (Docker)
```bash
git clone https://github.com/MihaiBuilds/memory-vault.git
cd memory-vault
docker compose up -d
```
That's it. PostgreSQL + pgvector + Memory Vault, running and ready. Migrations run automatically on first start.
```bash
# Check it's working
docker compose exec app memory-vault status
# Ingest a file
docker compose exec app memory-vault ingest /path/to/file.md --space default
# Search
docker compose exec app memory-vault search "your query here"
```
Data persists in a Docker volume — `docker compose down` and `up` again, your memories are still there.
Open `http://localhost:8000` in your browser to use the dashboard (Chat, Search, Browse, Graph, Ingest, Stats).
> **Windows users:** clone into WSL2, not a Windows path, and read [docs/windows.md](docs/windows.md) if you hit a line-ending error.
---
## No-Docker quick start
If you prefer running without Docker:
### Prerequisites
- Python 3.11+
- PostgreSQL 16 with [pgvector](https://github.com/pgvector/pgvector) extension
- [uv](https://docs.astral.sh/uv/) (recommended) or `pip` + `venv`
### Setup with uv (recommended)
```bash
# Clone
git clone https://github.com/MihaiBuilds/memory-vault.git
cd memory-vault
# Create virtual environment and install dependencies
uv sync
# Install the spaCy language model
uv run python -m spacy download en_core_web_sm
# Configure
cp .env.example .env
# Edit .env with your PostgreSQL credentials
# Run migrations
uv run memory-vault migrate
# Verify
uv run memory-vault status
```
### Setup with pip + venv (fallback)
If you don't want to install `uv`, plain `pip` + `venv` works too:
```bash
# Clone
git clone https://github.com/MihaiBuilds/memory-vault.git
cd memory-vault
# Create virtual environment
python -m venv .venv
source .venv/bin/activate
# Install dependencies
pip install -e .
# Install the spaCy language model
python -m spacy download en_core_web_sm
# Configure
cp .env.example .env
# Edit .env with your PostgreSQL credentials
# Run migrations
memory-vault migrate
# Verify
memory-vault status
```
### Usage
If you set up with `uv`, prefix commands with `uv run` (e.g. `uv run memory-vault search ...`). If you used `pip + venv`, activate the venv first (`source .venv/bin/activate`) and run commands directly:
```bash
# Ingest a file
memory-vault ingest notes.md --space default
# Search memories
memory-vault search "hybrid search architecture" --limit 5
# Check status
memory-vault status
```
---
## Features
- **Hybrid search** — semantic similarity + keyword matching combined, so you find the right memory even when you don't remember the exact words
- **MCP integration** — four tools (`recall`, `remember`, `forget`, `memory_status`) that Claude can use natively during any session
- **Local LLM chat** — query your own memories through LM Studio without sending anything to the cloud, with sources shown for every answer
- **Knowledge graph** — entities and relationships extracted automatically, connections between things emerge over time
- **Memory spaces** — separate namespaces for different projects or domains
- **REST API** — integrate AI memory into any application
- **One-command setup** — `docker compose up` and it's running
- **Self-hosted** — your data stays on your machine, always
---
## Architecture

> _Postgres + pgvector at the core. The same memory layer is reachable from MCP (Claude), the dashboard chat page, the REST API, and any app you build on top._
Three things are deliberate about this stack:
- **One database, not two.** Vector embeddings, full-text indexes, and relational data all live in Postgres. No separate vector DB to keep in sync.
- **Frontend-agnostic.** The dashboard is one consumer of the API, not the API itself. MCP, REST, CLI, and your own apps are equal first-class clients.
- **CPU-only by default.** No GPU required. Embeddings (sentence-transformers) and entity extraction (spaCy) both run on a normal laptop.
---
## Tech Stack
- **PostgreSQL 16 + pgvector** — vector storage and hybrid search in one database
- **Python 3.11+** — async backend with psycopg 3
- **sentence-transformers** — `all-MiniLM-L6-v2` embeddings (384-d, runs on CPU)
- **spaCy** — `en_core_web_sm` for entity extraction (CPU-only, no LLM calls)
- **FastAPI** — REST API with bearer auth, rate limiting, and OpenAPI docs
- **React 19 + Vite + TanStack Query** — web dashboard, baked into the main Docker image
- **Cytoscape.js + cose-bilkent** — force-directed knowledge graph rendering on the dashboard
- **Docker** — one-command deployment with `docker compose up`
- **MCP** — Claude integration via FastMCP (stdio transport)
---
## MCP Integration (Claude Desktop & Claude Code)
Memory Vault exposes four tools via the [Model Context Protocol](https://modelcontextprotocol.io/) so Claude can read and write memories during any conversation.
### Tools
| Tool | Description |
|------|-------------|
| `recall` | Search memories with hybrid search (vector + full-text + RRF) |
| `remember` | Store a new memory — auto-classified and embedded |
| `forget` | Soft-delete a memory by chunk ID |
| `memory_status` | Database health, chunk counts, embedding model info |
### Resources
| Resource | Description |
|----------|-------------|
| `memory://spaces` | List all memory spaces with chunk counts |
| `memory://stats` | Current system statistics |
### Setup — Claude Code
Make sure you've completed the [No-Docker quick start](#no-docker-quick-start) above (uv sync or pip install, plus the spaCy model download) so the `memory_vault` package is installed.
**Project scope** — add to your project's `.mcp.json`:
```json
{
"mcpServers": {
"memory-vault": {
"command": "/path/to/memory-vault/.venv/bin/python",
"args": ["-m", "memory_vault.mcp"],
"env": {
"DB_HOST": "localhost",
"DB_PORT": "5432",
"DB_NAME": "memory_vault",
"DB_USER": "memory_vault",
"DB_PASSWORD": "memory_vault"
}
}
}
}
```
**Global scope** — to make memory-vault available in every Claude Code session, add the same server block to `~/.claude/.mcp.json`, then add `memory-vault` to `enabledMcpjsonServers` in `~/.claude/settings.json`:
```json
{
"enabledMcpjsonServers": ["memory-vault"]
}
```
Verify with `claude mcp list` — `memory-vault` should show `connected`.
### Setup — Claude Desktop
Add the same server block to Claude Desktop's config (`Settings → Developer → Edit Config`), then restart Claude Desktop.
### Docker Users
If you're running Memory Vault via Docker, use `DB_HOST: "127.0.0.1"` and make sure port 5432 is exposed in your `docker-compose.yml`:
```json
{
"mcpServers": {
"memory-vault": {
"command": "/path/to/memory-vault/.venv/bin/python",
"args": ["-m", "memory_vault.mcp"],
"env": {
"DB_HOST": "127.0.0.1",
"DB_PORT": "5432",
"DB_NAME": "memory_vault",
"DB_USER": "memory_vault",
"DB_PASSWORD": "memory_vault"
}
}
}
}
```
> The MCP server runs on the host (not inside Docker) and connects to the PostgreSQL container over the exposed port.
### Verify It Works
Once configured, Claude will have access to the memory tools. Try:
> "Use memory_status to check the memory system."
> "Remember that we chose Redis for the session cache."
> "Recall everything about hybrid search."
### TroubLo que la gente pregunta sobre memory-vault
¿Qué es MihaiBuilds/memory-vault?
+
MihaiBuilds/memory-vault es mcp servers para el ecosistema de Claude AI. A local-first AI memory system with hybrid search, MCP integration, and a knowledge graph. Tiene 60 estrellas en GitHub y su última actualización registrada es del 2026-08-24.
¿Cómo se instala memory-vault?
+
Puedes instalar memory-vault clonando el repositorio (https://github.com/MihaiBuilds/memory-vault) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar MihaiBuilds/memory-vault?
+
Nuestro agente de seguridad ha analizado MihaiBuilds/memory-vault y le ha asignado un Trust Score de 95/100 (tier: Verified). Revisa el desglose completo de comprobaciones superadas y flags en esta página.
¿Quién mantiene MihaiBuilds/memory-vault?
+
MihaiBuilds/memory-vault es mantenido por MihaiBuilds. La última actividad registrada en GitHub es del 2026-08-24, con 9 issues abiertos.
¿Hay alternativas a memory-vault?
+
Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.
Despliega memory-vault en tu cloud
Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.
¿Mantienes este repo? Añade un badge a tu README
Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.
[](https://claudewave.com/repo/mihaibuilds-memory-vault)<a href="https://claudewave.com/repo/mihaibuilds-memory-vault"><img src="https://claudewave.com/api/badge/mihaibuilds-memory-vault" alt="Featured on ClaudeWave: MihaiBuilds/memory-vault" width="320" height="64" /></a>Más MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
The fastest path to AI-powered full stack observability, even for lean teams.
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!