Another bloated Obsidian MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | Logging level: debug, info, warn, error. | info |
| OBSIDIAN_MCP_TOOLS | No | Comma-separated list of tool groups. Default 'all'. | all |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_vaultsA | List all configured Obsidian vaults and show which one is currently active |
| set_active_vaultA | Set the active vault for subsequent operations |
| register_vaultA | Register a new Obsidian vault with a name and path |
| list_notesA | List markdown notes in the vault with sorting, filtering, and pagination. Returns paths, names, dates, and sizes. |
| read_noteA | Read the content and frontmatter of a specific note. Returns the markdown content and parsed YAML frontmatter if present. |
| create_noteA | Create a new markdown note in the vault. Parent directories will be created if needed. Optionally include YAML frontmatter. |
| update_noteA | Update an existing note. Modes: overwrite (replace all), append (add to end), prepend (add to start), replace (find and replace specific text). Prepend mode will error if content starts with "---" to prevent frontmatter conflicts. |
| delete_noteA | Permanently delete a note from the vault. This action cannot be undone. |
| rename_noteA | Rename a note and optionally update all wikilinks that reference it. Returns the count of notes with updated links. |
| move_noteA | Move a note to a different folder. Keeps the same filename but changes location. Optionally updates all wikilinks. |
| search_vaultA | Search for text across all notes in the vault. Supports regex patterns and context lines around matches. |
| get_frontmatterA | Get the YAML frontmatter of a note as a JSON object |
| update_frontmatterA | Update the YAML frontmatter of a note. By default merges with existing frontmatter. Set replace=true to replace all frontmatter. Set a value to null to remove a field. |
| remove_frontmatter_fieldB | Remove a specific field from the frontmatter of a note. |
| add_to_array_fieldA | Add values to an array field in frontmatter (e.g., tags, aliases). Creates the field if it does not exist. |
| remove_from_array_fieldB | Remove values from an array field in frontmatter (e.g., tags, aliases). |
| list_tagsA | List all unique tags used in the vault with their occurrence count |
| add_tagA | Add a tag to a note's frontmatter. Creates the tags array if it doesn't exist. |
| remove_tagA | Remove a tag from a note's frontmatter |
| search_by_tagA | Find all notes that have a specific tag (in frontmatter or inline) |
| get_outlinksA | Get all outgoing links from a note (both [[wikilinks]] and markdown) |
| get_backlinksA | Get all notes that link to a specific note (backlinks) |
| find_orphansA | Find all orphan notes (notes with no incoming or outgoing links) |
| find_broken_linksA | Find all broken links (links pointing to non-existent notes) |
| get_link_graphB | Get the complete link graph of the vault as nodes and edges |
| get_daily_noteA | Get the daily note for a specific date. Creates the note if it does not exist. Uses the vault's daily notes configuration for folder and format. |
| create_daily_noteA | Create a daily note for a specific date if it does not exist |
| list_daily_notesB | List daily notes, optionally filtered by date range |
| append_to_dailyA | Append content to today's daily note (or a specific date). Creates the note if needed. |
| list_templatesA | List all available templates in the vault's templates folder |
| get_templateB | Get the raw content of a template file |
| apply_templateA | Apply a template with variables and return the processed content without creating a file. Supports {{title}}, {{date}}, {{date:FORMAT}}, {{time}}, and custom {{variable}} placeholders. |
| create_from_templateA | Create a new note from a template with variable substitution |
| list_basesA | List all Obsidian Bases (database files) in the vault |
| get_baseA | Get the full content of an Obsidian Base including schema and all rows |
| query_baseB | Query an Obsidian Base with optional filtering, sorting, and limiting. Filter by providing column-value pairs. |
| batch_moveA | Move multiple notes to a destination folder at once. Returns per-note success/failure results. |
| batch_deleteA | Delete multiple notes at once. Requires confirmation. Returns per-note success/failure results. |
| batch_update_frontmatterA | Update frontmatter of multiple notes at once. Can merge or replace frontmatter. |
| batch_add_tagA | Add tags to multiple notes at once. Adds to frontmatter tags array. |
| batch_remove_tagA | Remove tags from multiple notes at once. Removes from frontmatter tags array. |
| batch_read_notesA | Read multiple notes at once (max 10). Returns content and frontmatter for each note. |
| list_attachmentsA | List all non-markdown files (images, PDFs, etc.) in the vault. Can filter by folder and type. |
| get_attachment_infoA | Get detailed information about an attachment, including embed/link syntax. |
| find_unused_attachmentsA | Find attachments that are not referenced by any note. Useful for cleaning up unused files. |
| get_attachments_in_noteA | Get all attachment references (embeds and links) in a specific note. |
| create_note_backupA | Create a backup copy of a note. Stores in .backups folder with timestamp. |
| list_backupsA | List available backups. Can filter by specific note. |
| restore_backupA | Restore a note from a backup. Optionally creates a backup of current content first. |
| delete_old_backupsB | Delete old backups, keeping only the most recent ones per note. |
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/diegorv/another-bloated-obsidian-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server