MCP server for Obsidian LiveSync vault management, providing note CRUD operations with CouchDB conflict detection
Server has 8 well-named tools with clear verb-noun patterns (list_notes, read_note, search_notes, etc.). All tools have descriptions and input schemas with typed parameters. However, descriptions are terse (10-50 chars), parameter descriptions lack detail on constraints/formats, output schemas are undocumented, and error handling lacks recovery guidance. No tool annotations (readOnlyHint, destructiveHint) despite clear risk stratification. Missing pagination for list_notes and search_notes despite potentially large result sets.
Append text to a note. Refuses if the note has an unresolved sync conflict.
Delete a note.
Get a note's metadata, including any unresolved sync conflicts.
List notes under a folder.
Move or rename a note. Fails if the destination already exists.
Read a note's content.
Search notes by filename or content.
Tool descriptions are too brief (10-60 chars). Rubric baseline is 194 chars. Descriptions lack WHEN to use, prerequisites, and state-change implications. E.g., 'List notes under a folder' omits whether it's recursive by default, what structure is returned, or when to call it vs search_notes.
No output schemas documented. LLMs cannot infer what fields list_notes returns, whether search_notes includes match context, or what metadata get_note_metadata provides. Rubric requires 100% of A+ tools to have documented return types.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk stratification in metadata (READ_ONLY, WRITE, DESTRUCTIVE, REVERSIBLE). Agents cannot distinguish safe-to-retry tools from irreversible ones without explicit hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Create or update a note. Refuses if the note has an unresolved sync conflict.
Parameter descriptions lack constraint details. 'folder' and 'path' lack format guidance (e.g., 'vault-relative, no leading slash'). 'mode' in search_notes lacks enum constraint in description. 'overwrite' in write_note lacks default value documentation.
list_notes and search_notes lack pagination (limit, offset, cursor). Rubric requires pagination for tools returning lists to prevent context window exhaustion. No documented result limits.