ObsidianMCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OBSIDIAN_HOST | No | Host where Obsidian is running | 127.0.0.1 |
| OBSIDIAN_PORT | No | Port for the REST API | 27124 |
| OBSIDIAN_API_KEY | Yes | API key from the Local REST API plugin | |
| OBSIDIAN_PROTOCOL | No | http or https | https |
| OBSIDIAN_VERIFY_SSL | No | Set to false for self-signed certs | true |
| OBSIDIAN_SMART_ENV_PATH | No | Path to .smart-env/ folder for semantic search (requires Smart Connections plugin) |
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_filesA | List files and directories in the Obsidian vault. Provide a folder path to list its contents, or omit to list the root. |
| read_noteB | Read the markdown content of a note in the vault. |
| create_noteB | Create a new note or overwrite an existing one in the vault. Embed attachments using ![[filename.png]] syntax. |
| append_to_noteB | Append content to the end of an existing note. Use ![[filename.png]] to embed attachments. |
| patch_noteB | Insert or replace content relative to a heading in a note. Useful for updating specific sections. |
| delete_noteC | Delete a note from the vault. |
| get_active_noteA | Read the content of the currently active/open note in Obsidian. |
| update_active_noteB | Overwrite the content of the currently active/open note in Obsidian. |
| append_to_active_noteC | Append content to the currently active/open note in Obsidian. |
| patch_active_noteC | Insert or replace content relative to a heading in the currently active note. |
| delete_active_noteA | Delete the currently active/open note in Obsidian. |
| open_noteC | Open a note in the Obsidian UI. |
| get_server_statusA | Check the status of the Obsidian Local REST API server and get version info. |
| upload_attachmentA | Upload an attachment (image, PDF, audio, video) to the vault from a local file path. After uploading, embed it in a note using ![[filename]] syntax. |
| search_vaultB | Search for notes in the vault using full-text fuzzy search. Returns matching filenames and context. |
| search_dataviewB | Run a Dataview DQL query against the vault. Requires the Dataview plugin to be installed in Obsidian. Example: 'TABLE file.mtime AS "Modified" FROM "Notes" SORT file.mtime DESC' |
| search_jsonlogicB | Run a JsonLogic query against the vault for structured/programmatic searches. Useful for filtering notes by metadata fields. |
| get_periodic_noteB | Get the content of a periodic note (daily, weekly, monthly, quarterly, or yearly). |
| create_periodic_noteB | Create or overwrite a periodic note (daily, weekly, monthly, quarterly, or yearly). |
| append_to_periodic_noteB | Append content to a periodic note (e.g. add an entry to today's daily note). |
| list_commandsB | List all available Obsidian commands that can be executed. |
| execute_commandA | Execute an Obsidian command by its ID. Use list_commands to find available command IDs. |
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
The tool set includes many similarly purposed tools, such as append_to_note vs. append_to_active_note and patch_note vs. patch_active_note, which could confuse an agent about which to use. However, the distinction between note-specific operations and active-note operations is clearly described, mitigating some ambiguity.
Most tools follow a consistent verb_noun pattern (e.g., get_active_note, append_to_note). A few tools like execute_command and search_dataview deviate slightly, but overall the naming is predictable and readable.
With 22 tools, the set is on the heavy side for an Obsidian MCP server. While many tools are justified, the presence of both generic and active-note variants for note operations inflates the count unnecessarily.
The tool set covers a wide range of operations including note creation, reading, updating, deletion, search, and periodic notes, which is fairly complete for Obsidian workflows. However, some operations like moving or renaming notes are missing, which could cause workarounds.