Your Obsidian vault is Claude's memory — local semantic search over your notes via MCP, always fresh, never reindex.
Two well-named, read-only tools with comprehensive parameter schemas and strong descriptions. search_notes has excellent semantic search documentation with optional filtering (folder, tags, date range); get_note_context is clear and focused. Both descriptions exceed 100 chars and explain WHEN to use them. Parameters are typed (string, number, array) with defaults and constraints. However, output schemas are not documented in the visible code, LLMs cannot see what fields search_notes returns or how results are structured. Error handling and recovery guidance are absent. No tool annotations despite read-only semantics.
Read a FULL note from the vault by its path (as returned in search_notes results' `source:` field). Use after a search hit when the chunk isn't enough and you need the complete note.
Semantic search over the user's Obsidian vault (their personal notes). Finds note chunks by meaning, not keywords — use for any question about the user's notes, knowledge, memos, or past writing. Exact identifiers also work: paste an error code, function/table name, ticket id or member number (0xc0000409, T_AlarmQueue, PROJ-4821) verbatim and matching notes are found literally. The index auto-updates as notes change, so results always reflect the current vault.
Output schemas not documented. LLMs cannot see what fields search_notes returns (e.g., source, score, content structure) or how get_note_context formats full note text. This forces LLMs to guess at response structure and risks misinterpreting results.
No error handling guidance. If a note path is invalid, vault is inaccessible, or embedding service fails, LLMs receive no recovery hints. Descriptions lack 'If X fails, try Y' guidance.
Tool annotations missing. Both tools are read-only and idempotent, they should declare readOnlyHint: true to signal safety to agents. This enables aggressive caching and retry strategies.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
search_notes lacks pagination guidance. No mention of how many results are returned, whether results are truncated, or how to fetch additional matches. Large vaults could return hundreds of chunks; LLMs need explicit limits and next_cursor/offset patterns.
Parameter 'folder' and 'tags' filtering lack examples or constraints. Descriptions say 'e.g. work/projects' and 'inline #tags or frontmatter' but do not specify format (leading #? case-sensitive? path separators?). LLMs may pass malformed values.