Skip to main content
Glama
obsidian-mcp
by ALQ78

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

vault_move_file(source, destination)

move and/or rename a file

obsidian move

vault_rename(source, new_name)

rename a file in place

obsidian rename

vault_move_folder(source, destination)

move and/or rename a folder

obsidian eval (fixed JS → app.fileManager.renameFile)

vault_backlinks(path)

list backlinks to a file

obsidian backlinks

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 change

Executable: <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-mcp

The 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.md at 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 PreToolUse hook on Bash that rejects mv/git mv commands touching the vault path turns the rule into a guard.

Notes

  • obsidian move refuses folders, hence the eval route for vault_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 tools
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

    A3.5/5.0

    Scored across 4 tools

    Disambiguation4/5

    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.

    Naming Consistency4/5

    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.

    Tool Count4/5

    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.

    Completeness2/5

    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

    ActivityMaintained
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables 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.
      1
      MIT
    • F
      license
      C
      quality
      D
      maintenance
      Provides 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.
      54
      16
      -
    • A
      license
      B
      quality
      D
      maintenance
      Wraps the Obsidian CLI to allow LLM agents to read/write notes, search, manage frontmatter, navigate links, and run plugins on a running Obsidian instance.
      34
      2
      MIT