Task Queue MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Task Queue MCP create a task to fix the checkout bug and assign it to me"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
| 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 |
| 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 |
| A new task in your own queue, optionally filed in a project ( |
| Starts a queued task (with your estimate when it has none) |
| Completes a task in progress, with a completion note |
| Adds a note to a task |
| Attaches files from your computer to a task |
| Stops and restarts a task's worked time while nobody is on it |
| 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 |
| Assigns a task to a member by email, to you ( |
| Changes a task's title, description, category, priority, dates, or gives your estimate |
| 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.comIt 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-mcpFor 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-mcpCodex
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 testThe tests run the tools against a fake Task Queue, and start the real server over stdio.
License
MIT
Available Tools
13 toolsadd_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 taskADestructive
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 taskARead-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 tasksARead-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 taskAIdempotent
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
Scored across 13 tools
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.
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.
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.
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
Related MCP Connectors
Read and edit your Tasks boards: create and update tasks, comment, and track time.
Headless task management for bots, apps and AI agents. Remote MCP server, OAuth or access token.
Tasks, your coding threads, plans, replies and starts, from any MCP client. Sign in with OAuth.
Read teams, spaces, lists and tasks; create, update and comment on tasks and track time.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables agents to manage personal task lists through the MCP protocol, supporting task creation, editing, completion, deletion, grouping, reordering, and JSON import/export.1AGPL 3.0
- AlicenseBqualityBmaintenanceEnables 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.6GPL 3.0
- FlicenseNot gradedqualityCmaintenanceEnables managing tasks through a simple task tracker with REST API and MCP tools for listing, creating, updating, assigning, and deleting tasks.-
- AlicenseAqualityCmaintenanceEnables MCP clients to list, search, create, update, and comment on Goby tasks, and to manage webhooks, with per-project API key storage.18MIT