Documentazione

Configurazione di MCP

Ogni account ha il proprio endpoint MCP, limitato alle sole attività di quell’account: nessun token condiviso o globale.

1. Collegati con OAuth (consigliato)

Done è un server di autorizzazione OAuth 2.1 completo per il suo endpoint MCP, quindi i client che parlano OAuth (claude.ai, i connettori di ChatGPT e Claude Desktop) si collegano da soli, senza token da copiare. Aggiungi Done come connettore personalizzato usando solo l’URL:

https://trydone.app/mcp
  1. Vai in Settings → Connectors → Add custom connector (Impostazioni → Connettori → Aggiungi connettore personalizzato).
  2. Imposta l’URL del server MCP remoto su https://trydone.app/mcp e fai clic su Add.
  3. Fai clic su Connect. Il client individua gli endpoint OAuth di Done, si registra e ti manda su Done per accedere e approvare l’accesso.
  4. Approva, e il connettore è attivo, limitato al tuo solo account.

2. Oppure usa un bearer token

Per i client configurati a mano (o da uno script), genera invece un token. Apri il pannello Account in basso a sinistra nella barra laterale e genera un token MCP: viene mostrato una sola volta, quindi copialo in un posto sicuro. Puoi creare un token con accesso completo, uno di sola lettura o uno limitato a un singolo progetto. Poi punta un client verso l’endpoint:

{
  "mcpServers": {
    "done": {
      "url": "https://trydone.app/mcp",
      "headers": { "Authorization": "Bearer <your-generated-mcp-token>" }
    }
  }
}

Su claude.ai puoi anche incollare lo stesso Authorization: Bearer <token> come intestazione della richiesta nelle Advanced settings (impostazioni avanzate) di un connettore personalizzato. In entrambi i casi, un agente che usa il token vede e modifica soltanto ciò che rientra nell’ambito del token.

Collega un agente personale

Gli agenti personali che possono aggiungere un server MCP remoto si collegano a Done allo stesso modo: puntali verso https://trydone.app/mcp, poi accedi con OAuth oppure dai loro un token MCP del passaggio 2. Un token di sola lettura o limitato a un singolo progetto è un buon inizio per un agente che stai ancora imparando a conoscere.

Meta Muse

Muse aggiunge i nuovi strumenti come connettori personalizzati, e gliene chiedi uno in chat. Di’ a Muse: “Create a custom connector for Done's MCP server at https://trydone.app/mcp.” Quando ti chiede le credenziali, dagli il tuo token MCP attraverso la sua richiesta sicura di credenziali, non nella chat.

Hermes Agent (Nous Research)

Aggiungi Done a ~/.hermes/config.yaml, poi esegui hermes mcp login done per approvare l’accesso in Done, e hermes mcp test done per controllare che elenchi gli strumenti di Done:

mcp_servers:
  done:
    url: "https://trydone.app/mcp"
    auth: oauth

Per usare invece un token, sostituisci auth: oauth con headers: { Authorization: "Bearer <your-mcp-token>" }.

OpenClaw (prima Clawdbot)

Aggiungi Done come server streamable-HTTP, accedi, poi verificalo:

openclaw mcp add done --url https://trydone.app/mcp --transport streamable-http
openclaw mcp login done
openclaw mcp doctor done --probe

Usa l’accesso con OAuth invece di un’intestazione Authorization statica: alcune versioni di OpenClaw non inoltrano le intestazioni personalizzate ai server streamable-HTTP.

Poke

In Poke, apri Integrations → New, chiamala Done, imposta l’URL del server MCP su https://trydone.app/mcp, incolla il tuo token MCP come API Key e fai clic su Create Integration.

Instinct

Instinct non pubblica ancora istruzioni di configurazione per strumenti esterni. Se il tuo può aggiungere una connessione MCP personalizzata, dagli l’URL https://trydone.app/mcp e un token MCP, inviato come Authorization: Bearer <token>.

Funziona anche qualsiasi altro agente in grado di aggiungere un server MCP remoto: usa i passaggi OAuth del punto 1 se supporta OAuth, oppure un token del punto 2 se non lo supporta. In entrambi i casi compare in Impostazioni → Accesso degli agenti, dove puoi revocarlo con un clic.

3. Strumenti a disposizione dell’agente

