mcp-memory-sqlite
A personal knowledge graph and memory system for AI assistants usingSQLite and vector search. Perfect for giving Claude (or anyMCP-compatible AI) persistent memory across conversations!
Why Use This?
Give your AI assistant a memory! This tool lets Claude (or other AIassistants) remember entities, concepts, and their relationshipsacross conversations. Perfect for:
- ๐ Personal Knowledge Management - Build your own knowledgegraph
- ๐ค AI Assistant Memory - Help Claude remember importantinformation about your projects, preferences, and context
- ๐ Relationship Tracking - Connect ideas, people, projects, andconcepts
- ๐ Smart Search - Find information using text search or semanticsimilarity
Features
- 100% Local & Private: All your data stays on your machine
- Easy Setup: Works out-of-the-box with Claude Desktop
- Flexible Search: Case-insensitive text search that handlesdifferent naming conventions
- Vector Search: Semantic similarity using OpenAI-compatibleembeddings (1536 dimensions)
- Smart Deduplication: Automatically prevents duplicaterelationships
- Simple API: Intuitive tools for creating, searching, andmanaging your knowledge graph
Quick Start
For Claude Desktop users (recommended):
Add this to your Claude Desktop config:
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "mcp-memory-sqlite"]
}
}
}
That's it! Claude can now remember things across conversations.
Installation
If you want to use it in your own project:
npm install mcp-memory-sqlite
# or
pnpm add mcp-memory-sqlite
Configuration
Optional: Customize the database location with an environmentvariable:
SQLITE_DB_PATH: Where to store your data (default:./sqlite-memory.db)
MCP Tools
create_entities
Create or update entities with observations and optional embeddings.
Parameters:
entities: Array of entity objectsname(string): Unique entity identifierentityType(string): Type/category of the entityobservations(string[]): Array of observation stringsembedding(number[], optional): 1536-dimensional vector forsemantic search
Example:
{
"entities": [
{
"name": "Claude",
"entityType": "AI Assistant",
"observations": [
"Created by Anthropic",
"Focuses on being helpful, harmless, and honest"
],
"embedding": [0.1, 0.2, ...] // 1536 dimensions
}
]
}
search_nodes
Search for entities and their relations using text or vectorsimilarity.
Parameters:
query: String for text search OR array of numbers for vectorsimilarity search
Text Search Example:
{
"query": "AI Assistant"
}
Text Search Features:
- Case-insensitive: Searches ignore case differences
- Flexible matching: Automatically handles variations in spacing,underscores, and hyphens
- "JavaScript framework" will match "javascript_framework"
- "web-development" will match "web_development" or "webdevelopment"
- Searches across: Entity names, entity types, and allobservations
Vector Search Example:
{
"query": [0.1, 0.2, 0.3, ...] // 1536 dimensions
}
read_graph
Get recent entities and their relations (returns last 10 entities bydefault).
Parameters: None
create_relations
Create relationships between entities. Duplicate relations (samesource, target, and type) are automatically ignored.
Parameters:
relations: Array of relation objectssource(string): Source entity nametarget(string): Target entity nametype(string): Relationship type
Example:
{
"relations": [
{
"source": "Claude",
"target": "Anthropic",
"type": "created_by"
}
]
}
Note: If you attempt to create the same relation multiple times,only the first one will be stored. This prevents duplicaterelationships in your knowledge graph.
delete_entity
Delete an entity and all associated data (observations and relations).
Parameters:
name(string): Entity name to delete
delete_relation
Delete a specific relation between entities.
Parameters:
source(string): Source entity nametarget(string): Target entity nametype(string): Relationship type
Usage with Claude Desktop
Add to your Claude Desktop configuration:
Minimal configuration (uses default ./sqlite-memory.db):
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "mcp-memory-sqlite"]
}
}
}
With custom database path:
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "mcp-memory-sqlite"],
"env": {
"SQLITE_DB_PATH": "/path/to/your/memory.db"
}
}
}
}
Database Schema
The tool uses SQLite with the sqlite-vec extension for vectoroperations:
Regular Tables
- entities: Stores entity metadata (name, type, creation time)
- observations: Stores observations linked to entities
- relations: Stores relationships between entities
Virtual Table
- entities_vec: Virtual table using vec0 for 1536-dimensionalvector embeddings
Vector Embeddings
The tool expects 1536-dimensional float vectors, compatible with:
- OpenAI text-embedding-ada-002
- OpenAI text-embedding-3-small
- Other models producing 1536-dimensional embeddings
To generate embeddings, you can use:
- OpenAI Embeddings API
- Local embedding models like sentence-transformers
- Other embedding services that produce 1536-dim vectors
Development
# Install dependencies
pnpm install
# Build
pnpm run build
# Run in development mode
pnpm run dev
# Run tests
pnpm test
How It Works
Under the hood, this uses:
- SQLite for fast, reliable local storage
- sqlite-vec for vector similarity search
- better-sqlite3 for Node.js integration
Your data is stored in a single .db file on your computer - nocloud, no external services, completely private.
License
MIT
Credits
Built with:
- better-sqlite3 - FastSQLite driver
- sqlite-vec - Vector searchextension
- tmcp - MCP server framework