MCP stdio server for drift detection in Claude Code sessions. Monitors conversation drift via scoring engine, persists session data to SQLite, and exposes tools for status queries, recent event retrieval, live scoring, profile management, and trajectory-aware corrections.
Five tools with basic schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. All tools are READ_ONLY except drift_set_profile (WRITE). Descriptions are present but brief (10-60 chars), below the 50-200 char LLM-optimized baseline. Parameter descriptions exist but lack detail on constraints, formats, and valid ranges. No output schemas documented. Error handling and recovery guidance absent. Tool names follow verb_noun convention (drift_*) but are domain-specific rather than action-verb-first (e.g., 'get_drift_status' would be clearer). Graceful degradation noted in code comments but not reflected in tool descriptions.
score arbitrary text against a profile (live, no DB)
enumerate available profiles + which is active
the last N scored turns (ts, score, verdict, profile)
set the active profile (writes active-profile file)
rollup for the current/most-recent session
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields without knowing response structure.
Parameter descriptions lack constraints, formats, and valid ranges. E.g., 'limit' has no min/max bounds; 'profile' has no enum of valid names; 'text' has no length guidance.
Tool descriptions are too brief (10-60 chars, below 50-200 char baseline). 'rollup for the current/most-recent session' and 'score arbitrary text against a profile (live, no DB)' lack context on WHEN to use each tool and what distinguishes them.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
No error handling or recovery guidance. Code comments mention graceful degradation (empty results when DB missing) but tool descriptions do not explain this behavior or guide LLM recovery.
drift_set_profile (WRITE tool) lacks confirmation or dry-run pattern. No description warns that this modifies state; no guidance on consequences or rollback.