Prototipo · Versión preliminar: todos los servidores del registro oficial, sincronizados cada 30 minutos. Las reseñas y las cuentas llegarán en una etapa posterior.
PopNx MCPServidores MCP para quienes usan IA · explicados con palabras sencillas

Vault Index

de GitGudatCodeingversión 0.4.2i★ –iSe ejecuta en tu computadora
Nombre en el registroio.github.GitGudatCodeing/vault-index

Instalar

Resumen

Descripción del creador (original en inglés)

Local hybrid keyword + vector search (SQLite FTS5 + sqlite-vec) over markdown vaults and code.

Los tres pilares de PopNx MCP

Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.

Qué puedes hacer con él

Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.

  • Conexión: Se ejecuta en tu computadora
  • Transporte: stdio
  • Categoría: Búsqueda y memoria de IA

Instalación

Elige la app de IA que usas y copia la configuración.

Antes de instalar

  • Revisiones básicas: 1 de 1 superadas
  • Se ejecuta en tu computadora con los permisos de tu usuario (archivos, red, apps).
  • Debes completar tú: VAULT_INDEX_DB, VAULT_RERANK, VAULT_MODEL_CACHE

Necesitas

  • PyPIuv de Python instalado (para el comando uvx)

¿Qué app usas?

Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.

Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json

{
  "mcpServers": {
    "vault-index": {
      "command": "uvx",
      "args": [
        "vault-index"
      ],
      "env": {
        "VAULT_INDEX_DB": "your-value",
        "VAULT_RERANK": "your-value",
        "VAULT_MODEL_CACHE": "your-value"
      }
    }
  }
}

Ejecuta esto en tu terminal

claude mcp add vault-index --env VAULT_INDEX_DB=your-value --env VAULT_RERANK=your-value --env VAULT_MODEL_CACHE=your-value -- uvx vault-index

Completa los valores vacíos antes de ejecutarlo.

Abrir en Cursor

O copia la configuración tú

Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json