Il server MCP espone strumenti modellati sul flusso di lavoro, non un semplice CRUD:

list_my_tasks
Recupera la coda delle attività pronte: assegnate a un agente IA, non bloccate, non in pausa, dalla priorità più alta. Chiamalo per primo. Quando torna vuota spiega perché, con il dettaglio di ciò che è nascosto (blocked/done/wont_do/pending_approval/plan_proposed/needs_input/paused/claimed_by_other), così “non c'è niente da fare” e “è tutto in pausa” non sembrano la stessa cosa. Passa include_paused per elencare quelle in pausa e riferire che cosa l'esecuzione ha saltato; non sblocca nulla: non si può comunque lavorarci.
next_task
Prende in carico in modo atomico la singola attività pronta con la priorità più alta: è l'estrazione dalla coda. Usalo in una flotta, così due agenti non prendono mai la stessa.
list_tasks
Mostra tutta la bacheca; filtra per stato, priorità, progetto o attività principale, oppure cerca nei titoli.
get_task
Carica un'attività per intero: note, sottoattività, blocchi e cronologia, più i tre livelli di istruzioni permanenti (workspace_brief, project_brief e il notes_for_agent dell'attività). Precedenza: spazio di lavoro → progetto → attività, il più specifico per ultimo. Con un tetto: la cronologia restituisce per impostazione predefinita le 50 voci più recenti (limit, 0–500) e include restringe le sezioni; tutto ciò che resta fuori è indicato in context_summary, così una risposta breve non viene mai scambiata per la cronologia completa.
claim_task / release_task
Prende in carico un'attività (in corso, assegnata a un agente, con un commento iniziale); passa il tuo id `agent` (per esempio "ChatGPT") perché una flotta non lavori due volte sulla stessa cosa. Oppure la rimette in coda se non puoi finirla ora.
decline_task
Toglie del tutto un'attività dalla tua coda: elimina l'assegnazione e la tua presa in carico e la riporta a not_started, pubblicando il motivo nella conversazione. Per il lavoro che ti è stato assegnato ma non avrebbe dovuto. release_task rilascia solo la presa in carico; questo toglie anche l'assegnazione.
handoff_task
Passa un'attività che hai in carico a un altro agente con nome della squadra, a lavoro in corso. Finisce subito nella sua coda (presa in carico rilasciata, di nuovo not_started, la tua nota pubblicata) e agent_ok viene azzerato, quindi l'agente successivo propone il completamento, a meno che una persona non lo riattivi.
list_agents
La squadra di agenti dell'account e quale agente sei tu. La tua corsia deriva dal nome della tua credenziale, mai da un argomento; gli strumenti della coda restituiscono solo le attività della tua corsia. Squadra vuota = un'unica coda condivisa.
pause_board
Lo stesso pulsante di arresto, un livello più su: impedisce che a qualsiasi agente dell'account venga affidato lavoro finché una persona non riprende. Per un ostacolo che non riguarda una sola attività: credenziali sparite, tutte le attività che falliscono allo stesso modo, un ciclo che attraversa più attività. Da quel momento list_my_tasks e next_task rifiutano e restituiscono il motivo invece di una coda vuota, così un'esecuzione che trova la bacheca ferma registra il perché. Il lavoro già in carico può comunque essere chiuso. La ripresa spetta solo a una persona, nel pannello Account.
pause_task
Ferma il lavoro su un'attività e tiene lontano ogni agente finché una persona non la riprende. Per quando sei BLOCCATO in un modo che nessuna domanda risolverebbe: un ciclo, una credenziale mancante, un'attività che non si può fare così com'è scritta. Il motivo è obbligatorio e non puoi togliere la pausa: riprendere è un'azione di una persona nell'app, quindi un agente che si è messo in pausa perché girava a vuoto non può rimettersi nel ciclo.
comment_on_task
Consegna risultati e conclusioni nella conversazione dell'attività, lo spazio che legge una persona. Un solo commento denso per esecuzione, non una cronaca passo per passo: cambi di stato, prese in carico e tracce delle esecuzioni vengono registrati automaticamente nella cronologia dell'attività.
check_criterion
Spunta un criterio di accettazione come soddisfatto. È il canale dell'avanzamento: segna le condizioni man mano che le soddisfi, invece di raccontare l'avanzamento nei commenti. Spuntare tutte le caselle non completa l'attività.
ask_decision
Mette da parte una domanda per la persona e va avanti: l'unico modo di coinvolgerla senza chiudere l'esecuzione. L'attività esce dalla tua coda come needs_input; la riprendi con la risposta allegata. Richiede un consiglio. Una sola domanda bloccante aperta per attività.
list_open_decisions / withdraw_decision
Mostra tutte le domande che stanno aspettando una persona, oppure ne ritira una che hai risolto da solo. Controllalo per primo a ogni esecuzione: un'attività la cui domanda ha avuto risposta è il lavoro più a buon mercato che ci sia.
check_night_budget
Chiede se puoi cominciare un'altra attività stanotte. I budget delle attività limitano una sola attività; questo limita un'intera sessione senza supervisione, così una routine notturna non può consumare in una notte il margine di una settimana.
delete_comment
Rimuove uno dei commenti dell'agente: il doppione di un nuovo tentativo, o una bozza che ha sostituito. I tuoi commenti e la cronologia degli stati non si possono eliminare.
complete_task
Segna direttamente come completata; richiede un riepilogo. Funziona solo se l'attività ha agent_ok=true; altrimenti dà errore e ti dice di usare propose_completion.
propose_completion
Per un'attività senza agent_ok: pubblica un riepilogo e imposta lo stato su pending_approval finché una persona non approva o rifiuta.
approve_task / reject_task
Risolve un'attività in pending_approval (può farlo anche un agente supervisore, non solo una persona).
propose_plan
Prima di un lavoro consistente: pubblica il piano e imposta lo stato su plan_proposed finché una persona non lo approva. È l'equivalente di propose_completion prima dell'esecuzione.
approve_plan / reject_plan
Risolve il piano di un'attività in plan_proposed (può farlo anche un agente supervisore, non solo una persona).
create_task / update_task / delete_task
CRUD completo delle attività, con la stessa validazione dell'API REST. delete_task la sposta nel Cestino, non la elimina definitivamente. Accetta riferimenti: URL o percorsi di contesto, recuperati tramite i connettori MCP dell'agente.
quick_capture
Crea un'attività da testo libero: riconosce scadenze, priorità, @agent (anche @claude/@chatgpt), ~stima, #progetto.
decompose_task
Scompone un'attività in più sottoattività con una sola chiamata.
render_plan
Presenta i passaggi di un'attività come un piano: una lista di controllo in markdown, JSON strutturato e un widget interattivo per gli host che mostrano la UI di MCP. Chiamalo dopo decompose_task/propose_plan.
set_step_status
Spunta o riapre un passaggio del piano e restituisce il piano aggiornato. Segnare come fatto un passaggio dell'agente privo di agent_ok richiede comunque il passaggio di approvazione.
block_task / unblock_task
Gestisce le dipendenze «bloccata da» (con controllo dei cicli).
start_run / end_run / check_budget
Apre e chiude una sessione di lavoro verificabile; controlla il budget residuo di chiamate agli strumenti e di minuti di un'attività. Quando il budget di un'attività è esaurito, start_run viene rifiutato. Passa trace_url a start_run per collegare la trascrizione della sessione, così “perché l'ha fatto alle 3 di notte” è a un clic dall'esecuzione.
fleet_status
Istantanea in tempo reale di tutte le attività che un agente ha in carico, da quanto tempo e se la presa in carico è scaduta. Usalo per vedere chi sta lavorando a cosa prima di prendere un'attività.
runner_heartbeat
Solo per una macchina runner ospitata in proprio: la registra sull'account e ne riferisce lo stato di salute, così il proprietario la vede in Done invece di leggere i log via SSH. L'unico stato che nient'altro può mostrare è una macchina collegata ma guasta: il suo token Done è valido, quindi mantiene il flusso di eventi e risulta “in ascolto”, mentre l'accesso scaduto al modello fa fallire ogni esecuzione.
list_triggers / claim_trigger
Le richieste che una persona ha rivolto a te: un clic su “Esegui ora”, oppure @claude in un commento. Ognuna è una riga persistente che aspetta finché un agente non si collega, e raggiunge all'istante un agente collegato attraverso il flusso di eventi in tempo reale. Una richiesta esplicita vale più dell'ordine della coda, quindi next_task mette per prima un'attività richiesta. claim_trigger ne conferma una in modo atomico, così una flotta non ci lavora due volte.
search_activity
Cerca nella cronologia di tutte le attività che puoi vedere, invece di leggerne una alla volta: una ricerca per sottostringa in commenti, cambi di stato e resoconti degli agenti, dai più recenti, che si può restringere con task_id/author/kind/since.
list_routines
Sola lettura: le routine ricorrenti che una persona ha programmato sulle tue bacheche, con programmazione, fuso orario, prossima esecuzione, stato di pausa ed esecuzioni recenti. Ogni ricorrenza genera una normale attività assegnata a te con un trigger, quindi le esecuzioni arrivano tramite list_triggers e next_task come qualsiasi altra richiesta. Non esiste uno strumento per crearne o modificarne una: un agente capace di programmarsi da solo si metterebbe in coda il lavoro da sé.
changes_since
L'equivalente a richiesta del flusso di eventi in tempo reale, per una sessione che si collega, lavora ed esce: passa il tuo ultimo cursore e ricevi solo ciò che è cambiato da allora. Senza cursore ne fissa uno e non restituisce differenze: una prima chiamata non può scaricare tutta la bacheca. I trigger non sono inclusi; per quelli la fonte resta list_triggers.
list_claude_shipped
Elenca le attività che un agente IA ha segnato come completate, dalle più recenti: per un punto della situazione, una retrospettiva o un “quanto ha fatto davvero l'agente?”.
list_stale_tasks
Trova il lavoro aperto che si è fermato, con gli elementi per decidere che cosa farne: giorni di inattività, avanzamento delle sottoattività, blocchi aperti e codici di motivazione. È il giro di pulizia.
get_evidence
Tutto ciò che una persona vorrebbe controllare prima di approvare un'attività, in una sola chiamata: avanzamento dei criteri, spesa rispetto al budget, ricevute, risultati e link alle tracce.
create_artifact_upload
Allega un file vero (un PDF, uno screenshot, un foglio di calcolo) a un'attività. Restituisce un link di caricamento monouso: invia con PUT i byte grezzi senza intestazione Authorization, poi imposta l'artifact_id del risultato con update_task. Il link funziona una sola volta e scade dopo 15 minuti. Viene rifiutato per un token di sola lettura, per un'attività fuori dal progetto o dallo spazio di lavoro del token, per un'attività nel Cestino o per un file oltre i limiti di dimensione.
propose_capture / list_capture_inbox
La porta d'ingresso: propone un'attività che la persona non ha ancora scritto, per la sua posta in arrivo delle acquisizioni. Non crea nulla: accettare è una scrittura che spetta alla persona. L'elenco riporta il rapporto tra accettate e scartate, che decide se questa funzione si merita il suo posto.
propose_edit
Suggerisce modifiche ai campi di un'attività senza applicarle: un confronto tra attuale e proposto che una persona accetta o scarta un campo alla volta, così tre suggerimenti giusti non vengono rifiutati insieme al quarto. Non scrive nulla. Un campo che non puoi impostare non è un campo che puoi proporre.
propose_brief_edit
Propone un nuovo testo per le istruzioni per gli agenti di un progetto o di un'attività, di solito dopo un rifiuto che le istruzioni avrebbero dovuto evitare. Una sostituzione completa più un motivo, mostrata alla persona come attuale e proposto in In attesa di te. Non scrive nulla: è una persona ad applicarla o scartarla, e l'applicazione viene rifiutata se nel frattempo le istruzioni sono cambiate. Le istruzioni dello spazio di lavoro non si possono proporre.
propose_grooming / list_grooming_proposals
Trasforma un giro di pulizia in un unico lotto da rivedere: una destinazione consigliata per ogni attività, ciascuna con un motivo. Non scrive nulla: una persona approva ogni voce nell'app, ed è quell'approvazione la scrittura.
get_autonomy_ledger
Mostra dove agent_ok è stato guadagnato: approvazioni e rifiuti raggruppati per progetto o tag, con la serie attuale di approvazioni. Si limita a riferire: concedere autonomia è un'azione di una persona.
get_agent_roster
Che cosa ha fatto davvero ogni agente con nome: esecuzioni, minuti e chiamate agli strumenti spesi, attività approvate e rifiutate, tasso di rifiuto, impatto e valore prodotti da quelle approvate e chiamate agli strumenti spese per attività approvata. Si limita a riferire.
get_agent_economics
Costo e valore per agente e per progetto su una finestra di giorni: chiamate agli strumenti, minuti e budget spesi, approvate e rifiutate, tasso di rifiuto, valore e impatto prodotti dalle attività approvate, chiamate agli strumenti e minuti per attività approvata. In unità, non in denaro. Ristretto al progetto o allo spazio di lavoro di un token con ambito limitato. Si limita a riferire.
get_digest / get_weekly_review / get_stats
Per orientarsi all'inizio di una sessione, o per un quadro più completo della produttività (andamento, serie, suddivisioni).
list_projects / create_project / update_project / delete_project
Gestisce i progetti della barra laterale. create_project accetta un workspace_id facoltativo (da list_workspaces) per inserire il progetto in uno spazio di lavoro condiviso invece che in quello personale; un sottoprogetto prende lo spazio di lavoro del progetto principale, quindi non inviare entrambi.
list_workspaces
Gli spazi di lavoro a cui appartiene questo account: id, nome, ruolo (owner o member) e notes_for_agent, le istruzioni permanenti dello spazio di lavoro. Uno spazio di lavoro stabilisce chi può vedere un insieme di attività. Sola lettura: gli spazi di lavoro li crea e li condivide la persona, in Account → Spazi di lavoro e team, ed è la persona a scriverne le istruzioni.
list_goals / create_goal / update_goal / delete_goal
Gestisce gli obiettivi, il livello di riferimento sopra i progetti. Inserisci progetti e attività sotto un obiettivo con goal_id; eliminare un obiettivo ne scollega il lavoro invece di distruggerlo.
list_tags / create_tag / delete_tag / tag_task / untag_task
Gestisce e applica i tag trasversali.
list_trash / restore_task
Mostra che cosa c'è nel Cestino e ne ripristina un'attività.
list_connections
Le app collegate della persona (Drive, Gmail, Notion, GitHub, Linear, Slack, Fireflies, Granola, PostHog) e che cosa concede davvero ogni collegamento, che può essere meno di quanto offre il fornitore se la schermata di consenso è stata ristretta.
search_context
Cerca nelle app collegate qualcosa da leggere. Restituisce risultati (titolo, tipo, link e un ref), mai i contenuti. Un collegamento interrotto viene indicato per nome, invece di far fallire l'intera ricerca.
read_context
Legge come testo semplice un risultato di search_context, indicando collegamento e ref. Un ref di Slack restituisce l'intera conversazione.
save_context
Salva un documento di testo in un'app collegata che può contenerlo (oggi Drive): è così che un risultato esce da Done. Qui non esiste alcun modo di inviare email o pubblicare su Slack.
list_calendar_events
Elenca gli eventi del calendario in cache della persona (titolo, orario, luogo, organizzatore, partecipanti) dai suoi account Google collegati. Usalo prima di decidere a quale attività appartiene una riunione.
suggest_event_matches
Ordina le coppie attività↔evento del calendario più probabili, dalla migliore, con gli elementi a sostegno di ciascuna. Chiamarlo non collega nulla: conferma con link_task_to_event.
link_task_to_event / unlink_task_from_event
Registra, o rimuove, il fatto che un'attività e un evento del calendario sono la stessa cosa, così l'attività viene fissata all'orario reale della riunione invece di essere inserita nel tempo libero.

