Skip to main content
Glama

MemoryMesh

Hub MCP universal para datos personales. Local-first, privado por defecto, diseñado para ser la capa de memoria de los agentes que construirás a continuación.

CI PyPI License Python MCP Tests v0.1.0

MemoryMesh indexa tus archivos locales —y en futuras versiones, tus correos electrónicos, calendario, historial del navegador y registros de chat— y los expone a través del Model Context Protocol. Cualquier cliente compatible con MCP (Claude Desktop, Cursor, Claude Code o tu propio agente) puede realizar preguntas semánticas sobre las cosas que realmente posees, sin enviar ni un solo byte a la nube.

Es un hub, no un RAG de propósito único. El transporte, el modelo de embedding, el analizador y la estrategia de fragmentación son intercambiables detrás de interfaces limpias, por lo que el mismo hub puede crecer desde "buscar en mis notas" hasta "recordar todo para mi SO de Agentes".


Por qué existe esto

Los datos personales están fragmentados en docenas de aplicaciones. Ningún agente de IA puede acceder a todos ellos de una manera unificada y privada. El MCP de Anthropic definió el protocolo; MemoryMesh llena el vacío del hub que conecta todo, localmente, con la privacidad como condición previa en lugar de como una configuración.


Related MCP server: NOUZ MCP Server

Cómo funciona

                   ┌──────────────────────────────┐
  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

Pipeline de indexación: el observador de archivos detecta cambios → la deduplicación SHA-256 omite archivos sin cambios → analizador (txt/md/pdf/docx/código) → fragmentador inteligente (tree-sitter para código, por encabezado para markdown, recursivo para texto) → embeddings mediante sentence-transformers → upsert en ChromaDB + índice BM25.

Pipeline de búsqueda: consulta → búsqueda densa (ChromaDB) + búsqueda dispersa (BM25) sobre-recuperación → Reciprocal Rank Fusion (k=60) → resultados top-k con ruta, vista previa, puntuación y metadatos.


Qué lo hace diferente

La mayoría de las herramientas comparables eligen una dimensión para optimizar. MemoryMesh es la única que las cumple todas simultáneamente:

Característica

MemoryMesh

LangChain

LlamaIndex

PrivateGPT

AnythingLLM

MemGPT

Haystack

Nativo MCP

Búsqueda híbrida (densa + BM25 + RRF)

Parcial

Parcial

Observador en tiempo real + deduplicación SHA-256

Reconciliación post-bloqueo

100% local, cero telemetría

Multiplataforma (Win/Linux/Mac)

Parcial

Parcial

Sin dependencia de framework

Diseñado como infraestructura

Nativo MCP significa que fue construido para MCP desde el primer día, no añadido después. Las 4 herramientas (search_memory, list_sources, get_document, index_now) tienen una API estable que no se romperá entre versiones.

Diseñado como infraestructura significa que la arquitectura anticipa el acceso multi-agente, permisos por agente y agentes de hardware (ESP32, Arduino) consultando el mismo hub. Ver Roadmap.


Estado

Característica

Estado

Indexación de archivos locales (txt, md, código, pdf, docx)

Búsqueda híbrida — densa + BM25 + RRF

Servidor MCP — 4 herramientas, stdio + streamable-http

Indexación incremental en tiempo real (watchdog + debounce)

Fragmentación de código Tree-sitter (Python, JS, TS, Go, Rust…)

Multiplataforma — Windows / Linux / macOS

Reconciliación post-bloqueo

OCR opcional para PDFs escaneados (Tesseract / EasyOCR)

Registro de auditoría de privacidad (solo hashes de consulta, sin texto plano)

172 pruebas — unitarias + integración

Recuperador de documento padre (extended_preview)

🔜 v0.2

CI de GitHub Actions (Ubuntu / Windows / macOS)

🔜 v0.2

Docker + docker-compose

🔜 v0.2

Reranker cross-encoder

🔜 v0.3

Framework de evaluación (Precision@k, MRR, NDCG)

🔜 v0.3

RAG con LLM local (Ollama)

🔜 v0.4

Fuentes de correo electrónico / Calendario / Navegador

🔜 v0.4

Capa de permisos por agente

🔜 v0.5


Inicio rápido

Requisito previo: Python 3.11+ y uv.

# Install from PyPI
pip install memorymesh-mcp

O clona para desarrollo:

# 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"

Ejecutar como demonio (indexación en tiempo real)

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

Conéctalo a Claude Desktop

Añade a tu configuración de 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"
      ]
    }
  }
}

Reinicia Claude Desktop. Las cuatro herramientas aparecerán automáticamente.


Herramientas MCP

Herramienta

Descripción

search_memory(query, top_k, mode, source)

Búsqueda híbrida sobre todo el contenido indexado. Devuelve ruta, vista previa, puntuación, tipo de archivo y fuente.

list_sources()

