Skip to main content
Glama

MemoryMesh

Универсальный MCP-хаб для персональных данных. Ориентирован на локальное использование, по умолчанию приватный, спроектирован как уровень памяти для агентов, которых вы будете создавать в будущем.

CI PyPI License Python MCP Tests v0.1.0

MemoryMesh индексирует ваши локальные файлы — а в будущих версиях: электронную почту, календарь, историю браузера и логи чатов — и предоставляет к ним доступ через Model Context Protocol. Любой MCP-совместимый клиент (Claude Desktop, Cursor, Claude Code или ваш собственный агент) может задавать семантические вопросы по данным, которыми вы действительно владеете, не отправляя ни байта в облако.

Это хаб, а не узкоспециализированный RAG. Транспорт, модель эмбеддингов, парсер и стратегия разбиения на части (chunking) легко заменяются благодаря чистым интерфейсам — поэтому один и тот же хаб может вырасти из «поиска по заметкам» в «память для вашей агентной ОС».


Зачем это нужно

Персональные данные разбросаны по десяткам приложений. Ни один ИИ-агент не может получить доступ ко всем из них унифицированным и приватным способом. Протокол MCP от Anthropic определил стандарт; MemoryMesh заполняет пробел, выступая в роли хаба, который связывает всё воедино — локально, где приватность является обязательным условием, а не просто настройкой.


Related MCP server: NOUZ MCP Server

Как это работает

                   ┌──────────────────────────────┐
  MCP clients ───▶ │         MemoryMesh           │
(Claude Desktop,   │  ┌────────────────────────┐  │
 Cursor, agents)   │  │ MCP Tools (FastMCP):   │  │
                   │  │  search_memory         │  │
                   │  │  list_sources          │  │
                   │  │  get_document          │  │
                   │  │  index_now             │  │
                   │  └──────────┬─────────────┘  │
                   │             ▼                 │
                   │     Search Engine             │
                   │   dense + BM25 → RRF          │
                   │             │                 │
                   │   ┌─────────┴──────────┐      │
                   │   ▼                    ▼      │
                   │ ChromaDB            BM25      │
                   │ (embeddings)     (sparse)     │
                   │   ▲                    ▲      │
                   │   └──────── Indexer ───┘      │
                   │                ▲              │
                   │           Watchdog            │
                   └────────────────┬──────────────┘
                                    ▼
                             Your filesystem

Конвейер индексации: отслеживание файлов обнаруживает изменения → дедупликация через SHA-256 пропускает неизмененные файлы → парсер (txt/md/pdf/docx/code) → умный разбиватель (tree-sitter для кода, по заголовкам для markdown, рекурсивный для текста) → эмбеддинги через sentence-transformers → upsert в ChromaDB + индекс BM25.

Конвейер поиска: запрос → плотный поиск (ChromaDB) + разреженный поиск (BM25) с избыточной выборкой → Reciprocal Rank Fusion (k=60) → топ-k результатов с путем, превью, оценкой и метаданными.


Что отличает его от других

Большинство похожих инструментов оптимизируют что-то одно. MemoryMesh — единственный, который охватывает все аспекты одновременно:

Функция

MemoryMesh

LangChain

LlamaIndex

PrivateGPT

AnythingLLM

MemGPT

Haystack

MCP native

Гибридный поиск (dense + BM25 + RRF)

Частично

Частично

Мониторинг в реальном времени + дедупликация SHA-256

Восстановление после сбоев

100% локально, без телеметрии

Кроссплатформенность (Win/Linux/Mac)

Частично

Частично

Без зависимостей от фреймворков

Спроектирован как инфраструктура

MCP native означает, что он был создан для MCP с первого дня, а не прикручен позже. 4 инструмента (search_memory, list_sources, get_document, index_now) имеют стабильный API, который не сломается при обновлении версий.

Спроектирован как инфраструктура означает, что архитектура учитывает доступ нескольких агентов, права доступа для каждого агента и аппаратные агенты (ESP32, Arduino), запрашивающие один и тот же хаб. См. Roadmap.


Статус

Функция

Статус

Индексация локальных файлов (txt, md, code, pdf, docx)

Гибридный поиск — dense + BM25 + RRF

MCP-сервер — 4 инструмента, stdio + streamable-http

Инкрементальная индексация в реальном времени (watchdog + debounce)