Prompt e risorse

Oltre agli strumenti, il server è pienamente nativo MCP: espone anche prompt e risorse, così un client può offrire flussi di lavoro già pronti e allegare dati aggiornati come contesto.

  • prompts/list · modelli di una riga che corrispondono a flussi di lavoro reali, così un client può proporli come slash command:
    • plan_my_day — Prepara un piano realistico e con priorità per oggi, a partire dalle mie attività aperte.
    • work_next — Prende in carico e svolge la singola attività pronta con la priorità più alta.
    • daily_review — Riassume che cosa è stato fatto, che cosa è in ritardo e su che cosa concentrarsi dopo.
    • groom_board — Trova il lavoro aperto che si è spento in silenzio e propone che cosa fare di ciascuno; propone soltanto.
    • answer_backlog — Riprende le attività le cui domande in sospeso hanno già avuto la mia risposta.
    • prep_meetings — Abbina gli eventi di oggi nel calendario alle attività a cui si riferiscono e prepara ciascuno.
    • triage_task — Valuta un'attività e la pianifica oppure segnala che cosa la blocca.
  • resources/list · viste di sola lettura che un client può allegare: done://digest, done://queue e un done://task/<id> per ogni attività aperta. I token con ambito limitato vedono sempre e solo il proprio progetto.

