Second Brain Mcp

io.github.PortaltocodingPublished by GitHub account Portaltocodingv0.1.1Updated Oct 24, 2026

Second brain en Obsidian: notas, conceptos como nodos, resurfacing y salud del grafo. En castellano.

The publisher's own server: BrainDog

Overview

AI-generated overview

A local MCP server that turns a folder of Markdown notes into an Obsidian-based second brain, letting an assistant capture notes, link ideas and resurface them.

What you can do
Capture readings, notes and ideas: create reading sheets, save notes while reading, promote ideas to permanent notes and link two ideas with a written reason, plus a per-project scratch area with listing and promotion of notes into the library. Resurface and search: given a task or question, return the most connected notes, or run a bounded full-text search across the vault. Prune the graph: report orphan notes, broken links, undefined or duplicate concepts, and merge split concept nodes. Read whole notes as MCP resources by reading, note or concept title. Guide onboarding and ingestion through built-in prompts that classify text and propose ideas before creating anything.
When to use it
Useful if you keep notes as plain Markdown in an Obsidian vault and want an assistant to file what you read, turn it into linked ideas and bring related notes back when you work on something. Also suited to keeping a small per-project scratch folder that can later be promoted into the main library.
Requirements
Runs locally over stdio as an npm package, so Node.js 18 or newer is needed (or the double-click bundle for Claude Desktop). The BRAIN_VAULT environment variable points at the Markdown vault folder; if unset, a default folder under the home directory is used. Optional BRAIN_MODO selects the lexico or rag engine. No account, API key or network access is required.
Before you install
The server writes into the vault: it creates notes, folders and links, and the concept merge tool is destructive and rewrites notes. Connections are meant to be proposed and confirmed by you, so review suggestions before accepting. Point BRAIN_VAULT at the intended folder, since a missing path whose parent exists is created without asking. Notes stay in local Markdown files; nothing is sent to a cloud service.

Installation

In SourceWeft

  1. Open Second Brain Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

second-brain-mcp

Español · English

[npm] [tests] [node] [license]

Tu segundo cerebro, en tu Obsidian, hablando con tu asistente.

Esto es un servidor MCP que convierte una carpeta de Markdown en un second brain de verdad: capturas lo que lees, lo conviertes en ideas con tus palabras, y esas ideas se conectan entre sí hasta formar un grafo que piensa contigo: cuando trabajas en algo, las notas relacionadas aparecen solas.

Todo en castellano. Todo en ficheros tuyos. Sin bases de datos, sin nube, sin magia que no puedas abrir con un editor de texto.

¿Cómo se siente?

Le dices a tu asistente:

«Estoy leyendo Hábitos Atómicos, apunta esto: el entorno decide más que la fuerza de voluntad»

y él crea la lectura si no existía, guarda el apunte, y cuando esa idea madure la convierte en una nota permanente conectada al concepto [[Hábitos]], que a su vez acumula todo lo que has pensado sobre el tema, venga del libro que venga.

Semanas después, trabajando en otra cosa, preguntas por diseñar tu rutina de mañanas y el sistema te trae de vuelta «El entorno decide por ti» con el párrafo exacto. Eso es el segundo cerebro: no recordar tú, que recuerde él.

El mapa

Cada etiqueta es método / qué es; en las dos puertas principales va también la frase que lo dispara:

                             tú + tu asistente                                  │      ▲                ingerir / ingesta │      │ resurgir / recuerdo                   «añade esto»   ▼      │   «¿qué sé de esto?»                           ┌──────────────┐                           │ second-brain │                           └───────┬──────┘                     clasifica lo que entra       ┌───────────────────────────┼───────────────────────────┐       │ lectura_crear / ficha     │ nota_permanente / idea    │ mini_nota / apunte       │ lectura_nota / apuntes    │                           │       ▼                           ▼                           ▼┌──────────────┐            ┌─────────────┐           ┌────────────────┐│ 40-Lecturas/ │            │  50-Notas/  │           │ proyecto/brain/││ lo que entra │            │ lo que queda│           │ el taller      │└──────┬───────┘            └──────┬──────┘           └────────┬───────┘       │                           │                           │       │ nota_permanente /         │ temas                     │ mini_promover /       │ la idea madura            │                           │ madura o resuena       └──────────────────────────▶│───────────┐               │                                   │           ▼               │              nota_enlazar /       │   ┌───────────────┐       │              relacionar con       │   │ 60-Conceptos/ │◀──────┘              motivo (2-3 máx)     ▼   │ lo que conecta│                             otras ideas└───────────────┘
     jardin / poda «¿cómo está el jardín?» · concepto_fusionar / coser nodos     vault_buscar / grep «busca dónde dije X» · mini_listar / cosecha del taller

