mechabrain
Provides memory management for an Obsidian vault, enabling agents to store and retrieve memories via Markdown files.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mechabrainsearch semantic memory for recent project notes"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Mecha-Brain
Memória agentica drop-in para qualquer vault Markdown.
O Mecha-Brain dá a um conjunto arbitrário de agentes LLM os quatro tipos de memória do CoALA (working, episódica, semântica, procedural), recall semântico compartilhado e um ciclo de decisão explícito para escrita — sem descaracterizar o PKM humano da vault hospedeira.
Ele é composto de duas partes:
Uma pasta contratual (
mecha-brain/) instalada na raiz da vault — a área onde os agentes podem escrever, versionada junto com a vault.Um kernel (este repositório): CLI
mechabrain+ servidor MCP, instalado fora da vault, que serve busca híbrida, escrita governada e manutenção sobre essa pasta.
Teste de aceitação: mechabrain init <qualquer-vault> + editar um config.yaml deve ser tudo
que é preciso para portar o sistema. Se um passo de instalação exigir editar código, o projeto
falhou.
Documentação: a doc do projeto — spec normativa, guia de setup, arquitetura, changelog — vive na vault do dono (Obsidian), não neste repositório: documentação é conteúdo, não código. Este repo carrega apenas o CLAUDE.md, a governança para agentes que trabalham neste repositório.
Instalação
uv tool install mechabrain # núcleo (pyyaml, numpy, mcp)
uv tool install "mechabrain[embed]" # + sentence-transformers (embeddings reais)
uv tool install "mechabrain[all]" # + lancedb + sqlite-vecO kernel exige Python >= 3.11. Ele mora fora da vault por design: código é software versionado com releases, não conteúdo sincronizado por nuvem.
cd /caminho/da/sua/vault
mechabrain init .O init cria o esqueleto, escreve um config.yaml default, adiciona mecha-brain/_meta/index/ ao
.gitignore da vault, gera o AGENTS.md e o schema.md, e imprime o snippet de integração para as
instruções da sua vault. É idempotente: rodar de novo não destrói nada.
O caminho completo — configurar o manifest, subir o daemon, registrar os clientes MCP, agendar a consolidação, portar para outra máquina — está no guia de setup, na vault do projeto.
Related MCP server: mem-persistence
As três camadas
Código, dados e estado de máquina têm ciclos de vida diferentes e nunca se misturam:
Camada | O quê | Onde vive | Sincroniza? |
Kernel | CLI, serviço de memória, servidor MCP, templates | instalado via | não (tem releases) |
Deployment |
| dentro da vault | sim, com o git da vault |
Runtime | índice vetorial ( | por máquina, gitignored | nunca |
Consequências práticas, todas normativas:
O kernel não contém nenhum caminho, nome de vault, nome de agente ou chave de frontmatter do seu deployment. Se ele precisa de um valor desses, o valor vem do manifest.
O deployment não contém nenhum caminho absoluto — todo path do
config.yamlé relativo à raiz da vault. Assim a vault sobrevive a mudar de pasta, de máquina e de sistema operacional.Zero symlinks. A vault é encontrada por convenção: argumento
--vault, depois a envMECHABRAIN_VAULT, depois subindo a árvore a partir do diretório atual até acharmecha-brain/_meta/config.yaml— do jeito que o git acha o.git.
A estrutura instalada
mecha-brain/
├── AGENTS.md # contrato para agentes — GERADO do template + config
├── hot.md # blackboard compartilhado — escrito só pelo consolidador
├── index.md # MOC mestre, magro; sharda por escopo quando cresce
├── indices/ # índices por escopo: <scope>.md
├── Semantic/ # fatos/insights consolidados, atômicos, curados
├── Episodic/ # eventos/sessões — IMUTÁVEL, append-only, uma subpasta por agente
├── Procedural/ # playbooks/how-tos destilados, com deprecação
├── Research/ # (opcional) relatórios de pesquisa longos
├── _inbox/ # propostas de mudança em notas humanas
└── _meta/
├── config.yaml # ★ O MANIFEST — a única casa de tudo específico do deployment
├── links.jsonl # arestas autoradas (memory_link) — versionado
├── schema.md # spec de frontmatter, gerada do manifest
└── index/ # vetores/BM25/derivados — GITIGNORED, por máquina, rebuildávelOs nomes dessa árvore são o contrato e não são configuráveis. O conteúdo é todo governado
pelo config.yaml.
Os comandos
Comando | Efeito |
| Cria o esqueleto, o manifest default, o |
| Regenera os artefatos derivados do manifest ( |
| Sobe o servidor MCP. |
| Reconstrói o índice derivado. Sempre seguro: o índice deriva do Markdown, que é a fonte-da-verdade. |
| Roda o pipeline de manutenção: flush de acessos, decay, deprecação, rebuild, commit — e o relatório de duplicatas. |
| Lint do deployment: manifest válido, denylists respeitadas, ausência de caminhos absolutos, |
Depois de editar o config.yaml, rode mechabrain sync. O AGENTS.md tem um bloco gerenciado
(entre <!-- mechabrain:begin --> e <!-- mechabrain:end -->) que o kernel regenera a partir do
manifest; o que você escrever fora do bloco sobrevive ao sync. Isso existe para eliminar o drift
entre documentação e config — fronteiras mantidas à mão divergem do config.yaml com o tempo.
Ferramentas MCP
Os agentes falam com o Mecha-Brain só por MCP: nenhum agente precisa conhecer os paths internos da pasta.
Ferramenta | O que faz |
| Busca híbrida (vetorial + BM25, pesos do manifest) com expansão opcional por links. |
| Nota completa por id ou wikilink. |
| Saúde do índice, contagens por tipo, data da última consolidação. |
| Escreve uma memória — passando pelo gate de escrita. |
| Propõe mudança em nota fora do sandbox. É a única via para isso. |
| Registra uma relação entre duas notas; alimenta a expansão por links da busca. |
Nomenclatura: a spec (na vault do projeto) descreve as ferramentas como
memory.search,memory.getetc. O charset de nome de tool do MCP não aceita ponto, então o nome real na wire usa underscore (memory_search). A notação com ponto é o contrato conceitual; o underscore é o nome que você configura no cliente.
Todo resultado de busca carrega path e wikilink da fonte, para o agente citar de onde tirou a
informação. Memória citável é memória auditável.
Limites por design
Esta seção é a parte honesta do README. O kernel nunca chama um LLM. Ele implementa o que é mecanicamente verificável e reporta o resto — julgamento é dos agentes. Isso é o CoALA §6 levado a sério (código para o determinístico, LLM para o julgamento), e tem consequências que você deve conhecer antes de confiar no sistema:
O gate de escrita só impõe metade do checklist. Dos sete itens do gate, o kernel impõe cinco:
duplicata no mesmo escopo, source: preenchido, escopo válido, procedural com evidência, denylists.
Os outros dois — "isto é reutilizável?" e "isto é atômico?" — são julgamento, e código não
policia julgamento. Eles estão instruídos no AGENTS.md e voltam como warnings, nunca como
rejeição. Não fingimos enforcement com um booleano que o agente sempre marca true: um gate que
mente é pior que um gate ausente. A única exceção é opt-in e mecânica: gate.reject_on: [confidence_unverified] no manifest eleva a rejeição o caso "confidence: high sem
meta.evidence ao lado" — a condição é um fato checável, mesmo que "a fonte é primária?" não
seja. reusable e atomic não são eleváveis, por design.
A fusão de duplicatas não é automática. O consolidate executa os passos mecânicos (flush de
acessos, decay, deprecação de procedural com sucessor, rebuild, commit). Mas fundir duas memórias
preservando detalhe exige entender as duas — então o kernel detecta e reporta os candidatos
(mesmo escopo, acima de dedup_similarity) num relatório, e a fusão é feita por um agente via
memory_write com supersedes. Pares cross-scope similares vão para uma lista separada do
relatório e nunca são fundidos: semelhança textual entre dois projetos é justamente a distinção
que importa.
O contexto do Contextual Retrieval é determinístico, não gerado. O prefixo prependido a cada
chunk antes de indexar é scope + título + tags + caminho de headings — não um resumo escrito por
LLM. O corpus é autorado e atômico; extração por LLM na ingestão adicionaria custo e ruído. Pela
mesma razão, a expansão multi-hop consulta o grafo autorado (wikilinks do corpo, supersedes,
arestas de memory_link) e nunca um grafo extraído automaticamente. O grafo melhora por curadoria.
Consolidação nunca destrói. Decay arquiva (status: arquivado), não deleta — notas arquivadas
saem do index.md e perdem peso no retrieval, mas continuam buscáveis com filtro explícito. Dedup
preserva detalhe e registra supersedes.
Um escritor por máquina. O serve roda como daemon local e os clientes MCP apontam para ele.
Uma sessão-por-processo seria vários escritores no mesmo índice, corrompendo-o. Sem daemon, o
fallback é lock de arquivo.
Entre máquinas, a consistência é eventual, via o git da vault. O gate de dedup consulta o índice
local, então quase-duplicatas podem nascer em máquinas diferentes entre syncs; o consolidate as
reconcilia depois. Episodic/ ser append-only por agente mantém conflitos de merge raros.
Escopo é uma fronteira, não uma sugestão. Toda memória carrega scope:. Um fato verdadeiro no
projeto A não pode ser recuperado como verdade no projeto B sem sinalização. Na dúvida entre projeto
e global, prefira o projeto: promover a global é decisão de consolidação, não de escrita.
Fora do escopo da v0.1: GraphRAG completo; o manifest de zonas para subsistemas que escrevem em notas humanas vivas; consistência forte multi-máquina; gerenciamento de stores privados de agentes (fronteira deliberada — o kernel gerencia só o store compartilhado).
Desenvolvimento
uv venv --python 3.13
uv pip install -e ".[dev]"
uv run pytest -qCódigo, docstrings e mensagens de erro em inglês (o kernel é agnóstico e OSS); README e docs de usuário em PT-BR.
Licença
MIT — Davi Bezerra Barros.
This server cannot be installed
Maintenance
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
- AlicenseAqualityBmaintenanceMCP server that exposes a local Obsidian vault as persistent, searchable memory for AI agents, with hybrid retrieval, reranker, and PDF support.Last updated343,06327MIT
- Alicense-qualityBmaintenancePersistent memory MCP server that stores and retrieves memories in Markdown files, enabling shared context across multiple AI agents with hybrid search and deduplication.Last updatedMIT
- Alicense-qualityBmaintenanceA personal memory MCP server for Obsidian/markdown vaults that provides hybrid retrieval (semantic, keyword, tag, time-aware co-occurrence) and is shared across multiple AI clients.Last updated201MIT
- Alicense-qualityBmaintenanceMCP server that provides semantic memory with search, related-content traversal, and write-back capabilities, all powered by local embeddings of your notes, documents, and chat histories.Last updated18MIT
Related MCP Connectors
Token-efficient MCP memory for Markdown vaults. Tiered search, GraphRAG, AI memories.
User-owned memory for AI agents, Copilot, Claude, IDEs, CLIs, and chat apps over remote MCP.
Person-owned, portable AI memory as a remote MCP server, readable and writable by any MCP client.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Gwafflezz/mechabrain'
If you have feedback or need assistance with the MCP directory API, please join our Discord server