Single-user MCP server over a git-backed Obsidian vault. Six tools — query, get, multi_get, write_note, list_notes, vault_status.
Grove demonstrates solid tool design with clear naming (verb_noun pattern), comprehensive parameter schemas, and structured output. All 6 tools have descriptions and input schemas. However, output schemas are not explicitly documented in the visible code, parameter descriptions vary in quality, and error handling guidance is minimal. The write_note tool is well-designed with provenance support and batch operations, but lacks explicit confirmation/dry-run patterns for destructive operations. Resource integration is present but underutilized.
Retrieve a single note by path. Returns frontmatter, content, and optional provenance blame segments.
List all notes in the vault with optional filtering by folder. Returns paths, frontmatter, and optional provenance metadata.
Retrieve multiple notes by path in a single request. Returns array of note objects with frontmatter, content, and optional provenance.
Search the vault using hybrid BM25 + semantic search. Returns ranked results with note paths, snippets, and relevance scores.
Return vault health metrics: note count, total size, git status, discovery queue depth, recent extractions, graph health score, and performance stats.
Write, delete, move, or batch-modify notes. Supports atomic multi-note operations with optional provenance metadata (voice, author, basis, reason). Includes optimistic concurrency control via if_hash.
Output schemas not documented in tool definitions. LLMs cannot plan downstream operations or extract required fields without knowing response structure.
write_note lacks explicit dry-run or confirmation pattern for destructive operations (delete, hard_delete, move). Agents can accidentally destroy data without recovery guidance.
Error handling descriptions are absent. Tools do not guide LLMs on recovery actions (e.g., 'path not found, try list_notes() to discover available paths').
vault_status output schema is vague ('health metrics, git status, discovery queue depth, recent extractions, graph health score, performance stats'). LLMs cannot determine which fields are returned or their types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 69 | 2026-07-28+ | v2 |
query tool lacks pagination parameters (limit is present but no offset/cursor or total_count in response). Large result sets may exceed context windows without explicit pagination guidance.