Expone la carpeta Markdown del kit astra-2cerebro como herramientas MCP para Claude Code, Codex, Claude Desktop, n8n y bots. Lectura por defecto, escritura solo si la activas.

El kit astra-2cerebro guarda quién eres, tus prioridades, decisiones, proyectos y una wiki interconectada en archivos Markdown. cerebro-mcp inicia un servidor MCP apuntado a esa carpeta y cada cliente obtiene las herramientas cerebro_*. El cerebro sigue siendo solo archivos; lo que cambia es quién puede leerlos.
Contexto, prioridades, mapa de rutas, búsqueda, lectura, wiki, proyectos, conexiones y rutinas. Más tres herramientas de escritura (decisión, fuente, ejecución) que solo aparecen si activas --escrita.
Todas las rutas pasan por una verificación que bloquea ../, rutas absolutas externas, symlinks hacia afuera, .git, node_modules e .env. Nada sale de la máquina.
Por stdio para Claude Code, Codex y Claude Desktop. Con --http, un endpoint en 127.0.0.1 para n8n, bots y scripts. Sin índice, sin base de datos: lee el disco en el momento.
El cliente inicia el servidor como proceso hijo, pregunta qué herramientas existen y las llama cuando las necesita. El servidor lee la carpeta en el momento y devuelve texto Markdown con la ruta del archivo para que el modelo cite la fuente.
--dir, después CEREBRO_DIR, después la carpeta actual si existe AGENTS.md o CLAUDE.md. Sin cerebro, error claro y salida 1.
Diez herramientas de lectura y los recursos cerebro:// siempre; las tres de escritura solo con --escrita o CEREBRO_ESCRITA=1.
Cada llamada lee el disco, arma Markdown y lo devuelve. Un error previsible se convierte en isError; el proceso nunca se cae por una llamada incorrecta.
| Herramienta | Qué hace | Escritura |
|---|---|---|
cerebro_contexto() | sobre-mí + sobre-el-trabajo + prioridades, con las rutas | no |
cerebro_prioridades() | solo contexto/prioridades.md | no |
cerebro_rotas() | la sección «Mapa de rutas» del AGENTS.md / CLAUDE.md | no |
cerebro_buscar(consulta, limite?) | búsqueda por términos en todos los .md, con fragmento y relevancia | no |
cerebro_ler(caminho) | contenido de un archivo o listado de una carpeta, solo dentro del cerebro | no |
cerebro_wiki_indice() · cerebro_wiki_pagina(slug) | índice de la wiki y página por slug | no |
cerebro_projetos() · cerebro_conexoes() · cerebro_rotinas() | proyectos con estado, tabla de conexiones, rutinas y ejecuciones | no |
cerebro_registrar_decisao(...) | entrada fechada en decisoes/registro.md | sí |
cerebro_adicionar_fonte(nome, conteudo) | fontes/AAAA-MM-DD-slug.md, sin sobrescribir | sí |
cerebro_registrar_execucao(id, resultado, ...) | nueva línea en el registro de ejecuciones de rutinas | sí |
Nada de base de datos ni servicios externos. Solo Node, una carpeta de cerebro y un cliente MCP.
El servidor es ESM puro. Si usas Claude Code o Codex, ya lo tienes.
# comprueba la versión node --version
Una carpeta con AGENTS.md/CLAUDE.md, contexto/, wiki/, decisoes/. Si aún no tienes una, instala el kit.
# el kit crea la estructura git clone https://github.com/inematds/astra-2cerebro
Claude Code, Codex, Claude Desktop — o n8n/bot en el modo HTTP.
# ejemplo: Claude Code instalado claude mcp list
Todos los comandos son reales y están en el repositorio. Cambia /home/voce/meu-cerebro por la carpeta de tu cerebro.
Descarga el servidor, instala el SDK oficial y ejecuta las 42 pruebas contra el fixture incluido.
git clone https://github.com/inematds/cerebro-mcp.git cd cerebro-mcp npm install npm test # ℹ tests 42 · pass 42 · fail 0
El script inicia el binario real y se comunica en JSON-RPC por stdio: initialize, tools/list, tools/call.
node scripts/teste-stdio.mjs /home/voce/meu-cerebro # OK initialize → servidor cerebro-mcp 1.0.0 (protocolo 2025-06-18) # OK tools/list → 10 herramientas: cerebro_contexto, cerebro_prioridades, ... # OK tools/call cerebro_ler ../../etc/passwd → isError (Acceso denegado)
Una línea. Para permitir que el agente registre decisiones y fuentes, agrega --escrita al final.
claude mcp add cerebro -e CEREBRO_DIR=/home/voce/meu-cerebro -- node /home/voce/cerebro-mcp/bin/cerebro-mcp.mjs # o, versionable en el proyecto: .mcp.json con {"mcpServers":{"cerebro":{"command":"node","args":[...],"env":{"CEREBRO_DIR":"..."}}}}
Codex lee ~/.codex/config.toml; Claude Desktop lee claude_desktop_config.json. El INSTALAR.md tiene los dos completos.
# ~/.codex/config.toml [mcp_servers.cerebro] command = "node" args = ["/home/voce/cerebro-mcp/bin/cerebro-mcp.mjs"] [mcp_servers.cerebro.env] CEREBRO_DIR = "/home/voce/meu-cerebro"
El agente decide por su cuenta cuándo llamar a cada herramienta. Empieza por lo que requiere contexto.
# tú: Quais são as minhas prioridades deste trimestre? # agente → cerebro_prioridades() → responde citando contexto/prioridades.md # tú: Por que decidimos fazer o site em gerador estático? # agente → cerebro_buscar("sitio estático") → cerebro_ler("decisoes/registro.md")
Se inicia en 127.0.0.1, sin sesión. Requiere el encabezado Accept: application/json, text/event-stream; tools/call funciona sin initialize antes.
CEREBRO_DIR=/home/voce/meu-cerebro node bin/cerebro-mcp.mjs --http 3333 curl -s http://127.0.0.1:3333/mcp -H 'Content-Type: application/json' \ -H 'Accept: application/json, text/event-stream' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"cerebro_prioridades","arguments":{}}}'
La misma carpeta, dos clientes diferentes. El agente llama a las herramientas; tú solo preguntas.
Tú (en Codex): ¿Qué pidió la Empresa X en la última reunión?
→ cerebro_wiki_pagina("empresa-x") → cerebro_ler("wiki/fontes/2026-09-01-reuniao-empresa-x.md")
Agente: Aprobó el alcance de la fase 2 con plazo para fines de octubre y quedó en definir quién valida los informes semanales (fuente: wiki/fontes/2026-09-01-reuniao-empresa-x.md).
Tú (en Claude Code, servidor con --escrita): Registra que aceptaremos la fase 2, con plazo en octubre, porque se aprobó la fase 1.
→ cerebro_registrar_decisao(titulo, decisao, porque)
Agente: Registrado en decisoes/registro.md con la fecha de hoy: "## 2026-09-07: Aceptar la fase 2 del Proyecto Alfa". ¿Quieres que anote las alternativas consideradas?
La 1.0.0 cubre todo el ciclo del kit. Las próximas fases son de conveniencia, no de fundamentos.