-
Notifications
You must be signed in to change notification settings - Fork 0
Memory MCP
Halfservers LLC edited this page Jan 22, 2026
·
1 revision
The Memory MCP server provides persistent context management for Claude Code++, enabling Claude to genuinely remember past interactions, preferences, and decisions.
Traditional AI assistants are stateless - each conversation starts fresh. Memory MCP changes this by providing:
- Persistent Storage: Information survives across sessions
- Intelligent Retrieval: Semantic search finds relevant context
- Tiered Architecture: Optimized for different access patterns
- Session Continuity: Resume exactly where you left off
memory_stats
Returns component availability and document counts.
memory_store(
content="User prefers TypeScript over JavaScript",
type="note",
source="conversation:2024-01-15",
tags=["preference", "language"]
)
memory_search(query="TypeScript preference", type="hybrid")
session_save(project_path="/path/to/project")
| Type | Use Case | Examples |
|---|---|---|
code |
Code snippets, implementations | Functions, classes, patterns |
note |
General notes, observations | Preferences, reminders |
conversation |
Conversation excerpts | Important discussions |
reference |
Reference material | Documentation, decisions |
Tags enable filtered retrieval:
- Project tags:
api-gateway,frontend,mobile - Category tags:
preference,decision,error,solution - Technical tags:
typescript,react,auth
Associate memories with specific projects for scoped retrieval:
memory_search(
query="auth implementation",
filters={"project": "api-gateway"}
)
- Claude identifies important information
- Calls
memory_storewith appropriate type/tags - Content stored in SQLite (metadata) + appropriate tier
- Embeddings generated if provider available
- Query triggers search across tiers
- Results merged and ranked
- Access timestamps updated
- Frequently accessed items promoted
- Search for existing memory
- Delete outdated version
- Store corrected version
- References maintained via tags
-
memory_deleteremoves from all tiers - Cascades through storage backends
- Embeddings removed if present
See Memory-MCP-Tools for detailed tool documentation.
| Tool | Purpose |
|---|---|
memory_store |
Store new memories |
memory_search |
Search across all tiers |
memory_recall |
Retrieve by ID |
memory_delete |
Remove memories |
memory_list |
List with filters |
session_save |
Persist session state |
session_restore |
Load session state |
vault_write |
Write to Obsidian vault |
vault_read |
Read from Obsidian vault |
memory_stats |
Health and statistics |
See Memory-MCP-Behavioral-Guidelines for how Claude should use memory.
Key principles:
- Search-first: Always search before answering context questions
- Store selectively: Preferences, decisions, solutions - not everything
- Update proactively: Delete outdated info when things change
- Organize by project: Use consistent project tags
See Memory-Tiers for detailed tier documentation.
| Tier | When to Use |
|---|---|
| Hot (Redis) | Current session context |
| Warm (Graphiti) | Relationship queries ("how does X relate to Y?") |
| Warm (LanceDB) | Semantic similarity ("find similar errors") |
| Cold (SQLite) | Full-text search, metadata queries |
| Cold (livegrep) | Code search across repositories |
| Archive (Vault) | Human-readable documentation |
# Logging
MEMORY_MCP_LOG_LEVEL=INFO
MEMORY_MCP_LOG_FILE=~/.claude-code-pp/logs/memory.log
# Storage paths
SQLITE_PATH=~/.claude-code-pp/memory/sqlite/memories.db
OBSIDIAN_VAULT_PATH=~/.claude-code-pp/memory/vault
# Optional services
REDIS_URL=redis://localhost:6379
NEO4J_URI=bolt://localhost:7687In ~/.claude.json:
{
"mcpServers": {
"memory": {
"command": "/path/to/memory-mcp",
"args": [],
"env": {
"REDIS_URL": "redis://localhost:6379"
}
}
}
}memory_store(
content="User prefers: dark mode, vim keybindings, 2-space indent",
type="note",
source="preferences:editor",
tags=["preference", "editor", "settings"],
project="user-profile"
)memory_store(
content="""
Error: ECONNREFUSED on Redis connection
Cause: Redis not running
Solution: brew services start redis
""",
type="reference",
source="troubleshooting:redis",
tags=["error", "redis", "solution"]
)memory_store(
content="""
Decision: Use JWT for authentication
Rationale: Stateless scaling, microservices compatible
Trade-offs: Need refresh token rotation strategy
Date: 2024-01-15
""",
type="reference",
source="architecture:auth",
tags=["decision", "architecture", "auth", "jwt"],
project="api-gateway"
)# Start of session
session_restore()
memory_list(limit=10) # Recent context
# During work
memory_search(query="auth middleware implementation")
# ... work on code ...
memory_store(content="Implemented rate limiting", ...)
# End of session
session_save(
project_path="/Users/dev/api-gateway",
active_files=["src/auth/middleware.ts"],
context={"current_task": "rate limiting"}
)- Memory-MCP-Tools - Complete tool reference
- Memory-MCP-Behavioral-Guidelines - Usage patterns
- Memory-Tiers - Tier deep dive
- Troubleshooting - Common issues