Servidor MCP · segundo cérebro

Um cérebro. Vários clientes de IA.

Expõe a pasta Markdown do kit astra-2cerebro como ferramentas MCP para Claude Code, Codex, Claude Desktop, n8n e bots. Leitura por padrão, escrita só se você ligar.

Ilustração de um cérebro conectado a vários assistentes de IA
O que é

Seu segundo cérebro, em qualquer cliente MCP

O kit astra-2cerebro guarda quem você é, prioridades, decisões, projetos e uma wiki interligada em arquivos Markdown. O cerebro-mcp sobe um servidor MCP apontado para essa pasta e cada cliente ganha as ferramentas cerebro_*. O cérebro continua sendo só arquivos; quem muda é quem consegue lê-los.

🧠 Treze ferramentas, uma pasta

Contexto, prioridades, mapa de rotas, busca, leitura, wiki, projetos, conexões e rotinas. Mais três de escrita (decisão, fonte, execução) que só aparecem com --escrita.

🔒 Só dentro do cérebro

Todo caminho passa por uma verificação que bloqueia ../, caminhos absolutos de fora, symlinks para fora, .git, node_modules e .env. Nada sai da máquina.

🔌 stdio ou HTTP

Por stdio para Claude Code, Codex e Claude Desktop. Com --http, um endpoint em 127.0.0.1 para n8n, bots e scripts. Sem índice, sem banco: lê o disco na hora.

Como funciona

Do cliente até o arquivo Markdown

O cliente sobe o servidor como processo filho, pergunta quais ferramentas existem e as chama quando precisa. O servidor lê a pasta na hora e devolve texto Markdown com o caminho do arquivo, para o modelo citar a fonte.

Cliente MCP bin/cerebro-mcp.mjs resolverDir (--dir / CEREBRO_DIR / pasta atual) ferramentas cerebro_* caminhoSeguro .md do cérebro texto com caminho
1

Localizar

--dir, depois CEREBRO_DIR, depois a pasta atual se tiver AGENTS.md ou CLAUDE.md. Sem cérebro, erro claro e saída 1.

2

Registrar

Dez ferramentas de leitura e os recursos cerebro:// sempre; as três de escrita só com --escrita ou CEREBRO_ESCRITA=1.

3

Responder

Cada chamada lê o disco, monta Markdown e devolve. Erro previsível vira isError; o processo nunca cai por uma chamada ruim.

FerramentaO que fazEscrita
cerebro_contexto()sobre-mim + sobre-o-trabalho + prioridades, com os caminhosnão
cerebro_prioridades()contexto/prioridades.mdnão
cerebro_rotas()a seção "Mapa de rotas" do AGENTS.md / CLAUDE.mdnão
cerebro_buscar(consulta, limite?)busca por termos em todos os .md, com trecho e relevâncianão
cerebro_ler(caminho)conteúdo de um arquivo ou listagem de pasta, só dentro do cérebronão
cerebro_wiki_indice() · cerebro_wiki_pagina(slug)índice da wiki e página por slugnão
cerebro_projetos() · cerebro_conexoes() · cerebro_rotinas()projetos com estado, tabela de conexões, rotinas e execuçõesnão
cerebro_registrar_decisao(...)entrada datada em decisoes/registro.mdsim
cerebro_adicionar_fonte(nome, conteudo)fontes/AAAA-MM-DD-slug.md, sem sobrescreversim
cerebro_registrar_execucao(id, resultado, ...)linha nova no registro de execuções de rotinassim
Pré-requisitos

Três coisas antes de começar

Nada de banco, nada de serviço externo. Só Node, uma pasta de cérebro e um cliente MCP.

Node.js 20+

O servidor é ESM puro. Se você usa Claude Code ou Codex, já tem.

# confira a versão
node --version

Um cérebro do kit astra-2cerebro

Uma pasta com AGENTS.md/CLAUDE.md, contexto/, wiki/, decisoes/. Se ainda não tem, instale o kit.

# o kit cria a estrutura
git clone https://github.com/inematds/astra-2cerebro

Um cliente MCP

