TaskQueue

by chriscarrollsmith

7 stars
2.6k downloads
Not rated
GitHub

About

Structured task management system that breaks down complex projects into manageable tasks with progress tracking, user approval checkpoints, and support for multiple LLM providers.

Details

Author
chriscarrollsmith
Repository
chriscarrollsmith/taskqueue-mcp
GitHub stars
7
Downloads
2,590
License
MIT License
Categories
Productivity, Design, Developer Tools, AI, Project Management, Communication, Infrastructure

- 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

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name TaskQueue
    Command (node, npx, python, etc.) npx
    Arguments
    • Argument 1 -y
    • Argument 2 taskqueue-mcp
    Environment
    • OPENAI_API_KEY your-api-key
    • DEEPSEEK_API_KEY your-api-key
    • GOOGLE_GENERATIVE_AI_API_KEY your-api-key

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Usually you will set the tool configuration in Claude Desktop, Cursor, or another MCP client as follows:

{
  "tools": {
    "taskqueue": {
      "command": "npx",
      "args": ["-y", "taskqueue-mcp"]
    }
  }
}

To use the CLI utility, you can install the package globally and then use the following command:

npx taskqueue --help

This will show the available commands and options.

The task manager supports multiple LLM providers for generating project plans. You can configure one or more of the following environment variables depending on which providers you want to use:

- OPENAI_API_KEY: Required for using OpenAI models (e.g., GPT-4)
- GOOGLE_GENERATIVE_AI_API_KEY: Required for using Google's Gemini models
- DEEPSEEK_API_KEY: Required for using Deepseek models

To generate project plans using the CLI, set these environment variables in your shell:

export OPENAI_API_KEY="your-api-key"
export GOOGLE_GENERATIVE_AI_API_KEY="your-api-key"
export DEEPSEEK_API_KEY="your-api-key"

Or you can include them in your MCP client configuration to generate project plans with MCP tool calls:

{
  "tools": {
    "taskqueue": {
      "command": "npx",
      "args": ["-y", "taskqueue-mcp"],
      "env": {
        "OPENAI_API_KEY": "your-api-key",
        "GOOGLE_GENERATIVE_AI_API_KEY": "your-api-key",
        "DEEPSEEK_API_KEY": "your-api-key"
      }
    }
  }
}

A typical workflow for an LLM using this task manager would be:

1. create_project: Start a project with initial tasks
2. get_next_task: Get the first pending task
3. Work on the task
4. mark_task_done: Mark the task as complete with details
5. Wait for approval (user must call approve_task through the CLI)
6. get_next_task: Get the next pending task
7. Repeat steps 3-6 until all tasks are complete
8. finalize_project: Complete the project (requires user approval)

list_projects

Lists all projects in the system.

read_project

Gets details about a specific project.

create_project

Creates a new project with initial tasks.

delete_project

Removes a project.

add_tasks_to_project

Adds new tasks to an existing project.

finalize_project

Finalizes a project after all tasks are done.

list_tasks

Lists all tasks for a specific project.

read_task

Gets details of a specific task.

create_task

Creates a new task in a project.

update_task

Modifies a task's properties (title, description, status).

delete_task

Removes a task from a project.

approve_task

Approves a completed task.

get_next_task

Gets the next pending task in a project.

mark_task_done

Marks a task as completed with details.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "taskqueue": {
            "env": {
                "OPENAI_API_KEY": "your-api-key",
                "DEEPSEEK_API_KEY": "your-api-key",
                "GOOGLE_GENERATIVE_AI_API_KEY": "your-api-key"
            },
            "args": [
                "-y",
                "taskqueue-mcp"
            ],
            "command": "npx"
        }
    }
}

Linux

{
    "env": {
        "OPENAI_API_KEY": "your-api-key",
        "DEEPSEEK_API_KEY": "your-api-key",
        "GOOGLE_GENERATIVE_AI_API_KEY": "your-api-key"
    },
    "args": [
        "-y",
        "taskqueue-mcp"
    ],
    "command": "npx"
}

