Tools

The tools below are generated from the MCP server, so they always match what agents see. Every tool accepts keys and names where ids would be awkward: projects by key ("TGT"), tasks by key ("TGT-12"), columns and labels by name ("Done", "bug"), people by name or e-mail, and "me" for the bot itself.

Read-only tools never change anything. The others need a write scope and a role that allows the change; when one is missing, the tool answers with a message saying which, rather than failing silently.

The server also offers two resources: taskgert://projects/{projectId}/board (a board as JSON) and taskgert://tasks/{taskId} (a task in full), and gives every agent these instructions on connecting:

Taskgert is a kanban task manager. You act as a bot: you see only the projects you were added to, and can do what both your role in each project and your API token's scopes allow (call whoami to see them). - Call whoami first: it says the server's version and how many tools it has. If your client shows fewer taskgert tools than that, its tool list is out of date (it was loaded before a deploy): ask the user to reconnect the MCP (in Claude Code, /mcp) instead of working around missing tools. - Refer to projects by key (e.g. "TGT"), to tasks by key (e.g. "TGT-12") and to epics by key (e.g. "TGT-E1"); ids work too. - Start with list_projects and get_board to understand a project before changing it. - Columns and labels can be given by name. Moving a task into a "done" column completes it. - A task of type IDEA is not ready: analyse it and refine it (description, checklist, then type TASK) before working on it. Respect dependencies (dependsOn): do not start a task while what it depends on is open. - Before working a task, read its decisions (get_task): ask the user about unanswered critical ones and wait; settle the others with the recommended option (choose_decision with asRecommendedDefault) and say so. When a task needs a choice you cannot make alone, record it with add_decision. - Use the project's own checks: get_checklist_vocabulary lists its checklist templates; put one on a task with apply_checklist (or create_task with checklist) instead of adding standard steps one by one. After a task or a Taskgert, read the vocabulary's fixes and suggestions and propose refinements to the user. - Your calls through this server are traced (inputs redacted). get_mcp_insights shows where agents struggle: after a run, use it to propose improvements to the MCP itself. - Descriptions and comments are Markdown. Everything you do is visible to the team in real time and recorded under your bot's name.
add_checklist_itemWritesAdd a checklist item

Adds an item to a task's checklist: at the end, or with position "next" where the work stands (right after the last done item, before the next open one) — use "next" for a step that comes up while working, such as a Fix: item. Items added once the work has started are marked addedLive. Needs tasks:write.

taskstringrequired
Task id, or its key such as "TGT-12".
textstringrequired
position"end" | "next"
"end" (default) appends; "next" puts it right after the last done item.
add_commentWritesComment on a task

Posts a Markdown comment on a task, signed by this bot. Needs comments:write.

taskstringrequired
Task id, or its key such as "TGT-12".
bodystringrequired
Markdown.
add_decisionWritesAdd a decision a task needs

Records a choice the task needs: a question, its options and the recommended one. Mark it critical when a wrong pick would be costly: an unanswered critical decision holds the task back (a running Taskgert does not hand it out, and the people are notified). Otherwise, whoever works the task takes the recommended option if nobody answers. Needs tasks:write.

taskstringrequired
Task id, or its key such as "TGT-12".
questionstringrequired
optionsobject[]required
recommendedstring
The label of the recommended option.
criticalboolean
Default false.
add_to_taskgertWritesAdd tasks to a Taskgert

Appends tasks to the end of a Taskgert's plan. A task can belong to one Taskgert at a time.

taskgertstringrequired
Taskgert id, or its key such as "TGT-G1".
tasksstring[]required
Tasks by key (e.g. "TGT-12") or id; an epic key (e.g. "TGT-E1") adds all of its tasks.
complexitynumber | number | number | number | number | number
For all the tasks added.
areasstring[]
For all the tasks added: the parts of the code they touch.
apply_checklistWritesPut a checklist template on a task

Appends a template's checks to a task in one call, in order, leaving out those it already has. Use the project's templates (get_checklist_vocabulary) rather than adding standard steps one by one. Needs tasks:write.

taskstringrequired
Task id, or its key such as "TGT-12".
templatestringrequired
Template name or id.
assign_taskWritesAssign a task

Adds and/or removes assignees of a task. Assignees must be members of the project; "me" is this bot. Needs tasks:write.