{
  "mcpServers": {
    "vault-index": {
      "command": "uvx",
      "args": [
        "vault-index"
      ],
      "env": {
        "VAULT_INDEX_DB": "your-value",
        "VAULT_RERANK": "your-value",
        "VAULT_MODEL_CACHE": "your-value"
      }
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Abrir en VS Code

O copia la configuración tú

Pégalo en .vscode/mcp.json de tu proyecto

{
  "servers": {
    "vault-index": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "vault-index"
      ],
      "env": {
        "VAULT_INDEX_DB": "your-value",
        "VAULT_RERANK": "your-value",
        "VAULT_MODEL_CACHE": "your-value"
      }
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.

Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.

Valores que debes completar

  • VAULT_INDEX_DB env
    Path to the SQLite index file (default ~/.mcp-memory/vault-index.db)
  • VAULT_RERANK env
    Set to 0 to turn off the cross-encoder rerank of the top 10 results
  • VAULT_MODEL_CACHE env
    Embedding model cache folder (default ~/.mcp-memory/models)

Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.

Qué puede hacer

Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.

Revisiones básicasi

Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 6 nov 2026

  • ✓ Superada

    El creador coincide con el repo

    El nombre en el registro se verificó con la cuenta de GitHub GitGudatCodeing, dueña del repo

  • … Aún sin revisar

    Sigue en mantenimiento

    Todavía no hemos leído este repo en GitHub

  • … Aún sin revisar

    Tiene licencia

    Todavía no hemos leído este repo en GitHub

  • – No aplica

    El endpoint responde

    Este se ejecuta en tu computadora; no hay endpoint en internet

  • – No aplica

    Inicio de sesión con OAuth

    Se ejecuta en tu computadora y usa ajustes locales en su lugar

  • … Aún sin revisar

    Sin instrucciones ocultas en las descripciones de herramientas

    Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet

Comparado con otros en Búsqueda y memoria de IAi

  • Más estrellas que el 0% de los otros 7235 servidores de esta categoría
  • Publicado en el registro más recientemente que el 80% de los otros 7235 servidores de esta categoría
  • Revisiones básicas iguales o mejores que el 100% de los otros 7235 servidores de esta categoría

Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.

Preguntas frecuentes

¿Es seguro Vault Index?

Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.

¿Qué claves o códigos necesita?

El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.

¿Se ejecuta en mi computadora o en la nube?

Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).

¿Sigue en mantenimiento?

El repo de GitHub cambió por última vez –, y la última versión (0.4.2) llegó al registro hace 9 días.

¿Qué apps pueden usarlo?

Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Python (uv) en tu computadora.

¿Qué puedo usar en su lugar?

En la misma categoría: Context7, Codebase Memory, Exa

Alternativas

Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.

Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi

Context7

de upstash

Up-to-date docs for AI agents

Computadora o nube★ 64.224MITActualizado hace 3 días
Instalar

Codebase Memory

de DeusData

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

Se ejecuta en tu computadora★ 48.148MITActualizado hace 20 días
Instalar

Exa

de exa-labs

Connect AI agents to Exa for web search, content fetching, and multi-step research.

Se ejecuta en la nube★ 5213MITActualizado hace 44 días
Instalar

README del creador

Abrir el README

Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.

claude-second-brain

A local, private long-term memory for Claude Code. Your markdown notes stay the record. Claude searches them through a hybrid keyword + vector index, writes decisions and lessons back as plain files, and hooks keep the index, the knowledge graph and long sessions in check.

Everything runs on your machine: one SQLite file, two small CPU models, no cloud services.

Terminal replay of real output from a fresh clone of v0.1.0 with the sample vault (eval then had 32 questions); only the typing animation is added.

Why

Claude Code forgets everything between sessions. The usual fixes are a huge CLAUDE.md (expensive on every turn) or a vector store nobody can read or fix. This project takes a different line:

  • Files are the truth. Notes, decision records and lessons are markdown you can read, edit and version. The index and the graph can be rebuilt from them at any time.
  • Search before guessing. Claude is told to search the vault before answering about past work, and gets a tool that actually finds paraphrased answers.
  • Measured, not vibes. Every search change is scored against a golden set and kept only if it beats the baseline. The experiments that failed are documented too.
  • Self-checking. At session start, invariants verify that each pipeline still reaches its consumer, so silent breakage shows up the same day.

How it works

flowchart LR

subgraph files["Markdown files: the record"] notes["notes/"] adr["docs/adr/"] lessons["docs/lessons.md"] handoffs["docs/handoffs/"] end

cc["Claude Code"] vi["vault-index MCP server mcp/server.py"] db[("vault-index.db FTS5 + sqlite-vec")] mem["memory MCP server"] kg[("memory.jsonl entities and relations")]

cc -- "Write / Edit" --> files cc -- "PostToolUse hook reindex_hook.py" --> db cc -- "search_notes, get_note" --> vi vi --> db files -- "index_paths" --> db cc -- "search_nodes" --> mem mem --> kg kg -. "each fact names its source file" .-> files

HookScriptWhat it does
SessionStartscripts/invariants.py --hook10 checks: MCP servers launchable, graph sources exist, index fresh, hooks wired, golden labels valid, lessons well-formed, context budget.
PostToolUse (Write, Edit)mcp/reindex_hook.pyRe-indexes the edited file if it sits under a registered source. Never blocks.
UserPromptSubmit, PostToolUse (async)scripts/context_guard.pyReads the real context size from the transcript. Silent until 250k tokens (.claude/handoff.json), then requires /handoff: a note plus a card to start the fresh session. On every prompt, and once per session mid-turn.
PreCompactscripts/precompact_snapshot.pySaves recent requests and touched files to docs/handoffs/auto/ as a fallback before compaction.
Search
flowchart LR

q["query"] --> sw["drop stopwords"] --> fts["FTS5 bm25 top 4 x limit"] q --> emb["embed with bge-small-en-v1.5"] --> vec["sqlite-vec kNN top 4 x limit"] fts --> rrf["reciprocal rank fusion k = 60, keyword weight 0.1"] vec --> rrf rrf --> rr["cross-encoder rerank top 10, MiniLM-L6"] rr --> out["top chunks with file path and heading path"]

  • Markdown is chunked by heading (up to about 1,200 characters), so every hit carries a path like Recipe box data model > Units.
  • Indexing is incremental: unchanged files are skipped by mtime and content hash; deleted files are dropped on the next sync.
  • Keyword ranks count at a tenth of vector ranks: they break ties and lift exact terms (ids, tool names) without outvoting meaning.
  • A small cross-encoder (ms-marco-MiniLM-L-6-v2, 80 MB) then reorders the top 10 by reading query and chunk together. It adds about 200 ms per search on CPU; VAULT_RERANK=0 turns it off.
  • A per-folder .indexignore keeps tooling code out of results.

MCP tools: index_paths, search_notes, get_note, list_sources, remove_source.

Commands

CommandWhat it does
/recall Searches notes, lessons and the graph together and answers with clickable sources. Read-only.
/adr Writes a decision record to docs/adr/ and links it in the graph.
/learn Records a lesson as a testable directive (scripts/learn.py): lesson, cause, how to detect it. Supersede or retire, never delete.
/ingest Indexes a file or folder and adds its durable entities to the graph.
/handoff [topic]Writes a handoff note and starts a fresh session from it.

Installed as a plugin, the commands carry its name: /second-brain:recall, /second-brain:adr and so on.

Quickstart

Needs uv (it fetches Python 3.10 to 3.13), Node.js for the memory server, and Claude Code.

As a plugin

In the folder that holds your notes:

claude plugin marketplace add GitGudatCodeing/claude-second-brain

claude plugin install second-brain@second-brain --scope project

Start claude there, then ask it to index the folder ("index_paths .") and try /second-brain:recall . The plugin brings the five commands, the hooks (re-index on edit, context guard, pre-compact snapshot) and both MCP servers. Decision records go to docs/adr/, lessons to docs/lessons.md, handoffs to docs/handoffs/, and the knowledge graph to memory.jsonl, all inside that folder. The search index is shared at ~/.mcp-memory/vault-index.db.

--scope project keeps the plugin to that folder: the context guard would otherwise run in every project. The plugin leaves out the session-start invariants, which check this repo's layout. Change the handoff limit with a .claude/handoff.json like this repo's (default 250k tokens).

Use the plugin or the clone below in a folder, not both: each starts its own vault-index server.

From a clone

The full repo adds the sample vault, the eval and the invariants.

git clone https://github.com/GitGudatCodeing/claude-second-brain.git

cd claude-second-brain uv run --project mcp python scripts/setup.py

setup.py writes .mcp.json (memory graph at ~/.mcp-memory/memory.jsonl unless you pass --memory-file), indexes the folder and runs the invariants. Then start claude in the folder, approve the project MCP servers and hooks, and try /recall garden sensor battery life. Check the wiring any time with python scripts/invariants.py.

Your own notes go in notes/. Delete example-vault/ when you no longer need the eval, and update eval/golden.jsonl with questions about your own notes.

On Windows, Claude Code runs hooks through Git Bash; the hook commands already use forward slashes.

Just the search server

vault-index is on PyPI and in the MCP registry. To use the hybrid search on any folder of notes without the rest of this repo:

claude mcp add vault-index -- uvx --python 3.12 vault-index

Then ask Claude to index a folder (for example "index_paths ~/notes") and search it with search_notes.

It also works from a terminal. Indexing a large vault there first shows progress and keeps Claude's first tool call short:

uvx --python 3.12 vault-index index ~/notes        # no paths re-syncs every source

uvx --python 3.12 vault-index search "your question" -n 5 uvx --python 3.12 vault-index sources uvx --python 3.12 vault-index --help

With no command it serves MCP over stdio. The index lives in ~/.mcp-memory/vault-index.db. To move it, set VAULT_INDEX_DB in your shell environment rather than only in the MCP config, so the server, the re-index hook and the invariants all use the same file. --python 3.12 keeps uvx off newer Pythons that the embedding runtime does not support yet.

Retrieval eval

example-vault/ is a fictional person's notes, decisions and lessons. eval/golden.jsonl has 44 questions about it and about this repo's own docs, worded differently from the notes on purpose, so keyword overlap alone does not find most answers. The last 12 are hard paraphrases that share almost no words with their answer. (Keep golden questions out of indexed files like this README, or they compete with the real answers.)

VAULT_INDEX_DB=/tmp/csb-eval.db uv run --project mcp python eval/run_eval.py --modes all -v
ModeNDCG@5MRRRecall@5
hybrid + rerank (what search_notes serves)0.7470.7970.780
hybrid, fusion only (no rerank)0.6860.7240.758
keyword only (FTS5)0.4910.5440.576
vector only0.6970.7290.758
naive grep, no index (baseline)0.3050.3410.375

The grep row ranks chunks by how many query words they contain, roughly what searching with rg per word gives you.

Without the reranker, vector-only edged out fusion on the sample vault (the hard paraphrases give keywords nothing to match); the reranker puts hybrid back on top. On the author's private vault (41 questions) the order is the same: hybrid + rerank 0.550, fusion only 0.487, vector 0.473, keyword 0.433, grep 0.327.

Compared with basic-memory

basic-memory is a popular markdown memory MCP server with its own hybrid search. eval/compare_basic_memory.py runs it (v0.24.1, same bge-small model) on a copy of the same markdown files and scores both on the same 44 questions. basic-memory returns whole notes, so both are scored per file here (vault-index chunks collapsed to their file):

System (file level)NDCG@5MRRRecall@5
vault-index hybrid + rerank0.8290.8580.886
basic-memory, default search0.6190.6110.750
basic-memory, vector only0.7080.7360.814

basic-memory does much more than search (it writes notes, builds a graph from them, offers cloud sync); this compares retrieval only. Its default search varied by about 0.005 between runs. It is not run in CI.

CI fails if any hybrid metric drops more than 0.03 below eval/baseline.json. Scores are identical on Ubuntu and Windows.

What worked and what did not

Each change tested alone against a saved baseline, mostly on the author's private vault:

ChangeEffect on NDCG@5Kept
Cross-encoder rerank of the top 10 (MiniLM-L6, 80 MB)sample +0.061, private +0.063yes: about 200 ms per search
Larger rerankers (MiniLM-L12, Jina v1 tiny/turbo, bge-reranker-base)mixed: some lost on the sample setno
Keyword weight 0.1 in the fusion (was 1.0)private +0.037, sample +0.066yes
Exclude tooling code (.indexignore)+0.063yes
Drop stopwords from the FTS query+0.018yes
all-MiniLM-L6-v2 instead of bge-small-0.024no
Weight headings higher in bm25 (x2 to x10)-0.015 to -0.036no
bge-base + query prefix (768 dims)+0.030, about one questionno: 3x the model for noise-level gain

With equal weights, vector-only beat hybrid on the sample vault while hybrid won on the private one (jargon needs keywords). A sweep of keyword weight by RRF k on both sets found one setting that wins on both; vector-only is still worse on the private vault, so keywords stay in at a low weight. Details in [`docs/adr

Solo se muestra el principio; lee el resto en el repo

Pregunta a PopNx