An MCP server for software development planning that guides users through sequential thinking to break down goals into actionable todo items with complexity scoring
Server has 6 tools with basic Zod schemas and descriptions, but significant gaps limit production readiness. All tools have descriptions (10-50 chars, mostly short) and input schemas with type definitions. However, descriptions lack actionable context for LLM selection, parameter descriptions are minimal, and output schemas are undocumented. No error recovery guidance, no tool annotations (readOnlyHint/destructiveHint), and stateful session management (currentGoal) violates stateless protocol design. Tool naming is verb-first (good), but composition issues exist: start_planning and save_plan should be one operation; get_todos lacks pagination despite being a list operation.
Add a new todo item to the current plan
Get all todos in the current plan
Remove a todo item from the current plan
Save the current implementation plan
Start a new planning session with a goal
Update the completion status of a todo item
Stateful session management (currentGoal instance variable) violates MCP stateless protocol design. Each request must be self-contained; server cannot rely on in-memory state across calls.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). remove_todo is marked DESTRUCTIVE but tool definition lacks destructiveHint annotation. LLM cannot infer safety implications.
Output schemas undocumented. Tools return JSON strings (e.g., add_todo returns JSON.stringify(newTodo)) but LLM has no schema to parse response structure. Downstream tools cannot reliably extract IDs.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
get_todos lacks pagination (no limit, offset, or cursor parameters). List operations must support pagination to prevent context window exhaustion.
Error handling returns UserError but does not guide recovery. E.g., 'No active goal' error should suggest 'Call start_planning() first with your development goal.'