--- title: MCP Tools sidebarTitle: "MCP Tools" --- # MCP Tools This document provides an overview of the MCP (Machine-to-Machine Communication Protocol) interface for the Task Master application. The MCP interface is defined in the `mcp-server/` directory and exposes the application's core functionalities as a set of tools that can be called remotely. ## Core Concepts The MCP interface is built on top of the `fastmcp` library and registers a set of tools that correspond to the core functionalities of the Task Master application. These tools are defined in the `mcp-server/src/tools/` directory and are registered with the MCP server in `mcp-server/src/tools/index.js`. Each tool is defined with a name, a description, and a set of parameters that are validated using the `zod` library. The `execute` function of each tool calls the corresponding core logic function from `scripts/modules/task-manager.js`. ## Configurable Tool Loading To optimize LLM context usage, you can control which Task Master MCP tools are loaded using the `TASK_MASTER_TOOLS` environment variable. This is particularly useful when working with LLMs that have context limits or when you only need a subset of tools. ### Configuration Modes #### All Tools (Default) Loads all 36 available tools. Use when you need full Task Master functionality. ```json { "mcpServers": { "task-master-ai": { "command": "npx", "args": ["-y", "task-master-ai"], "env": { "TASK_MASTER_TOOLS": "all", "ANTHROPIC_API_KEY": "your_key_here" } } } } ``` If `TASK_MASTER_TOOLS` is not set, all tools are loaded by default. #### Core Tools (Lean Mode) Loads only 7 essential tools for daily development. Ideal for minimal context usage. **Core tools included:** - `get_tasks` - List all tasks - `next_task` - Find the next task to work on - `get_task` - Get detailed task information - `set_task_status` - Update task status - `update_subtask` - Add implementation notes - `parse_prd` - Generate tasks from PRD - `expand_task` - Break down tasks into subtasks ```json { "mcpServers": { "task-master-ai": { "command": "npx", "args": ["-y", "task-master-ai"], "env": { "TASK_MASTER_TOOLS": "core", "ANTHROPIC_API_KEY": "your_key_here" } } } } ``` You can also use `"lean"` as an alias for `"core"`. #### Standard Tools Loads 15 commonly used tools. Balances functionality with context efficiency. **Standard tools include all core tools plus:** - `initialize_project` - Set up new projects - `analyze_project_complexity` - Analyze task complexity - `expand_all` - Expand all eligible tasks - `add_subtask` - Add subtasks manually - `remove_task` - Remove tasks - `generate` - Generate task markdown files - `add_task` - Create new tasks - `complexity_report` - View complexity analysis ```json { "mcpServers": { "task-master-ai": { "command": "npx", "args": ["-y", "task-master-ai"], "env": { "TASK_MASTER_TOOLS": "standard", "ANTHROPIC_API_KEY": "your_key_here" } } } } ``` #### Custom Tool Selection Specify exactly which tools to load using a comma-separated list. Tool names are case-insensitive and support both underscores and hyphens. ```json { "mcpServers": { "task-master-ai": { "command": "npx", "args": ["-y", "task-master-ai"], "env": { "TASK_MASTER_TOOLS": "get_tasks,next_task,set_task_status,update_subtask", "ANTHROPIC_API_KEY": "your_key_here" } } } } ``` ### Choosing the Right Configuration - **Use `core`/`lean`**: When working with basic task management workflows or when context limits are strict - **Use `standard`**: For most development workflows that include task creation and analysis - **Use `all`**: When you need full functionality including tag management, dependencies, and advanced features - **Use custom list**: When you have specific tool requirements or want to experiment with minimal sets ### Verification When the MCP server starts, it logs which tools were loaded: ``` Task Master MCP Server starting... Tool mode configuration: standard Loading standard tools Registering 15 MCP tools (mode: standard) Successfully registered 15/15 tools ``` ## Tool Categories The MCP tools can be categorized in the same way as the core functionalities: ### 1. Task and Subtask Management - **`add_task`**: Creates a new task. - **`add_subtask`**: Adds a subtask to a parent task. - **`remove_task`**: Removes one or more tasks or subtasks. - **`remove_subtask`**: Removes a subtask from its parent. - **`update_task`**: Updates a single task. - **`update_subtask`**: Appends information to a subtask. - **`update`**: Updates multiple tasks. - **`move_task`**: Moves a task or subtask. - **`clear_subtasks`**: Clears all subtasks from one or more tasks. ### 2. Task Information and Status - **`get_tasks`**: Lists all tasks. - **`get_task`**: Shows the details of a specific task. - **`next_task`**: Shows the next task to work on. - **`set_task_status`**: Sets the status of a task or subtask. ### 3. Task Analysis and Expansion - **`parse_prd`**: Parses a PRD to generate tasks. - **`expand_task`**: Expands a task into subtasks. - **`expand_all`**: Expands all eligible tasks. - **`analyze_project_complexity`**: Analyzes task complexity. - **`complexity_report`**: Displays the complexity analysis report. ### 4. Dependency Management - **`add_dependency`**: Adds a dependency to a task. - **`remove_dependency`**: Removes a dependency from a task. - **`validate_dependencies`**: Validates the dependencies of all tasks. - **`fix_dependencies`**: Fixes any invalid dependencies. ### 5. Project and Configuration - **`initialize_project`**: Initializes a new project. - **`generate`**: Generates individual task files. - **`models`**: Manages AI model configurations. - **`research`**: Performs AI-powered research. ### 6. Tag Management - **`add_tag`**: Creates a new tag. - **`delete_tag`**: Deletes a tag. - **`list_tags`**: Lists all tags. - **`use_tag`**: Switches to a different tag. - **`rename_tag`**: Renames a tag. - **`copy_tag`**: Copies a tag.