Hippocampus Memory
FreeNot checkedMCP-compliant server for persistent hippocampus-style memory management with semantic search
About
MCP-compliant server for persistent hippocampus-style memory management with semantic search
README
🧠 Hippocampus Memory MCP Server
Persistent, Semantic Memory for Large Language Models
Features • Installation • Quick Start • Documentation • Architecture
📖 Overview
A Python-based Model Context Protocol (MCP) server that gives LLMs persistent, hippocampus-inspired memory across sessions. Store, retrieve, consolidate, and forget memories using semantic similarity search powered by vector embeddings.
Why Hippocampus? Just like the human brain's hippocampus consolidates short-term memories into long-term storage, this server intelligently manages LLM memory through biological patterns:
- 🔄 Consolidation - Merge similar memories to reduce redundancy
- 🧹 Forgetting - Remove outdated information based on age/importance
- 🔍 Semantic Retrieval - Find relevant memories through meaning, not keywords
✨ Features
| Feature | Description |
|---|---|
| 🗄️ Vector Storage | FAISS-powered semantic similarity search |
| 🎯 MCP Compliant | Full MCP 1.2.0 spec compliance via FastMCP |
| 🧬 Bio-Inspired | Hippocampus-style consolidation and forgetting |
| 🔒 Security | Input validation, rate limiting, injection prevention |
| 🔎 Semantic Search | Sentence transformer embeddings (CPU-optimized) |
| ♾️ Unlimited Storage | No memory count limits, only per-item size limits |
| 🆓 100% Free | Local embedding model - no API costs |
🚀 Quick Start
5 Core MCP Tools
memory_read # 🔍 Retrieve memories by semantic similarity
memory_write # ✍️ Store new memories with tags & metadata
memory_consolidate # 🔄 Merge similar memories
memory_forget # 🧹 Remove memories by age/importance/tags
memory_stats # 📊 Get system statistics
📦 Installation
Quick Install (Recommended)
pip install hippocampus-memory-mcp
Prerequisites: Python 3.9+ • ~200MB disk space (for embedding model)
Claude Desktop Integration
Add to your Claude Desktop config (claude_desktop_config.json):
{
"mcpServers": {
"memory": {
"command": "python",
"args": ["-m", "memory_mcp_server.server"]
}
}
}
🎉 That's it! Claude will now have persistent memory across conversations.
Install from Source (Alternative)
# Clone the repository
git clone https://github.com/jameslovespancakes/Memory-MCP.git
cd Memory-MCP
# Install dependencies
pip install -r requirements.txt
# Run the server
python -m memory_mcp_server.server
📚 Documentation
Memory Operations via MCP
Once connected to Claude, use natural language:
"Remember that I prefer Python for backend development"
→ Claude calls memory_write()
"What do you know about my programming preferences?"
→ Claude calls memory_read()
"Consolidate similar memories to clean up storage"
→ Claude calls memory_consolidate()
Direct API Usage
✍️ Writing Memories
from memory_mcp_server.storage import MemoryStorage
from memory_mcp_server.tools import MemoryTools
storage = MemoryStorage(storage_path="my_memory")
await storage._ensure_initialized()
tools = MemoryTools(storage)
# Store with tags and importance
await tools.memory_write(
text="User prefers dark mode UI",
tags=["preference", "ui"],
importance_score=3.0,
metadata={"category": "settings"}
)
🔍 Reading Memories
# Semantic search
result = await tools.memory_read(
query_text="What are my UI preferences?",
top_k=5,
min_similarity=0.3
)
# Filter by tags and date
result = await tools.memory_read(
query_text="Python learning",
tags=["learning", "python"],
date_range_start="2024-01-01"
)
🔄 Consolidating Memories
# Merge similar memories (threshold: 0.85)
result = await tools.memory_consolidate(similarity_threshold=0.85)
print(f"Merged {result['consolidated_groups']} groups")
🧹 Forgetting Memories
# Remove by age
await tools.memory_forget(max_age_days=30)
# Remove by importance
await tools.memory_forget(min_importance_score=2.0)
# Remove by tags
await tools.memory_forget(tags_to_forget=["temporary"])
Testing
Run the included test suite:
python test_memory.py
This tests all 5 operations with sample data.
🏗️ Architecture
┌─────────────────────────────────────────────────────┐
│ MCP Client (Claude Desktop, etc.) │
└───────────────────┬─────────────────────────────────┘
│ JSON-RPC over stdio
┌───────────────────▼─────────────────────────────────┐
│ FastMCP Server (server.py) │
│ ├─ memory_read │
│ ├─ memory_write │
│ ├─ memory_consolidate │
│ ├─ memory_forget │
│ └─ memory_stats │
└───────────────────┬─────────────────────────────────┘
│
┌───────────────────▼─────────────────────────────────┐
│ Memory Tools (tools.py) │
│ ├─ Input validation & sanitization │
│ └─ Rate limiting (100 req/min) │
└───────────────────┬─────────────────────────────────┘
│
┌───────────────────▼─────────────────────────────────┐
│ Storage Layer (storage.py) │
│ ├─ Sentence Transformers (all-MiniLM-L6-v2) │
│ ├─ FAISS Vector Index (cosine similarity) │
│ └─ JSON persistence (memories.json) │
└─────────────────────────────────────────────────────┘
🔄 Memory Lifecycle
| Step | Process | Technology |
|---|---|---|
| 📝 Write | Text → 384-dim vector embedding | Sentence Transformers (CPU) |
| 💾 Store | Normalized vector → FAISS index | FAISS IndexFlatIP |
| 🔍 Search | Query → embedding → top-k similar | Cosine similarity |
| 🔄 Consolidate | Group similar (>0.85) → merge | Vector clustering |
| 🧹 Forget | Filter by age/importance/tags → delete | Metadata filtering |
🔒 Security
| Protection | Implementation |
|---|---|
| 🛡️ Injection Prevention | Regex filtering of script tags, eval(), path traversal |
| ⏱️ Rate Limiting | 100 requests per 60-second window per client |
| 📏 Size Limits | 50KB text, 5KB metadata, 20 tags per memory |
| ✅ Input Validation | Pydantic models + custom sanitization |
| 🔐 Safe Logging | stderr only (prevents JSON-RPC corruption) |
⚙️ Configuration
Environment Variables
MEMORY_STORAGE_PATH="memory_data" # Storage directory
EMBEDDING_MODEL="all-MiniLM-L6-v2" # Model name
RATE_LIMIT_REQUESTS=100 # Max requests
RATE_LIMIT_WINDOW=60 # Time window (seconds)
Storage Limits
- ✅ Unlimited total memories (no count limit)
- ⚠️ Per-memory limits: 50KB text, 5KB metadata, 20 tags
🐛 Troubleshooting
Model won't download
First run downloads all-MiniLM-L6-v2 (~90MB). Ensure internet connection and ~/.cache/ write permissions.
PyTorch compatibility errors
pip uninstall torch transformers sentence-transformers -y
pip install torch==2.1.0 transformers==4.35.2 sentence-transformers==2.2.2
Memory errors on large operations
The model runs on CPU. Ensure 2GB+ free RAM. Reduce top_k in read operations if needed.
📝 License
MIT License - feel free to use in your projects!
🤝 Contributing
PRs welcome! Please:
- Follow MCP security guidelines
- Add tests for new features
- Update documentation
🔗 Resources
Built with 🧠 for persistent LLM memory
Installing Hippocampus Memory
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/jameslovespancakes/Memory-MCPFAQ
Is Hippocampus Memory MCP free?
Yes, Hippocampus Memory MCP is free — one-click install via Unyly at no cost.
Does Hippocampus Memory need an API key?
No, Hippocampus Memory runs without API keys or environment variables.
Is Hippocampus Memory hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Hippocampus Memory in Claude Desktop, Claude Code or Cursor?
Open Hippocampus Memory on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
wenb1n-dev/SmartDB_MCP
A universal database MCP server supporting simultaneous connections to multiple databases. It provides tools for database operations, health analysis, SQL optim
by wenb1n-devPostgres Server
This server enables interaction with PostgreSQL databases through the Model Context Protocol, optimized for the AWS Bedrock AgentCore Runtime. It provides tools
by madhurprashPostgres
Query your database in natural language
by AnthropicPostgreSQL
Read-only database access with schema inspection.
by modelcontextprotocolCompare Hippocampus Memory with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All data MCPs
