Elasticsearch Memory MCP
Provides persistent, intelligent memory using Elasticsearch with hierarchical categorization and semantic search capabilities.
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., "@Elasticsearch Memory MCPSave that the meeting was rescheduled to 3pm"
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.
π§ Elasticsearch Memory MCP
A powerful Model Context Protocol (MCP) server that provides persistent, intelligent memory using Elasticsearch with hierarchical categorization and semantic search capabilities.
β¨ Features
π― V6.2 - Latest Release
π·οΈ Hierarchical Memory Categorization
5 category types:
identity,active_context,active_project,technical_knowledge,archivedAutomatic category detection with confidence scoring
Manual reclassification support
π€ Intelligent Auto-Detection
Accumulative scoring system (0.7-0.95 confidence range)
23+ specialized keyword patterns
Context-aware categorization
π¦ Batch Review System
Review uncategorized memories in batches
Approve/reject/reclassify workflows
10x faster than individual categorization
π Backward Compatible Fallback
Seamlessly loads v5 uncategorized memories
No data loss during upgrades
Graceful degradation
π Optimized Context Loading
Hierarchical priority loading (~30-40 memories vs 117)
60-70% token reduction
Smart relevance ranking
πΎ Persistent Memory
Vector embeddings for semantic search
Session management with checkpoints
Conversation snapshots
π οΈ Installation
Quick Start (Recommended)
Install directly from PyPI:
pip install elasticsearch-memory-mcpPrerequisites
Python 3.8+
Elasticsearch 8.0+
Step 1: Start Elasticsearch
# Using Docker (recommended)
docker run -d -p 9200:9200 -e "discovery.type=single-node" elasticsearch:8.0.0
# Or install locally
# https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.htmlStep 2: Configure MCP
For Claude Desktop
Add to ~/.config/Claude/claude_desktop_config.json:
{
"mcpServers": {
"elasticsearch-memory": {
"command": "uvx",
"args": ["elasticsearch-memory-mcp"],
"env": {
"ELASTICSEARCH_URL": "http://localhost:9200"
}
}
}
}Note: If you don't have
uvx, install withpip install uvxor usepython -m elasticsearch_memory_mcpinstead.
For Claude Code CLI
claude mcp add elasticsearch-memory uvx elasticsearch-memory-mcp \
-e ELASTICSEARCH_URL=http://localhost:9200Alternative: Install from Source
If you want to contribute or modify the code:
# Clone repository
git clone https://github.com/fredac100/elasticsearch-memory-mcp.git
cd elasticsearch-memory-mcp
# Create virtual environment
python3 -m venv venv
source venv/bin/activate
# Install in development mode
pip install -e .Then configure MCP pointing to your local installation:
{
"mcpServers": {
"elasticsearch-memory": {
"command": "/path/to/venv/bin/python",
"args": ["-m", "mcp_server"],
"env": {
"ELASTICSEARCH_URL": "http://localhost:9200"
}
}
}
}π Usage
Available Tools
1. save_memory
Save a new memory with automatic categorization.
{
"content": "Fred prefers direct, brutal communication style",
"type": "user_profile",
"importance": 9,
"tags": ["communication", "preference"]
}2. load_initial_context (Resource)
Loads hierarchical context with:
Identity memories (who you are)
Active context (current work)
Active projects (ongoing)
Technical knowledge (relevant facts)
3. review_uncategorized_batch π V6.2
Review uncategorized memories in batches.
{
"batch_size": 10,
"min_confidence": 0.6
}Returns suggestions with auto-detected categories and confidence scores.
4. apply_batch_categorization π V6.2
Apply categorizations in batch after review.
{
"approve": ["id1", "id2"], // Auto-categorize
"reject": ["id3"], // Skip
"reclassify": {"id4": "archived"} // Force category
}5. search_memory
Semantic search with filters.
{
"query": "SAE project details",
"limit": 5,
"category": "active_project"
}6. auto_categorize_memories
Batch auto-categorize uncategorized memories.
{
"max_to_process": 50,
"min_confidence": 0.75
}ποΈ Architecture
βββββββββββββββββββ
β Claude (MCP) β
ββββββββββ¬βββββββββ
β
βΌ
βββββββββββββββββββββββββββββββ
β MCP Server (v6.2) β
β βββββββββββββββββββββββ β
β β Auto-Detection β β
β β - Keyword matching β β
β β - Confidence score β β
β βββββββββββββββββββββββ β
β β
β βββββββββββββββββββββββ β
β β Batch Review β β
β β - Review workflow β β
β β - Bulk operations β β
β βββββββββββββββββββββββ β
ββββββββββββ¬βββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββ
β Elasticsearch β
β ββββββββββββββββββββββββββ β
β β memories (index) β β
β β - embeddings (vector) β β
β β - memory_category β β
β β - category_confidence β β
β ββββββββββββββββββββββββββ β
ββββββββββββββββββββββββββββββββπ Category System
Category | Description | Examples |
identity | Core identity, values, preferences | "Fred prefers brutal honesty" |
active_context | Current work, recent conversations | "Working on SAE implementation" |
active_project | Ongoing projects | "Mirror architecture design" |
technical_knowledge | Facts, configs, tools | "Elasticsearch index settings" |
archived | Completed, deprecated, old migrations | "Refactored old auth system" |
π― Auto-Detection Examples
High Confidence (0.8-0.95)
"Fred prefere comunicaΓ§Γ£o brutal" β identity (0.9)
"RefatoraΓ§Γ£o do sistema SAE concluΓda" β archived (0.85)
"PrΓ³ximos passos: implementar dashboard" β active_context (0.8)Multiple Keywords (Accumulative Scoring)
"Fred prefere comunicaΓ§Γ£o brutal. Primeira vez usando este estilo."
β Match 1: "Fred prefere" (+0.9)
β Match 2: "primeira vez" (+0.8)
β Total: 0.95 (normalized)π Migration from V5
The v6.2 system includes automatic fallback for v5 memories:
Uncategorized memories β Loaded via type/tags fallback
Visual separation β Categorized vs. fallback sections
Batch review β Categorize old memories efficiently
# Review and categorize v5 memories
review_uncategorized_batch(batch_size=20)
apply_batch_categorization(approve=[...])π Performance
Load initial context: ~10-15s (includes embedding model load)
Save memory: <1s
Search: <500ms
Batch review (10 items): ~2s
Auto-categorize (50 items): ~5s
π§ͺ Testing
# Run quick test
python test_quick.py
# Expected output:
# β
Elasticsearch connected
# β
Context loaded
# β
Identity memories found
# β
Projects separated from fallbackπ Changelog
V6.2 (Latest)
β Improved auto-detection (0.4 β 0.9 confidence)
β 23 new specialized keywords
β Batch review tools (review_uncategorized_batch, apply_batch_categorization)
β Visual separation (categorized vs fallback)
β Accumulative confidence scoring
V6.1
β Fallback mechanism for uncategorized memories
β Backward compatibility with v5
V6.0
β Memory categorization system
β Hierarchical context loading
β Auto-detection with confidence
π€ Contributing
Contributions are welcome! Please:
Fork the repository
Create a feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π Acknowledgments
Built with Model Context Protocol (MCP)
Powered by Elasticsearch
Embeddings by Sentence Transformers
π Support
Issues: GitHub Issues
Discussions: GitHub Discussions
Made with β€οΈ for the Claude ecosystem
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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/fredac100/elasticsearch-memory-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server