ObsidianConnector
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OBSIDIAN_MCP_CONFIG | No | Path to the vault registry JSON file (overrides the default config/vaults.json). | |
| OBSIDIAN_VAULT_ROOT | No | Root directory under which new vaults are created and registered vaults must reside to be listed (overrides the default set in .env). |
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_vaultsA | List the explicitly registered Obsidian vaults available for selection. |
| get_vaultA | Get metadata for one registered vault by name. |
| register_vaultB | Register an existing Obsidian vault path for safe access. |
| create_vaultB | Create and register a new vault under the configured Obsidian vault parent directory. |
| unregister_vaultA | Remove a vault from the local registry without deleting its files. |
| list_directoryA | List Markdown files and safe child directories inside a registered vault directory. |
| create_directoryB | Create a directory inside a registered writable vault. |
| list_notesA | List Markdown notes in a registered vault, optionally below a directory. |
| search_notesA | Search registered-vault filenames, Markdown content, tags, and YAML frontmatter with bounded excerpts. |
| read_noteA | Read one Markdown note from a registered vault. |
| create_noteA | Create a Markdown note; it fails if the note exists unless overwrite is explicitly true. |
| update_noteA | Replace a Markdown note, optionally requiring an expected SHA-256 hash for concurrency safety. |
| append_noteA | Append content to an existing Markdown note without replacing it. |
| move_noteA | Move a Markdown note inside a registered vault, rejecting an existing destination by default. |
| delete_noteA | Move a Markdown note to the vault trash instead of permanently deleting it. |
| get_frontmatterB | Read YAML frontmatter properties from a Markdown note. |
| update_frontmatterA | Merge selected YAML frontmatter properties without replacing the note body. |
| list_tagsA | List tags found in note frontmatter and Markdown hashtag syntax. |
| list_backlinksA | List Markdown notes containing Obsidian wiki links to a target note. |
| append_daily_noteA | Create or append to the configured daily note without overwriting existing content. |
| get_project_contextA | Read the canonical project notes from a registered vault with bounded content and missing-note reporting. |
| get_project_activityB | Extract current project tasks, decisions, risks, changelog entries, and recent daily notes. |
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 22 tools
Most tools have clear resource-action boundaries (e.g., read_note vs get_frontmatter vs search_notes). A few pairs like list_notes/list_directory and get_project_context/get_project_activity could cause initial confusion but descriptions resolve them.
All tools follow a consistent verb_noun snake_case pattern, with verbs like get, list, create, update, delete, search, move, append. No mixed conventions.
22 tools fall into the heavy range (16-25). While each tool has a specific function, the overall surface is broad and might be more than needed for typical Obsidian workflows.
Note lifecycle is fully covered (create/read/update/append/delete/search), plus vault registration and frontmatter handling. Missing directory deletion/rename and note metadata operations, but these are minor gaps.