Task Master

listing.by

Plan AI coding work from a PRD: parse requirements into tasks, expand them into subtasks and track status.

state.local.long (state.local.title)listing.badge.runs_withstate.key.long

listing.install

listing.local.explain

npx -y task-master-ai

listing.local.needs listing.local.note

  • anthropic_api_key listing.env.secret listing.env.optional API key for Claude models - get from console.anthropic.com (recommended)
  • perplexity_api_key listing.env.secret listing.env.optional API key for research features - get from perplexity.ai (optional)
  • openai_api_key listing.env.secret listing.env.optional API key for GPT models - get from platform.openai.com (optional)
  • task_master_tools listing.env.optional Which tools to enable: core (7 tools), standard (15 tools), or all (44 tools)

listing.share.h

listing.share.p_local

mcp.tc/i/task-master

listing.about

Task Master is a task management system for AI-driven development. It parses a Product Requirements Document into tasks, expands tasks into subtasks, tracks status and dependencies, and recommends the next task to work on. It works with editors such as Cursor, Windsurf, VS Code and Claude Code.

It runs locally over stdio with npx -y task-master-ai. Its AI-backed commands need at least one model provider API key in the environment or a project .env file, for example ANTHROPIC_API_KEY, OPENAI_API_KEY or PERPLEXITY_API_KEY for research. The Claude Code or Codex CLI providers work without a key. The TASK_MASTER_TOOLS variable selects core (7 tools), standard (15) or all (44) tools.

listing.can

  • Parse a PRD into an initial task list
  • Expand a task into subtasks
  • List tasks with an optional status filter
  • Get the next recommended task to work on
  • Show details for a task by ID
  • Set the status of tasks or subtasks
  • Record implementation notes on a subtask

listing.tools 7

  • get_tasks

    Get all tasks with an optional status filter.

  • next_task

    Get the next recommended task to work on.

  • get_task

    Get details for a specific task by ID.

  • set_task_status

    Set the status of one or more tasks or subtasks.

  • update_subtask

    Update a subtask with implementation details.

  • parse_prd

    Parse a Product Requirements Document to generate initial tasks.

  • expand_task

    Expand a task into subtasks for detailed implementation.

listing.prov.mcpb_on

listing.prompts

  • Parse my PRD in docs/prd.txt and generate tasks

  • What is the next task I should work on?

  • Expand task 5 into subtasks

  • Mark task 3 and its subtasks as done

listing.setup.h

listing.setup.local

Claude Code

  1. Run this in a terminal, in your project folder:
claude mcp add --transport stdio task-master --env "anthropic_api_key=<YOUR_ANTHROPIC_API_KEY>" --env "perplexity_api_key=<YOUR_PERPLEXITY_API_KEY>" --env "openai_api_key=<YOUR_OPENAI_API_KEY>" -- npx -y task-master-ai
  1. Start Claude Code and type /mcp. task-master should show as connected.

Add --scope user to make it available in every project. Replace the placeholders with your own values.

Claude Desktop

  1. Open Settings → Developer → Edit Config. It opens claude_desktop_config.json. Add:
claude_desktop_config.json
{
  "mcpServers": {
    "task-master": {
      "command": "npx",
      "args": [
        "-y",
        "task-master-ai"
      ],
      "env": {
        "anthropic_api_key": "<YOUR_ANTHROPIC_API_KEY>",
        "perplexity_api_key": "<YOUR_PERPLEXITY_API_KEY>",
        "openai_api_key": "<YOUR_OPENAI_API_KEY>"
      }
    }
  }
}
  1. Save the file and restart Claude Desktop. Replace the placeholders with your own values.

Needs Node.js on your computer. The file lives in ~/Library/Application Support/Claude/ on macOS and %APPDATA%\Claude\ on Windows.

Cursor

Or add it by hand to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (this project):

mcp.json
{
  "mcpServers": {
    "task-master": {
      "command": "npx",
      "args": [
        "-y",
        "task-master-ai"
      ],
      "env": {
        "anthropic_api_key": "<YOUR_ANTHROPIC_API_KEY>",
        "perplexity_api_key": "<YOUR_PERPLEXITY_API_KEY>",
        "openai_api_key": "<YOUR_OPENAI_API_KEY>"
      }
    }
  }
}

Needs Node.js on your computer. Replace the placeholders with your own values.

VS Code

Add it to .vscode/mcp.json. VS Code asks for the secret the first time and stores it securely:

.vscode/mcp.json
{
  "servers": {
    "task-master": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "task-master-ai"
      ],
      "env": {
        "anthropic_api_key": "${input:anthropic-api-key}",
        "perplexity_api_key": "${input:perplexity-api-key}",
        "openai_api_key": "${input:openai-api-key}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "anthropic-api-key",
      "description": "anthropic_api_key",
      "password": true
    },
    {
      "type": "promptString",
      "id": "perplexity-api-key",
      "description": "perplexity_api_key",
      "password": true
    },
    {
      "type": "promptString",
      "id": "openai-api-key",
      "description": "openai_api_key",
      "password": true
    }
  ]
}

