obsidian-mcp
Enables AI agents to move and rename notes and folders inside an Obsidian vault while preserving internal links, and to list backlinks to a note. Operations are performed through the running Obsidian app so Obsidian updates links itself, including moving folders via a fixed Obsidian eval call.
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-mcpRename my note 'Daily Log.md' to 'Daily Notes.md'"
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-mcp
A local MCP server that lets an AI agent (Claude Cowork, Claude Code, any MCP client)
move and rename notes and folders in an Obsidian vault while keeping links intact —
something a plain mv cannot do.
It drives the running Obsidian app through its official CLI, so link updates are performed by Obsidian itself, exactly as with drag-and-drop in the file explorer.
Why
Agents usually manipulate a vault as plain files. Moving a note with mv breaks every
link pointing to it, because only Obsidian maintains the link index. Some agents
(e.g. Claude Cowork) even run their shell in a Linux VM where the Obsidian app is
unreachable. A local MCP server, launched on the host by the desktop client, bridges
that gap.
Related MCP server: Obsidian MCP Server
Tools
Tool | Purpose | Implemented with |
| move and/or rename a file |
|
| rename a file in place |
|
| move and/or rename a folder |
|
| list backlinks to a file |
|
Paths are relative to the vault root. The tool list is deliberately closed: no generic
access to obsidian eval.
Requirements
macOS, Obsidian ≥ 1.12 running, with the CLI enabled: Settings → General → Command line interface.
Obsidian setting Automatically update internal links enabled.
Python ≥ 3.12.
Installation
Install the package into a dedicated environment, so the server clients launch is independent from the source checkout:
conda create -n obsidian-mcp python=3.12
conda run -n obsidian-mcp pip install . # re-run after each code changeExecutable: <env>/bin/obsidian-mcp.
Environment variables:
OBSIDIAN_VAULT: name of the target vault (defaults to the active vault);OBSIDIAN_BIN: path to the Obsidian executable (defaults to/Applications/Obsidian.app/Contents/MacOS/Obsidian).
Client configuration
Claude Desktop (and therefore Cowork) — ~/Library/Application Support/Claude/claude_desktop_config.json,
edited while Claude Desktop is closed:
"mcpServers": {
"obsidian-vault": {
"command": "/path/to/envs/obsidian-mcp/bin/obsidian-mcp",
"env": { "OBSIDIAN_VAULT": "MyVault" }
}
}Claude Code:
claude mcp add -s user obsidian-vault -e OBSIDIAN_VAULT=MyVault -- /path/to/envs/obsidian-mcp/bin/obsidian-mcpThe client starts the server (stdio subprocess) when it launches and stops it when it quits.
Making agents actually use it
Having the tools available is not enough: out of habit, an agent may still reach for
mv. The server sends a short instruction to clients, but an explicit rule in the
agent's own context is more reliable. Suggested wording:
- Moving or renaming a note or folder in the vault: only with the `vault_*` tools
of the `obsidian-vault` MCP server, which go through Obsidian and update links.
Never `mv`, `git mv`, or copy-then-delete. If these tools are unreachable
(Obsidian closed, desktop app not running), ask the user to do the move in Obsidian.Where to put it:
A
CLAUDE.mdat the vault root: read by Claude Code, and by Cowork when the vault is the working folder. One place covers both.Cowork without the vault as working folder: in Cowork's global instructions, or in a small skill (e.g. "obsidian-vault-ops") whose description triggers on moving, renaming or reorganising notes.
Claude Code, hard enforcement (optional): a
PreToolUsehook onBashthat rejectsmv/git mvcommands touching the vault path turns the rule into a guard.
Notes
obsidian moverefuses folders, hence theevalroute forvault_move_folder.When a folder is moved, Obsidian may rewrite path-qualified links to their shortest form (depending on your New link format setting); links remain valid.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
Search and reason over your Obsidian-style Markdown vault, right from ChatGPT.
Search your Obsidian vault to quickly find notes by title or keyword, summarize related content, a…
Open-source Obsidian for MDX - edit local docs with agent assistance
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Obsidian vaults through file operations like moving/renaming files and analyzing markdown heading structures. Bridges AI assistants with Obsidian using the Local REST API plugin for seamless vault management.1MIT
- FlicenseCqualityFmaintenanceProvides LLM agents with comprehensive access to Obsidian vaults via the official Obsidian CLI bridge. It enables users to read, search, and modify notes, tasks, properties, and plugins while the Obsidian desktop app is running.5415-
- AlicenseBqualityDmaintenanceWraps the Obsidian CLI to allow LLM agents to read/write notes, search, manage frontmatter, navigate links, and run plugins on a running Obsidian instance.342MIT
- AlicenseAqualityDmaintenanceProvides AI agents with Obsidian vault operations via the official CLI, including reading, writing, searching notes, and managing files, with security and concurrency protections.7MIT