Model Context Protocol (MCP) server designed for LLMs to interact with Obsidian vaults. Provides secure, token-aware tools for seamless knowledge base management through a standardized interface.
Server has 10 tools with mostly complete schemas and descriptions. Naming follows verb_noun convention (list_, get_, append_, patch_, find_, update_). Descriptions range 50-400+ chars, meeting baseline. However, several tools lack parameter descriptions (e.g., obsidian_complex_search 'query' param has no description of JsonLogic format), and error handling is minimal, no recovery guidance or categorization. Output schemas are not documented. Tool composition is reasonable but some tools combine multiple concerns (obsidian_patch_content handles append/prepend/replace in one tool). Security: no secrets exposed as params, but no audit logging visible in provided code.
Append content to a file in the Obsidian vault
Perform a complex search in the Obsidian vault
Find text in a file in the Obsidian vault
Get the contents of a file in the Obsidian vault
Get properties (title, tags, status, etc.) from an Obsidian note's YAML frontmatter. Returns all available properties including custom fields.
Get all tags in the Obsidian vault
List files in a specific directory in the Obsidian vault
obsidian_complex_search lacks parameter documentation. 'query' param has no description of JsonLogic format, constraints, or examples. LLM cannot infer valid query structure.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. E.g., obsidian_list_files_in_vault returns a list but structure is not specified.
Error handling provides no recovery guidance. Errors are logged but not categorized (retryable vs user-fixable vs fatal). No actionable error messages returned to LLM.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | <=2025-11-25 | v2 |
List all files in the Obsidian vault
Patch content in a file in the Obsidian vault
Update properties in an Obsidian note's YAML frontmatter. Intelligently merges arrays (tags, type, status), handles custom fields, and automatically manages timestamps. Valid property types: - type: Any string value - status: ['draft', 'in-progress', 'review', 'complete'] - tags: Array of strings starting with '#' - Other fields: title, author, version, platform, repository (URI), dependencies, sources, urls (URI), papers, custom (object)
obsidian_patch_content combines three operations (append/prepend/replace) in one tool. Should be split into separate tools (append_content, prepend_content, replace_content) for single responsibility.
No pagination support on list tools. obsidian_list_files_in_vault and obsidian_list_files_in_dir lack limit/offset parameters. Large vaults could return unbounded results, exhausting context.