Instalación

Lo más rápido: una línea, sin configurar nada

Si usas Claude Code:

bash
claude mcp add --scope user second-brain -- npx -y @toportal/second-brain-mcp

Con cualquier otro cliente MCP:

json
{  "mcpServers": {    "second-brain": {      "command": "npx",      "args": ["-y", "@toportal/second-brain-mcp"]    }  }}

Sin variables de entorno y sin decidir nada: tu cerebro se monta en ~/second-brain, con las tres carpetas y la portada listas. Dile a tu asistente «hazme el onboarding de mi second brain» y ya estás dentro.

¿Prefieres que viva en tu vault de Obsidian de siempre? Añade BRAIN_VAULT=/ruta/a/tu/vault y punto — el servidor solo escribe en tres subcarpetas y no toca nada más. Y si ya empezaste en el vault por defecto, mueve la carpeta a donde quieras y apunta BRAIN_VAULT allí: son ficheros Markdown, no hay nada que migrar.

Sin terminal: doble clic y listo

Si usas Claude Desktop y no quieres saber nada de comandos ni de JSON, descarga second-brain.mcpb y haz doble clic: Claude Desktop lo abre, te pide elegir la carpeta donde vivirá tu cerebro (tu vault de Obsidian si tienes, o una carpeta vacía cualquiera) y ya está. No necesitas instalar Node ni tocar ningún fichero de configuración. Y si además quieres ver tu cerebro dibujado como un grafo, instala Obsidian y abre esa misma carpeta como vault.

Con terminal, eligiendo tú la carpeta

Necesitas Node 18 o más nuevo. Con Claude Code, a nivel de usuario (disponible en todos tus proyectos):

bash
claude mcp add --scope user second-brain \  --env BRAIN_VAULT=/ruta/a/tu/vault \  -- npx -y @toportal/second-brain-mcp

Con cualquier otro cliente MCP:

json
{  "mcpServers": {    "second-brain": {      "command": "npx",      "args": ["-y", "@toportal/second-brain-mcp"],      "env": { "BRAIN_VAULT": "/ruta/a/tu/vault" }    }  }}

Y listo. La primera nota crea las carpetas que hagan falta.

Una salvaguarda: si la ruta que configuras no existe y su carpeta contenedora tampoco, el servidor da por hecho que es un error al escribirla y te lo dice en la conversación en vez de plantarte un vault en una carpeta fantasma. Si el padre existe, la crea sin preguntar: eso es lo que querías.

Si prefieres dejar el vault montado desde el principio (carpetas + portada), hay andamiaje:

bash
npx -y @toportal/second-brain-mcp --init /ruta/a/tu/vault

Es idempotente: sobre un vault que ya existe no toca nada.

Variables de entorno

VariableQué hacePor defecto
BRAIN_VAULTLa ruta de tu vault (también vale como primer argumento). Si no la pones, se usa el vault por defecto~/second-brain
BRAIN_MODOMotor de resurgir: lexico o raglexico
BRAIN_RAG_UMBRALA partir de cuántas notas puede sugerirse el modo rag50

Tu primera sesión

No te la tienes que inventar: dile a tu asistente «hazme el onboarding de mi second brain» (es el prompt empezar; en Claude Code aparece como el comando /mcp__second-brain__empezar) y él te guía paso a paso: mira cómo está tu vault, planta contigo la primera lectura y la primera idea con tus propias palabras, te enseña qué devuelve resurgir con tu material, y te deja la chuleta de los tres gestos del día a día. Si el vault ya tiene contenido no te trata de nuevo: te hace un tour de lo que hay.

Pruébalo en 30 segundos

El repo trae un vault de ejemplo ya tejido en ejemplo/, con dos lecturas, cuatro ideas y cuatro conceptos conectados entre sí, así que puedes ver el grafo funcionando antes de haber escrito una sola nota tuya:

bash
git clone https://github.com/Portaltocoding/second-brain-mcpcd second-brain-mcp && npm installclaude mcp add second-brain --env BRAIN_VAULT=$PWD/ejemplo -- node src/server.js

Y le preguntas a tu asistente algo como «¿qué sé yo sobre la fuerza de voluntad?». También puedes abrir la carpeta ejemplo/ como vault en Obsidian y ver el grafo dibujado.

Una sesión de verdad

Así se ve el día a día, sin aprenderse ninguna tool:

