Skip to main content
Glama
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

by kazuph

MCP TaskManager

Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.

Quick Start (For Users)

Prerequisites

Configuration

  1. Open your Claude Desktop configuration file at: ~/Library/Application Support/Claude/claude_desktop_config.json

You can find this through the Claude Desktop menu:

  1. Open Claude Desktop

  2. Click Claude on the Mac menu bar

  3. Click "Settings"

  4. Click "Developer"

  5. Add the following to your configuration:

{
  "tools": {
    "taskmanager": {
      "command": "npx",
      "args": ["-y", "@kazuph/mcp-taskmanager"]
    }
  }
}

Related MCP server: Todoist MCP Server

For Developers

Prerequisites

  • Node.js 18+ (install via brew install node)

  • Claude Desktop (install from https://claude.ai/desktop)

  • tsx (install via npm install -g tsx)

Installation

git clone https://github.com/kazuph/mcp-taskmanager.git
cd mcp-taskmanager
npm install
npm run build

Development Configuration

  1. Make sure Claude Desktop is installed and running.

  2. Install tsx globally if you haven't:

npm install -g tsx
# or
pnpm add -g tsx
  1. Modify your Claude Desktop config located at: ~/Library/Application Support/Claude/claude_desktop_config.json

Add the following to your MCP client's configuration:

{
  "tools": {
    "taskmanager": {
      "args": ["tsx", "/path/to/mcp-taskmanager/index.ts"]
    }
  }
}

Available Operations

The TaskManager supports two main phases of operation:

Planning Phase

  • Accepts a task list (array of strings) from the user

  • Stores tasks internally as a queue

  • Returns an execution plan (task overview, task ID, current queue status)

Execution Phase

  • Returns the next task from the queue when requested

  • Provides feedback mechanism for task completion

  • Removes completed tasks from the queue

  • Prepares the next task for execution

Parameters

  • action: "plan" | "execute" | "complete"

  • tasks: Array of task strings (required for "plan" action)

  • taskId: Task identifier (required for "complete" action)

  • getNext: Boolean flag to request next task (for "execute" action)

Example Usage

// Planning phase
{
  action: "plan",
  tasks: ["Task 1", "Task 2", "Task 3"]
}

// Execution phase
{
  action: "execute",
  getNext: true
}

// Complete task
{
  action: "complete",
  taskId: "task-123"
}

Available Tools

10 tools
add_tasks_to_requestC

Add new tasks to an existing request. This allows extending a request with additional tasks.

A progress table will be displayed showing all tasks including the newly added ones.

Inputs: requestId (required), tasks (required).

approve_request_completionA

After all tasks are done and approved, this tool finalizes the entire request. The user must call this to confirm that the request is fully completed.

A progress table showing the final status of all tasks will be displayed before requesting final approval.

If not approved, the user can add new tasks using 'request_planning' and continue the process.

Inputs: requestId (required).

approve_task_completionA

Once the assistant has marked a task as done using 'mark_task_done', the user must call this tool to approve that the task is genuinely completed. Only after this approval can you proceed to 'get_next_task' to move on.

A progress table will be displayed before requesting approval, showing the current status of all tasks.

If the user does not approve, do not call 'get_next_task'. Instead, the user may request changes, or even re-plan tasks by using 'request_planning' again.

Inputs: requestId (required), taskId (required).

delete_taskB

Delete a specific task from a request. Only uncompleted tasks can be deleted.

A progress table will be displayed showing the remaining tasks after deletion.

Inputs: requestId (required), taskId (required).

get_next_taskA

Given a 'requestId', return the next pending task (not done yet). If all tasks are completed, it will indicate that no more tasks are left and that you must wait for the request completion approval.

A progress table showing the current status of all tasks will be displayed with each response.

If the same task is returned again or if no new task is provided after a task was marked as done but not yet approved, you MUST NOT proceed. In such a scenario, you must prompt the user for approval via 'approve_task_completion' before calling 'get_next_task' again. Do not skip the user's approval step. In other words:

  • After calling 'mark_task_done', do not call 'get_next_task' again until 'approve_task_completion' is called by the user.

  • If 'get_next_task' returns 'all_tasks_done', it means all tasks have been completed. At this point, you must not start a new request or do anything else until the user decides to 'approve_request_completion' or possibly add more tasks via 'request_planning'.

Inputs: requestId (required).

list_requestsB

List all requests with their basic information and summary of tasks. This provides a quick overview of all requests in the system.

Inputs: no named parameters.

mark_task_doneA

Mark a given task as done after you've completed it. Provide 'requestId' and 'taskId', and optionally 'completedDetails'.

After marking a task as done, a progress table will be displayed showing the updated status of all tasks.

After this, DO NOT proceed to 'get_next_task' again until the user has explicitly approved this completed task using 'approve_task_completion'.

Inputs: requestId (required), taskId (required), completedDetails.

open_task_detailsB

Get details of a specific task by 'taskId'. This is for inspecting task information at any point.

Inputs: taskId (required).

request_planningA

Register a new user request and plan its associated tasks. You must provide 'originalRequest' and 'tasks', and optionally 'splitDetails'.

This tool initiates a new workflow for handling a user's request. The workflow is as follows:

  1. Use 'request_planning' to register a request and its tasks.

  2. After adding tasks, you MUST use 'get_next_task' to retrieve the first task. A progress table will be displayed.

  3. Use 'get_next_task' to retrieve the next uncompleted task.

  4. IMPORTANT: After marking a task as done, the assistant MUST NOT proceed to another task without the user's approval. The user must explicitly approve the completed task using 'approve_task_completion'. A progress table will be displayed before each approval request.

  5. Once a task is approved, you can proceed to 'get_next_task' again to fetch the next pending task.

  6. Repeat this cycle until all tasks are done.

  7. After all tasks are completed (and approved), 'get_next_task' will indicate that all tasks are done and that the request awaits approval for full completion.

  8. The user must then approve the entire request's completion using 'approve_request_completion'. If the user does not approve and wants more tasks, you can again use 'request_planning' to add new tasks and continue the cycle.

The critical point is to always wait for user approval after completing each task and after all tasks are done, wait for request completion approval. Do not proceed automatically.

Inputs: originalRequest (required), tasks (required), splitDetails.

update_taskB

Update an existing task's title and/or description. Only uncompleted tasks can be updated.

A progress table will be displayed showing the updated task information.

Inputs: requestId (required), taskId (required), description, title.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 10 tools

    Disambiguation5/5

    Each tool has a distinct purpose with clear boundaries. For example, 'approve_task_completion' is for approving individual tasks, while 'approve_request_completion' is for finalizing the entire request, and 'mark_task_done' is for marking tasks as done, distinct from approval. There is no overlap that would cause confusion.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern with underscores, such as 'add_tasks_to_request', 'approve_request_completion', and 'get_next_task'. The naming is uniform and predictable throughout the set, making it easy to understand each tool's function.

    Tool Count5/5

    With 10 tools, the server is well-scoped for task management. It covers the full lifecycle of requests and tasks, from creation to completion, without being overly complex or too sparse. Each tool serves a specific role in the workflow, justifying its inclusion.

    Completeness5/5

    The tool set provides complete coverage for task management workflows. It includes planning ('request_planning'), task operations (add, update, delete, mark as done, get details, get next), approvals (task and request levels), and listing requests. There are no obvious gaps; agents can handle the entire process from start to finish.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers