obsidian-vault-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OBSIDIAN_VAULT_PATH | No | Path to the Obsidian vault directory. Defaults to ~/ObsidianVault. | ~/ObsidianVault |
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_vault_filesC | List markdown (.md) files in the vault, optionally under a subdirectory. |
| get_vault_fileB | Get the contents of a vault file by its vault-relative path. |
| append_to_vault_fileA | Append content to a vault file, creating the file and any missing parent directories if needed. |
| create_vault_fileA | Create (or overwrite) a vault file with the given content, creating any missing parent directories. |
| patch_vault_fileB | Patch a vault file relative to a markdown heading: append/prepend content within the heading's section, or replace the section's content entirely. |
| search_vault_simpleB | Case-insensitive substring search across all vault markdown files. |
| get_vault_file_partialA | Get the content of a single heading's section from a vault file (heading line through the next same-or-higher-level heading, exclusive). |
| get_note_outlineC | Get the heading outline of a vault file. |
| get_recent_filesB | List vault markdown files sorted by most recently modified first. |
| search_and_replaceC | Find and replace text across the vault (or a single file). Supports literal or regex patterns. |
| rename_vault_fileA | Rename/move a vault file and update [[wikilinks]] referencing its old filename across the vault. |
| rename_headingC | Rename a heading's text in a vault file, preserving its level. |
| create_vault_directoryB | Create a directory (and any missing parents) inside the vault. |
| delete_vault_directoryA | Delete a directory inside the vault. Non-recursive fails if the directory is not empty. |
| delete_vault_fileC | Delete a single vault file. |
| list_tagsA | List all #tags used across the vault with their occurrence counts. |
| get_files_by_tagA | List vault files that contain a given #tag, with per-file occurrence counts. |
| get_note_propertyB | Get a YAML frontmatter property's value from a vault file. |
| set_note_propertyA | Set (or add) a YAML frontmatter property on a vault file, creating a frontmatter block if none exists. |
| get_outgoing_linksC | List [[wikilinks]] a vault file links out to. |
| get_backlinksC | Find all vault files that link to the given file via [[wikilinks]]. |
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 21 tools
Each tool has a clearly distinct purpose, from file/directory CRUD to specialized operations like heading manipulation, tag listing, and link tracking. Overlaps are minimal and well-differentiated.
All tools follow a consistent verb_noun pattern in snake_case, e.g., create_vault_file, get_backlinks, search_and_replace. This pattern is predictable and aids agent understanding.
With 21 tools, the set is well-scoped for managing an Obsidian vault. It covers essential operations without being overwhelming.
The tool surface covers file/directory CRUD, search, tag management, link tracking, frontmatter properties, and heading operations. No obvious gaps for typical vault management tasks.