Memento MCP has 5 tools with clear verb-noun naming (search, get, sync, learn). All tools have descriptions (avg 95 chars, within 10-1024 range). Input schemas are present with type definitions and parameter descriptions. However, output schemas are not documented in the source code provided, and parameter descriptions lack detail on constraints, ranges, and error recovery guidance. Error handling is basic, no recovery hints or actionable error messages visible. Tool composition is sound (each does one thing), but descriptions could be more LLM-optimized per the 50-200 char baseline for A+ tools.
Read one bounded page from an already ingested document using an exact search result path.
Inspect local memory readiness, corpus size, graph size, and scheduler state.
Recompute local spectral memory signals after ingest or synchronization.
Search local memory and return a bounded answer plus ranked, traceable evidence.
Incrementally synchronize one configured local source into memory; removed source files remove stale chunks.
Output schemas not documented. LLMs cannot plan downstream calls or extract required fields without knowing response structure.
Parameter descriptions lack constraint details. 'limit' (1-20, default 5) and 'max_chars_per_result' (80-4000, default 800) have ranges in the schema but descriptions should explicitly state min/max and defaults for LLM clarity.
memento_learn has minimal description (55 chars). 'Recompute local spectral memory signals after ingest or synchronization.' lacks WHEN to call it, WHAT it returns, and whether it's idempotent or has side effects.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
No error recovery guidance. Tools lack descriptions of failure modes, retryability, or actionable error messages. E.g., memento_sync_source (WRITE) should document what happens if a source path is invalid or inaccessible.
memento_sync_source parameter 'source' lacks enum constraint. Description says 'file, folder, obsidian, claude, or codex' but should be declared as enum in schema for LLM clarity and validation.