Needs Node.js on your computer.

Devin Desktop

  1. Add it to ~/.config/devin/mcp_config.json (macOS and Linux) or %APPDATA%\devin\mcp_config.json (Windows):
mcp_config.json
{
  "mcpServers": {
    "task-master": {
      "command": "npx",
      "args": [
        "-y",
        "task-master-ai"
      ],
      "env": {
        "anthropic_api_key": "<YOUR_ANTHROPIC_API_KEY>",
        "perplexity_api_key": "<YOUR_PERPLEXITY_API_KEY>",
        "openai_api_key": "<YOUR_OPENAI_API_KEY>"
      }
    }
  }
}
  1. Refresh the MCP server list in Cascade. Replace the placeholders with your own values.

Devin Desktop is the new name for Windsurf.

Codex

codex mcp add task-master --env "anthropic_api_key=<YOUR_ANTHROPIC_API_KEY>" --env "perplexity_api_key=<YOUR_PERPLEXITY_API_KEY>" --env "openai_api_key=<YOUR_OPENAI_API_KEY>" -- npx -y task-master-ai

Or edit ~/.codex/config.toml directly:

config.toml
[mcp_servers.task-master]
command = "npx"
args = ["-y", "task-master-ai"]
env = { anthropic_api_key = "<YOUR_ANTHROPIC_API_KEY>", perplexity_api_key = "<YOUR_PERPLEXITY_API_KEY>", openai_api_key = "<YOUR_OPENAI_API_KEY>" }

Needs Node.js on your computer. Replace the placeholders with your own values.

Gemini CLI

gemini mcp add -e "anthropic_api_key=<YOUR_ANTHROPIC_API_KEY>" -e "perplexity_api_key=<YOUR_PERPLEXITY_API_KEY>" -e "openai_api_key=<YOUR_OPENAI_API_KEY>" task-master npx -- -y task-master-ai

This adds it to the current project. Add -s user to use it everywhere.

Any client

Most clients that start local servers accept this shape:

{
  "mcpServers": {
    "task-master": {
      "command": "npx",
      "args": [
        "-y",
        "task-master-ai"
      ],
      "env": {
        "anthropic_api_key": "<YOUR_ANTHROPIC_API_KEY>",
        "perplexity_api_key": "<YOUR_PERPLEXITY_API_KEY>",
        "openai_api_key": "<YOUR_OPENAI_API_KEY>"
      }
    }
  }
}

Zed puts servers under context_servers in its settings, with the same command, args and env fields.

Needs Node.js on your computer. Replace the placeholders with your own values.

listing.faq

Can I paste mcp.tc/i/task-master into my MCP client?

No. Task Master runs on your own computer, started by your client, so it has no web address to connect to. The quick link is the page to share; the install command is npx -y task-master-ai.

Does Task Master need an API key?

Yes. It reads anthropic_api_key, perplexity_api_key and openai_api_key from its environment, and anthropic_api_key, perplexity_api_key and openai_api_key are secrets. Put the value in your client's config on your own machine, never in a shared file.

Is Task Master a remote or a local server?

Local. Your client starts it as a process on your computer with npx -y task-master-ai, which needs Node.js.

What can Task Master do?

It has 7 tools, including get_tasks, next_task and get_task. You can parse a PRD into an initial task list, expand a task into subtasks and list tasks with an optional status filter.

Which clients can use it?

Any client that starts local servers: Claude Code, Claude Desktop, Cursor, VS Code, Devin Desktop, Codex, Gemini CLI, Zed and others. claude.ai and ChatGPT only connect to remote servers.

Who wrote this page?

mcp.tc's robot read Task Master's public metadata (its package and repository pages), and an AI model drafted the text from it. A person reviews anything the checks can't confirm. The text can still be wrong, so if you spot a mistake, use Report this listing on this page.

listing.em.h

listing.em.lead_local listing.em.how

listing.em.badge

em.prev_lightem.prev_dark
Markdown
[![Task Master on mcp.tc](https://mcp.tc/i/task-master/badge.svg)](https://mcp.tc/i/task-master)
HTML
<a href="https://mcp.tc/i/task-master"><img src="https://mcp.tc/i/task-master/badge.svg" alt="Task Master on mcp.tc" height="20"></a>

listing.em.badge_note

listing.em.widget

HTML
<script src="https://mcp.tc/w/task-master.js" async></script>

listing.em.widget_note

iframe

HTML
<iframe src="https://mcp.tc/embed/task-master" title="Task Master on mcp.tc" width="420" height="200" loading="lazy" allow="clipboard-write" style="border:0;border-radius:8px;max-width:100%"></iframe>

listing.em.iframe_note

JSON

listing.em.json_local

https://mcp.tc/i/task-master.json

listing.em.fields

listing.disclaimer_checked