Tú: añade esto a mi second brain, lo más importante: "llevo semanas notando que si dejo el móvil en otra habitación por la mañana me salen dos horas de trabajo del tirón, y si lo tengo al lado voy a rachas de diez minutos entre miradas"

Asistente: esto es un pensamiento tuyo ya digerido, así que va como nota permanente en modo destilar. La idea fuerte que veo: «La distancia física al móvil marca la profundidad del trabajo», con los conceptos Foco y Entorno, que ya existen en tu grafo. ¿La creo así?

Tú: dale

Asistente: creada. Y resuena fuerte con «El foco se diseña, no se invoca» (score 8): las dos hablan de preparar el entorno en vez de confiar en la voluntad. ¿Las enlazo con ese motivo?

Tú: sí

Asistente: enlazadas, motivo escrito en las dos. Te dejo el enlace para abrirla en Obsidian: obsidian://open?path=...

Fíjate en el orden: el asistente propone, tú decides, y cada conexión queda con su porqué escrito. Eso es todo el sistema.

Las tres carpetas

tu-vault/├── 40-Lecturas/     lo que entra: libros, artículos, vídeos, cursos├── 50-Notas/        lo que queda: ideas permanentes, tuyas, con tu título└── 60-Conceptos/    lo que conecta: cada tema es una nota real con backlinks

La regla de oro: nada entra suelto. Cada idea se enlaza a su origen, a los conceptos que toca y, con moderación, a otras ideas. Y la moderación importa: máximo 2-3 notas relacionadas, cada enlace con su porqué escrito. Un cajón con doce enlaces no conecta nada; tres enlaces con motivo son un mapa.

Qué sabe hacer

Capturar. lectura_crear abre la ficha de un libro o artículo; lectura_nota guarda apuntes mientras lees («cap 3: ...»); cuando una idea es tuya de verdad, nota_permanente la sube a 50-Notas/ con sus temas convertidos en conceptos navegables. nota_enlazar une dos ideas y deja escrito por qué.

Pensar. resurgir es el corazón: le das un texto (una tarea, una duda, una idea a medias) y te devuelve las notas más conectadas con él. Solo aparece cuando hay solape real; si no hay nada, no inventa. vault_buscar es el grep de toda la vida, acotado para no inundar (20 resultados y te avisa si hubo más).

Podar. Los grafos se pudren en silencio. jardin te enseña las notas huérfanas, los enlaces rotos, los conceptos que nadie definió, las notas sobreconectadas y los conceptos duplicados («Hábito» y «Habitos» partiendo los backlinks en dos). concepto_fusionar cose los nodos partidos.

Taller por proyecto. Cualquier repo puede tener su brain/ local con apuntes crudos (mini_nota). mini_listar te dice cuáles se han ganado subir a la biblioteca (resuenan fuerte con lo que ya tienes, o llevan una semana madurando) y mini_promover los sube. Taller abajo, biblioteca arriba: y promover siempre es decisión tuya.

La ingesta: un solo gesto

No hace falta que te aprendas las tools. Dile a tu asistente:

«añade esto directo a mi second brain» «añade lo más importante de esto» «apunta esto que estoy escribiendo»

y la ingesta se dispara según toque. El servidor trae el procedimiento escrito (prompt MCP ingerir; en Claude Code aparece como comando /mcp__second-brain__ingerir): clasifica el texto (¿lectura con fuente, idea tuya, apunte de taller?), aplica el modo (directo guarda íntegro, destilar extrae las 1-3 ideas fuertes en tus palabras y te las enseña antes de crear nada, auto decide y te lo dice), identifica 2-4 conceptos (prefiriendo los que ya existen en tu grafo antes que inventar sinónimos), y teje. Las decisiones son tuyas y están marcadas como tales: qué ideas entran y qué conexiones se crean. Vale para un párrafo pegado, un capítulo, o ese documento de Word que estás escribiendo: pégalo o pásale el fichero.

Leer notas: resources

Cada nota del grafo es también un resource MCP, así que leerla entera no gasta una tool call (y en Claude Code puedes adjuntarla con @):

vault://lectura/{titulo}vault://nota/{titulo}vault://concepto/{nombre}

El patrón que funciona: buscar barato (vault_buscar, resurgir), leer entero solo lo que interesa (el resource).

¿Y si no uso Claude?