taskstringrequired
Task id, or its key such as "TGT-12".
addstring[]
Members to add (id, name, e-mail or "me").
removestring[]
Members to remove (id, name, e-mail or "me").
attach_taskgert_evidenceWritesAttach evidence to a Taskgert

Uploads a file and attaches it to a Taskgert, typically the proof that its target was met: a screenshot (PNG, JPEG, WebP) or a recording (WebM, MP4) of the finished work. Give the content as base64. For large files from a terminal, the CLI reads the arguments from a file (`@args.json`) or stdin (`-`).

taskgertstringrequired
Taskgert id, or its key such as "TGT-G1".
fileNamestringrequired
mimeTypestringrequired
e.g. "video/webm", "image/png".
contentBase64string
textstring
For a text report instead of a file.
cancel_taskgertWritesCancel a Taskgert

Abandons a Taskgert that is not finished. Its tasks are left as they are.

taskgertstringrequired
Taskgert id, or its key such as "TGT-G1".
check_checklist_itemWritesTick a checklist item

Marks a checklist item as done (or not done). Identify it by id or by its exact text. Needs tasks:write.

taskstringrequired
Task id, or its key such as "TGT-12".
itemstringrequired
Item id or its exact text.
doneboolean
Default true.
check_checklist_itemsWritesTick several checklist items, on one or more tasks

Marks several checklist items as done (or not done) in one call, on one or several tasks: e.g. "Release with gitflow and push", "Deploy on Coolify" and "Verify in production through the MCP" on every task of a run. Items are given by id or exact text; those a task does not have are listed in the answer and do not stop the rest. Needs tasks:write.

tasksstring[]required
Task keys (e.g. "TGT-12") or ids.
itemsstring[]required
Item ids or exact texts.
doneboolean
Default true.
choose_decisionWritesAnswer a decision of a task

Picks an option of a task's decision (by label). An agent settling an unanswered, NON-critical decision passes asRecommendedDefault with the recommended option, and comments that it did; critical ones are answered by people (ask them). option null takes an answer back. Needs tasks:write.

taskstringrequired
Task id, or its key such as "TGT-12".
decisionstringrequired
Decision id, or its exact question.
optionstring | nullrequired
Option label; null takes the answer back.
asRecommendedDefaultboolean
claim_next_taskWritesClaim the next task of a parallel run

In a running Taskgert, gives you (an agent, by your label) the next task you may work on while other agents work on theirs: never one another agent holds, nor one sharing an area with work in progress. Keep it alive with heartbeat_claim, and end it with release_task. Answers your current claim if you already hold one, or why nothing can be taken now (wait and ask again). With the run's autoMove on (the default), a task still in the first column is moved into the first active column, so its worked time counts from now. Refused once the run's agent limit or token budget is reached.

taskgertstringrequired
Taskgert id, or its key such as "TGT-G1".
agentstringrequired
Your label within the run, e.g. "worker-2". Asking again with the same label gives your claim back.
leaseSecondsinteger
How long the claim lasts without a heartbeat (default 600).
create_checklist_templateWritesCreate a checklist template

Saves a named, ordered set of checks in the project's vocabulary, e.g. "Standard" or "Bug fix". Propose it to the user first when it comes from patterns you noticed. Needs tasks:write and an editor role.

projectstringrequired
Project id, or its key such as "TGT".
namestringrequired
descriptionstring
Markdown: what the template is for.
checksobject[]required
The checks, in order.
forTypesstring[]
Task types it is meant for; omit for every type.
applyOnCreateboolean
Add it on its own to every new task of those types.
create_epicWritesCreate an epic

Creates an epic: a group of related tasks of a project. Put tasks in it with create_task or update_task (`epic`); a whole epic can be added to a Taskgert by its key. Needs tasks:write.

projectstringrequired
Project id, or its key such as "TGT".
namestringrequired
descriptionstring
Markdown.
create_taskWritesCreate a task

Creates a task in a project, at the bottom of a column (the first column by default). Needs the tasks:write scope.

