
Task Manager
Manages projects and tasks with dependencies in a local SQLite database. Helps track priorities, status, and find next actionable items based on task completion.
Provides structured task management with dependency tracking, complexity assessment, and automatic subtask decomposition for complex multi-step projects requiring systematic workflow orchestration.
What it does
- Create and organize projects with hierarchical tasks
- Track task dependencies and priorities
- Update task status and progress
- Identify next actionable tasks automatically
- Export and import project data as JSON
- Expand tasks into subtasks
Best for
About Task Manager
Task Manager is a community-built MCP server published by blizzy78 that provides AI assistants with tools and capabilities via the Model Context Protocol. Streamline projects with software to manage projects using dependency tracking, complexity scores, and Eisenhower matrix It is categorized under productivity. This server exposes 4 tools that AI clients can invoke during conversations and coding sessions.
How to install
You can install Task Manager in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
License
Task Manager is released under the MIT license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
Tools (4)
Creates a new task that must be executed. If decomposing a complex task is required, must use 'decompose_task' first before executing it. All tasks start in the todo status. Must use 'update_task' before executing this task, and when executing this task has finished.
Decomposes an existing complex task into smaller, more manageable subtasks. All tasks with complexity higher than low must always be decomposed before execution. Tasks MUST be in todo status to be decomposed. Subtasks with the same sequence order may be executed in parallel. Subtasks should include a verification subtask. Created subtasks may be decomposed later if needed.
Updates the status and/or other properties of one or more tasks. Must use this tool before executing tasks, and when finished executing tasks. Should always include lessons learned to inform future tasks. Important: Always update multiple tasks in a single call if dependencies allow it.
Returns full details for requested tasks
Task Manager MCP Server
This MCP server allows agents to orchestrate task workflows through exploration. It provides structured task management capabilities for agents working on complex multi-step problems:
- Create and organize tasks in hierarchical structures with dependencies
- Decompose complex tasks into smaller, more manageable subtasks with sequence ordering
- Track task progression through defined states (todo, in-progress, done, failed)
- Orchestrate workflows with proper dependency validation and critical path tracking
The tools have been tested extensively and successfully with GitHub Copilot in VS Code, and Claude Sonnet 4. (GPT-4.1 and GPT-5 do not seem to work very well unfortunately.)
Note: When using this MCP server, you should disable the Todo List tool in VS Code.
Tools
-
create_task- Creates a new task that must be executed. If decomposing a complex task is required, must use 'decompose_task' first before executing it. All tasks start in the todo status. Must use 'update_task' before executing this task, and when executing this task has finished.
- Inputs:
title(string): A concise title for this task. Must be understandable out of contextdescription(string): A detailed description of this task. Must be understandable out of contextgoal(string): The overall goal of this task. Must be understandable out of contextdefinitionsOfDone(array of strings): A detailed list of criteria that must be met for this task to be considered 'complete'. Must be understandable out of contextcriticalPath(boolean): Whether this task is on the critical path and required for completionestimatedComplexity(object): An estimate of the complexity of this task, containing:level(enum): One of "trivial", "low, may benefit from decomposition before execution", "average, must decompose before execution", "medium, must decompose before execution", "high, must decompose before execution"description(string): A description of the complexity of this task
uncertaintyAreas(array of objects): A detailed list of areas where there is uncertainty about this task's requirements or execution, each containing:title(string): A concise title for this uncertainty areadescription(string): A description of this uncertainty area
- Behavior:
- All tasks start in the todo status
- Must use 'update_task' before executing this task, and when executing this task has finished
- If decomposing a complex task is required, must use 'decompose_task' first before executing it
- Returns: Confirmation including the created task
-
decompose_task- Decomposes an existing complex task into smaller, more manageable subtasks. All tasks with complexity higher than low must always be decomposed before execution. Subtasks with the same sequence order may be executed in parallel. Subtasks should include a verification subtask.
- Inputs:
taskID(string): The task to decomposedecompositionReason(string): The reason for decomposing this tasksubtasks(array of objects): Array of smaller, manageable subtasks to create, each containing:title(string): A concise title for this subtask. Must be understandable out of contextdescription(string): A detailed description of this subtask. Must be understandable out of contextgoal(string): The overall goal of this subtask. Must be understandable out of contextdefinitionsOfDone(array of strings): A detailed list of criteria that must be met for this subtask to be considered 'complete'. Must be understandable out of contextcriticalPath(boolean): Whether this subtask is on the critical path and required for completion of this taskuncertaintyAreas(array of objects): Areas where there is uncertainty about this subtask's requirements or execution, each containing:title(string): A concise title for this uncertainty areadescription(string): A description of this uncertainty area
sequenceOrder(number): The sequence order of this subtask. Subtasks with the same order may be executed in parallel
- Behavior:
- All tasks with complexity higher than low must always be decomposed before executing
- Subtasks with the same sequence order may be executed in parallel
- Creates dependency chains based on sequence order (later sequences depend on earlier ones)
- Subtasks should include a verification subtask
- Returns: Confirmation including the created subtasks and updated parent task
-
update_task- Updates the status and/or other properties of a task
- Inputs:
tasks(array of objects): The tasks to update, each containing:taskID(string): The identifier of the task to change statusset(object, optional): Optional properties to update on this task, containing:status(enum, optional): The new status ("todo", "in-progress", "done", or "failed")title(string, optional): A concise title for this task. Must be understandable out of contextdescription(string, optional): A detailed description of this task. Must be understandable out of contextgoal(string, optional): The overall goal of this task. Must be understandable out of contextcriticalPath(boolean, optional): Whether this task is on the critical path and required for completionestimatedComplexity(object, optional): An estimate of the complexity of this task
add(object, optional): Optional properties to add to this task, containing:dependsOnTaskIDs(array of strings, optional): New tasks that this task depends ondefinitionsOfDone(array of strings, optional): Additional criteria that must be met for this task to be considered 'complete'uncertaintyAreas(array of objects, optional): Additional areas where there is uncertainty about this task's requirements or executionlessonsLearned(array of strings, optional): Lessons learned while executing this task that may inform future tasksverificationEvidence(array of strings, optional): Verification evidence that this task was executed as planned, and that the definitions of done were met
remove(object, optional): Optional properties to remove from this task, containing:dependsOnTaskIDs(array of strings, optional): Tasks that this task no longer depends on
- Behavior:
- Must use this tool before executing a task, and when executing a task has finished
- Can be used to set the status of multiple tasks at once if their dependencies allow it
- Should always include lessons learned to inform future tasks, if possible
- Tasks can only transition to "done" if all critical path dependencies are completed
- Validates status transitions and dependencies before allowing changes
- Cannot transition from "done" to "failed" or vice versa
- Returns: Status transition confirmation including the updated tasks
-
task_info- Returns full details for requested tasks
- Inputs:
taskIDs(array of strings): A list of task IDs to retrieve information for
- Behavior:
- Returns full task details including all properties (status, dependencies, descriptions, etc.)
- Handles missing task IDs gracefully by returning them in a separate list
- Returns: Object containing arrays of found tasks and any not found task IDs
-
current_task(single agent mode only)- Returns a list of tasks that are currently in progress.
- Inputs: None
- Behavior:
- Only available when single agent mode is enabled (
SINGLE_AGENT=true) - Filters tasks to return only those currently in progress
- Useful for agents to recover task context after conversation history compacting
- Only available when single agent mode is enabled (
- Returns: Object containing array of current tasks
Single Agent Mode
The task manager supports a special "single agent mode" that can be enabled by setting the environment variable SINGLE_AGENT=true. In this mode, the server will provide the additional current_task tool.
This is useful for long-running agents where the agent loop is compacting/summarizing the agent's conversation history to prevent exceeding the context window limit. In these cases, the agent may "forget" which tasks exist because the task IDs have been removed from the context window. Single agent mode allows the agent to use the current_task tool, enabling it to recover information about the current task tree.
Do not enable single agent mode if you plan to use this MCP server with multiple agents at the same time. If enabled, only one agent should use the MCP server at any one time.
Enabling Single Agent Mode
Set the environment variable before starting the server:
SINGLE_AGENT=true npx @blizzy/mcp-task-manager
Or in Claude Desktop configuration:
{
"mcpServers": {
"task-manager": {
"command": "npx",
"args": ["-y", "@blizzy/mcp-task-manager"],
"env": {
"SINGLE_AGENT": "true"
}
}
}
}
Recommended Agent Prompt Snippets
Instructions section
# Agent Instructions
For any user request, DO THIS FIRST: Use the Task Management tools to create a new task for the user's request. Always add these uncertainty areas as the first ones to the task:
1. Project overview as documented in README.md and CLAUDE.md
2. Project configuration, such as test commands
Resolve the user's request completely by executing all incomplete tasks. Doing so may include:
- Gathering information or doing research
- Writing or editing code or other content
- Fixing problems
- etc.
Use all tools available to you to help you in executing tasks, as appropriate. This includes:
- Use the Task Management
---
*README truncated. [View full README on GitHub](https://github.com/blizzy78/mcp-task-manager).*
Alternatives
Related Skills
Browse all skillsManages and orchestrates multi-step, stateful agent workflows; handles task dependencies, persistent state, error recovery, and external rate-limiting. Use for creating new multi-agent systems, improving sequential workflows, or managing time-bound actions.
Project manager and task delegation system. Use when you need to break down complex work into smaller tasks, assign appropriate AI models based on complexity, spawn sub-agents for parallel execution, track progress, and manage token budgets. Ideal for research projects, multi-step workflows, or when you want to delegate routine tasks to cheaper models while handling complex coordination yourself.
CLI tool for managing team tasks outside of Claude Code's built-in tools. Use this skill when tasks need to be archived, bulk cleaned up, or when you need a high-level view of task dependencies. Triggers: (1) User asks to clean up or archive completed tasks, (2) Too many resolved tasks cluttering the list, (3) Need to visualize task dependencies, (4) Want to manage tasks via command line.
Safe MASTER_PLAN.md management with backup, validation, and intelligent updates. Use when updating task tracking, adding features to roadmap, or modifying project documentation.
Microsoft 365 tenant administration for Global Administrators. Automate M365 tenant setup, Office 365 admin tasks, Azure AD user management, Exchange Online configuration, Teams administration, and security policies. Generate PowerShell scripts for bulk operations, Conditional Access policies, license management, and compliance reporting. Use for M365 tenant manager, Office 365 admin, Azure AD users, Global Administrator, tenant configuration, or Microsoft 365 automation.
Manage GitLab repositories, merge requests, and issues via API. Use for tasks like creating repos, reviewing code in MRs, or tracking issues.