MCP server for task management, planning, and execution
Server provides 9 tools with reasonably complete input schemas and descriptions, but quality is inconsistent. Tool names follow verb_noun conventions (create-task, list-tasks, update-task, delete-task, create-plan, list-plans, break-down-task, execute-task, get-execution-history). Descriptions exist but are generic and minimal (average ~45 chars, well below the 194-char production baseline). Input schemas have proper JSON Schema structure with types and enums, but output schemas are not documented. No error handling guidance visible. No tool annotations (readOnlyHint, destructiveHint, idempotentHint). No pagination metadata visible for list tools. Security considerations around task execution not addressed. The server targets task management but lacks the depth of parameter validation and output documentation expected for production use.
Break down a complex task into smaller subtasks
Create a new project plan
Create a new task with specified details
Delete a task
Execute a task (simulation for demonstration)
Get execution history for a task
List all plans with optional filtering
Output schemas not documented. No specification of what list-tasks, create-task, or get-execution-history return. LLMs cannot plan downstream tool calls without knowing the response structure.
Descriptions are generic and minimal (25-45 chars). Below production baseline of 194 chars. Descriptions like 'Delete a task' and 'Get execution history for a task' do not explain when to use the tool vs similar ones, what side effects occur, or prerequisites.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). delete-task should be marked destructive. list-tasks and list-plans should be marked readOnly. break-down-task has side effects (creates subtasks), should be marked destructive. LLMs cannot distinguish safe from unsafe operations.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 45 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 28 | - | v1 |
List tasks with optional filtering
Update an existing task
list-tasks and list-plans accept no pagination parameters (limit, offset, page). If the system has many tasks or plans, LLMs will get truncated results and no way to page through. Production baseline expects pagination support.
execute-task accepts a 'command' parameter (free-form string) with no validation, enum, or format constraints. LLMs can pass arbitrary strings. No guidance on what commands are valid or what happens when invalid input is provided.
No error handling documentation. No guidance on what LLM should do if delete-task fails, if a task_id does not exist, or if execute-task encounters a runtime error. Pattern:recovery-guide recommends error responses tell the agent what to do next.
break-down-task has a destructive side effect (creates multiple subtasks) but description does not state this. Description says 'Break down a complex task into smaller subtasks' without explaining that new records are created or that this is irreversible.
delete-task accepts only taskId, with no confirmation step or dry-run support. Agents can permanently delete data with a single call. Pattern:confirmation-request recommends a safety mechanism for irreversible operations.
Parameter descriptions lack format and validation guidance. Example: 'due date (ISO format)' says ISO in parentheses, but should state 'ISO 8601 format (YYYY-MM-DD)' in the description. 'assignee' accepts a free-form string with no validation that the user exists.
No batch variants for loop-heavy operations. If an agent wants to add the same tag to 10 tasks, it must call update-task 10 times. Pattern:composition recommends batch variants to reduce token cost and latency.