MCP tool loading
TheTASKGRAPH_TOOLS environment variable controls which tools the TaskGraph MCP server loads, so you can trade features for context.
core(default, aliaslean): 7 essential tools.get_tasks,next_task,get_task,set_task_status,add_note,parse_prd,expand_task.standard: 16 tools. Core plusupdate_subtask, project initialization, complexity analysis,dependency_analysis,expand_all, subtask and task add/remove.all: every tool, including dependencies, tags,researchand scope up/down.- Custom list: comma-separated tool names, for example
"get_tasks,next_task,set_task_status".
env block of .mcp.json (recommended):
- When
TASKGRAPH_TOOLSis unset or empty,coreis used. - Invalid tool names in a custom list are ignored (a warning is emitted for each).
- If every name in a custom list is invalid, the server falls back to
all. - Values are case-insensitive.
MCP timeouts
Long-running AI operations such asparse_prd, expand_task, research and analyze_project_complexity can take 2 to 5 minutes, which exceeds the default 60-second MCP timeout. Add a timeout (in seconds, 1 to 3600) to the server entry in .mcp.json:
MCP request timed out after 60000ms, check that timeout is present, restart Claude Code, and try 600 for very large operations.
Tagged task lists
Tags keep separate task lists for branches, features or experiments.defaultTag: the tag used when none is specified (defaultmaster).- Branch-based tags:
taskgraph tags add <name> --from-branchcreates a tag named after the current git branch. Tags are never switched automatically; you decide when to create and use them.
State file
.taskgraph/state.json tracks runtime information for the tag system:
currentTag: the active taglastSwitched: when the tag last changedmigrationNoticeShown: whether the one-time tag-system notice was displayed
taskgraph init adds it to .gitignore: two people on different tags don’t conflict.