Macos

{
    "env": {
        "OPENAI_API_KEY": "your-api-key",
        "DEEPSEEK_API_KEY": "your-api-key",
        "GOOGLE_GENERATIVE_AI_API_KEY": "your-api-key"
    },
    "args": [
        "-y",
        "taskqueue-mcp"
    ],
    "command": "npx"
}

Windows

{
    "env": {
        "OPENAI_API_KEY": "your-api-key",
        "DEEPSEEK_API_KEY": "your-api-key",
        "GOOGLE_GENERATIVE_AI_API_KEY": "your-api-key"
    },
    "args": [
        "/c",
        "npx",
        "-y",
        "taskqueue-mcp"
    ],
    "command": "cmd"
}

MCP Task Manager

smithery badge

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

Basic Setup

Usually you will set the tool configuration in Claude Desktop, Cursor, or another MCP client as follows:

{
  "tools": {
    "taskqueue": {
      "command": "npx",
      "args": ["-y", "taskqueue-mcp"]
    }
  }
}

To use the CLI utility, you can install the package globally and then use the following command:

npx taskqueue --help

This will show the available commands and options.

Advanced Configuration

The task manager supports multiple LLM providers for generating project plans. You can configure one or more of the following environment variables depending on which providers you want to use:

- OPENAI_API_KEY: Required for using OpenAI models (e.g., GPT-4)
- GOOGLE_GENERATIVE_AI_API_KEY: Required for using Google's Gemini models
- DEEPSEEK_API_KEY: Required for using Deepseek models

To generate project plans using the CLI, set these environment variables in your shell:

export OPENAI_API_KEY="your-api-key"
export GOOGLE_GENERATIVE_AI_API_KEY="your-api-key"
export DEEPSEEK_API_KEY="your-api-key"

Or you can include them in your MCP client configuration to generate project plans with MCP tool calls:

{
  "tools": {
    "taskqueue": {
      "command": "npx",
      "args": ["-y", "taskqueue-mcp"],
      "env": {
        "OPENAI_API_KEY": "your-api-key",
        "GOOGLE_GENERATIVE_AI_API_KEY": "your-api-key",
        "DEEPSEEK_API_KEY": "your-api-key"
      }
    }
  }
}

Available MCP Tools

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 system
- read_project: Gets details about a specific project
- create_project: Creates a new project with initial tasks
- delete_project: Removes a project
- add_tasks_to_project: Adds new tasks to an existing project
- finalize_project: Finalizes a project after all tasks are done

Task Management Tools

- list_tasks: Lists all tasks for a specific project
- read_task: Gets details of a specific task
- create_task: Creates a new task in a project
- update_task: Modifies a task's properties (title, description, status)
- delete_task: Removes a task from a project
- approve_task: Approves a completed task
- get_next_task: Gets the next pending task in a project
- mark_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 yet
- in progress: Task is currently being worked on
- done: Task has been completed (requires completedDetails)

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 to in progress
- From in progress: Can move to either done or back to not started
- From done: Can move back to in progress if additional work is needed
- 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:

1. create_project: Start a project with initial tasks
2. get_next_task: Get the first pending task
3. Work on the task
4. mark_task_done: Mark the task as complete with details
5. Wait for approval (user must call approve_task through the CLI)
6. get_next_task: Get the next pending task
7. Repeat steps 3-6 until all tasks are complete
8. finalize_project: Complete the project (requires user approval)

CLI Commands

To use the CLI, you will need to install the package globally:

npm install -g taskqueue-mcp

Alternatively, you can run the CLI with npx using the --package=taskqueue-mcp flag to tell npx what package it's from.

npx --package=taskqueue-mcp taskqueue --help

Task Approval

By default, all tasks and projects will be auto-approved when marked "done" by the AI agent. To require manual human task approval, set autoApprove to false when creating a project.

Task approval is controlled exclusively by the human user through the CLI:

npx taskqueue approve-task -- <projectId> <taskId>
No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.