MCP server for recording and querying project history, task attempts, outcomes, and file changes with semantic search via embeddings
Hindsight MCP has 5 tools with basic schemas and descriptions, but significant gaps limit production readiness. All tools have descriptions (10-60 chars, mostly short) and input schemas with required fields. However, descriptions lack context on WHEN to use each tool, dependencies between tools, and error recovery guidance. Parameter descriptions are minimal (e.g., 'The task identifier' for taskId). No output schemas documented. Tools lack error handling guidance. Naming is verb-based but generic (record_*, query_*, get_*). No tool annotations (readOnlyHint, destructiveHint). The semantic search tool (hindsight_query_similar) lacks pagination despite returning potentially large result sets. Write operations (record_intent, record_outcome) have no confirmation or dry-run pattern.
Retrieve a specific episode or attempt record with full details
Retrieve the history of changes for a specific file across attempts
Query for similar past attempts or outcomes using semantic search
Record an intent or goal for a task attempt
Record the outcome or result of a task attempt
Descriptions are too short (10-60 chars) and lack context. Missing WHEN to use each tool, dependencies, and error recovery guidance. E.g., 'Record an intent or goal for a task attempt' does not explain when to call this vs record_outcome, or what happens if taskId doesn't exist.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields. E.g., hindsight_query_similar returns results but structure is unknown, does it return episode IDs, similarity scores, full records?
hindsight_query_similar lacks pagination (limit param exists but no offset/cursor, no total count). Semantic search can return hundreds of results; without pagination, context window exhaustion is likely.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 39 | 2026-07-28+ | v2 |
Write operations (record_intent, record_outcome) lack confirmation or dry-run pattern. Agents can accidentally record wrong intents/outcomes without recovery guidance. No error handling documented.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe reads from destructive writes. record_intent and record_outcome should be marked destructiveHint=true.