MCP server for reading, searching, and editing Markdown notes in an Obsidian vault with privacy-aware PII masking
Three tools with basic verb-noun naming (list_notes, get_vault_structure, read_note) and present descriptions. However, descriptions are minimal (10-50 chars), parameter descriptions are absent or trivial, and no output schemas are documented. Input schemas are visible but lack depth. No error handling guidance, no parameter constraints (enums, ranges), and no indication of idempotency or side effects. The server reads from disk only (safe), but lacks the structured output and LLM-optimized documentation expected of production tools.
Returns the folder structure (directories only) of the Vault as a tree.
Lists all Markdown files in the Vault or a specific subfolder.
Reads the content of a specific Markdown file.
Parameter descriptions missing or trivial. 'directory' and 'filepath' lack guidance on format, constraints, or examples. LLMs cannot infer whether paths are relative, absolute, or must match a pattern.
No output schema documented. Callers do not know what fields to expect from list_notes (array of strings? objects with metadata?), get_vault_structure (tree format?), or read_note (plain text? structured markdown?). Downstream tool chaining is impossible.
No error handling guidance. Code shows early returns (e.g., 'if not is_safe_path(directory) or not target_dir.exists(): return') with no error message. LLMs receive None or empty response and cannot distinguish between 'path not found' and 'no results'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
No parameter constraints. 'max_depth' (integer) lacks min/max bounds. LLMs could pass negative or absurdly large values. 'directory' and 'filepath' lack regex patterns or length limits.
Tool descriptions are under 50 characters (baseline p10=34, p90=392). 'Lists all Markdown files in the Vault or a specific subfolder' is minimal and does not explain when to use this tool vs alternatives, what it returns, or prerequisites.