MCP server for local content capture, draft queue, and checkpoints
Server has 6 tools with basic descriptions and parameter schemas, but significant gaps in LLM-optimization and error guidance. Tool names lack clear action verbs (content_capture, content_queue are vague). Descriptions are present but generic (avg ~80 chars, below 194-char baseline). Parameters have types but lack enums for constrained inputs (e.g., category, action, priority are free-form strings). No output schemas documented. Error handling is minimal, most tools return dicts without recovery guidance. No tool annotations (readOnlyHint, destructiveHint). Composition is reasonable (single concerns), but parameter naming could be clearer (e.g., 'action' is overloaded in content_queue). Security: no secrets exposed, but no audit logging or permission gates.
Save a content-worthy moment to the running draft log.
Manage social draft queue. Add drafts, list queue, get next draft.
Check recent actions against known improvement patterns.
Save local work state to checkpoint file.
Set a timer reminder that alerts in the terminal.
Review locally logged posts from the last N days.
content_queue 'action' parameter is overloaded (add/list/next/posted) without enum constraint. LLMs will hallucinate invalid actions. Should declare enum: ['add', 'list', 'next', 'posted'].
No output schemas documented for any tool. LLMs cannot predict response structure, forcing them to parse unstructured dicts. Each tool should document return type (e.g., {set: bool, target: str, seconds: int, message: str}).
Error handling lacks recovery guidance. set_reminder returns {error: ...} but does not tell LLM what to do next. Should include 'Try format: HH:MM or Nm/Nh' in error message.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
Tool names lack clear action verbs. 'content_capture' and 'content_queue' are vague. Better: 'save_content_moment' and 'manage_draft_queue'. Names should start with verb (get_, create_, update_, list_, etc.).
category parameter in content_capture lacks enum. Description says 'one of: insight, result, code, number, journey, mistake' but no formal constraint. LLMs will pass invalid values.