Was es tut
Park a question for the human and MOVE ON — the one way to involve them without ending your run. Use this the moment you hit something you shouldn't decide alone: spending money, anything outward-facing (an email, a post, a reply to a customer), anything irreversible, or a genuine fork where guessing wrong is expensive. Everywhere else, decide it yourself and say what you decided in your run summary — an ask for every ambiguity turns this into the comment feed it replaced. recommendation is REQUIRED: say what you'd do absent an answer, so answering is one keystroke rather than an essay. Give 2-4 options when the answer is a choice; omit them for free text. blocking:true (the default) parks the task as needs_input and drops it out of your queue — go work something else, and read the answer next run via list_open_decisions or get_task. blocking:false leaves the task in your queue so you keep working and pick the answer up later. Only ONE open blocking question per task. This is NOT an approval and never completes anything.
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
id | string | Pflicht | The task id |
question | string | Pflicht | The question, in one sentence |
kind | string | Optional | question = a fork; permission = may I do this outward-facing/irreversible thing; input = a value only they have Erlaubte Werte questionpermissioninput |
context | string | Optional | Why you're asking and what hangs on it — what you already ruled out, and the cost of each way |
options | string[] | Optional | 2-4 concrete choices. Omit for a free-text answer. |
recommendation | string | Pflicht | Required, and the most useful field here — a bare label is not enough. Name the option you'd take AND why, in a sentence or two: what tipped it, and what the cost of the other way is. "Reuse existing ID — a new one re-triggers install review for every connected workspace, and the payload flag is backward compatible." beats "Reuse existing ID". Lead with the option's exact wording so the UI can highlight it. |
blocking | boolean | Optional | True (default) parks the task until answered; false keeps working |
agent | string | Optional | Which agent is asking |
Annotationen
Die Hinweise, die der Server mit diesem Tool mitschickt. Ein Client liest sie, um zu entscheiden, ob er dich vor einem Aufruf fragt.
- Nur lesen
readOnlyHint: false - Ändert Daten in deinem Done-Konto.
- Destruktiv
destructiveHint: false - Fügt nur hinzu oder liest; nichts Bestehendes wird entfernt oder überschrieben.
- Idempotent
idempotentHint: false - Jeder Aufruf kann etwas Neues hinzufügen, etwa einen Kommentar, einen Lauf oder eine Aufgabe.
- Offene Welt
openWorldHint: false - Berührt nur dein eigenes Done-Konto.
Welche Tokens es aufrufen dürfen
Eine per OAuth hergestellte Verbindung hat vollen Zugriff. Ein Token aus Einstellungen → Agentenzugriff → Weitere MCP-Tokens lässt sich einschränken, und ein eingeschränktes Token sieht nie über sein Projekt oder seinen Workspace hinaus.
- Voller ZugriffErlaubt
- Token nur zum LesenAbgelehnt
- Token für ein ProjektAbgelehnt
- Token für einen WorkspaceErlaubt
Probier es aus
Sobald Done verbunden ist, sag deinem Assistenten zum Beispiel:
“Wenn ich zwischen den beiden Anbietern wählen soll, frag mich und mach mit etwas anderem weiter.”
Verbinde Done mit deinem Assistenten
Ein MCP-Endpunkt pro Konto, per OAuth oder Token. Die Einrichtung Schritt für Schritt für jeden Client: