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 |
Capabilities
Features and capabilities supported by this server
| 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 | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Mochiduki-0715/obsidian-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server