vault.healthLABSCO SUMMARY
Write access is opt-in, and destructive edits ask twice.
Everything that changes the vault sits behind a tool set you switch on, and deletes, full replacements and global replacements each require an explicit confirmation. notes.validate lints a note before it is written, which removes the write-then-fix round trip that otherwise fills a vault with rule violations.
What it is
A Python server over a vault directory. The core is read-only and always on; writing, vault analysis, canvas, transcripts and semantic search are separate packs you enable per vault.
What you get
- Always on — vault.health, vault.diagnose, vault.context, client.roots and route.task, which recommends the prompts, skills and tools for a task
- Notes listed with pagination and glob filters, read singly or in batches, metadata-only reads, frontmatter, title or content search, and search by modified date — notes.list, notes.read, notes.read_many, notes.info, notes.get_frontmatter, notes.search, notes.search_by_date
- A note linted against the vault's own rules before it is written — notes.validate
- With notes_write: create, append, patch by exact match, replace, move and rename with every wikilink rewritten, delete, and preview-then-apply global replacement
- With vault_analysis: vault.stats, tags.analyze, links.analyze, links.backlinks, links.local_graph, links.find_orphans, links.find_broken with fuzzy suggestions, and a whole-vault lint that can auto-fix the regex rules
- With obsidianrag, canvas, kanvas and youtube: semantic questions through an external ObsidianRAG service, Canvas read and write, workflow boards, and transcript extraction
- Resources including obsidian://docs/agent-quickstart and obsidian://capabilities, so an agent orients itself in two calls
Requirements
uv, and OBSIDIAN_VAULT_PATH pointing at the vault you are willing to expose. Install straight from the repository with uvx --from git+https://github.com/Vasallo94/obsidian-mcp-server.git obsidian-mcp-server. Optional packs are named in OBSIDIAN_MCP_TOOL_SETS or in the vault's own .agents/vault.yaml.
Setup effort
One command — uvx --from git+https://github.com/Vasallo94/obsidian-mcp-server.git obsidian-mcp-server
USE CASES
Answering a question from your own notes
Search titles or content, batch-read the handful that matched, and get an answer grounded in what you wrote rather than what the model recalls.
Writing a note that follows the vault's rules
Lint the draft first and fix the violations it reports, then create it with the right folder, tags and template already applied.
Renaming a note without breaking links
Rename in place with link updating on, and every wikilink pointing at the old stem is rewritten, aliases and sections preserved.
Finding the rot in a large vault
List broken wikilinks with fuzzy suggestions and orphaned notes, compare used tags against the canonical registry, then fix in bulk after previewing.
79 tools
Listed in project docs. Your client may show a different list.
vault.diagnoseclient.rootsroute.taskvault.contextnotes.listnotes.readnotes.searchnotes.search_by_datenotes.read_manynotes.infotemplates.listnotes.get_frontmatterskills.listskills.readrules.getnotes.validatenotes.suggest_locationnotes.createnotes.appendnotes.patchnotes.replacenotes.update_frontmatternotes.update_tagsnotes.movenotes.renamenotes.deletenotes.preview_replacenotes.apply_replacevault.statstags.canonicaltags.analyzetags.sync_registrytags.listlinks.analyzeactivity.recentlinks.backlinkstags.notes_withlinks.local_graphlinks.find_orphansvault.lintlinks.find_brokenrag.setup_statusrag.healthrag.askrag.rebuild_indexskills.refresh_cacheskills.createskills.suggestskills.syncrules.addyoutube.transcriptsemantic.indexsemantic.searchsemantic.suggest_connectionscanvas.readcanvas.listcanvas.add_cardcanvas.add_groupcanvas.add_edgecanvas.update_cardcanvas.move_cardcanvas.remove_cardcanvas.remove_groupcanvas.remove_edgekanvas.initkanvas.statuskanvas.taskkanvas.readykanvas.blockedkanvas.startkanvas.finishkanvas.pausekanvas.approvekanvas.completekanvas.edit_taskkanvas.add_dependencykanvas.propose_taskkanvas.propose_groupBEFORE YOU INSTALL
What to know first
Tools you get
79 tools named in the project's documentation. A default install exposes only the 17 core tools; the rest come in opt-in packs enabled with OBSIDIAN_MCP_TOOL_SETS or profile.tool_sets. legacy_semantic is deprecated and off by default.
Requires
- uv
- Python 3.11+
- OBSIDIAN_VAULT_PATH in your environment
INSTALLATION
Connect your client
Server setup
uvx --from git+https://github.com/Vasallo94/obsidian-mcp-server.git obsidian-mcp-serverMCP Clients
Claude Desktop
{
"mcpServers": {
"obsidian": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/Vasallo94/obsidian-mcp-server.git",
"obsidian-mcp-server"
],
"env": {
"OBSIDIAN_VAULT_PATH": "<YOUR_OBSIDIAN_VAULT_PATH>"
}
}
}
}Claude Code
claude mcp add-json --scope user obsidian '{
"type": "stdio",
"command": "uvx",
"args": ["--from", "git+https://github.com/Vasallo94/obsidian-mcp-server.git", "obsidian-mcp-server"],
"env": {
"OBSIDIAN_VAULT_PATH": "<YOUR_OBSIDIAN_VAULT_PATH>"
}
}'Codex
For Codex, add this to ~/.codex/config.toml:
[mcp_servers.obsidian]
command = "uvx"
args = [
"--from",
"git+https://github.com/Vasallo94/obsidian-mcp-server.git",
"obsidian-mcp-server",
]
startup_timeout_sec = 30
tool_timeout_sec = 120
[mcp_servers.obsidian.env]
OBSIDIAN_VAULT_PATH = "<YOUR_OBSIDIAN_VAULT_PATH>"Hermes
Add this to ~/.hermes/config.yaml:
mcp_servers:
obsidian:
command: "uvx"
args:
- "--from"
- "git+https://github.com/Vasallo94/obsidian-mcp-server.git"
- "obsidian-mcp-server"
env:
OBSIDIAN_VAULT_PATH: "<YOUR_OBSIDIAN_VAULT_PATH>"