obsidian-brain
Captures and recalls structured notes in a personal Obsidian vault. Provides tools to write validated notes to Inbox, perform ranked keyword searches with area/type/tag/recency filters, list recent notes, and read notes by vault-relative path with frontmatter and sections parsed out.
Click on "Deploy 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., "@obsidian-braincapture this as a how-to for the van, tag it victron"
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.
obsidian-brain
A local MCP server that lets Claude — in Claude Desktop / claude.ai as well as Claude
Code — capture sessions into the personal Obsidian vault and recall them later, plus the
version-controlled source for the obsidian-capture and obsidian-recall skills.
The point of the server is that the note schema is a tool contract, not a prompt. An invented area or a missing Resume Prompt comes back as a validation error instead of a malformed note nobody notices for six months.
Tools
Tool | Purpose |
| Write a structured note to |
| Ranked keyword search with area/type/tag/recency filters. Read-only. |
| The N most recently modified notes. Read-only. |
| One note by vault-relative path, with frontmatter and sections parsed out. Read-only. |
| Edit a |
Notes land as Inbox/YYYY-MM-DD <slug>.md:
---
date: 2026-08-05
type: how-to
areas:
- van
tags:
- victron
source: claude
status: inbox
---
# Victron MPPT charge profile for the lithium bank
## Summary
## Key Learnings
## Ideas / Follow-ups <- omitted entirely when empty
## Resume Prompt
## Contexttype— one oflearning,idea,research,how-to,project-noteareas— one or more from a fixed list of life/work areas (see Customizing areas)tags— freeform, lowercase, hyphenated
New notes go to Inbox/ and nowhere else. Reads and edits are confined to the vault:
absolute paths, .., non-.md files, and symlinks pointing outside are all rejected.
update_note edits notes this server wrote (source: claude in the frontmatter) wherever
they now live in the vault; hand-written notes are refused. Edits are surgical — fields you
don't pass stay byte-for-byte as they were, including frontmatter keys and sections added
by hand in Obsidian. Each edit must carry the hash from the read_note (or previous
update_note) that preceded it, and is refused if the file changed in between, so a stale
model can't overwrite something you just edited. There is no delete tool — Obsidian is for
that.
Customizing areas
The shipped areas are the author's own (van, motorcycles, cycling, sailing,
automotive, home-automation, homestead, spa-rpa, ai-learning, diy, family,
work, general) — an example, not a recommendation. Replace them with whatever buckets
fit your vault before you start capturing. Area keys are lowercase and hyphenated.
Edit
AREASinsrc/schema.ts. It is the single source of truth: the server rejects any area not in that list, on capture and on thesearch_notesarea filter. Keepinggeneral(or some catch-all) is recommended so there is always a valid fallback.Update the skills that spell the list out so clients pick from the same values:
skills/obsidian-capture/SKILL.md,skills-desktop/obsidian-capture/SKILL.md, andskills-desktop/obsidian-recall/SKILL.md.scripts/test.shfails until every listed copy matchessrc/schema.tsexactly, in order.Rebuild and redeploy:
npm run build,npm run deploy:skills, and — if you uploaded the Desktop skills —npm run build:desktop-skillsand re-upload the zips. Restart Claude Desktop so it launches the new server.
Renaming or removing an area does not touch existing notes; their frontmatter keeps the
old value, and the search_notes area filter will no longer accept it. Retag them in
Obsidian if that matters to you. NOTE_TYPES in the same file can be customized the same
way.
Related MCP server: obsidian-local-mcp
Setup
npm install
npm run build # dist/index.js — what Claude Desktop launches
scripts/register-desktop.sh # backs up and merges into claude_desktop_config.jsonThen restart Claude Desktop. For the skills:
npm run deploy:skills # skills/ -> ~/.claude/skills/ (Claude Code)
npm run build:desktop-skills # skills-desktop/ -> dist/skills/*.zipOptionally, upload each zip via Claude Desktop → Settings → Customize → Skills (requires code execution). Desktop works without them: the MCP server registered above is what gives it the vault tools, and it enforces the note schema itself. The skills only add capture/recall workflow guidance. Uploaded skills are per-user and update by re-uploading.
The two skill variants
skills/ and skills-desktop/ hold the same two skills written for different runtimes:
skills/— Claude Code. Uses Read/Write/ripgrep against the vault directly; no server needed.~/.claude/skills/is a deployed copy; edit the repo, not the copy.scripts/check-skill-drift.shfails if they diverge.skills-desktop/— Claude Desktop / claude.ai. No filesystem, so these drive the MCP tools above.
They share no template on purpose: the invariants that matter (the enums, the note format)
are enforced by the server, and tests/skills.test.ts fails if the taxonomy listed in any
SKILL.md drifts from src/schema.ts.
Commands
scripts/lint.sh # prettier --check + eslint
scripts/test.sh # vitest + coverage
npm run typecheck # tsc --noEmit
npm run inspect # MCP inspector against a live server
npm run check:skill-drift # deployed skills vs canonicalConfiguration is one env var, OBSIDIAN_VAULT_ROOT (default
~/Documents/Obsidian/Personal), supplied by the MCP client config. No credentials.
Governed at T1 — see GOVERNANCE.md.
License
Business Source License 1.1. You may use, modify, and redistribute obsidian-brain for your own vaults, including for commercial work; offering it to others as a hosted service is not covered. Each version converts to MIT on 2029-09-30.
This server cannot be deployed
Maintenance
Related MCP Connectors
Search, read, create and edit your Memol notes from Claude. Team note-taking with AI search.
- TaprootOAuthcom.taproothq
Persistent memory layer for AI tools. Save and recall notes across Claude and other MCP clients.
Notes and actions in one app. Let Claude or ChatGPT read and update them.
Search your Obsidian vault to quickly find notes by title or keyword, summarize related content, a…
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables Claude to read, write, search, and manage Obsidian vault notes with Git-backed sync support for multi-device access and extensible AI workflows.3,187 npm-
- FlicenseAqualityDmaintenanceEnables Claude to create, read, update, and search notes in a local Obsidian vault, with automatic YAML frontmatter and folder management.71-
- AlicenseNot gradedqualityDmaintenanceEnables bidirectional interaction with Obsidian vaults, allowing reading, writing, and organizing notes through Claude.MIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude to read, write, search, and manage an Obsidian vault with tools for notes, tags, folders, and full-text search.11 npmMIT