
Taskmaster MCP Server
Author: eyaltoledano
Description: Taskmaster is an AI-powered task-management system for AI-driven development that runs as an MCP server (for editors like Cursor, Windsurf, VS Code, Amazon Q CLI) and also as a CLI. Install via MCP using `npx -y task-master-ai` (or `npm i -g task-master-ai`) and provide at least one model/provider credential (e.g., Anthropic/OpenAI/Google/Perplexity/xAI/OpenRouter/etc.) or use Claude Code/Codex CLI. Supports selective MCP tool loading via `TASK_MASTER_TOOLS` (all/standard/core or custom list) and provides tools for project initialization, PRD parsing, task planning/expansion, task status updates, and research workflows.
Stars: 25.9k
Forks: 2.4k
License: MIT License with Commons Clause
Category: Open Source
Overview
Installation
#### B) Manual MCP configuration (Cursor / Windsurf / Amazon Q Developer CLI)\`\`\`(README notes you can remove keys you don’t use; and `TASK_MASTER_TOOLS` can be set in `env`.) 3. For VS Code, use `servers` and include \`FAQs
What is the recommended workflow for writing a PRD that Taskmaster can effectively parse into dependency-aware tasks?
The content documents one developer iterating a PRD through three revisions to incorporate edge cases before generating any code, but doesn't specify formatting requirements. Best practice is writing clear acceptance criteria, explicit dependencies between features, and technical constraints that help Taskmaster sequence tasks logically. Treat the PRD as a contract that the AI will decompose, not documentation.
How does the 'task-master loop' command work, and what are the differences between its workflow modes like test-coverage, linting, and entropy?
The task-master loop automates iterative development by executing tasks with quality checks between iterations. Test-coverage mode enforces coverage thresholds, linting mode runs style checks, duplication mode detects repeated code patterns, and entropy mode measures complexity. Each mode creates a quality gate that the AI must satisfy before advancing.
Can Taskmaster handle changes to requirements mid-project, or do I need to regenerate the entire task list from an updated PRD?
Taskmaster supports incremental updates through its tagging system and task modification tools, so you don't need to regenerate everything. You can update individual tasks, add new ones mid-stream, or create tagged sublists for requirement changes while preserving completed work. The recent release added multi-context project management specifically for this scenario, letting you branch task sequences without discarding prior progress.
What is the handover document technique mentioned in the Rust editor case study, and how do I implement it with Taskmaster?
The handover document is a living summary updated after each task, capturing architectural decisions and context for subsequent AI sessions. Implement it by creating a markdown file explicitly referenced in each Taskmaster task prompt, forcing the AI to read current state before generating code. This bridges stateless AI sessions.
How does Taskmaster resolve task dependencies and what happens if a task fails or needs to be reordered during execution?
Taskmaster generates dependency-aware task sequences during PRD parsing but delegates execution tracking to the developer. The system does not automatically halt dependent tasks when prerequisites fail. You manually reorder tasks by editing the tasks.json file or using task management tools, then resume execution. The recent tagged task list system helps isolate failures to specific project contexts without corrupting parallel workflows.
How do I configure the TASK_MASTER_TOOLS environment variable to reduce context window usage in Cursor or VS Code?
Set `TASK_MASTER_TOOLS` in your MCP config's env block to `core`, `lean`, `standard`, or `all` depending on your needs. For custom control, use comma-separated tool names like `browse_workspace,create_task,update_task`. The setting takes effect after restarting your editor. Remember VS Code users must place this inside the `servers` key, not `mcpServers`, or the configuration will silently fail.