Skip to main content
Glama

Task Queue MCP

An MCP server for Task Queue. Any MCP client (Claude Code, Codex, Gemini CLI, Cursor, Claude Desktop, ...) can list, create, report on, move and assign your tasks, with your personal API key and your rights in Task Queue. Everything it does shows in Task Queue as done by you, through the API.

Tools

Tool

What it does

list_my_tasks

Your tasks across your workspaces (active, done or all), with each workspace's category and priority values. Names the ones reassigned to you, whose comments to read first

get_task

A task with its notes, files, parent and subtasks, and the rules for changing it. When it was reassigned to you, the reply says who had it and why, and to read its comments before working on it. Finds any task you may see by its number

create_task

A new task in your own queue, optionally filed in a project (Website / Checkout) or under a parent task, and started at once

start_task

Starts a queued task (with your estimate when it has none)

complete_task

Completes a task in progress, with a completion note

add_comment

Adds a note to a task

attach_files

Attaches files from your computer to a task

pause_task / resume_task

Stops and restarts a task's worked time while nobody is on it

move_task

Moves a task to a board column by name, as dragging it on the board does (In Progress, Blocked, Done, or a project's own columns such as "For QA"), and/or files it in another project

assign_task

Assigns a task to a member by email, to you (me), or back to the Task Pool (none)

update_task

Changes a task's title, description, category, priority, dates, or gives your estimate

delete_task

Deletes a task. It can't be undone

Tasks are named by their number, e.g. TASK-000123, or their id. Each tool needs what the same action needs in the app: assigning needs Assign tasks, deleting needs Delete tasks, and so on. When Task Queue refuses something, the tool answers with its reason (an unknown board column lists the board's columns).

Related MCP server: Todolist MCP Server

Setup

You need Node.js 20 or later.

Sign in from the terminal (easiest)

Like gh auth login:

npx -y github:devops-riku/task-queue-mcp login --url https://tasks.example.com

It prints a code and opens Task Queue in your browser. Check that the page shows the same code, pick the workspace your tasks go to, and approve. The server then has an API key of its own, saved in ~/.task-queue/config.json (shared with the Task Queue tracker plugin), and listed in Task Queue under Profile → Connect → API keys, where you can revoke it. No browser on that machine? Add --no-browser and open the printed link on any device where you're signed in.

Then add the server to your agent, with no address or key:

claude mcp add task-queue -- npx -y github:devops-riku/task-queue-mcp
codex mcp add task-queue -- npx -y github:devops-riku/task-queue-mcp
gemini mcp add -s user task-queue npx -- -y github:devops-riku/task-queue-mcp

For other clients, use the JSON below without its env.

Or with an API key

Make a personal API key in Task Queue under Profile → Connect → API keys. Every client runs the server with the same command, npx -y github:devops-riku/task-queue-mcp, and two settings:

  • TASK_QUEUE_URL: your Task Queue address, e.g. https://tasks.example.com (the API path is added for you)

  • TASK_QUEUE_API_KEY: your personal API key (tqk_...)

Optional: TASK_QUEUE_CATEGORY (the category value create_task uses when none is given) and TASK_QUEUE_WORKSPACE (a workspace id, when you belong to several).

Already using the Task Queue tracker plugin? Then this machine is set up: the server reads the tracker's settings from ~/.task-queue/config.json and needs no environment variables. Settings in the environment win over that file.

Claude Code

claude mcp add task-queue -e TASK_QUEUE_URL=https://tasks.example.com -e TASK_QUEUE_API_KEY=tqk_your_key -- npx -y github:devops-riku/task-queue-mcp

Codex

In ~/.codex/config.toml:

[mcp_servers.task-queue]
command = "npx"
args = ["-y", "github:devops-riku/task-queue-mcp"]
env = { TASK_QUEUE_URL = "https://tasks.example.com", TASK_QUEUE_API_KEY = "tqk_your_key" }

Gemini CLI, Cursor, Claude Desktop

In ~/.gemini/settings.json, ~/.cursor/mcp.json or claude_desktop_config.json:

{
  "mcpServers": {
    "task-queue": {
      "command": "npx",
      "args": ["-y", "github:devops-riku/task-queue-mcp"],
      "env": { "TASK_QUEUE_URL": "https://tasks.example.com", "TASK_QUEUE_API_KEY": "tqk_your_key" }
    }
  }
}

On Windows, if the client can't start npx, use "command": "cmd", "args": ["/c", "npx", "-y", "github:devops-riku/task-queue-mcp"].

Your API key works like your password for your tasks: keep it in the client's settings only, and revoke it in Task Queue (Profile → Connect → API keys) if it leaks.

Develop

npm install
npm test

The tests run the tools against a fake Task Queue, and start the real server over stdio.

License

MIT

Available Tools

13 tools
add_commentAdd a noteC

Adds a note to a task’s conversation.

Inputs: task (required), text (required).

assign_taskAssign a taskA

Assigns a task to a member of its workspace by email, to you ("me"), or back to the Task Pool ("none"). Needs Assign tasks, except handing back your own task.

Inputs: task (required), assignee (required), reason.

attach_filesAttach filesB

Attaches files from this computer to a task, with an optional note.

Inputs: task (required), paths (required), comment.

complete_taskComplete a taskA

Completes a task in progress (a paused one is resumed first). A task blocked for a reason must be resumed in Task Queue.

Inputs: task (required), note, ended_at.

create_taskCreate a taskA

A new task in your own queue (needs Take tasks or Create tasks). category and priority are values (e.g. BUG, HIGH), listed per workspace by list_my_tasks. With start: true it starts at once, which needs an estimate.

Inputs: title (required), start, due_at, folder, +8 more.

delete_taskDelete a taskA
Destructive

Deletes a task with its notes and files. It can’t be undone. Needs Delete tasks. Only when the person asks for it.

Inputs: task (required).

get_taskRead a taskA
Read-only

A task with its description, notes (comments), files, parent and subtasks, and how_to_update: the rules for changing it in its current state. reassigned is set when it reached its assignee from someone else’s queue: then read its comments before working on it, since they say what was done and found before the hand-off. Finds any task you may see by its number (pool tasks too, with View all tasks).

Inputs: task (required).

list_my_tasksList my tasksA
Read-only

The tasks assigned to you, across your workspaces, with each workspace and its category and priority values (needed to create a task). active: queued, in progress or on hold; done: completed or cancelled. A task with reassigned set reached you from someone else’s queue: read it with get_task, comments included, before you work on it.

Inputs: status, workspace_id.

move_taskMove a taskA

Moves a task to a board column by name, as dragging it on the board does: In Queue, In Progress (starts or resumes it), Blocked (needs reason), Done (completes it; reason is the completion note), or one of its project board’s own columns. It also moves back a step: from In Progress, Blocked or a later column to In Queue (back in the assignee’s queue, not started; the time worked so far stays), or to the pool (needs reason, and Return any task for work in progress). An unknown column lists the board’s columns. With folder, files it in another project (needs Manage projects). Reopening is done in Task Queue.

Inputs: task (required), column, folder, reason.

pause_taskPause a taskA

Pauses a task in progress so its worked time stops while nobody works on it (no reason needed).

Inputs: task (required).

resume_taskResume a taskA

Resumes a paused task. A task blocked for a reason is resumed with move_task to In Progress.

Inputs: task (required).

start_taskStart a taskA

Starts a queued task (or corrects the start time of one already started). A task without an estimate needs estimate_minutes. A reassigned task: read its comments (get_task) first.

Inputs: task (required), started_at, estimate_minutes.

update_taskEdit a taskA
Idempotent

Changes a task’s details (needs Edit tasks), or gives your estimate as its assignee (once). Send only what changes; null clears description, acceptance criteria and dates.

Inputs: task (required), title, due_at, category, +5 more.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 13 tools

    Disambiguation3/5

    Most tools have distinct verbs (add_comment, attach_files, assign_task, delete_task), but move_task overlaps heavily with start_task, resume_task, pause_task, and complete_task since it can start, resume, block, and complete tasks itself. The descriptions acknowledge the overlap but an agent still faces a real choice between a dedicated transition tool and the equivalent board move.

    Naming Consistency5/5

    All 13 tools follow a consistent verb_noun snake_case pattern (create_task, get_task, update_task, delete_task, start_task, pause_task, resume_task, move_task, assign_task). The only variation is the 'my' qualifier in list_my_tasks, which is still readable and within convention.

    Tool Count5/5

    13 tools is well within the ideal 3-15 range and each tool maps to a genuine task-queue operation: CRUD, state transitions, assignment, comments, and attachments. No tool feels redundant in count terms.

    Completeness4/5

    Core lifecycle is covered: create/get/update/delete, start/pause/resume/complete, move between columns, assign, comment, and attach files. Gaps are minor but real: no comment editing/deletion, no file listing or removal, no search, and reopening a task is explicitly punted to the UI ('Reopening is done in Task Queue').

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables agents to manage personal task lists through the MCP protocol, supporting task creation, editing, completion, deletion, grouping, reordering, and JSON import/export.
      1
      AGPL 3.0
    • A
      license
      B
      quality
      B
      maintenance
      Enables task management through MCP, including creating, reading, updating, deleting, and completing tasks, with filtering by status, priority, or due date and secure token-based authentication.
      6
      GPL 3.0