Memory tools for any MCP-compatible agent. Exposes Eidetic memory system as MCP tools over stdio (JSON-RPC). Works with Claude Code, Cursor, Windsurf, and any MCP client.
Eidetic MCP server has well-structured tool definitions with complete schemas and descriptions. All 7 tools have inputSchema with typed properties and descriptions. Tool names follow verb_noun convention (memory_search, memory_reindex, export_vault). Descriptions are substantive (100-300+ chars), explaining WHAT the tool does and WHEN to use it. However, several parameters lack descriptions (e.g., memory_health and memory_lint have empty properties objects), and output schemas are not documented. Error handling guidance is minimal, tools do not explain recovery paths or categorize errors. Parameter constraints could be more explicit (e.g., polish_count max 500 is mentioned in description but not in schema). No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications in the spec.
Export Eidetic memory to an Obsidian-compatible vault directory. Filters by quality gate, applies templates, writes MOCs and wikilinks.
Check Eidetic memory system health: index status, search functionality, hooks, backups.
Run memory health lint: find orphan files, broken wikilinks, contradiction pairs, and large files that should be split.
Trigger incremental reindex of memory files. Run after adding or modifying memory files.
Search long-term memory across all projects. Returns a structured payload with ranked results, stable detail_id selectors, confidence metadata, no_confident_results, lifecycle status, and drift diagnostics. Do not treat weak candidates as usable memory when no_confident_results=true. Use memory_search_detail with detail_id or path when full content is needed.
Fetch full content for an exact memory search result by stable detail_id or exact path. Use this after memory_search returns a useful candidate. This is not a broad search; if no selector matches, no_confident_results=true.
memory_health and memory_lint have empty inputSchema.properties, no parameters are documented. This violates the pattern that every tool must have descriptions for all inputs, even if optional.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., detail_id from memory_search) without knowing the response structure. This forces agents to guess at field names.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk classifications. memory_reindex and export_vault are WRITE operations that should be marked destructiveHint=true; read-only tools should be marked readOnlyHint=true.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2025-06-18+ | v2 |
Find unexpected cross-project connections related to a query. Surfaces memories you didn't know were relevant — from other projects, other contexts. Inspired by Zettelkasten: 'The slip-box is designed to surprise you.'
Error handling lacks recovery guidance. Tools do not document what errors are retryable, what the LLM should do if a search returns no results, or how to handle index corruption. Descriptions mention 'no_confident_results=true' but do not explain the agent's next step.
export_vault has complex parameter constraints (polish_count max 500, timeout 30-1800) documented only in descriptions, not in schema minima/maxima. JSON Schema should enforce these bounds so LLMs cannot pass invalid values.