Claude Code, Codex, Claude Desktop — ou n8n/bot no modo HTTP.

# exemplo: Claude Code instalado
claude mcp list
Guia de uso · passo a passo

Do clone ao primeiro "quais são minhas prioridades?"

Todos os comandos são reais e estão no repositório. Troque /home/voce/meu-cerebro pela pasta do seu cérebro.

1

Clone e instale

Baixa o servidor, instala o SDK oficial e roda os 42 testes contra a fixture incluída.

git clone https://github.com/inematds/cerebro-mcp.git
cd cerebro-mcp
npm install
npm test   # ℹ tests 42 · pass 42 · fail 0
2

Teste contra o seu cérebro (sem cliente nenhum)

O script sobe o binário de verdade e conversa em 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 ferramentas: cerebro_contexto, cerebro_prioridades, ...
# OK  tools/call cerebro_ler ../../etc/passwd → isError (Acesso negado)
3

Registre no Claude Code

Uma linha. Para permitir que o agente registre decisões e fontes, acrescente --escrita no fim.

claude mcp add cerebro -e CEREBRO_DIR=/home/voce/meu-cerebro -- node /home/voce/cerebro-mcp/bin/cerebro-mcp.mjs
# ou, versionável no projeto: .mcp.json com {"mcpServers":{"cerebro":{"command":"node","args":[...],"env":{"CEREBRO_DIR":"..."}}}}
4

Ou no Codex / Claude Desktop

Codex lê ~/.codex/config.toml; Claude Desktop lê claude_desktop_config.json. O INSTALAR.md tem os dois 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"
5

Converse

O agente decide sozinho quando chamar cada ferramenta. Comece pelo que exige contexto.

# você: Quais são as minhas prioridades deste trimestre?
# agente → cerebro_prioridades() → responde citando contexto/prioridades.md
# você: Por que decidimos fazer o site em gerador estático?
# agente → cerebro_buscar("site estático") → cerebro_ler("decisoes/registro.md")
6

Modo HTTP para n8n, bots e scripts

Sobe em 127.0.0.1, sem sessão. Exige o cabeçalho Accept: application/json, text/event-stream; tools/call funciona sem 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":{}}}'
Exemplos

Duas conversas que o servidor torna possíveis

A mesma pasta, dois clientes diferentes. O agente chama as ferramentas; você só pergunta.

Você (no Codex): O que a Empresa X pediu na última reunião?

→ cerebro_wiki_pagina("empresa-x") → cerebro_ler("wiki/fontes/2026-09-01-reuniao-empresa-x.md")

Agente: Aprovou o escopo da fase 2 com prazo no fim de outubro e ficou de definir quem valida os relatórios semanais (fonte: wiki/fontes/2026-09-01-reuniao-empresa-x.md).

Leitura: a wiki responde com a fonte citada.

Você (no Claude Code, servidor com --escrita): Registra que vamos aceitar a fase 2, prazo em outubro, porque a fase 1 foi aprovada.

→ cerebro_registrar_decisao(titulo, decisao, porque)

Agente: Registrado em decisoes/registro.md com a data de hoje: "## 2026-09-07: Aceitar a fase 2 do Projeto Alfa". Quer que eu anote as alternativas consideradas?

Escrita: entrada no formato do kit, só acrescentando.
Roadmap

O que está pronto e o que vem depois

A 1.0.0 cobre o ciclo inteiro do kit. As próximas fases são conveniência, não fundação.

v1.0 ✓
Servidor completo13 ferramentas, recursos cerebro://, stdio e HTTP, bloqueio de caminhos, 42 testes, fumaça por stdio e HTTP, documentação em PT-BR (README, INSTALAR, docs/).
próximo
Prompts MCP prontosExpor prompts como "resumo do dia" e "revisar decisões do mês" que já encadeiam as ferramentas certas.
depois
Índice opcional para cérebros grandesCache de busca reconstruído quando um arquivo muda, mantendo o comportamento sem índice como padrão.
ideia
Autenticação simples no modo HTTPUm token por variável de ambiente para expor o servidor numa rede de confiança sem proxy.