cldmemory
cldmemory is a human-like memory system utilizing the Qdrant vector database and OpenAI embeddings. It supports six types of memory: episodic, semantic, procedural, emotional, sensory, and working memory. It features importance scoring, emotional valence, and allows for automatic project tracking and custom metadata settings.
GitHub Stars
9
User Rating
Not Rated
Forks
4
Issues
2
Views
1
Favorites
0
MCP Memory Server
A human-like memory system using Qdrant vector database and OpenAI embeddings, accessible through the Model Context Protocol (MCP).
Features
Human-like Memory Types:
- Episodic (personal experiences)
- Semantic (facts and knowledge)
- Procedural (how to do things)
- Emotional (emotional memories)
- Sensory (sensory impressions)
- Working (short-term memory)
Memory Characteristics:
- Importance scoring (0-1)
- Emotional valence (-1 to 1)
- Associations between memories
- Context (location, people, mood, activity)
- Decay factor and access tracking
- Automatic project tracking (hostname:folder)
- Custom metadata via environment variables
Setup
Install dependencies:
npm install
Configure environment:
cp .env.example .env # Edit .env with your settings
New environment variables:
MEMORY_METADATA
- Optional metadata to include with all memories- Format:
"key:value,key2:value2"
or just"value"
(stored asuser:value
) - Examples:
"server:prod,user:john"
or"davidstrejc"
- Format:
Start Qdrant (if using local):
docker run -p 6333:6333 -p 6334:6334 \ --name qdrant-memory \ -v $(pwd)/qdrant_storage:/qdrant/storage:z \ qdrant/qdrant
Note: Qdrant URL supports both HTTP and HTTPS protocols (e.g.,
https://your-qdrant-instance.com:6333
)Build the project:
npm run build
Testing with Claude Code
Use the MCP configuration file with Claude Code CLI:
# Basic usage
claude -p "Store a memory about today's meeting" --mcp-config claude-code-mcp.json
# Skip permissions for automation
claude -p "Search my memories" --mcp-config claude-code-mcp.json --dangerously-skip-permissions
# List available tools
claude -p "List available memory tools" --mcp-config claude-code-mcp.json
Available MCP tools (prefixed with mcp__memory__
):
store_memory
- Store a new memorysearch_memories
- Search for memories using natural language (returns full details)quick_search_memories
- Fast search returning only summaries for browsingget_memory
- Retrieve a specific memory by IDupdate_memory
- Update an existing memorydelete_memory
- Delete a memoryanalyze_memories
- Analyze memory patterns
Example Usage
IMPORTANT: All MCP tools expect JSON objects as parameters, NOT plain strings.
// ✅ CORRECT - Store a memory with JSON object
store_memory({
"content": "Had lunch with Sarah at the Italian restaurant",
"type": "episodic",
"context": {
"location": "Downtown Italian restaurant",
"people": ["Sarah"],
"mood": "happy"
},
"importance": 0.8
})
// ❌ WRONG - Do not pass plain strings
store_memory("Had lunch with Sarah") // This will fail!
// ✅ CORRECT - Search with JSON object
search_memories({
"query": "restaurant experiences",
"limit": 5,
"includeAssociations": true
})
// ❌ WRONG - Do not pass plain strings
search_memories("restaurant experiences") // This will fail!
// ✅ CORRECT - Quick search for browsing (returns only summaries)
quick_search_memories({
"query": "programming tips",
"limit": 50 // Can handle more results since only summaries
})
// Then get full details of a specific memory
get_memory({
"id": "abc-123-def-456" // Use ID from quick search results
})
New Features
Automatic Project Tracking: All memories now include a project
field that captures the hostname and current working directory (e.g., "myserver:/home/user/project"
).
Environment Metadata: Set the MEMORY_METADATA
environment variable to automatically include custom metadata in all memories:
export MEMORY_METADATA="server:production,team:engineering,region:us-west"
This metadata is automatically:
- Added to all new memories
- Included in memory embeddings for better search relevance
- Used in search queries to improve context matching
Memory Analytics Tool
A comprehensive CLI tool is included for analyzing memories:
# Quick start
./memory-analytics count # Count memories by agent
./memory-analytics tags # Analyze tag usage
./memory-analytics compare # Compare agents
./memory-analytics all # Run all analytics
See docs/MEMORY_ANALYTICS.md for detailed documentation.
Development
npm run dev
- Run in development modenpm run build
- Build TypeScriptnpm run test
- Run testsnpm run lint
- Run linternpm run typecheck
- Type check
I love to understand. Understand systems. And there are plenty of systems here on GitHub ;-)
58
Followers
81
Repositories
12
Gists
0
Total Contributions