Un’esecuzione tipica di un agente

get_digest → list_open_decisions → next_task → get_task → lavoro, spuntando check_criterion man mano che ogni condizione è soddisfatta → comment_on_task una volta sola, con il resoconto → propose_completion. Tu esamini i risultati nella conversazione dell’attività e resti il responsabile.

Chiedere senza fermarsi

Un agente che arriva a un vero bivio (spendere soldi, qualcosa che esce verso l’esterno, qualcosa di irreversibile) non dovrebbe tirare a indovinare, e nemmeno restare lì fermo. Chiama ask_decision e va avanti: l’attività esce dalla sua coda come needs_input, tu rispondi in In attesa di te o direttamente da un messaggio diretto di Slack, e l’attività rientra in coda con la tua risposta allegata. Così l’esecuzione successiva legge la risposta invece di arrivare di nuovo alla stessa domanda.

Ogni domanda porta con sé il consiglio dell’agente e il ragionamento che lo sostiene, quindi di solito rispondere richiede un clic e non un lavoro di scrittura. Rispondere non è un’approvazione: restituisce l’attività e non chiude mai nulla. Per ogni attività può essere aperta una sola domanda bloccante, e questo evita che una casella delle decisioni torni a essere il flusso di commenti che ha sostituito.

È questo che rende sensato lasciare in funzione una routine notturna. Senza, la prima ambiguità alle 3 di notte ferma tutta la nottata; con questo, quella singola attività resta in sospeso e l’agente continua a lavorare sul resto.