Funciona igual, porque esto es MCP estándar y el protocolo ya lo habla casi todo el mundo. La escalera completa, de más cómodo a más independiente:

  1. Claude Desktop: la vía del doble clic con el .mcpb. La única sin tocar nada.
  2. Cualquier otro cliente MCP (ChatGPT de escritorio, Cursor, VS Code, Windsurf, Zed, Gemini CLI...): usa el bloque de configuración JSON de arriba, que es el mismo para todos.
  3. Sin cuenta de nada y sin internet: LM Studio soporta MCP con modelos locales, así que tu second brain puede hablar con un modelo que corre en tu propio ordenador y tus notas no salen de tu disco jamás.
  4. Sin ninguna IA: el vault son ficheros Markdown normales con wikilinks normales. Con Obsidian a secas ya tienes un second brain manual perfectamente usable; el servidor es el copiloto que captura, destila y te trae las ideas de vuelta, pero tus notas nunca son rehenes de nadie.

Cómo se lleva con Obsidian

Es su casa. Todo es Markdown plano con wikilinks nativos: graph view, backlinks y hover preview funcionan sin plugins. El servidor relee siempre (nunca cachea) y escribe de forma atómica, así que puedes editar en Obsidian con el servidor corriendo sin que se pisen. El jardin juzga los enlaces como Obsidian: sin distinguir mayúsculas.

Dos detalles útiles:

  • Cada nota creada devuelve su ruta en disco —que sirve siempre— y un enlace abrir (obsidian://open?path=...): un clic y estás en la nota dentro de la app, si la tienes. Va por ruta absoluta, así que da igual cómo hayas llamado a tu vault o que apuntes a una subcarpeta suya.
  • temas y relacionadas viven en las propiedades (frontmatter). Obsidian los trata como enlaces reales, pero para verlos en el graph view activa «Propiedades» en los ajustes del grafo.

¿Y Notion? No. Este servidor trabaja sobre ficheros Markdown locales. Esa es la gracia: tus datos son tuyos, se abren con cualquier editor y el grafo va a la velocidad del disco, no de una API. Obsidian tampoco es obligatorio (vale cualquier carpeta .md); es solo el mejor visor. Si vienes de Notion: exporta tus notas como Markdown y suéltalas en el vault, y eso sí funciona.

Modo lexico y modo rag

resurgir tiene dos motores, y el sistema te dice cuándo cambiar:

  • lexico (por defecto): puntúa coincidencias donde más significan: título ×3, temas ×2, cuerpo ×1. Directo y transparente; con un brain pequeño o mediano es todo lo que necesitas.
  • rag: BM25 por fragmentos con stemming castellano: «hábito» encuentra «hábitos», y en vez de decirte solo qué nota conecta, te devuelve el párrafo exacto que responde, listo para usar como contexto. Pensado para cuando el brain crece y las notas son largas.

¿Cuál usar? No lo pienses: empieza en lexico y deja que el sistema te guíe. La sugerencia de pasar a rag aparece solo cuando toca, cuando se dan las dos cosas a la vez:

  1. tu brain ya es un puñado grande de notas (50+, configurable con BRAIN_RAG_UMBRAL), y
  2. la búsqueda que acabas de hacer volvió floja en léxico (sin resultados o por debajo del listón de conexión fuerte); es decir, justo el momento en que el rag habría ayudado.

Y una sola vez por sesión: te lo dice, te explica el porqué, y no vuelve a insistir. Si el léxico encuentra fuerte, no te interrumpe nadie. Probar es gratis: repite la consulta con modo: "rag" y compara; si convence, se fija con BRAIN_MODO=rag. Sin índices que reconstruir ni modelos que descargar: los dos motores releen el vault al vuelo, así que puedes seguir editando en Obsidian sin miedo.

Los principios (por si te preguntas por qué es así)

  • La escasez es el significado. Las sugerencias de conexión solo aparecen cuando son fuertes (y como mucho dos). Enlazarlo todo con todo es lo mismo que no enlazar nada.
  • Enlazar es decisión tuya. El sistema sugiere; tú decides. Ninguna conexión se crea como efecto secundario.
  • El vault manda. El servidor relee siempre y no cachea: edita a mano, usa Obsidian, sincroniza con lo que quieras. Escritura atómica y frontmatter editado línea a línea: tu formato no se toca.
  • El contexto se paga. Respuestas en JSON compacto, búsquedas acotadas, diagnósticos con techo. Las tools de solo lectura van marcadas (readOnlyHint) y la única destructiva (concepto_fusionar) también, para que tu cliente pida confirmación donde toca.

Desarrollo

bash
npm installnpm test

Licencia

MIT. Úsalo, cámbialo, hazlo tuyo.

Source: README.md at commit 82f6c81

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Brain integrations