Obsidian MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OBSIDIAN_LOG_LEVEL | No | Logging level for the server. Options: DEBUG, INFO, WARNING, ERROR. | INFO |
| OBSIDIAN_VAULT_PATH | Yes | The absolute path to your Obsidian vault on your local filesystem. |
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": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| read_note_toolA | Read the content and metadata of a specific note. When to use:
When NOT to use:
Returns:
Note content and metadata including tags, aliases, and frontmatter.
Image references ( IMPORTANT: If the note contains image references, proactively offer to analyze them: "I can see this note contains [N] images. Would you like me to analyze/examine them for you?" Then use view_note_images to load and analyze the images if requested. |
| create_note_toolA | Create a new note or overwrite an existing one. When to use:
When NOT to use:
Returns: Created note information with path and metadata |
| update_note_toolA | Update the content of an existing note. ⚠️ IMPORTANT: By default, this REPLACES the entire note content. Always read the note first if you need to preserve existing content. When to use:
When NOT to use:
Returns: Update status with path, metadata, and operation performed |
| edit_note_section_toolA | Edit a specific section of a note identified by a markdown heading. When to use:
When NOT to use:
Section identification:
Operations:
Returns: Edit status including whether section was found or created |
| delete_note_toolA | Delete a note from the vault permanently. When to use:
When NOT to use:
⚠️ WARNING: This operation cannot be undone. The note will be permanently deleted. Returns: Deletion confirmation with the path of the deleted note |
| search_notes_toolA | Search for notes by filename or content, with smart ranking. DEFAULT BEHAVIOR (NEW): Searches BOTH note filenames AND content automatically. Filename matches are ranked higher than content matches for better discovery. When to use:
Search modes:
Examples:
Tag search supports hierarchical tags:
When NOT to use:
Returns: Search results with matched notes, relevance scores, and context. Filename matches have higher scores than content matches. Response includes match_type field: "filename" or "content". |
| search_by_date_toolA | Search for notes by creation or modification date. When to use:
When NOT to use:
Returns: Notes matching the date criteria with paths and timestamps |
| search_by_regex_toolA | Search for notes using regular expressions for advanced pattern matching. When to use:
When NOT to use:
Common patterns:
Returns: Notes containing regex matches with match details and context |
| search_by_property_toolA | Search for notes by their frontmatter property values. When to use:
Property types supported:
When NOT to use:
Examples:
Returns: Notes matching the property criteria with values displayed |
| list_notes_toolA | List notes in the vault or a specific directory. When to use:
When NOT to use:
Performance notes:
Returns: Hierarchical structure of notes with paths and folder organization |
| list_folders_toolA | List folders in the vault or a specific directory. When to use:
When NOT to use:
Returns: Folder structure with paths and names |
| move_note_toolA | Move a note to a new location, optionally with a new name. When to use:
When NOT to use:
Link updating:
Returns: Move confirmation with path changes and link update details |
| rename_note_toolA | Rename a note and automatically update all references to it. When to use:
When NOT to use:
Important:
Returns: Rename confirmation with link update details |
| create_folder_toolA | Create a new folder in the vault, including all parent folders in the path. When to use:
When NOT to use:
Note: Will create all necessary parent folders. For example, "Research/Studies/2024" will create Research, Research/Studies, and Research/Studies/2024 if they don't exist. Returns: Creation status with list of folders created and placeholder file path |
| move_folder_toolA | Move an entire folder and all its contents to a new location. When to use:
When NOT to use:
Returns: Move status with count of notes and folders moved |
| add_tags_toolA | Add tags to a note's frontmatter. When to use:
Tag format:
When NOT to use:
Returns: Updated tag list for the note |
| update_tags_toolA | Update tags on a note - either replace all tags or merge with existing. When to use:
When NOT to use:
Returns: Previous tags, new tags, and operation performed |
| remove_tags_toolA | Remove specific tags from a note's frontmatter. When to use:
When NOT to use:
Note: Only removes exact matches. To remove all subtags of a hierarchical tag, list them explicitly or use update_tags. Returns: Updated tag list after removal, with count of removed tags |
| get_note_info_toolA | Get metadata and statistics about a note without reading its content. When to use:
When NOT to use:
Returns: Note metadata including path, existence, dates, size, frontmatter properties, and statistics (word count, link count, tag count, image presence) |
| get_backlinks_toolA | Find all notes that link to a specific note (backlinks). When to use:
When NOT to use:
Performance note:
Returns: All notes linking to the target with optional context |
| get_outgoing_links_toolA | List all links from a specific note (outgoing links). When to use:
When NOT to use:
Returns: All outgoing links with their types and optional validity status |
| find_broken_links_toolA | Find all broken links in the vault, a specific directory, or a single note. When to use:
When NOT to use:
Returns: All broken links found in the specified scope |
| find_orphaned_notes_toolA | Find orphaned notes that may need organization or cleanup. When to use:
Orphan types explained:
Default exclusions:
When NOT to use:
Performance note:
Returns: List of orphaned notes with paths, reasons, and metadata. Results are sorted by modification date (oldest first). Example response: { "count": 23, "orphaned_notes": [ { "path": "Random Thoughts/Old Idea.md", "reason": "No incoming links", "modified": "2023-06-15T10:30:00Z", "size": 245, "word_count": 42 } ], "stats": { "total_notes_scanned": 500, "excluded_folders": ["Templates", "Archive", "Daily"], "orphan_type": "no_backlinks" } } |
| list_tags_toolA | List all unique tags used across the vault with usage statistics. When to use:
Hierarchical tags:
File paths (with include_files=true):
When NOT to use:
Performance note:
Returns: All unique tags with optional usage counts and file paths |
| batch_update_properties_toolA | Batch update properties across multiple notes. When to use:
Search criteria options:
Property operations:
Examples:
When NOT to use:
Returns: { "total_notes": 10, # Total notes found matching criteria "updated": 8, # Successfully updated notes "failed": 2, # Failed updates "details": [...], # List of changes per note "errors": [...] # List of errors with paths and reasons } |
| read_image_toolA | Read an image file from the Obsidian vault for analysis. When to use:
When NOT to use:
Returns: Image object that Claude can analyze and describe |
| view_note_images_toolA | Extract and analyze images embedded in a note. When to use:
When NOT to use:
Returns: List of Image objects that Claude can analyze and describe |
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 27 tools
Most tools have distinct purposes with clear boundaries, such as read_note vs. get_note_info, or add_tags vs. update_tags. However, there is some overlap between search_notes and search_by_property/search_by_date, which could cause confusion about which to use for specific queries, though descriptions help clarify.
Tool names follow a consistent snake_case pattern with clear verb_noun structures, such as create_note, delete_note, update_note, and search_notes. This predictability makes it easy to understand each tool's function at a glance across the entire set.
With 27 tools, the count feels heavy for a note-taking server, though it covers a broad range of operations. While comprehensive, it may overwhelm users with too many specialized tools, such as separate search_by_date and search_by_property tools, where a more unified search could suffice.
The tool set provides complete CRUD and lifecycle coverage for Obsidian vault management, including note creation, reading, updating, deletion, moving, renaming, tagging, searching, and maintenance tasks like finding broken links or orphaned notes. No obvious gaps exist for the domain.