projectstringrequired
Project id, or its key such as "TGT".
titlestringrequired
descriptionstring
Markdown.
columnstring
Column id or name. Default: the first column.
priority"NONE" | "LOW" | "MEDIUM" | "HIGH" | "URGENT"
type"TASK" | "IDEA" | "BUG"
Default TASK. Use IDEA for a rough idea still to be refined.
epicstring
Epic key (e.g. "TGT-E1"), id or name.
checkliststring
A checklist template of the project (name or id) to put on the task. Templates marked "applied on create" are added anyway.
dueAtstring
ISO 8601 date-time.
labelsstring[]
Label ids or names of the project.
assigneesstring[]
Members by id, name or e-mail; "me" is this bot.
create_taskgertWritesCreate a Taskgert

Creates a Taskgert in a project: a batch of tasks with a target, run in order. It starts as a DRAFT. A task can belong to one Taskgert at a time.

projectstringrequired
Project id, or its key such as "TGT".
namestringrequired
targetstring
The final objective (Markdown), if already known.
tasksstring[]
Tasks to include, in order (keys or ids).
maxAgentsinteger
How many agents may work at once (1–8, default 1: one task at a time).
evidence"NONE" | "SCREENSHOT" | "VIDEO"
Proof of the target to attach when done: a SCREENSHOT (one change) or a VIDEO (several).
tokenBudgetinteger | null
Tokens the agents may use in all; no new task is claimed once spent. null: no limit.
autoMoveboolean
Claiming a task moves it into the first active column, and a DONE release completes it, so worked time is measured without moving cards by hand (default true). false: people move the cards.
finish_taskgertWritesFinish a Taskgert

Closes a running Taskgert once every task is done and its target has been carried out: records whether the target was met and a report of what was checked. Refused while tasks remain.

taskgertstringrequired
Taskgert id, or its key such as "TGT-G1".
verdict"PASSED" | "FAILED"required
Whether the target was met.
resultstringrequired
What was done to meet the target, and what was found (Markdown).
get_boardRead-onlyGet a board

Returns a project's kanban board: its columns in order, each with its tasks in order. The best overview of a project.

projectstringrequired
Project id, or its key such as "TGT".
get_checklist_vocabularyRead-onlyRead a project's checklist vocabulary

The project's own words for verifying work: its checklist templates (with how to verify each check), every check its tasks use (most used first), the `Fix:` items (what went wrong while working), and suggestions of checks to add to a template. Read it before giving a task its checklist, and after a task or a Taskgert to propose refinements to the user.

projectstringrequired
Project id, or its key such as "TGT".
get_mcp_insightsRead-onlyWhat the MCP trace suggests improving

Reads this bot's MCP calls over the last days: per tool, calls, errors, latency (p50/p95), failures retried and the longest run of back-to-back calls, with suggestions in plain words. The self-improvement loop: read it after a task or a Taskgert, propose improvement tasks to the user, ship them, and read it again to see whether they helped.

daysinteger
Default 7.
get_mcp_traceRead-onlyRead this bot's MCP calls

Lists this bot's recent tool calls through the MCP, newest first: tool, inputs (redacted), how they went, the first line of the answer and how long they took. Use it to see where an agent got stuck: errors, retries, long runs of the same tool. Kept 30 days.

toolstring
Only calls to this tool.
errorsOnlyboolean
limitinteger
Default 30.
get_taskRead-onlyGet a task

Returns a task in full: description (Markdown), checklist, assignees, labels, attachments and, unless disabled, its comments. Read an attachment with read_attachment.

taskstringrequired
Task id, or its key such as "TGT-12".
includeCommentsboolean
Default true.
get_taskgertRead-onlyGet a Taskgert

Returns a Taskgert in full: target, plan, status and phase, its tasks in plan order (column, complexity, worked and cycle time), the next task, and its time metrics. Start here to run one.

taskgertstringrequired
Taskgert id, or its key such as "TGT-G1".
heartbeat_claimWritesKeep a claim alive

Extends your claim's lease by as long as it was first given. Call it while working (e.g. every few minutes). An expired claim cannot be renewed: its task went back to the pool, so claim again.

claimstringrequired
The claim id, as claim_next_task answered.
list_columnsRead-onlyList columns

Lists the columns of a project in board order. Tasks in a column marked isDone count as completed.

projectstringrequired
Project id, or its key such as "TGT".
list_epicsRead-onlyList epics

Lists a project's epics (groups of related tasks, keyed like TGT-E1) with how many of their tasks are done. Their tasks: list_tasks with `epic`.

