Task Manager for AI Development - provides MCP tools for creating, updating, listing, and managing tasks with AI-powered assistance including implementation planning, task expansion, and visualization
This MCP server defines 21 tools with mostly complete schemas and moderate descriptions. Tool names follow verb_noun conventions (create-task, update-task, list-tasks, delete-task, etc.), which is good. However, descriptions vary widely in quality and actionability. Many descriptions are functional but under-optimized for LLM reasoning, they lack explicit WHEN-to-use guidance, prerequisites, or recovery hints. Input schemas are present for all tools with proper Zod validation and type definitions, but output schemas are not documented in the code. Error handling exists but is generic; there's no guidance for LLMs on recovery paths. Security is a concern: the server handles file I/O (TASKS.md, PRD files, workspace paths) with minimal sanitization visible, creating path traversal and injection risks. Composition is reasonable, tools are single-purpose and chainable, but several tools (expand-task, help-implement-task, generate-implementation-steps) call LLMs internally, which is a hidden state dependency the agent cannot reason about. Overall: competent but not production-grade.
Add a note to a task
Create a new task with details
Create a new task using a predefined template
Delete a task
Expand a task into subtasks with detailed planning
Generate a diff for proposed file changes
Generate implementation steps for a task
Output schemas not documented. The server has complete input schemas (via Zod), but no code shows output schemas returned to the agent. LLMs cannot plan downstream tool calls or extract required fields without knowing the response structure.
Descriptions lack LLM-optimized guidance. Many tool descriptions (update-task, get-next-task, suggest-task-improvements, help-implement-task, visualize-tasks-dependency-tree, visualize-tasks-dashboard, list-task-templates) are under 65 characters and lack WHEN-to-use context, prerequisites, or recovery hints. This forces LLMs to guess when each tool applies.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | <=2025-11-25 | v2 |
| 2026-03-09 | C | 60 | - | v1 |
Get the next task to work on
Get details of a specific task
Get details of a specific task template
Get detailed implementation assistance for a task
Initialize a new project with task management
List all available task templates
Get a list of tasks with filtering and sorting options
Parse a product requirements document and create tasks
Parse a PRD file and create tasks from it
Get AI suggestions to improve a task
Update an existing task's details
Visualize tasks in a dashboard format with statistics
Visualize task dependencies as a tree structure
Visualize tasks in a Kanban board format
No error guidance for LLM recovery. Error responses appear to be generic exceptions (from logger.error). LLMs receive no actionable guidance: is this retryable? Should the user be prompted? What alternative tools should be tried? This violates recovery-guide pattern.
File I/O without visible path sanitization. Tools like parse-prd-file, initialize-project, and generate-diff accept filePath parameters. No visible validation against path traversal attacks (../../etc/passwd). LLMs can be prompt-injected into passing malicious paths.
Hidden LLM call dependencies. Several tools (generate-implementation-steps, expand-task, help-implement-task, suggest-task-improvements, parse-prd, parse-prd-file) call LLMs internally (via llmManager). These stateful dependencies are invisible to the agent, which cannot reason about retries, cost, or failures in those sub-calls.
No idempotency guarantees. create-task, initialize-project, parse-prd, parse-prd-file, and generate-diff are write operations with no idempotency tokens or idempotent-operation pattern support. If an agent retries due to a transient timeout, these may execute twice, creating duplicate tasks or corrupted state.
update-task missing schema documentation. The input schema for update-task is registered as z.object(UpdateTaskSchema) but UpdateTaskSchema is not visible in the provided code. This suggests either incomplete schema definition or missing type annotation that LLMs need to see.
No pagination support. list-tasks, list-task-templates, and visualize-tasks-kanban lack explicit offset/limit parameters or return pagination metadata. If a project has 500 tasks, these tools could return all of them, exhausting the context window.
Destructive operations lack confirmation. delete-task is marked DESTRUCTIVE but has no dry-run or confirmation mechanism. Agents should be required to confirm deletions before execution.
No tool annotations. The server does not use readOnlyHint, destructiveHint, or idempotentHint annotations in tool definitions, even though toolAnnotations=false suggests these are not declared. This is a protocol alignment gap, current MCP spec (2026-07-28) expects these hints for multi-turn safety.