A reliability-first MCP server for Obsidian that refuses AI claims your notes can't support.
Anchor has 6 tools with explicit schemas and descriptions. Naming is clear and verb-based (search_, verify_, cite, safe_edit, restore_). Descriptions are present but brief (avg 80 chars, below the 194-char baseline). Input schemas are properly typed with Zod. Critical gaps: no output schemas documented in code, no error handling guidance, no parameter constraints (enums, ranges), and write operations (safe_edit, restore_note) lack dry-run/confirmation patterns despite claiming them in descriptions. The ping tool is trivial but well-formed. Overall, definitions are functional but lack LLM-optimization depth.
Generate citations for a claim with supporting evidence from vault notes.
Health check. Returns pong plus the server name and version.
Restore a note from a snapshot backup.
Safely edit a note with a dry-run preview and rollback capability.
Search vault notes by semantic similarity to a query.
Verify whether a claim is grounded in vault notes and return supporting evidence or refusal.
Output schemas not documented. Tools return structured content but LLMs cannot see what fields to expect, forcing them to guess downstream field names and breaking tool chaining.
Write operations (safe_edit, restore_note) claim dry-run and rollback capability in descriptions but no confirmation/approval flow is visible in the schema. The 'confirm' parameter in safe_edit suggests a two-step pattern, but the first step (dry-run) is not exposed as a separate tool or mode.
Parameter descriptions lack constraints. 'limit' in search_notes has no min/max bounds; 'query' has no length guidance. LLMs will pass unbounded values, risking timeouts or excessive results.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2025-06-18+ | v2 |
Error handling not visible in tool definitions. No guidance on retryability, user-fixable vs fatal errors, or recovery steps. LLMs cannot self-correct on failures.
Tool descriptions are brief (avg 60 chars vs 194-char baseline). They state WHAT but not WHEN to use or dependencies. E.g., 'verify_grounding' does not explain when to call it vs 'cite', or that it requires vault context.