Eseguilo a orari programmati

Done non esegue alcun agente sui propri server. Perché qualcuno lavori sulle tue attività senza supervisione, qualcosa deve chiamarlo, per esempio un sistema di programmazione nel client MCP che usi già. Tutti i client MCP si collegano allo stesso modo; cambia solo la programmazione:

Claude — Routine

Gira nel cloud di Anthropic secondo una pianificazione, con Done collegato come connettore.

  1. Aggiungi Done come connettore su claude.ai/customize/connectors, con l’URL del server MCP https://trydone.app/mcp. Deve trovarsi nel tuo account claude.ai: una routine non vede i server MCP che hai aggiunto in locale nella CLI.
  2. Apri claude.ai/code/routines e fai clic su New routine, oppure esegui /schedule nella CLI di Claude Code e descrivi a parole ciò che vuoi.
  3. Incolla uno dei prompt di Done come istruzioni. Una routine gira senza nessuno che la guardi, quindi il prompt deve reggersi da solo: quelli nella vista Prompt sono scritti proprio per questo.
  4. Assegnale un’attivazione programmata: ogni ora, ogni giorno, nei giorni feriali o ogni settimana. Un’ora è l’intervallo minimo consentito.
  5. In Connectors lascia incluso Done e togli quelli che questa routine non ha motivo di toccare. Creala, poi premi una volta Run now per seguire la prima esecuzione dall’inizio alla fine.

