Claude Desktop extension to read, search and edit your local Obsidian vault via the Local REST API plugin.
Obsidian MCP has well-structured tool definitions with consistent naming (verb_noun pattern), complete input schemas with proper types, and tool annotations. However, parameter descriptions are sparse or missing for many tools, output schemas are undocumented, and error handling lacks recovery guidance. The batch operation and complex search tools show good composition patterns, but descriptions are generic and do not explain WHEN to use each tool vs alternatives. No pagination support despite tools that could return large result sets.
Append markdown content to a new or existing note.
Return the contents of several notes at once, concatenated with headers.
Advanced search using a JsonLogic query (e.g. match files by glob).
Permanently delete a file or directory from the vault.
Return the full content of a single note.
Get the current daily/weekly/monthly/quarterly/yearly note.
Output schemas undocumented. Tools return raw API responses (JSON strings or plaintext) without declaring structure. LLMs cannot plan downstream operations or extract fields reliably.
Parameter descriptions missing or generic. 'query' in obsidian_complex_search says 'A JsonLogic query object' but does not explain format, examples, or when to use vs obsidian_simple_search. 'target' in obsidian_patch_content lacks guidance on heading path syntax.
No pagination or result limits documented. obsidian_list_files_in_vault and obsidian_simple_search could return hundreds of items, exhausting context. No limit parameter, no cursor, no total count in response.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
List recently modified notes in the vault.
Get the most recent periodic notes of a given period type.
List files and directories inside a specific folder of the vault.
List all files and directories in the vault root.
Insert content into a note relative to a heading, block reference, or frontmatter field.
Full-text search across the vault for a text query.
Error handling lacks recovery guidance. obsidianRequest() rejects with generic messages like 'Obsidian API error 404' or 'Could not reach Obsidian'. No suggestion of next steps (e.g., 'Try search_files() to find the note' or 'Check if Obsidian is running').
Tool descriptions do not explain WHEN to use each tool. obsidian_simple_search vs obsidian_complex_search distinction is unclear. obsidian_get_periodic_note vs obsidian_get_recent_periodic_notes lacks guidance on which to call first.