taskqueue-mcp
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Referenced in examples for web design tasks, with CSS reset and editing mentioned as part of the workflow for creating responsive websites.
Mentioned in toolRecommendations as a recommended tool for project setup tasks, allowing for repository initialization and version control.
Mentioned in an example for repository hosting, allowing tasks to reference GitHub repositories as part of project setup.
MCP Task Manager
MCP Task Manager (npm package: taskqueue-mcp) is a Model Context Protocol (MCP) server for AI task management. This tool helps AI assistants handle multi-step tasks in a structured way, with optional user approval checkpoints.
Features
- Task planning with multiple steps
- Progress tracking
- User approval of completed tasks
- Project completion approval
- Task details visualization
- Task status state management
- Enhanced CLI for task inspection and management
Usage
Usually you will set the tool configuration in Claude Desktop, Cursor, or another MCP client as follows:
Or, with a custom tasks.json path:
To use the CLI utility, you can use the following command:
This will show the available commands and options.
Available Operations
The TaskManager now uses a direct tools interface with specific, purpose-built tools for each operation:
Project Management Tools
list_projects
: Lists all projects in the systemread_project
: Gets details about a specific projectcreate_project
: Creates a new project with initial tasksdelete_project
: Removes a projectadd_tasks_to_project
: Adds new tasks to an existing projectfinalize_project
: Finalizes a project after all tasks are done
Task Management Tools
list_tasks
: Lists all tasks for a specific projectread_task
: Gets details of a specific taskcreate_task
: Creates a new task in a projectupdate_task
: Modifies a task's properties (title, description, status)delete_task
: Removes a task from a projectapprove_task
: Approves a completed taskget_next_task
: Gets the next pending task in a projectmark_task_done
: Marks a task as completed with details
Task Status and Workflows
Tasks have a status field that can be one of:
not started
: Task has not been started yetin progress
: Task is currently being worked ondone
: Task has been completed (requirescompletedDetails
)
Status Transition Rules
The system enforces the following rules for task status transitions:
- Tasks follow a specific workflow with defined valid transitions:
- From
not started
: Can only move toin progress
- From
in progress
: Can move to eitherdone
or back tonot started
- From
done
: Can move back toin progress
if additional work is needed
- From
- When a task is marked as "done", the
completedDetails
field must be provided to document what was completed - Approved tasks cannot be modified
- A project can only be approved when all tasks are both done and approved
These rules help maintain the integrity of task progress and ensure proper documentation of completed work.
Usage Workflow
A typical workflow for an LLM using this task manager would be:
create_project
: Start a project with initial tasksget_next_task
: Get the first pending task- Work on the task
mark_task_done
: Mark the task as complete with details- Wait for approval (user must call
approve_task
through the CLI) get_next_task
: Get the next pending task- Repeat steps 3-6 until all tasks are complete
finalize_project
: Complete the project (requires user approval)
CLI Commands
Task Approval
Task approval is controlled exclusively by the human user through the CLI command:
Options:
-f, --force
: Force approval even if the task is not marked as done
Note: Tasks must be marked as "done" with completed details before they can be approved (unless using --force).
Listing Tasks and Projects
The CLI provides a command to list all projects and tasks:
To view details of a specific project:
This command displays information about all projects in the system or a specific project, including:
- Project ID and initial prompt
- Completion status
- Task details (title, description, status, approval)
- Progress metrics (approved/completed/total tasks)
Example Usage
Creating a Project with Tasks
Getting the Next Task
Marking a Task as Done
Approving a Task (CLI-only operation)
This operation can only be performed by the user through the CLI:
After approval, the LLM can check the task status using read_task
or get the next task using get_next_task
.
Finalizing a Project
Status Codes and Responses
All operations return a status code and message in their response:
Project Tool Statuses
projects_listed
: Successfully listed all projectsplanned
: Successfully created a new projectproject_deleted
: Successfully deleted a projecttasks_added
: Successfully added tasks to a projectproject_finalized
: Successfully finalized a projecterror
: An error occurred (with error message)
Task Tool Statuses
task_details
: Successfully retrieved task detailstask_updated
: Successfully updated a tasktask_deleted
: Successfully deleted a tasktask_not_found
: Task not founderror
: An error occurred (with error message)
Structure of the Codebase
Data Schema and Storage
The task manager stores data in a JSON file with platform-specific default locations:
- Default locations:
- Linux:
~/.local/share/taskqueue-mcp/tasks.json
(following XDG Base Directory specification) - macOS:
~/Library/Application Support/taskqueue-mcp/tasks.json
- Windows:
%APPDATA%\taskqueue-mcp\tasks.json
(typicallyC:\Users\<username>\AppData\Roaming\taskqueue-mcp\tasks.json
)
- Linux:
- Custom location: Set via
TASK_MANAGER_FILE_PATH
environment variable
The data schema is organized as follows:
The system persists this structure to the JSON file after each operation.
Explanation of Task Properties:
id
: A unique identifier for the tasktitle
: A short, descriptive title for the taskdescription
: A more detailed explanation of the taskstatus
: The current status of the task (not started
,in progress
, ordone
)approved
: Indicates whether the task has been approved by the usercompletedDetails
: Provides details about the task completion (required whenstatus
isdone
)toolRecommendations
: A string containing suggested tools (by name or identifier) that might be helpful for completing this task. The LLM can use this to prioritize which tools to consider.ruleRecommendations
: A string containing suggested rules or guidelines that should be followed while working on this task. This can include things like "ensure all code is commented," "follow accessibility guidelines," or "use the company style guide". The LLM uses these to improve the quality of its work.
License
MIT
You must be authenticated.
MCP server for "taming the Claude" with structured task queues.