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"]
}
}
}MCP Servers overview
# 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."
### TroubWhat people ask about memory-vault
What is MihaiBuilds/memory-vault?
+
MihaiBuilds/memory-vault is mcp servers for the Claude AI ecosystem. A local-first AI memory system with hybrid search, MCP integration, and a knowledge graph. It has 60 GitHub stars and its last recorded update is dated 2026-08-24.
How do I install memory-vault?
+
You can install memory-vault by cloning the repository (https://github.com/MihaiBuilds/memory-vault) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is MihaiBuilds/memory-vault safe to use?
+
Our security agent has analyzed MihaiBuilds/memory-vault and assigned a Trust Score of 95/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.
Who maintains MihaiBuilds/memory-vault?
+
MihaiBuilds/memory-vault is maintained by MihaiBuilds. The last recorded GitHub activity is dated 2026-08-24, with 9 open issues.
Are there alternatives to memory-vault?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy memory-vault to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](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>More 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!