AI Memory MCP
Optional embedding provider for high-quality semantic search, replacing the local fallback (requires OPENAI_API_KEY).
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AI Memory MCPremember that I prefer dark mode in code editors"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AI Memory MCP
A persistent, searchable memory layer for AI assistants, exposed as an MCP (Model Context Protocol) server. Works with Claude, Cursor, Windsurf, VS Code, Continue, or any other MCP-compatible client. Implements the MVP scope from the AI Memory MCP PRD: CRUD, namespaces, hybrid ranked search, relationships, chat-context assembly, import/export, and optional LLM-powered auto-extraction.
Why this design
Zero required setup. Storage uses Node's built-in
node:sqlite(experimental but stable enough for this), so there's no native module to compile and no external database to run. One file,memory.db, holds everything.Provider-agnostic embeddings. Ships with a dependency-free local hashing embedder so semantic search works out of the box with no API key. Swap in a real embedding provider (OpenAI-compatible endpoint) via env vars when you want production-quality semantic recall — see below.
Auto-extraction is optional. Set
ANTHROPIC_API_KEYto enable thememory_extracttool, which asks Claude to pull memory-worthy facts out of raw conversation text. Without a key, everything else still works; you just callmemory_addexplicitly instead.
Related MCP server: OpenMemory
Install
npm install
npm run buildRequires Node.js >= 22.5 (uses node:sqlite).
Run
npm startThis starts the server on stdio, which is how MCP clients (Claude Desktop, Cursor, etc.) talk to it. You won't see interactive output — clients spawn this process directly.
Example: Claude Desktop config
Add to your claude_desktop_config.json:
{
"mcpServers": {
"ai-memory": {
"command": "node",
"args": ["--experimental-sqlite", "/absolute/path/to/ai-memory-mcp/dist/index.js"],
"env": {
"MEMORY_DB_PATH": "/absolute/path/to/ai-memory-mcp/memory.db",
"DEFAULT_USER_ID": "your-name"
}
}
}
}Configuration (environment variables)
Variable | Default | Purpose |
|
| Path to the SQLite database file |
|
| User id used when a tool call omits |
| (unset → local hash) |
|
| provider default | Endpoint for |
| — | Used when |
| — | Used when |
|
| Remote embedding model name |
|
| Vector dimensionality |
| — | Enables |
Note on the local embedding fallback: it's a deterministic
hashing-trick bag-of-words vector — good enough to demo hybrid ranking and
run fully offline, but it won't catch deep paraphrases the way a real
embedding model will (e.g. it may not recognize "I prefer TypeScript" and
"I love typed JS" as near-duplicates). For real semantic quality in
production, point EMBEDDING_PROVIDER=openai at a real embeddings
endpoint.
Tools exposed
Tool | Maps to PRD section 14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Section 9 automatic extraction, requires |
Resources: memory://stats, memory://recent, memory://important.
Ranking formula (PRD section 16)
final = 0.45 * semantic + 0.25 * importance + 0.15 * recency + 0.10 * frequency + 0.05 * pinrecencydecays exponentially with a ~30 day half-life.frequencyis a log-scaled function of access count (capped so heavy repeat access doesn't dominate).pinis a flat boost for pinned memories.
Tune the weights in src/memoryEngine.ts (WEIGHTS) once you have real
usage data — the PRD flags these defaults as a starting point, not a final
answer.
Deduplication
On memory_add, the new memory's embedding is compared against existing
memories in the same namespace. Above a 0.93 cosine-similarity threshold,
the call updates the existing memory (merging tags/entities, raising
importance) instead of inserting a duplicate. Threshold and dedup scope
live in src/memoryEngine.ts.
What's implemented vs. deferred from the PRD
Implemented (MVP, section 28): persistent storage, hybrid search,
importance/recency/frequency/pin ranking, CRUD, namespaces, relationships,
memory.chat_context, JSON/Markdown import-export, provider-agnostic
embeddings.
Deferred (sections 24–25, "future/nice-to-have"): contradiction detection beyond simple dedup, memory aging/compression/reflection, multimodal memories (voice/image/PDF), third-party syncs (GitHub, Notion, Slack, Calendar, etc.), pgvector/Postgres backend, encryption-at-rest, multi-tenant auth (JWT/OAuth) — the current server assumes a single trusted local client per the typical MCP desktop-app deployment model.
Extending to Postgres + pgvector
The MemoryDB class in src/db.ts is the only place that talks to
storage. To move to Postgres/pgvector for multi-user or team deployments,
reimplement that class against pg with a vector column and an ANN
index, keeping the same method signatures — nothing else in the codebase
needs to change.
Project layout
src/
types.ts shared types (MemoryRecord, SearchResult, etc.)
db.ts SQLite storage layer (node:sqlite)
embeddings.ts provider-agnostic embedding layer + local fallback
extraction.ts optional Anthropic-powered fact extraction
memoryEngine.ts ranking, search, dedup, chat_context, import/export
server.ts MCP tool + resource registration
index.ts stdio entrypointThis server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityCmaintenancePersistent semantic memory server for AI assistants via MCP, enabling long-term context retention and semantic search across conversations.Last updated11MIT
- Alicense-qualityAmaintenanceAI memory engine exposed as an MCP server with structured knowledge capture, entity extraction, and hybrid search for persistent, portable memory across AI tools.Last updated1131MIT
- Alicense-qualityDmaintenanceMulti-tenant memory system MCP server with vector search, relationships, and trust-based access control for AI assistants.Last updated2361MIT
- Flicense-qualityDmaintenanceAn MCP server for managing persistent AI memory using hybrid search (keyword + semantic vector) with SQLite storage and offline-first local embeddings.Last updated
Related MCP Connectors
User-owned memory for AI agents, Copilot, Claude, IDEs, CLIs, and chat apps over remote MCP.
Person-owned, portable AI memory as a remote MCP server, readable and writable by any MCP client.
Cloud-hosted MCP server for durable AI memory
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/pateljeel123/ai-memory-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server