projectstringrequired
Project id, or its key such as "TGT".
list_projectsRead-onlyList projects

Lists the projects this bot was added to, with its role in each. Use the key (e.g. "TGT") to refer to a project in other tools.

querystring
Filter by name or key.
includeArchivedboolean
Also list archived (read-only) projects.
list_run_requestsRead-onlyList the runs asked for from Telegram

Runs people asked for from Telegram (`/run`, with an optional note), newest first. A PENDING one is yours to answer: look at the open tasks of the project (list_tasks, completed false; Ideas are not runnable), judge whether they make sense as one Taskgert or several (dependencies, shared areas, risk), create and plan them (create_taskgert, plan_taskgert), then propose_run. PROPOSED: waiting for the person; APPROVED: start them (start_taskgert) and run them; REJECTED: their Taskgerts were cancelled.

projectstringrequired
Project id, or its key such as "TGT".
status"PENDING" | "PROPOSED" | "APPROVED" | "REJECTED"
Only run requests in this status, e.g. PENDING.
list_taskgertsRead-onlyList Taskgerts

Lists a project's Taskgerts (batches of tasks with a target, run in order), newest first, with status and progress.

projectstringrequired
Project id, or its key such as "TGT".
status"DRAFT" | "PLANNED" | "RUNNING" | "DONE" | "CANCELLED"
Only Taskgerts in this status.
list_tasksRead-onlyList tasks

Lists the tasks of a project, optionally filtered. Returns at most `limit` tasks and a cursor for more.

projectstringrequired
Project id, or its key such as "TGT".
columnstring
Column id or name.
assignedToMeboolean
Only tasks assigned to this bot.
labelstring
Label id or name.
priority"NONE" | "LOW" | "MEDIUM" | "HIGH" | "URGENT"
type"TASK" | "IDEA" | "BUG"
Only tasks of this type, e.g. IDEA to find what needs refining.
origin"TELEGRAM"
Only tasks that came from there: TELEGRAM for the Ideas people sent to the bot (with type IDEA: the ones to refine).
epicstring
Only tasks of this epic (key, id or name).
completedboolean
true: only completed tasks; false: only open ones.
querystring
Text in the title, or an exact key.
limitinteger
Default 50.
cursorstring
`nextCursor` of the previous call.
move_taskWritesMove a task

Moves a task to a column (possibly the same one) at the top, the bottom, or next to another task. Moving into a "done" column completes it. Needs tasks:write.

taskstringrequired
Task id, or its key such as "TGT-12".
columnstringrequired
Destination column id or name.
position"top" | "bottom" | "before" | "after"
Default: bottom.
relativeTostring
With before/after: the task (id or key) to move next to.
plan_taskgertWritesPlan a Taskgert

Records an agreed plan: the tasks in the order to run them (each with an optional complexity), the reasoning, and the target if it has none. A DRAFT becomes PLANNED. Propose the plan to the user and get their approval before calling this.

taskgertstringrequired
Taskgert id, or its key such as "TGT-G1".
tasksobject[]required
The plan, in order: every task of the Taskgert, by key or id.
planstring
Why this order (Markdown).
targetstring
The final objective (Markdown), if it has none yet.
maxAgentsinteger
How many agents may work at once (1–8, default 1: one task at a time).
evidence"NONE" | "SCREENSHOT" | "VIDEO"
Proof of the target to attach when done: a SCREENSHOT (one change) or a VIDEO (several).
tokenBudgetinteger | null
Tokens the agents may use in all; no new task is claimed once spent. null: no limit.
autoMoveboolean
Claiming a task moves it into the first active column, and a DONE release completes it, so worked time is measured without moving cards by hand (default true). false: people move the cards.
propose_runWritesPropose Taskgerts for a run asked from Telegram

Answers a PENDING run request with the Taskgerts you created and planned for it (not started), in the order to run them, and why you grouped the tasks so. The person who asked gets it on Telegram with Approve / Reject buttons; check back with list_run_requests. On APPROVED, start them; on REJECTED they are cancelled for you.

requeststringrequired
The run request id, from list_run_requests.
taskgertsstring[]required
Taskgerts by key (e.g. "TGT-G3") or id, DRAFT or PLANNED, in the order to run them.
summarystringrequired
Why the tasks are grouped so, for the person deciding on a phone: one short paragraph or a few bullets.
read_attachmentRead-onlyRead an attachment

