Obsidian MCP Server

1

Add it to Claude Code

Run this in a terminal.

Run in terminal
claude mcp add -e "OBSIDIAN_VAULT_PATH=${OBSIDIAN_VAULT_PATH}" mcp-obsidian -- uv run --directory /path/to/mcp-obsidian mcp-obsidian
Required:OBSIDIAN_VAULT_PATH
README.md

An MCP server that exposes your Obsidian vault to AI assistants

mcp-obsidian

An MCP server that exposes your Obsidian vault to AI assistants via the Model Context Protocol.

Requirements

  • Python 3.12+
  • uv

Installation

git clone https://github.com/johnkang/mcp-obsidian
cd mcp-obsidian
uv sync

Usage

Set the OBSIDIAN_VAULT_PATH environment variable to the absolute path of your vault, then run the server:

OBSIDIAN_VAULT_PATH=/path/to/your/vault uv run mcp-obsidian

Claude Desktop Integration

Add the following to your claude_desktop_config.json:

{
  "mcpServers": {
    "obsidian": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/mcp-obsidian", "mcp-obsidian"],
      "env": {
        "OBSIDIAN_VAULT_PATH": "/path/to/your/vault"
      }
    }
  }
}

The config file is located at:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Tools

File Operations

Tool Description
list_files(path="") List files and folders in the vault or a subdirectory
read_note(path) Read the contents of a note
write_note(path, content) Create or overwrite a note (parent dirs created automatically)
append_to_note(path, content) Append content to the end of an existing note
delete_note(path) Delete a note or folder
move_note(src, dest) Move or rename a note within the vault

Search

Tool Description
search_notes(query) Case-insensitive full-text search across all .md files
search_by_tag(tag) Find all notes containing a specific tag

Frontmatter

Tool Description
get_frontmatter(path) Read the YAML frontmatter of a note
update_frontmatter(path, key, value) Set or update a frontmatter field (creates it if absent)

Links & Graph

Tool Description
get_backlinks(path) Find all notes that link to a given note via [[wikilinks]]
get_outlinks(path) Extract all [[wikilinks]] from a note
get_orphans() Find notes with no incoming or outgoing links

Daily Notes

Tool Description
get_daily_note(date_str="") Read the daily note for a date (defaults to today, format: YYYY-MM-DD)
create_daily_note(date_str="") Create a daily note, using a daily template from Templates/ if available

Utility

Tool Description
list_tags() List all tags in the vault with usage counts
get_recent_notes(n=10) List the N most recently modified notes
get_note_stats() Return vault statistics (note count, word count, tags, links)
list_templates() List all templates in the vault's Templates/ folder

Security

All file paths are validated to prevent path traversal attacks — no operation can escape the configured vault directory.

Tools (19)

list_filesList files and folders in the vault or a subdirectory
read_noteRead the contents of a note
write_noteCreate or overwrite a note
append_to_noteAppend content to the end of an existing note
delete_noteDelete a note or folder
move_noteMove or rename a note within the vault
search_notesCase-insensitive full-text search across all .md files
search_by_tagFind all notes containing a specific tag
get_frontmatterRead the YAML frontmatter of a note
update_frontmatterSet or update a frontmatter field
get_backlinksFind all notes that link to a given note
get_outlinksExtract all wikilinks from a note
get_orphansFind notes with no incoming or outgoing links
get_daily_noteRead the daily note for a date
create_daily_noteCreate a daily note
list_tagsList all tags in the vault with usage counts
get_recent_notesList the N most recently modified notes
get_note_statsReturn vault statistics
list_templatesList all templates in the vault's Templates folder

Environment Variables

OBSIDIAN_VAULT_PATHrequiredThe absolute path to your Obsidian vault

Configuration

claude_desktop_config.json
{"mcpServers": {"obsidian": {"command": "uv", "args": ["run", "--directory", "/path/to/mcp-obsidian", "mcp-obsidian"], "env": {"OBSIDIAN_VAULT_PATH": "/path/to/your/vault"}}}}

Try it

Search my notes for any mentions of 'project alpha' and summarize the current status.
List all my recent notes from the last week and identify any that are orphans.
Create a new daily note for today and add a checklist of my top 3 priorities.
Find all notes tagged with #research and extract their frontmatter to a summary table.
What are the most linked notes in my vault?

Frequently Asked Questions

What are the key features of Obsidian MCP Server?

Full-text search across all markdown files in the vault. Comprehensive file operations including create, read, update, and delete. YAML frontmatter manipulation for metadata management. Graph analysis tools to find backlinks, outlinks, and orphan notes. Automated daily note creation using existing templates.

What can I use Obsidian MCP Server for?

Automating the creation of daily journals or meeting logs. Querying complex knowledge bases to find connections between notes. Bulk updating metadata or frontmatter across multiple notes. Cleaning up a vault by identifying and linking orphan notes.

How do I install Obsidian MCP Server?

Install Obsidian MCP Server by running: git clone https://github.com/johnkang/mcp-obsidian && cd mcp-obsidian && uv sync

What MCP clients work with Obsidian MCP Server?

Obsidian MCP Server works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Obsidian MCP Server docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare