obsidian-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OBSIDIAN_DAILY_DIR | No | Folder for daily notes, relative to the vault root | Daily |
| OBSIDIAN_VAULT_PATH | Yes | Absolute path to your vault folder | |
| OBSIDIAN_TEMPLATE_DIR | No | Folder for templates, relative to the vault root | Templates |
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 |
|---|---|
| list_notesA | List markdown notes in the Obsidian vault, sorted by last modified (newest first). Optionally restrict to a subfolder. |
| read_noteA | Read a note from the vault. Returns the parsed frontmatter and the markdown body. |
| create_noteA | Create a new markdown note (parent folders are created automatically). Fails if the note exists unless overwrite is true. |
| append_noteA | Append text to a note. With 'heading', the text is inserted at the end of that heading's section (the section is created if missing). |
| edit_noteA | Edit a note by exact string replacement. Fails if old_text is not found, or is ambiguous without replace_all. |
| update_frontmatterA | Update a note's YAML frontmatter by key: merge |
| search_notes | Full-text search across the vault (case-insensitive), with optional tag and frontmatter filters. With only a tag/frontmatter filter and no query, lists all matching notes. Pass regex: true to interpret the query as a regular expression. |
| move_note | Move or rename a note, then rewrite [[wikilinks]] and markdown links in every other note so they keep resolving. |
| delete_note | Delete a note safely by moving it to the vault's .trash folder (Obsidian's trash convention). |
| backlinks | Find notes that link to a given note, via [[wikilinks]] (with #heading/|alias) or ](note.md) markdown links. |
| daily_note | Get today's daily note, creating it from a template if needed. Pass 'date' (YYYY-MM-DD) for another day. Notes live in the folder set by OBSIDIAN_DAILY_DIR (default 'Daily'). |
| get_outline | Get a note's heading outline (level/text/line) and total line count, without reading the full body. Skips '#' characters inside fenced code blocks. |
| create_from_template | Create a note from a template. Templates live in the folder set by OBSIDIAN_TEMPLATE_DIR (default 'Templates'). Replaces {{date}} (today, YYYY-MM-DD), {{title}} (the new note's filename), and any {{name}} passed in |
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 6 tools
Each tool targets a distinct action: listing, reading, creating, appending, editing, and updating frontmatter. No two tools overlap in purpose.
All tool names follow a consistent verb_noun snake_case pattern (e.g., list_notes, create_note, update_frontmatter).
With 6 tools, the set is well-scoped for managing notes in a vault, covering essential operations without being overwhelming.
The set covers create, read, and update operations, but notably lacks a delete tool, which is a significant gap for full lifecycle management.