Command Palette

Search for a command to run...

UnylyUnyly
Browse all

MemorizedMCP

FreeNot checked

MemorizedMCP delivers a high‑performance, local‑first MCP Server in Rust that equips AI agents with an advanced hybrid memory system. It combines a knowledge gr

GitHubEmbed

About

MemorizedMCP delivers a high‑performance, local‑first MCP Server in Rust that equips AI agents with an advanced hybrid memory system. It combines a knowledge graph, vector embeddings, and full‑text search with a novel documentary memory capability, enabling accurate recall of exact documents alongside rich semantic relationships.

README

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.

Rust MCP License


✨ 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

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

Architecture Docs

Operations


⚙️ 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 Contributing Guide 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 Roadmap.md for planned features
  • 🐛 Bugs: Check Issues

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


🙏 Acknowledgments


📬 Contact


Built with ❤️ in Rust

⭐ Star this repo if you find it useful!

Report Bug · Request Feature · Documentation

======= # MCP Quickstart

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 (use query) 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{}

from github.com/PerkyZZ999/MemorizedMCP

Installing MemorizedMCP

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/PerkyZZ999/MemorizedMCP

FAQ

Is MemorizedMCP MCP free?

Yes, MemorizedMCP MCP is free — one-click install via Unyly at no cost.

Does MemorizedMCP need an API key?

No, MemorizedMCP runs without API keys or environment variables.

Is MemorizedMCP hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install MemorizedMCP in Claude Desktop, Claude Code or Cursor?

Open MemorizedMCP 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

Compare MemorizedMCP with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All ai MCPs