MCP server exposing aggregated prompt-squeeze stats from the local hook log
Three read-only tools with clear, concise descriptions (60-80 chars each). All tools have documented input schemas with type and description fields. However, output schemas are not formally documented, only inferred from code. Parameter descriptions are adequate but lack constraint details (e.g., window format regex not stated in descriptions). No error handling guidance or recovery paths. Tool names follow verb_noun pattern but are generic ('personal_stats_tool' vs 'get_personal_stats'). No tool annotations (readOnlyHint, etc.). Composition is sound, each tool has one responsibility.
Return aggregated personal prompt-squeeze stats from the local log.
Return team-aggregated stats. v0.1 returns local stats with a note.
Return a Slack-ready markdown weekly savings report.
Output schemas not formally documented. Code infers return types (dict for stats, str for report) but no JSON Schema or structured description in tool registration.
Parameter 'window' lacks constraint documentation. Regex pattern '^(\d+)([dh])$' exists in code but is not stated in parameter description. LLMs cannot infer valid formats.
No error handling guidance. If log file is missing or malformed, tools return empty/default results silently. No recovery hints for LLM.
Tool names use '_tool' suffix (personal_stats_tool) instead of verb_noun pattern (get_personal_stats). Suffix is redundant in MCP context.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
No tool annotations. ReadOnlyHint should be applied to all three tools to signal to LLMs that these are safe, non-destructive operations.