Lista todas las fuentes configuradas con recuentos de archivos y estado del índice.

get_document(path, max_bytes)

Lee el contenido completo de un archivo indexado (hasta 1 MB por defecto).

index_now(path)

Fuerza la reindexación inmediata de un archivo o directorio, omitiendo el observador.

Todas las herramientas son compatibles con versiones anteriores. Las firmas de la v0.1 están congeladas; añadir extended_preview en la v0.2 es aditivo, no disruptivo.


Configuración

Todo reside en config.yaml. Consulta config.example.yaml para obtener una referencia totalmente comentada. Aspectos destacados:

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

La lista de ignorados global protege rutas sensibles por defecto: .env, *.key, id_rsa*, secrets/, .ssh/, .aws/, .git/, node_modules/.


Benchmarks

Los benchmarks se publicarán aquí después de que la v0.2 implemente CI en las tres plataformas. El objetivo son números reproducibles, no "rápido en mi máquina".

Los scripts ya están en benchmarks/ y se pueden ejecutar localmente:

  • bench_indexing.py — rendimiento de indexación (fragmentos/s, MB/s) en un corpus sintético

  • bench_search_latency.py — latencia de búsqueda p50/p95/p99 en modos híbrido/denso/disperso

  • bench_embedding_models.py — comparación de velocidad vs. calidad entre tres modelos de embedding


Privacidad y seguridad

Tres compromisos firmes que no cambian entre versiones:

  1. Ningún dato sale de tu máquina. Sin telemetría. Sin llamadas a API externas a menos que lo aceptes explícitamente, e incluso entonces, hay una ADVERTENCIA en el registro.

  2. El oyente HTTP se vincula a 127.0.0.1 solo por defecto. Exponerlo a otras interfaces requiere una anulación de configuración explícita.

  3. Los registros nunca contienen contenido de documentos o consultas en texto plano. El registro de auditoría guarda hashes de consulta, no las consultas.

El cifrado en reposo está en el roadmap. Si tu disco está cifrado a nivel de SO, estás cubierto para el modelo de amenaza contra el que está diseñado MemoryMesh.


Roadmap

Versión

Enfoque

ETA

v0.2

Endurecimiento de seguridad + CI/CD + Recuperador de documento padre

pronto

v0.3

Framework de evaluación (Precision@k, MRR) + reranker + expansión de consulta

v0.4

LLM local mediante Ollama (RAG completo) + fuentes de correo/calendario

v0.5

Permisos por agente + memoria jerárquica (caliente/templada/fría)

v1.0

Integración con SO de Agentes — capa de memoria para sistemas multi-agente

~6 meses

v2.0

Agentes de hardware — ESP32/Arduino consultando el hub vía BLE/WiFi

~12 meses

Detalles completos en ROADMAP.md.


Solución de problemas

  • UnicodeDecodeError en un archivo de texto — MemoryMesh intenta UTF-8, UTF-8 BOM, cp1252, latin-1 en orden. Si un archivo sigue fallando, se registra y se omite, no se bloquea.

  • El observador no se activa en una unidad de red / montaje WSL — establece watcher.use_polling: true en config.yaml.

  • Tesseract no encontrado — instálalo en todo el sistema y asegúrate de que esté en PATH. Windows: Instalador UB-Mannheim.

  • Desajuste del modelo de embedding después de cambiar la configuración — ejecuta memorymesh reindex --all. La CLI se niega a iniciarse si el ID del modelo almacenado en ChromaDB no coincide con la configuración.


Sobre este proyecto

MemoryMesh es un proyecto en solitario construido usando vibe coding —escribir código en estrecha colaboración con LLMs a alta velocidad— con revisiones arquitectónicas estructuradas en cada fase. El proceso: el LLM propone código, el arquitecto revisa la corrección, las brechas de diseño y las violaciones de especificaciones, y la suite de pruebas confirma. Los errores que se filtraron (orden de inicio en el sistema de reconciliación, violación de encapsulación de BM25, argumentos de constructor incorrectos en la CLI) fueron detectados en la revisión antes de que se ejecutaran en producción.

Esto es lo que parece el vibe coding cuando te tomas en serio el paso de revisión: una suite de 172 pruebas, un pipeline de búsqueda híbrida real, un sistema de reconciliación y una arquitectura diseñada para avanzar hacia un SO de Agentes.


Contribuciones

MemoryMesh aún no acepta contribuciones externas; todavía no hay CI ni guía de contribución. Esto cambiará en la v0.2. Observa el repositorio o vuelve a consultar entonces.


Licencia

MIT. Ver LICENSE.


Agradecimientos

Arquitectura informada mediante el estudio de LlamaIndex, LangChain, PrivateGPT, AnythingLLM, MemGPT y Haystack —entendiendo qué hace bien cada uno y qué no. Y a chroma-mcp y al SDK de Python para MCP por mostrar cómo se ve lo nativo de MCP en la práctica.

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