# Task Master MCP server

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

- Listing: https://mcp.tc/i/task-master
- Connect: this is a local (stdio) server; install it on your machine (see Install). The listing link is a page, not an MCP endpoint.
- Type: local (stdio)
- Auth: API key
- Category: [Productivity & Projects](https://mcp.tc/c/productivity)
- Vendor: Eyal Toledano / Hamster (community)
- Homepage: <https://tryhamster.com/docs/taskmaster>
- Repository: <https://github.com/eyaltoledano/claude-task-master>
- Package: npm `task-master-ai`

## 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.

## What it can do

- 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

## 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.

## Example 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"

## Install

### Claude Code

1. Run this in a terminal, in your project folder:

```bash
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
```

2. 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`:

```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>"
      }
    }
  }
}
```

2. 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

[Add to Cursor](<https://cursor.com/install-mcp?name=task-master&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsInRhc2stbWFzdGVyLWFpIl0sImVudiI6eyJhbnRocm9waWNfYXBpX2tleSI6IjxZT1VSX0FOVEhST1BJQ19BUElfS0VZPiIsInBlcnBsZXhpdHlfYXBpX2tleSI6IjxZT1VSX1BFUlBMRVhJVFlfQVBJX0tFWT4iLCJvcGVuYWlfYXBpX2tleSI6IjxZT1VSX09QRU5BSV9BUElfS0VZPiJ9fQ%3D%3D>) (opens Cursor)

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

`mcp.json`:

```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`:

```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`:

```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>"
      }
    }
  }
}
```

2. Refresh the MCP server list in Cascade. Replace the placeholders with your own values.

Devin Desktop is the new name for Windsurf.

### Codex

```bash
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`:

```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

```bash
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:

```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>"
      }
    }
  }
}
```

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.

## Details

- Server version: 0.43.1
- Last checked: 2026-10-03
- Listed: 2026-10-03
- Updated: 2026-10-03

---
Source: https://mcp.tc/i/task-master (mcp.tc is an independent directory, not affiliated with this server's publisher). Corrections: https://mcp.tc/report
