obsidian-mcp-read-fileLABSCO 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.
Setup effort
Follow the published steps — Open Obsidian Settings > Community Plugins
USE CASES
Finding a note you only half remember
Fuzzy search across the text of the whole vault, or across filenames when the title is the part you recall.
Changing part of a long note
Read it, apply a diff to the lines that change, and check the returned diff against what was intended — no whole-file rewrite.
Undoing an edit that went wrong
One call reverts the last change a writing tool made to that Markdown file.
Filing something new in the right place
Walk the vault structure to a chosen depth, then create the note where it belongs.
8 tools
Listed in project docs. Your client may show a different list.
obsidian-mcp-diff-edit-fileobsidian-mcp-search-contentsobsidian-mcp-search-filenamesobsidian-mcp-list-filesobsidian-mcp-upsert-fileobsidian-mcp-rollback-editlist-schemasBEFORE YOU INSTALL
What to know first
Tools you get
8 tools named in the project's documentation. list-schemas appears only once dynamic tools are configured, each schema you add creates another tool, and tools can be switched off in settings.
Requires
- Desktop Obsidian — the plugin is not supported on mobile
- npx, for the mcp-remote proxy that stdio-only clients such as Claude Desktop need
INSTALLATION
Connect your client
Server setup
Open Obsidian Settings > Community Plugins
Search for "Vault MCP"
Click Install, then Enable
Configure settings as needed
MCP Clients
Claude Desktop
{
"mcpServers": {
"obsidian": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:<YOUR_SERVER_PORT>/sse"
]
}
}
}