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 itemAdds 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".
textstringrequiredposition"end" | "next"- "end" (default) appends; "next" puts it right after the last done item.
add_commentWritesComment on a taskPosts 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 needsRecords 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".
questionstringrequiredoptionsobject[]requiredrecommendedstring- The label of the recommended option.
criticalboolean- Default false.
add_to_taskgertWritesAdd tasks to a TaskgertAppends 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 taskAppends 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 taskAdds 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 TaskgertUploads 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".
fileNamestringrequiredmimeTypestringrequired- e.g. "video/webm", "image/png".
contentBase64stringtextstring- For a text report instead of a file.
cancel_taskgertWritesCancel a TaskgertAbandons 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 itemMarks 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 tasksMarks 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 taskPicks 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 runIn 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 templateSaves 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".
namestringrequireddescriptionstring- 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 epicCreates 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".
namestringrequireddescriptionstring- Markdown.
create_taskWritesCreate a taskCreates 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".
titlestringrequireddescriptionstring- 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 TaskgertCreates 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".
namestringrequiredtargetstring- 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 TaskgertCloses 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 boardReturns 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 vocabularyThe 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 improvingReads 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 callsLists 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.
errorsOnlybooleanlimitinteger- Default 30.
get_taskRead-onlyGet a taskReturns 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 TaskgertReturns 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 aliveExtends 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.
link_tasksWritesMake a task depend on anotherRecords that `task` depends on `dependsOn`: it should only start once that one is done, and a running Taskgert will not hand it out before. Both must be in the same project; a link that would make a loop is refused. Needs tasks:write.
taskstringrequired- Task id, or its key such as "TGT-12".
dependsOnstringrequired- The task it waits on (key or id).
list_columnsRead-onlyList columnsLists 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 epicsLists 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 projectsLists 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 TelegramRuns 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 TaskgertsLists 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 tasksLists 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 taskMoves 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 TaskgertRecords 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 TelegramAnswers 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 attachmentReads 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 taskEnds 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"requiredinputTokensintegeroutputTokensintegersecondsinteger- Time you spent on it; by default, the time since it was claimed.
remove_from_taskgertWritesRemove tasks from a TaskgertTakes 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 tasksSearches every project this bot can see, by text in the title or by exact key (e.g. "TGT-12").
querystringrequiredlimitinteger- Default 20.
start_taskgertWritesStart a TaskgertStarts 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".
unlink_tasksWritesRemove a dependencyUndoes link_tasks: `task` no longer depends on `dependsOn`. Needs tasks:write.
taskstringrequired- Task id, or its key such as "TGT-12".
dependsOnstringrequired- Key or id.
update_checklist_templateWritesChange a checklist templateRefines 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.
namestringdescriptionstring- 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 epicChanges an epic's name or description. Needs tasks:write.
epicstringrequired- Epic key (e.g. "TGT-E1") or id.
namestringdescriptionstring- Markdown. Replaces the whole description.
versioninteger
update_taskWritesUpdate a taskChanges 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".
titlestringdescriptionstring- 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 taskUploads 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".
fileNamestringrequiredmimeTypestringrequired- e.g. "image/png", "text/markdown".
contentBase64stringtextstring
whoamiRead-onlyWho am IDescribes 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.