MCP server for Obsidian vault — full-text + semantic search, active recall with SM-2
Solid foundation with 14 well-named tools covering vault search, note retrieval, and spaced-repetition review. All tools have descriptions (avg 95 chars) and input schemas with types. However, output schemas are undocumented, LLMs cannot predict response structure for chaining. Parameter descriptions are present but often terse (avg 45 chars vs baseline 72). Error handling is minimal; no recovery guidance. Missing tool annotations (readOnlyHint/destructiveHint). Naming is strong (verb_noun pattern, clear intent), but schema completeness and error guidance lag production standards.
Store a set of questions (generated client-side by the LLM) for a given note. The server schedules them for spaced-repetition review using SM-2.
Quiz-me entry point. Returns the most relevant notes for a topic AND due questions for it. The MCP client's LLM then uses this data to quiz the user, generate follow-up questions, and calls submit_review / add_questions to track results.
Remove a question from the review queue.
Find all notes that link to the given note via [[wikilinks]].
Return questions scheduled for review today (SM-2 due date ≤ today), optionally filtered by topic/tag and limited in count.
Return the full content of a note by its path or title.
Output schemas undocumented. Tools return data but LLMs cannot predict field names, types, or structure for downstream chaining. E.g., search_notes returns results but response format is invisible.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe reads from destructive writes without explicit hints. delete_question and submit_review lack destructiveHint/idempotentHint.
Error handling absent. No recovery guidance, error classification, or actionable messages. Tools fail silently or with generic errors; LLMs cannot self-correct or retry intelligently.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Return all notes relevant to a topic using tag matching and semantic similarity.
Return the N most recently modified notes.
Aggregate review statistics for a topic: question counts, average ease, weak areas, overdue.
Return vault statistics: note count, tag list, last git sync info.
List notes in the vault, optionally filtered by tag and/or folder.
List all stored questions, optionally filtered by note path.
Full-text and semantic hybrid search across the vault.
Record the result of reviewing a question and update its SM-2 schedule. Grade: again (0), hard (1), good (2), easy (3).
Parameter descriptions are terse (avg 45 chars vs baseline 72). E.g., 'Filter by tag (partial match)' lacks context on when to use tag vs folder filtering. 'Expected answer or key points (can be empty)' is vague about open-ended review semantics.
No pagination guidance for list tools. list_notes, list_questions, get_due_questions accept limit but no offset/cursor. Large vaults risk context window exhaustion; no next_cursor or total_count returned.