Labsco
MCP SERVER

Vault MCP

by jlevere

Give an assistant the Obsidian vault you already have open — fuzzy search, diff-based edits and one-step rollback — from a server running inside Obsidian itself.

Note-Taking & Personal Knowledge Bases
Summary
A vault edited the way a coding agent edits code: as diffs, with the applied diff handed back and one step of undo.

Because the server lives inside Obsidian there is no second process and no question of which copy of the vault is current — it edits the one you have open. The editing model is the distinctive choice: a simplified udiff instead of a whole-file rewrite, with the diff that actually landed returned so the model can tell whether it matched. The author notes that smaller models struggle to produce accurate diffs, which is the honest limit; the rollback tool is there for when they do.

What it is

An Obsidian plugin that hosts the MCP server inside Obsidian and exposes the open vault over SSE or Streamable HTTP. It reads and writes notes, fuzzy-searches contents and filenames, walks the vault tree, and can undo the last edit it made.

What you get
  • obsidian-mcp-read-file returns a file's contents, and obsidian-mcp-upsert-file creates a note or replaces one
  • obsidian-mcp-diff-edit-file edits a note by applying a simplified udiff — the way LLM code editors work — and returns the diff of the changes actually applied, so the model can check them against what it intended
  • obsidian-mcp-rollback-edit reverts the last change a supported writing tool made to a Markdown file
  • obsidian-mcp-search-contents fuzzy-searches the text of every file in the vault, and obsidian-mcp-search-filenames searches the names
  • obsidian-mcp-list-files walks the vault with a depth and a result limit you choose
  • Custom schemas can be defined so structured notes are created and validated rather than freely written
  • Which tools are exposed is picked in the plugin's settings, alongside the port, the bind host and optional bearer-token authentication
Requirements

A desktop Obsidian install — the plugin is desktop only — added from Community Plugins as Vault MCP, or by extracting a release into <vault>/.obsidian/plugins/. It listens on port 3000 by default, bound to 127.0.0.1, with 0.0.0.0 available for LAN access and an optional token sent as Authorization: Bearer. It speaks SSE and Streamable HTTP only, so a client that needs stdio — Claude Desktop, for instance — connects through mcp-remote pointed at the /sse endpoint shown in the settings panel.