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-mcp Rename 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
Available Tools
4 toolsvault_backlinksA
List the notes linking to a file (to check before/after a move).
Inputs: path (required). Returns: result
vault_move_fileB
Move (and/or rename) a file in the vault, updating links.
source: file path, e.g. 'Projects/X/Note.md'. destination: target folder ending with '/' (e.g. 'Areas/Y/') or the new full file path (e.g. 'Areas/Y/Note.md').
Inputs: source (required), destination (required). Returns: result
vault_move_folderA
Move and/or rename a folder in the vault, updating links.
source: folder path, e.g. 'Projects/X'. destination: the folder's NEW full path, e.g. 'Archives/X' (missing parent folders are created).
Inputs: source (required), destination (required). Returns: result
vault_renameB
Rename a file in place (same folder), updating links.
source: file path. new_name: new file name, without folder.
Inputs: source (required), new_name (required). Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool operates on a distinct resource/action (file move, file rename, folder move, backlinks), but vault_move_file explicitly also performs renames, which partially overlaps with vault_rename. The descriptions do clarify the boundary (rename = same folder, move = change folder), so misselection risk is low but present.
All names use snake_case with a consistent vault_ prefix, which is predictable. The only minor deviation is that vault_rename and vault_backlinks drop the verb_noun shape used by the other two, but the set is still clearly readable.
Four tools is lean but each earns its place for the apparent purpose of link-safe vault reorganization. It is slightly thin, but not so thin that any single tool feels gratuitous.
The surface covers moving/renaming and a backlink check, but has no create, read, list, search, or delete operations for vault notes. An agent could reorganize files but would dead-end on basic note lifecycle tasks.
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
- FlicenseCqualityDmaintenanceProvides 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.5416-
- 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