MemoryVault MCP
A self-hosted, graph-aware memory server for AI assistants that provides persistent memory across sessions with hybrid search and knowledge graph capabilities.
README
MemoryVault MCP
A self-hosted, graph-aware memory server for AI assistants. Built on Cloudflare Workers + D1.
MemoryVault gives AI clients (Claude, ChatGPT, etc.) persistent memory across sessions via the Model Context Protocol (MCP). Store notes, facts, and journal entries. Link related memories into a knowledge graph. Search with hybrid lexical + semantic retrieval.
Features
- 40+ MCP tools — memory CRUD, graph linking, conflict detection, objectives, snapshots, and more
- Hybrid search — lexical + semantic (Vectorize + Workers AI embeddings) with RRF fusion
- Knowledge graph — typed relationships, path finding, neighborhood traversal, inferred links
- Multi-tenant — user accounts with isolated "brains" and per-brain policies
- OAuth + PKCE — standards-based auth for MCP clients, plus legacy bearer token fallback
- Web viewer — browse memories, explore the graph, manage settings at
/view - 6 themes — cyberpunk, light, midnight, solarized, ember, arctic
- Zero external dependencies at runtime (just @modelcontextprotocol/sdk and zod)
Quick Start
- Clone and install
git clone https://github.com/guirguispierre/memoryvault.git
cd memoryvault
npm install
- Configure secrets
cp .dev.vars.example .dev.vars
# Edit .dev.vars with your own secrets
- Set up Cloudflare resources
# Create D1 database
npx wrangler d1 create ai-memory
# Update wrangler.toml with your database_id
# Create KV namespace for rate limiting
npx wrangler kv namespace create RATE_LIMIT_KV
# Update wrangler.toml with the KV namespace id
# Create Vectorize indexes (for semantic search)
npx wrangler vectorize create ai-memory-semantic-v1 --dimensions=768 --metric=cosine
- Initialize database schema
npx wrangler d1 execute ai-memory --local --file=schema.sql
- Run locally
npm run dev
Deploy to Production
# Set secrets
npx wrangler secret put AUTH_SECRET
npx wrangler secret put ADMIN_TOKEN
# Apply schema to remote D1
npx wrangler d1 execute ai-memory --remote --file=schema.sql
# Deploy
npm run deploy
Configuration
| Variable | Required | Description |
|---|---|---|
AUTH_SECRET |
Yes | Signs JWTs and secures legacy bearer auth |
ADMIN_TOKEN |
Yes | Required for POST /register (OAuth client registration) |
OAUTH_REDIRECT_DOMAIN_ALLOWLIST |
No | Comma-separated hostnames for OAuth redirect URIs. localhost and 127.0.0.1 are always allowed |
MCP Integration
Point your MCP client to:
https://<your-worker>.<your-subdomain>.workers.dev/mcp
OAuth mode (recommended): Leave the API key empty. The server responds with OAuth discovery metadata. Your client handles the flow automatically.
Legacy bearer mode: Send Authorization: Bearer <AUTH_SECRET> for simple setups.
Architecture
| Module | Purpose |
|---|---|
src/index.ts |
Worker entry point and HTTP routing |
src/types.ts |
Shared TypeScript types |
src/constants.ts |
Configuration constants |
src/utils.ts |
Pure utility functions |
src/crypto.ts |
PBKDF2, JWT, HMAC utilities |
src/cors.ts |
CORS and security headers |
src/db.ts |
D1 queries and schema migration |
src/auth.ts |
Session management and auth endpoints |
src/oauth.ts |
OAuth protocol (authorization, token, registration) |
src/vectorize.ts |
Semantic search and Vectorize integration |
src/scoring.ts |
Dynamic confidence/importance scoring |
src/tools-schema.ts |
MCP tool definitions and metadata |
src/tools.ts |
MCP tool handler implementations |
src/viewer.ts |
Web viewer UI (/view) |
src/routes.ts |
API and HTML route handlers |
Tech stack: Cloudflare Workers, D1 (SQLite), Vectorize, Workers AI (@cf/baai/bge-base-en-v1.5), MCP SDK
Available MCP Tools
Memory operations: memory_save, memory_get, memory_get_fact, memory_search, memory_list, memory_update, memory_delete, memory_reindex, memory_stats
Graph: memory_link, memory_unlink, memory_links, memory_link_suggest, memory_path_find, memory_subgraph, memory_neighbors, memory_graph_stats, memory_tag_stats
Knowledge management: memory_consolidate, memory_forget, memory_activate, memory_reinforce, memory_decay, memory_conflicts, memory_conflict_resolve, memory_entity_resolve
Trust & policy: memory_source_trust_set, memory_source_trust_get, brain_policy_set, brain_policy_get
Snapshots: brain_snapshot_create, brain_snapshot_list, brain_snapshot_restore
Objectives: objective_set, objective_list, objective_next_actions
Observability: memory_changelog, memory_watch, memory_explain_score, tool_manifest, tool_changelog
Development
npm run dev # Start local worker
npm run type-check # TypeScript check
npm run deploy # Deploy to Cloudflare
Smoke test:
ADMIN_TOKEN=... npm run smoke:oauth-isolation
Notes:
- Semantic search requires Workers AI/Vectorize bindings — use
npx wrangler dev --remotefor full functionality - Local dev uses
--localD1 by default
Contributing
See CONTRIBUTING.md.
License
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.