obsidian-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OBSIDIAN_VAULT_PATH | Yes | The absolute path to the Obsidian vault root |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| vault_infoA | Report the vault root path and how many markdown notes it contains. Use this first to confirm the vault is mounted and readable. |
| list_notesA | List markdown notes in the vault (or a subfolder), newest info included. Returns vault-relative paths — use those in read_note. |
| read_noteA | Read the full markdown content of one note. |
| search_notesA | Full-text search across all notes. Default is case-insensitive substring matching; set regex=true to treat query as a regular expression. Returns path, line number and the matching line, capped at 50 hits. |
| get_frontmatterA | Read a note's YAML frontmatter (its properties: tags, dates, custom fields) as JSON. Cheaper than read_note when you only need metadata. |
| get_backlinksA | List notes that link TO a given note (wikilinks, embeds and relative markdown links). Use before editing or deleting to understand what references it, or to follow the knowledge graph backwards. |
| create_noteA | Create a new note. Fails if it already exists unless overwrite=true. Parent folders are created automatically. Pass |
| edit_noteA | Edit an existing note in place. Modes: 'append'/'prepend' content (prepend lands after frontmatter); 'find_replace' all occurrences of find→replace (fails if find is absent); 'replace_section' swaps everything under |
| delete_noteA | Move a note to the vault's .trash folder. NEVER a permanent delete — the note can be restored from .trash. Folders are refused, but folders left empty by the delete are removed automatically. |
| move_noteA | Move or rename a note (folders created automatically) and automatically update all links across the vault that pointed at its old location: wikilinks, embeds and relative markdown links. Emptied source folders are pruned. Prefer this over create+delete for renaming. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 10 tools
Each tool maps cleanly to a distinct resource/action: note content, frontmatter, backlinks, vault info, and file operations. Even close pairs like get_frontmatter vs read_note are explicitly differentiated by cost and scope.
Most tools follow a consistent verb_noun snake_case pattern (read_note, create_note, delete_note, move_note). vault_info is a minor outlier since it lacks a get_ or other verb prefix, but the overall pattern remains predictable and readable.
Ten tools is well-scoped for an Obsidian vault server. Each tool covers a distinct core operation with no redundancy or unnecessary bloat.
The toolset provides complete note lifecycle coverage: create, read, update, delete, move, search, plus Obsidian-specific needs like frontmatter and backlinks. Folder handling is implicit in move/create, so there are no obvious dead ends for the implied domain.