Obsidian MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OBSIDIAN_HOST | No | API host | 127.0.0.1 |
| OBSIDIAN_PORT | No | API port | 27124 |
| OBSIDIAN_SECURE | No | Use HTTPS | true |
| OBSIDIAN_API_KEY | Yes | From Local REST API plugin | |
| OBSIDIAN_VERIFY_SSL | No | Verify SSL certificate | false |
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
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| vault_statusA | Check the connection to Obsidian and get server status information. Use this to verify the MCP server can communicate with Obsidian. |
| list_filesA | List files and folders in the Obsidian vault. Can list the root directory or a specific folder. Returns names of files and directories (directories end with /). |
| list_all_filesA | Recursively list all files in the Obsidian vault. Can start from a specific directory and filter by file extension. Useful for getting a complete view of vault structure. |
| get_vault_structureA | Get a tree-like structure of folders in the Obsidian vault. Useful for understanding the vault organization. Only shows directories, not individual files. |
| get_file_statsA | Get statistics about files in the vault or a specific directory. Shows file counts by extension, total files, and directory counts. |
| delete_fileA | Delete a file from the Obsidian vault. WARNING: This permanently removes the file. Use with caution. |
| read_noteB | Read the content of a note from the Obsidian vault. Returns the full content including frontmatter, or can return parsed sections. |
| create_noteA | Create a new note in the Obsidian vault. Can include frontmatter properties like tags, aliases, and custom fields. |
| update_noteA | Update the content of an existing note in the Obsidian vault. Replaces the entire content of the note. |
| append_to_noteA | Append content to the end of an existing note. Useful for adding new sections, logging entries, or updating lists. |
| prepend_to_noteA | Prepend content to the beginning of a note (after frontmatter). Useful for adding headers, timestamps, or important notices. |
| insert_under_headingA | Insert content under a specific heading in a note. Useful for adding content to specific sections without modifying the rest. |
| replace_in_noteB | Find and replace text in a note. Useful for making specific edits without replacing the entire content. |
| delete_noteA | Delete a note from the Obsidian vault. WARNING: This permanently removes the note. Use with caution. |
| copy_noteA | Copy a note to a new location in the vault. The original note is preserved. |
| search_notesA | Search for notes in the Obsidian vault using Obsidian's query syntax. Supports operators like: path:, file:, tag:#, content in quotes, and more. Returns matching files with relevance scores. |
| simple_searchA | Simple text search across all notes in the vault. Searches for the exact text (case-insensitive). Good for finding specific phrases or terms. |
| search_by_tagA | Find all notes that have specific tags. Tags can be in frontmatter or inline in the content. Can search for multiple tags (notes must have all specified tags). |
| search_in_folderB | Search for notes within a specific folder. Combines folder path filtering with text search. |
| find_notes_by_nameA | Find notes by their filename. Searches for notes whose name contains the specified text. |
| get_recent_notesA | Get a list of recently modified markdown notes. Useful for finding notes you've worked on recently. |
| search_with_contextA | Search notes and return results with content snippets/context. Useful for previewing search results without opening each note. |
| get_frontmatterA | Get the frontmatter (YAML metadata) from a note. Returns all frontmatter fields including tags, aliases, and custom properties. |
| update_frontmatterA | Update frontmatter fields in a note. Can add new fields or update existing ones. Existing fields not specified are preserved. |
| set_frontmatter_propertyA | Set a single frontmatter property in a note. Creates the property if it doesn't exist. |
| get_tagsA | Get all tags from a note. Includes tags from frontmatter and inline tags (#tag) in the content. |
| add_tagsA | Add tags to a note's frontmatter. Tags are added without duplicates. Creates frontmatter if needed. |
| remove_tagsA | Remove tags from a note's frontmatter. Only removes tags from frontmatter, not inline tags. |
| add_aliasesA | Add aliases (alternative names) to a note's frontmatter. Aliases help find notes by different names. |
| get_all_tags_in_vaultA | Get a list of all unique tags used across the entire vault. Useful for understanding tag taxonomy and finding related notes. |
| open_noteA | Open a note in the Obsidian user interface. Makes the note visible and active in Obsidian. |
| get_active_noteA | Get the content of the currently active (focused) note in Obsidian. Returns the note's content, path, and metadata. |
| append_to_active_noteA | Append content to the currently active note in Obsidian. Useful for quickly adding content to whatever note you're working on. |
| get_commandsA | Get a list of all available commands in Obsidian. Commands are actions that can be executed, like 'Toggle fold' or 'Export to PDF'. |
| execute_commandA | Execute an Obsidian command by its ID. Use get_commands to find available commands and their IDs. Examples: 'app:toggle-left-sidebar', 'editor:toggle-fold' |
| quick_captureA | Quickly capture a thought, idea, or note. Appends to a designated capture file with timestamp. Great for inbox-style note capture. |
| get_daily_noteA | Get the content of today's daily note. Creates the note if it doesn't exist (using Obsidian's daily notes settings). Requires Daily Notes core plugin or Periodic Notes plugin. |
| append_to_daily_noteA | Append content to today's daily note. Creates the daily note if it doesn't exist. |
| get_periodic_noteA | Get a periodic note for a specific period and date. Supports daily, weekly, monthly, quarterly, and yearly notes. Requires the Periodic Notes plugin for non-daily periods. |
| append_to_periodic_noteB | Append content to a periodic note. Can append to current period's note or a specific date. |
| daily_journal_entryB | Add a structured journal entry to today's daily note. Creates a nicely formatted journal entry with optional sections. |
| daily_standupA | Add a daily standup/scrum entry to today's daily note. Uses the classic standup format: yesterday, today, blockers. |
| get_outgoing_linksA | Get all outgoing links from a note. Returns internal links ([[note]]), external links, and tags. |
| get_backlinksA | Find all notes that link to a specific note (backlinks). Searches the entire vault for [[note]] references. |
| find_broken_linksA | Find broken internal links in the vault. Identifies [[links]] that point to notes that don't exist. |
| find_orphan_notesA | Find orphan notes - notes with no incoming links from other notes. These are notes that aren't connected to the rest of your knowledge graph. |
| add_link_to_noteC | Add an internal link ([[note]]) to a note. Can append to the end or insert at a specific location. |
| get_link_graph_dataA | Get link graph data for a folder or the entire vault. Returns nodes (notes) and edges (links) for visualization. |
| create_note_from_templateA | Create a new note using a built-in template. Available templates: meeting, project, book, article, person, recipe, decision. |
| create_meeting_noteC | Create a structured meeting note with attendees, agenda, and action items. |
| create_project_noteC | Create a structured project note with goals, tasks, and timeline. |
| list_templatesA | List all available built-in templates and their descriptions. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| summarize-note | Generate a summary of an Obsidian note |
| organize-vault | Analyze vault structure and suggest organization improvements |
| daily-review | Generate a daily review based on today's notes and activities |
| weekly-review | Generate a weekly review and planning session |
| research-topic | Research a topic by searching across your vault |
| create-moc | Create a Map of Content (MOC) for a topic |
| process-inbox | Process captured notes from inbox and file them appropriately |
| link-suggestions | Suggest links to add to a note based on its content |
| meeting-prep | Prepare for an upcoming meeting by gathering relevant notes |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| obsidian-status | Obsidian connection status and configuration information |
| obsidian-help | Documentation and help for the Obsidian MCP server |
| obsidian-vault-info | Information about the Obsidian vault structure |
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/aniketbiswas/obsidian-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server