Разбиение кода через Tree-sitter (Python, JS, TS, Go, Rust…)

Кроссплатформенность — Windows / Linux / macOS

Восстановление после сбоев

Опциональный OCR для сканированных PDF (Tesseract / EasyOCR)

Лог аудита приватности (только хеши запросов, без открытого текста)

172 теста — unit + интеграционные

Parent Document Retriever (extended_preview)

🔜 v0.2

GitHub Actions CI (Ubuntu / Windows / macOS)

🔜 v0.2

Docker + docker-compose

🔜 v0.2

Cross-encoder reranker

🔜 v0.3

Фреймворк оценки (Precision@k, MRR, NDCG)

🔜 v0.3

RAG с локальной LLM (Ollama)

🔜 v0.4

Источники: Email / Календарь / Браузер

🔜 v0.4

Уровень прав доступа для каждого агента

🔜 v0.5


Быстрый старт

Предварительные требования: Python 3.11+ и uv.

# Install from PyPI
pip install memorymesh-mcp

Или клонируйте для разработки:

# Clone and install
git clone https://github.com/kilhubprojects/memory-mesh.git
cd memory-mesh
uv sync

# Initialize state directory and copy example config
uv run memorymesh init

# Edit config.yaml — point it at the folders you want indexed
# (see Configuration section below)

# Index a folder
uv run memorymesh index ~/Documents

# Test a search
uv run memorymesh search "how did I configure the debounce"

Запуск в качестве демона (индексация в реальном времени)

uv run memorymesh start --transport streamable-http --detach
uv run memorymesh status
# edit a file in one of your sources — it gets indexed within ~2s
uv run memorymesh search "the sentence you just typed"
uv run memorymesh stop

Подключение к Claude Desktop

Добавьте в конфигурацию Claude Desktop:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "memorymesh": {
      "command": "uv",
      "args": [
        "run",
        "--directory", "/absolute/path/to/memory-mesh",
        "memorymesh", "serve", "--stdio"
      ]
    }
  }
}

Перезапустите Claude Desktop. Четыре инструмента появятся автоматически.


Инструменты MCP

Инструмент

Описание

search_memory(query, top_k, mode, source)

Гибридный поиск по всему проиндексированному контенту. Возвращает путь, превью, оценку, тип файла и источник.

list_sources()

Список всех настроенных источников с количеством файлов и статусом индексации.

get_document(path, max_bytes)

Чтение полного содержимого проиндексированного файла (по умолчанию до 1 МБ).

index_now(path)

Принудительная немедленная переиндексация файла или директории, минуя наблюдатель.

Все инструменты обратно совместимы. Сигнатуры v0.1 заморожены — добавление extended_preview в v0.2 является дополнением, а не ломающим изменением.


Конфигурация

Все настройки находятся в config.yaml. См. config.example.yaml для получения полностью прокомментированного справочника. Основные моменты:

sources:
  - name: documents
    path: ~/Documents
    recursive: true
    extensions: [.txt, .md, .pdf, .docx]

  - name: projects
    path: ~/Projects
    recursive: true
    extensions: [.py, .js, .ts, .go, .rs, .md]

embeddings:
  model: all-MiniLM-L6-v2   # swap to paraphrase-multilingual-MiniLM-L12-v2 for PT/EN

search:
  mode: hybrid               # hybrid | dense | sparse
  top_k: 10

server:
  transport: stdio           # stdio | streamable-http

Глобальный список игнорирования защищает чувствительные пути по умолчанию: .env, *.key, id_rsa*, secrets/, .ssh/, .aws/, .git/, node_modules/.


Бенчмарки

Бенчмарки будут опубликованы здесь после того, как v0.2 пройдет CI на всех трех платформах. Цель — воспроизводимые цифры, а не «быстро на моей машине».

Скрипты уже находятся в benchmarks/ и доступны для запуска локально:

  • bench_indexing.py — пропускная способность индексации (частей/с, МБ/с) на синтетическом корпусе

  • bench_search_latency.py — p50/p95/p99 задержка поиска в гибридном/плотном/разреженном режимах

  • bench_embedding_models.py — сравнение скорости и качества трех моделей эмбеддингов


Приватность и безопасность

