PerkyZZ999/MemorizedMCP
If you are the rightful owner of MemorizedMCP and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Memory MCP Server tools provide a comprehensive suite for managing and utilizing memory contexts in a structured and efficient manner.
π§ MemorizedMCP
A high-performance hybrid memory system for AI agents built on the Model Context Protocol (MCP). MemorizedMCP combines knowledge graphs, vector embeddings, full-text search, and documentary memory to provide intelligent, context-aware information storage and retrieval.
β¨ Features
ποΈ Multi-Layer Memory Architecture
- STM (Short-Term Memory): Fast, ephemeral storage with automatic expiration
- LTM (Long-Term Memory): Persistent knowledge with importance-based retention
- Automatic Consolidation: Smart promotion from STM β LTM based on access patterns
π Knowledge Graph (NEW!)
- Create and manage entities, documents, memories, and episodes
- Rich relationships with custom edge types (MENTIONS, EVIDENCE, RELATED)
- Tag-based organization and filtering
- Graph traversal and pattern discovery
- Full CRUD operations on nodes and edges
π Documentary Memory
- Ingest PDF, Markdown, and text documents
- Automatic chunking and embedding
- Entity extraction and linking
- Document versioning by path
- Cross-document relationship discovery
π Hybrid Search
- Vector Search: Semantic similarity via embeddings
- Full-Text Search: BM25-style keyword matching (Tantivy + Sled)
- Graph Search: Entity-based traversal and relation queries
- Temporal Filters: Query by time ranges and episodes
- Query Caching: Sub-second responses for hot queries
β‘ Performance & Scalability
- Query percentiles tracking (p50, p95) for health monitoring
- Concurrent request handling with semaphore-based backpressure
- Incremental indexing and background maintenance
- Memory-mapped storage for efficient disk I/O
π οΈ Developer-Friendly
- MCP Protocol: Standard tools interface for AI agents
- HTTP API: RESTful endpoints for direct integration
- Backup/Restore: Snapshot-based data portability
- Validation Tools: Integrity checks and auto-repair
π Table of Contents
- Architecture
- Installation
- Quick Start
- Usage Examples
- API Documentation
- Configuration
- Development
- Contributing
- License
ποΈ Architecture
MemorizedMCP uses a fusion architecture that combines multiple indexing strategies:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β MCP Protocol Layer β
β (tools/call, tools/list, notifications) β
ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββ
β HTTP API & Router (Axum) β
βββββββ¬βββββββββββ¬βββββββββββ¬βββββββββββ¬βββββββββββ¬βββββββββββ
β β β β β
βββββββΌβββββ ββββΌββββ ββββββΌβββββ βββββΌβββββ ββββΌβββββββ
β Vector β β Text β β Graph β βDocumentβ β System β
β Index β βIndex β β (KG) β β Store β β Mgmt β
β(HNSW ANN)β β(BM25)β β(Nodes+ β β(Chunks)β β(Backup) β
β β β β β Edges) β β β β β
βββββββ¬βββββ ββββ¬ββββ ββββββ¬βββββ βββββ¬βββββ ββββ¬βββββββ
β β β β β
βββββββββββ΄βββββββββββ΄βββββββββββ΄ββββββββββ
β
ββββββββΌβββββββ
β Sled KV β
β (Embedded) β
βββββββββββββββ
Storage Tiers:
- Hot: Query cache (in-memory, TTL-based)
- Warm: Primary KV store (Sled, memory-mapped)
- Cold: Archived snapshots (filesystem)
- Index: Tantivy full-text index (disk-backed)
π Installation
Prerequisites
- Rust 1.75+ (for building from source)
- Windows 10+ ( Linux / macOS never tried )
Build from Source
git clone https://github.com/PerkyZZ999/MemorizedMCP.git
cd MemorizedMCP
cargo build --release
The binary will be at target/release/memory_mcp_server.exe
.
π― Quick Start
1. Start the Server
MCP Mode (STDIO):
memory_mcp_server
HTTP Mode:
memory_mcp_server --bind 127.0.0.1:8080
2. Configure Cursor/MCP Client
Add to your MCP config (~/.cursor/mcp.json
or similar):
{
"mcpServers": {
"memorized": {
"command": "C:/path/to/memory_mcp_server.exe",
"args": [],
"env": {
"DATA_DIR": "./data",
"HTTP_BIND": "127.0.0.1:8080"
}
}
}
}
3. Verify Health
# Via MCP tool
system.status
# Or via HTTP
curl http://127.0.0.1:8080/status
4. Ingest Your First Document
// Tool: document.store
{
"mime": "md",
"content": "# My Project\nThis is a Rust-based memory system."
}
5. Add a Memory
// Tool: memory.add
{
"content": "MemorizedMCP uses hybrid search for fast retrieval",
"layer_hint": "LTM",
"references": [{ "docId": "<doc_id_from_step_4>" }]
}
6. Search Your Knowledge
// Tool: memory.search
{
"q": "hybrid search",
"limit": 10
}
π‘ Usage Examples
Knowledge Graph Operations
Create an Entity:
// Tool: kg.create_entity
{ "entity": "Rust" }
Tag an Entity:
// Tool: kg.tag_entity
{
"entity": "Rust",
"tags": ["programming-language", "systems"]
}
Create a Relation:
// Tool: kg.create_relation
{
"src": "Entity::Rust",
"dst": "Entity::WebAssembly",
"relation": "COMPILES_TO"
}
Search Entities by Tag:
// Tool: kg.get_tags
{ "tag": "programming-language" }
Memory Management
Add Memory with Episode Context:
// Tool: memory.add
{
"content": "User prefers dark mode for code editor",
"layer_hint": "STM",
"session_id": "session_123",
"episode_id": "setup_preferences"
}
Search with Temporal Filters:
// Tool: memory.search
{
"q": "dark mode",
"from": 1704067200000,
"to": 1735689600000,
"layer": "STM"
}
Consolidate STM β LTM:
// Tool: advanced.consolidate
{
"dryRun": false,
"limit": 50
}
π API Documentation
MCP Tools Reference
- - Complete tool catalog with request/response schemas
- - End-user guide for MCP clients
- - AI agent integration patterns
Architecture Docs
- - System design and components
- - Storage tiers and indexing strategies
- - STM/LTM behavior and consolidation
Operations
- - Deployment and monitoring
- - Incident response procedures
- - Common issues and fixes
βοΈ Configuration
Environment Variables
Variable | Default | Description |
---|---|---|
HTTP_BIND | 127.0.0.1:8080 | HTTP server address (set empty to disable) |
DATA_DIR | ./data | Root directory for storage tiers |
STM_CLEAN_INTERVAL_MS | 60000 | STM eviction check interval |
LTM_DECAY_PER_CLEAN | 0.99 | LTM importance decay multiplier |
FUSION_CACHE_TTL_MS | 3000 | Query cache time-to-live |
MAX_CONCURRENT_INGEST | 4 | Document ingestion concurrency limit |
STATUS_P95_MS_THRESHOLD | 250 | P95 latency threshold for health degradation |
CLI Arguments
memory_mcp_server [OPTIONS]
Options:
--bind <ADDR> HTTP bind address (overrides HTTP_BIND)
--data-dir <PATH> Data directory root (overrides DATA_DIR)
-h, --help Print help
-V, --version Print version
π οΈ Development
Running Tests
cargo test
Benchmarks
cargo bench
Linting
cargo clippy -- -D warnings
cargo fmt --check
Building Documentation
cargo doc --open
Project Structure
MemorizedMCP/
βββ server/
β βββ src/
β β βββ main.rs # HTTP/MCP server
β β βββ kg.rs # Knowledge graph ops
β β βββ embeddings.rs # Vector index
β β βββ vector_index.rs # HNSW ANN
β β βββ config.rs # Configuration
β βββ benches/ # Performance benchmarks
βββ docs/ # Documentation
βββ scripts/ # Utility scripts
βββ data/ # Runtime data (gitignored)
π€ Contributing
Contributions are welcome! Please read our for details on:
- Code style and conventions
- Pull request process
- Issue reporting guidelines
- Development workflow
Areas for Contribution
- π§ͺ Testing: Expand test coverage for edge cases
- π Benchmarks: Add more realistic workload simulations
- π Docs: Improve examples and tutorials
- π§ Features: See for planned features
- π Bugs: Check Issues
π License
This project is licensed under the MIT License - see the file for details.
π Acknowledgments
- MCP Protocol by Anthropic
- Tantivy for full-text search
- Sled for embedded KV storage
- Axum for HTTP serving
π¬ Contact
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Built with β€οΈ in Rust
β Star this repo if you find it useful!
Report Bug Β· Request Feature Β·
Use these minimal tool calls from Cursor (or any other IDE that supports MCP servers) to interact with MemorizedMCP.
Installation
git clone the repo on your computer. then add :
"memorized-mcp": {
"command": "your\\path\\to\\the\\git\\repo\\cloned\\target\\debug\\memory_mcp_server.exe",
"args": [],
"cwd": "your\\path\\to\\the\\git\\repo\\cloned\\MemorizedMCP",
"env": {
"DATA_DIR": "${workspaceFolder}\\.cursor\\memory",
"RUST_LOG": "off"
}
}
NOTE: You can use ${workspaceFolder} or direct path to your project for the DATA_DIR.
Status
- Tool:
system.status
- Arguments:
{}
- Returns: JSON with
uptime_ms, indices, storage, metrics, memory, health
Store a Document
- Tool:
document.store
- Arguments:
{"mime":"md","content":"# Title\nHello"}
- Returns:
{ "id", "hash", "chunks" }
Retrieve a Document
- Tool:
document.retrieve
- Arguments (one of):
{"id":"<DOC_ID>"}
{"path":"./README.md"}
Analyze a Document
- Tool:
document.analyze
- Arguments:
{"id":"<DOC_ID>","includeEntities":true,"includeSummary":true}
Add a Memory
- Tool:
memory.add
- Arguments:
{"content":"Project kickoff notes"}
Search Memories
- Tool:
memory.search
- Arguments:
{"query":"kickoff","limit":5}
Update a Memory
- Tool:
memory.update
- Arguments:
{"id":"<MEM_ID>","content":"updated"}
Delete a Memory
- Tool:
memory.delete
- Arguments:
{"id":"<MEM_ID>","backup":true}
Hybrid Search (Fusion)
- Tool:
memory.search
(usequery
) or hit HTTP/search/fusion
- Tip: use time window filters:
{ "from": 0, "to": 9999999999999 }
Maintenance & Ops
advanced.reindex
β{ "vector":true, "text":true, "graph":true }
system.cleanup
β{ "compact":true }
system.backup
β{ "destination":"./backups", "includeIndices":true }
system.restore
β{ "source":"./backups/<snapshot>", "includeIndices":true }
References
document.refs_for_memory
β{ "id":"<MEM_ID>" }
document.refs_for_document
β{ "id":"<DOC_ID>" }
document.validate_refs
β{ "fix": true }
Advanced Analytics
advanced.analyze_patterns
β{ "window":{ "from":0, "to": 4102444800000 }, "minSupport": 2 }
advanced.trends
β{ "from": 0, "to": 4102444800000, "buckets": 10 }
advanced.clusters
β{}
advanced.relationships
β{}
advanced.effectiveness
β{}