--- 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. ### 7. Scope Management - **`scope_up`**: Moves a task up in the hierarchy. - **`scope_down`**: Moves a task down in the hierarchy. ## Troubleshooting ### MCP Client Compatibility Issues If you're experiencing issues with MCP clients not discovering Task Master tools, or seeing "vendor undefined" errors, this is likely due to JSON Schema compatibility differences. **Common symptoms:** - Tools show as "0 tools enabled" in MCP client settings - "vendor undefined" errors in MCP client logs - Task Master tools not appearing in tool lists **Root cause:** Some MCP clients (Augment IDE, gemini-cli, etc.) only support JSON Schema Draft-07, while newer schema generators output Draft 2020-12. **Solution:** Task Master includes a compatibility fix (as of v2.1.2) that ensures all MCP tools use JSON Schema Draft-07. This fix: - Uses Zod v3 compatibility mode for schema generation - Ensures proper tool discovery across all MCP clients - Maintains full functionality while improving compatibility If you're still experiencing issues after updating to the latest version: 1. **Restart your MCP client** - Schema changes require a restart 2. **Verify API keys** - Tools may not load without proper authentication 3. **Check client logs** - Look for any remaining compatibility errors 4. **Try a different client** - Test with Claude Code or Cursor to isolate client-specific issues ### Custom MCP Tool Development If you're extending Task Master with custom MCP tools, ensure you import from the Draft-07 compatible version: ```typescript // ✅ CORRECT - Draft-07 compatible import { z } from 'zod/v3'; // ❌ WRONG - May cause compatibility issues import { z } from 'zod'; ``` This compatibility requirement applies only to MCP tool definitions in: - `apps/mcp/src/tools/` - `mcp-server/src/tools/` The rest of the codebase can continue using standard Zod v4.