Prima di cominciare: Le routine richiedono un piano Claude a pagamento (Pro, Max, Team o Enterprise) con Claude Code sul web attivo.

ChatGPT — Attività programmate

Un’attività a tempo che raggiunge Done tramite un connettore personalizzato.

  1. Aggiungi Done come connettore personalizzato in modalità sviluppatore, puntando a https://trydone.app/mcp, e accedi quando te lo chiede.
  2. Apri una chat, incolla uno dei prompt di Done e chiedi di eseguirlo a intervalli regolari, per esempio "eseguilo ogni giorno feriale alle 8".
  3. Gestisci ciò che hai creato in Tasks, nel menu del tuo profilo. Le attività partono solo a tempo, al massimo circa una volta all’ora, e vanno in pausa da sole se le ignori abbastanza a lungo.

Prima di cominciare: Con ChatGPT Plus e Pro i connettori MCP personalizzati sono in sola lettura: un agente può leggere la tua coda ma non può prendere in carico, commentare o completare nulla. Per scrivere serve un piano ChatGPT Business, Enterprise o Edu.

Qualsiasi altro — La tua pianificazione

Qualsiasi client MCP, attivato da ciò che usi già per eseguire le cose a tempo.

  1. Punta il client a https://trydone.app/mcp, inviando il tuo token in un’intestazione Authorization: Bearer.
  2. Fai avviare quel client da cron, da una pianificazione di CI, da un sistema di workflow (qualunque cosa di cui ti fidi già per le esecuzioni a tempo), con uno dei prompt di Done come istruzioni.
  3. Dai all’esecuzione un posto in cui riferire. Ogni prompt della libreria si conclude scrivendo in Done, quindi la bacheca fa da registro e non ti serve un secondo posto da controllare.

