← Tous les outils MCP

Update task

update_task
ÉcritureDestructifIdempotent

Ce qu’il fait

Update fields on a task (title, notes, acceptance_criteria, description, priority, status, parent_id, project_id, start_date, due_date, due_time, due_hard, waiting, resurface_date, estimate_minutes, horizon, references, deliverables). Use deliverables to record structured outputs you produced ({label, url, content}). Put the DOCUMENT itself in content (markdown) when you wrote one — a draft, a summary, a report, a plan — so the human can read and approve it without leaving Done; use url for something that genuinely lives elsewhere, and both when it lives elsewhere but is worth reading here. Set kind to "html" for a page you generated as HTML, or "pdf" with base64 in content, when the document is not markdown. Capped at 10,000 characters per deliverable and 40,000 across the task for the text kinds, and 800,000 base64 characters (about 600 kB) per pdf. For anything bigger, or for a file that is not text or a PDF at all, upload it to the artifact store and reference it with artifact_id instead of truncating it — see the artifact_id field for how. description is HTML — see create_task for the accepted tags. Use block_task/unblock_task to manage dependencies. Prefer comment_on_task/complete_task/propose_completion for results. Some fields are deliberately not settable here, because they are the permissions a human grants you rather than ones you grant yourself: agent_ok and status "done" (use propose_completion, or complete_task on an agent_ok task), budget_tool_calls/budget_minutes (use ask_decision to request more), notes_for_agent (the human's instructions to you, one-way — reply with comment_on_task), assignee/delegate (use claim_task/next_task to take assigned work, ask_decision to request more — delegating work to yourself is the same act as assigning it), and snoozed_until (a snooze is the human's "not now" — you can read it on every task, but suggest a resurface_date or a propose_grooming defer rather than setting it). project_id may only name a project in the task's OWN workspace: filing it into another workspace's project would move the task out of reach of everyone who can see it today, which is a human's call — ask for it in a comment.

Paramètres

NomTypeObligatoireDescription
idstringObligatoire
titlestringFacultatif
notesstring | nullFacultatif
acceptance_criteriastring | nullFacultatif

What "done" means for this task; null to clear it.

descriptionstring | nullFacultatif

Long-form write-up as HTML

prioritystringFacultatif
Valeurs autoriséesurgentmediumlow
statusstringFacultatif

No "wont_do" and no "done" here on purpose — closing a task, or deciding it isn't worth doing, is a human call. Use propose_completion (or complete_task on an agent_ok task) to finish work; comment or call ask_decision if you think it shouldn't be done.

Valeurs autoriséesnot_startedin_progressplan_proposed
parent_idstring | nullFacultatif
project_idstring | nullFacultatif
goal_idstring | nullFacultatif

The goal (North Star) this task is an action step toward; null to unfile it.

start_datestring | nullFacultatif

YYYY-MM-DD, the day work is meant to begin; null to clear it. With due_date it is the task's span on the human's Gantt chart.

due_datestring | nullFacultatif
due_timestring | nullFacultatif

Local wall-clock time on due_date, 24-hour "HH:MM"; null for no particular time.

due_hardbooleanFacultatif

true = hard deadline (must finish on/before due_date); false = soft, a suggested date

waitingbooleanFacultatif

true = parked, waiting on someone else. A parked task stays on the board under "Waiting" but leaves the human's calendar feed, Plan my day and Today until its resurface_date arrives (or indefinitely, with none) — so it stops being time-blocked into every day while the ball is in someone else's court.

resurface_datestring | nullFacultatif

YYYY-MM-DD. The day a parked (waiting) task comes back onto the human's calendar and into Today; null to park it with no return date. Only meaningful alongside waiting=true.

estimate_minutesnumber | nullFacultatif
horizonstring | nullFacultatif
Valeurs autoriséestodaythis_weekthis_monthbacklogparking_lotnull
impactnumber | nullFacultatif

1–5 rating of how much this moves the needle; null to clear

valuenumber | nullFacultatif

Optional payout/value; null to clear

referencesstring[] | nullFacultatif

URLs/paths for context; replaces the existing list

deliverablesobject[] | nullFacultatif

Structured outputs you produced — {label, url, kind, content}; replaces the existing list. Put a document you wrote in content so it can be read and approved in place, and set kind when it is html or a base64 pdf rather than markdown.

deliverables[].labelstringObligatoire
deliverables[].urlstring | nullFacultatif
deliverables[].kindstringFacultatif

What this deliverable holds. Omit for markdown, which is the default and the right answer for a draft, summary, report or plan. Use "html" only for a page you actually generated as HTML — it is rendered in a locked-down sandbox that cannot run scripts or reach the network, so a page that depends on either will look wrong. Use "pdf" with base64 in content for a small PDF, or with artifact_id for a large one. Use "binary" for anything else you uploaded — a screenshot, a spreadsheet, a zip — which is always an artifact_id and has no inline form.

Valeurs autoriséesmarkdownhtmlpdfbinary
deliverables[].contentstring | nullFacultatif

The document itself, so a human can read it without leaving Done. Markdown or HTML as text, capped at 10,000 characters each (40,000 across the task). A pdf goes here as base64, capped at 800,000 base64 characters (about 600 kB, and 1,200,000 across the task). Put anything larger behind a url rather than truncating it.

deliverables[].artifact_idstring | nullFacultatif

An artifact you uploaded, instead of inline content (the two are mutually exclusive). Upload first: call create_artifact_upload with {task_id, label, filename, kind, size_bytes}, then PUT the raw bytes to the one-time upload_url it returns — no Authorization header, the link itself is the credential, and it expires 15 minutes after you request it. Use the artifact_id it returned here. To revise the document later, call create_artifact_upload again with the SAME artifact_id — this pointer keeps working and starts resolving to the new file as soon as its bytes land. Done keeps only that latest file: the previous one is queued for deletion once the replacement is safely stored, so don't rely on being able to fetch an earlier upload back.

deliverables[].filenamestring | nullFacultatif

What the downloaded file should be called. Ignored for the text kinds, and sanitised before use — the extension comes from an allow-list, not from you.

Annotations

Les indications que le serveur envoie avec cet outil. Un client les lit pour décider s’il doit vous demander avant un appel.

Lecture seulereadOnlyHint: false
Modifie des données de votre compte Done.
DestructifdestructiveHint: true
Peut supprimer ou écraser quelque chose qui existe déjà.
IdempotentidempotentHint: true
L’appeler deux fois avec les mêmes arguments donne le même résultat qu’une seule fois.
Monde ouvertopenWorldHint: false
Ne touche que votre propre compte Done.

Quels jetons peuvent l’appeler

Une connexion établie avec OAuth a un accès complet. Un jeton créé dans Réglages → Accès des agents → Jetons MCP supplémentaires peut être restreint, et un jeton restreint ne voit jamais au-delà de son projet ou de son espace de travail.

  • Accès completAutorisé
  • Jeton en lecture seuleRefusé
  • Jeton limité à un projetAutorisé
  • Jeton limité à un espace de travailAutorisé

Essayez

Une fois Done connecté, demandez à votre assistant quelque chose comme :

“Décalez l’échéance de la tâche de déclaration d’impôts à lundi prochain.”

Connectez Done à votre assistant

Un point d’accès MCP par compte, via OAuth ou un jeton. La configuration pas à pas pour chaque client :

Vue d’ensemble de la configuration MCP →