Три жестких обязательства, которые не меняются от версии к версии:

  1. Никакие данные не покидают вашу машину. Никакой телеметрии. Никаких внешних API-вызовов, если вы явно не дали согласие — и даже в этом случае в логе будет WARNING.

  2. HTTP-слушатель по умолчанию привязывается только к 127.0.0.1. Открытие доступа к другим интерфейсам требует явного переопределения конфигурации.

  3. Логи никогда не содержат содержимое документов или запросы в открытом виде. Лог аудита записывает хеши запросов, а не сами запросы.

Шифрование данных в покое находится в плане развития. Если ваш диск зашифрован на уровне ОС, вы защищены от модели угроз, против которой спроектирован MemoryMesh.


План развития (Roadmap)

Версия

Фокус

Ожидаемая дата

v0.2

Усиление безопасности + CI/CD + Parent Document Retriever

скоро

v0.3

Фреймворк оценки (Precision@k, MRR) + reranker + расширение запросов

v0.4

Локальная LLM через Ollama (полный RAG) + источники email/календарь

v0.5

Права доступа для каждого агента + иерархическая память (горячая/теплая/холодная)

v1.0

Интеграция с агентной ОС — уровень памяти для мультиагентных систем

~6 месяцев

v2.0

Аппаратные агенты — ESP32/Arduino, запрашивающие хаб через BLE/WiFi

~12 месяцев

Полные детали в ROADMAP.md.


Устранение неполадок

  • UnicodeDecodeError в текстовом файле — MemoryMesh последовательно пробует UTF-8, UTF-8 BOM, cp1252, latin-1. Если файл все равно не читается, он логируется и пропускается, программа не падает.

  • Наблюдатель не срабатывает на сетевом диске / WSL mount — установите watcher.use_polling: true в config.yaml.

  • Tesseract не найден — установите его в системе и убедитесь, что он есть в PATH. Windows: установщик UB-Mannheim.

  • Несоответствие модели эмбеддингов после изменения конфигурации — запустите memorymesh reindex --all. CLI отказывается запускаться, если ID модели, сохраненный в ChromaDB, не совпадает с конфигурацией.


О проекте

MemoryMesh — это сольный проект, созданный с использованием vibe coding — написания кода в тесном сотрудничестве с LLM на высокой скорости — со структурированными архитектурными обзорами на каждом этапе. Процесс: LLM предлагает код, архитектор проверяет на корректность, пробелы в дизайне и нарушения спецификаций, набор тестов подтверждает. Ошибки, которые проскользнули (порядок запуска в системе восстановления, нарушение инкапсуляции BM25, неверные аргументы конструктора в CLI), были пойманы при проверке до того, как они попали в продакшн.

Вот как выглядит vibe coding, когда вы серьезно относитесь к этапу проверки: набор из 172 тестов, реальный гибридный конвейер поиска, система восстановления и архитектура, спроектированная для развития в полноценную агентную ОС.


Вклад в проект

MemoryMesh пока не принимает внешние вклады — еще нет CI или руководства по контрибьютингу. Это изменится в v0.2. Следите за репозиторием или загляните позже.


Лицензия

MIT. См. LICENSE.


Благодарности

Архитектура основана на изучении LlamaIndex, LangChain, PrivateGPT, AnythingLLM, MemGPT и Haystack — понимании того, что каждый из них делает хорошо, а что нет. А также chroma-mcp и MCP Python SDK за демонстрацию того, как MCP-native выглядит на практике.

Install Server
A
license - permissive license
A
quality
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    F
    maintenance
    A custom Memory MCP Server that acts as a cache for Infrastructure-as-Code information, allowing users to store, summarize, and manage notes with a custom URI scheme and simple resource handling.
    23
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Memento is a local-first MCP server that gives AI coding agents durable project memory — facts, decisions, patterns, and architecture notes — so they stop re-learning the same context every session. Runs locally on Node.js 18+ with SQLite storage and optional cloud embeddings; works with Claude Code, Cursor, Windsurf, and any MCP client.
    19
    33
    2
    MIT

View all related MCP servers

Related MCP Connectors

  • Private-by-default, local-first memory/context/task orchestrator for MCP apps and agents.

  • Multi-engine search for AI agents. Trust scoring, local corpus, MCP-native. Self-hostable, BYOK.

  • Hosted MCP memory: save sessions/decisions once, search from Claude, Cursor, ChatGPT. EU-hosted FTS.

View all MCP Connectors

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/kilhubprojects/memory-mesh'

If you have feedback or need assistance with the MCP directory API, please join our Discord server