Reads a file attached to a task or to one of its comments: a fresh download link and, unless disabled, its content — text for text, Markdown, CSV and JSON files, the picture itself for PNG, JPEG, GIF and WebP images. Other files (PDF, ZIP, Office) only get the link. Refer to the file by id, or by its name within the task.

taskstringrequired
Task id, or its key such as "TGT-12".
attachmentstringrequired
Attachment id, or its file name within the task.
includeContentboolean
Default true.
release_taskWritesRelease a claimed task

Ends your work on a claimed task: DONE once it is delivered (with autoMove on, the run moves the task to its done column; otherwise move it yourself), or ABANDONED to hand it back. Report what you used, so the run can account for tokens and time. Then claim_next_task again.

claimstringrequired
The claim id, as claim_next_task answered.
outcome"DONE" | "ABANDONED"required
inputTokensinteger
outputTokensinteger
secondsinteger
Time you spent on it; by default, the time since it was claimed.
remove_from_taskgertWritesRemove tasks from a Taskgert

Takes tasks out of a Taskgert's plan (the tasks themselves are untouched). While it runs, completed tasks stay.

taskgertstringrequired
Taskgert id, or its key such as "TGT-G1".
tasksstring[]required
Tasks by key (e.g. "TGT-12") or id; an epic key (e.g. "TGT-E1") adds all of its tasks.
search_tasksRead-onlySearch tasks

Searches every project this bot can see, by text in the title or by exact key (e.g. "TGT-12").

querystringrequired
limitinteger
Default 20.
start_taskgertWritesStart a Taskgert

Starts running a Taskgert (it needs a target and at least one task): the clock starts. Then work its tasks in plan order, moving each across the board as it progresses.

taskgertstringrequired
Taskgert id, or its key such as "TGT-G1".
update_checklist_templateWritesChange a checklist template

Refines a template: rename it, replace its checks (e.g. add one the vocabulary suggests), or change which tasks it is for. Tasks that already have its checks keep them. Needs tasks:write and an editor role.

projectstringrequired
Project id, or its key such as "TGT".
templatestringrequired
Template name or id.
namestring
descriptionstring
Markdown: what the template is for.
checksobject[]
The checks, in order.
forTypesstring[]
Task types it is meant for; omit for every type.
applyOnCreateboolean
Add it on its own to every new task of those types.
versioninteger
update_epicWritesRename or describe an epic

Changes an epic's name or description. Needs tasks:write.

epicstringrequired
Epic key (e.g. "TGT-E1") or id.
namestring
descriptionstring
Markdown. Replaces the whole description.
versioninteger
update_taskWritesUpdate a task

Changes a task's title, description, priority, type, epic, due date or labels. Only the fields given change. Refining an Idea ends with type TASK. Pass `version` (from get_task) to fail instead of overwriting someone else's concurrent change.

taskstringrequired
Task id, or its key such as "TGT-12".
titlestring
descriptionstring
Markdown. Replaces the whole description.
priority"NONE" | "LOW" | "MEDIUM" | "HIGH" | "URGENT"
type"TASK" | "IDEA" | "BUG"
TASK: ready to be worked on. BUG: something broken to fix. IDEA: little more than a title; it must be analysed and refined (description, checklist, then type TASK) before anyone works on it.
epicstring | null
Epic key, id or name; null takes it out of its epic.
dueAtstring | null
null removes the due date.
labelsstring[]
Replaces the labels (ids or names).
versioninteger
upload_attachmentWritesAttach a file to a task

Uploads a file and attaches it to a task. Give the content as base64 (`contentBase64`) or, for text files, as plain text (`text`). Allowed: images (PNG, JPEG, GIF, WebP), PDF, ZIP, Office documents, plain text, Markdown, CSV, JSON. Needs attachments:write and tasks:write.

taskstringrequired
Task id, or its key such as "TGT-12".
fileNamestringrequired
mimeTypestringrequired
e.g. "image/png", "text/markdown".
contentBase64string
textstring
whoamiRead-onlyWho am I

Describes the bot this token belongs to, what the token allows (its scopes) and this server: its version and how many tools it has. Call it first. If your client lists fewer taskgert tools than `server.tools`, its tool list is out of date: ask the user to reconnect the MCP.