Qualunque strada tu scelga, questo è il prompt da dargli (è in inglese; copialo così com’è):

You are my Done task runner. Work my queue through the Done MCP connector only — never touch anything outside my Done account.

Each run:
1. Call list_open_decisions first, then get_digest and list_my_tasks, to see what's assigned to me (the AI agent) and ready. A task whose parked question I've since answered is the cheapest work on the board — the context is written down and the blocker just cleared — so start there.
2. For each ready task, decide what to do:
   - in_progress with plan_approved_at set → its plan is approved, so DO THE WORK now. Read it with get_task (notes_for_agent, acceptance_criteria, description, references), carry it out, and when it's finished call propose_completion with a summary — or complete_task if the task is agent_ok.
   - not_started and small or agent_ok → just do it, then complete_task (agent_ok) or propose_completion.
   - not_started and substantial or ambiguous (multi-step, judgment calls, anything I'd want to sign off on the approach for) → do NOT start it. Call propose_plan with a short plan of how you intend to tackle it, then move on. It waits for my approval and comes back to you once I approve it in Needs you.
3. Report progress by ticking the acceptance criteria with check_criterion as you actually meet each one — not by narrating into comments. Post at most ONE dense comment_on_task per task per run: what you did, what you found, what's left. A running commentary is noise.
4. Hit a real fork — spending money, anything outward-facing (an email, a post, a reply to a customer), anything irreversible — and call ask_decision with your own recommendation, then MOVE ON to the next task. Don't guess, and don't sit there waiting. If you later work the answer out yourself, withdraw_decision rather than leaving a stale question in my queue.
5. If a task was assigned to me but shouldn't be — it needs my accounts, my signature, or my judgment — hand it back with decline_task and a one-line reason. Declining is a valid outcome.
6. Respect the gates: never force a non-agent_ok task to done, and never act on a task that isn't assigned to me.
7. For any task that has sub-steps (a plan) — one you decomposed, or that already had subtasks — call render_plan on it so I get the laid-out plan with progress and an "Open in Done" link.
8. If nothing is ready, stop — don't invent work.

If you're running unattended overnight, wrap the run: call start_run at the top and check_night_budget before picking up each task, so you stop at the caps I set in Settings → Where agents run, and call end_run when you finish.

End with a one-line summary: plans proposed, tasks worked, tasks completed, questions parked.

A ogni esecuzione propone un piano per qualsiasi attività consistente e aspetta, ed esegue tutto ciò che hai approvato in In attesa di te dall’ultima volta. Tu approvi; l’agente fa il lavoro, e non devi mai avviare un’esecuzione a mano. La stessa configurazione è a un clic di distanza nel pannello Account (“Metti un agente IA al lavoro sulla tua coda”).

Note

  • Collegati con OAuth (i client che individuano /.well-known/oauth-authorization-server) oppure con un bearer token di lunga durata, legato all’account e generato nell’app: entrambi funzionano sullo stesso endpoint.
  • Ogni token e ogni autorizzazione è limitato a un singolo account; non esistono token globali o validi per più account. I bearer token si possono restringere ulteriormente alla sola lettura o a un singolo progetto.
  • Rigenerare o revocare un token lo invalida immediatamente.
  • Il piano gratuito include 100 chiamate di agenti (MCP) al mese; Pro e Teams non hanno limiti. Vedi i prezzi.