Read-mostly MCP server for copy-first Apple Notes recovery cases. Stay on derived review artifacts and bounded derived-output tools.
NotesRecover provides 10 tools with complete input schemas and descriptions. Tool naming follows verb_noun convention (run_verify, build_timeline, list_case_roots). Descriptions are present and substantive (avg ~120 chars), exceeding the 10-char minimum. However, output schemas are not documented in the visible code, LLMs cannot predict return structure. Parameter descriptions are adequate but lack format constraints (e.g., case_id format, keyword length limits). Error handling is not visible in tool definitions. No evidence of idempotency guarantees or recovery guidance. Tool composition is sound: read-only tools (list, inspect, select, ask) are separated from write tools (run_verify, run_report, build_timeline, public_safe_export), enabling proper agent reasoning about side effects via tool annotations.
Ask an evidence-backed question about one case root using derived review artifacts.
Build the bounded timeline workflow against a case root and return the newest timeline outputs.
Return one contract-backed derived artifact, including its tier, excerpt, and bounded content.
Return a structured summary of one case root and its current derived resources.
Return the latest run manifest payload for a case root.
List the allowed case roots that this MCP server can inspect.
Create a redacted public-safe bundle for one case root.
Output schemas not documented. LLMs cannot predict return structure, field names, or types. Downstream tool chaining requires explicit knowledge of what each tool returns.
Parameter descriptions lack format constraints. 'case_id' and 'keyword' have no length limits, regex patterns, or format hints. LLMs may pass invalid values without guidance on what constitutes valid input.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Run the bounded report workflow against a case root and return the newest report/text-bundle outputs.
Run the bounded verify workflow against a case root and return the newest verification outputs.
Return the shared selector output for one case root and question using the retrieval contract SSOT.
No error handling guidance visible in tool definitions. If a case_id is invalid or a workflow fails, LLMs have no recovery path. Error responses should guide next steps (e.g., 'Try list_case_roots() to find valid case IDs').
Idempotency not declared. Write tools (run_verify, run_report, build_timeline, public_safe_export) do not state whether repeated calls with identical inputs produce the same result or trigger duplicate side effects. Agents need this to decide retry safety.
ask_case tool accepts optional 'provider' and 'model' parameters but does not document valid values, defaults, or fallback behavior. LLMs cannot infer which LLM providers are supported or what happens if both are omitted.