Configuración de MCP
Cada cuenta tiene su propio endpoint MCP, con alcance limitado a las tareas de esa cuenta — sin tokens compartidos ni globales.
1. Conéctate por OAuth (recomendado)
Done es un servidor de autorización OAuth 2.1 completo para su endpoint MCP, así que los clientes que hablan OAuth — claude.ai, los conectores de ChatGPT y Claude Desktop — se conectan solos, sin copiar ningún token. Agrega Done como conector personalizado solo con la URL:
- Ve a Settings → Connectors → Add custom connector.
- Usa
https://trydone.app/mcpcomo URL del servidor MCP remoto y haz clic en Add. - Haz clic en Connect. El cliente descubre los endpoints OAuth de Done, se registra y te lleva a Done para iniciar sesión y aprobar el acceso.
- Aprueba, y el conector queda activo — con alcance limitado solo a tu cuenta.
2. O usa un token bearer
Para clientes que se configuran a mano (o un script), genera un token. Abre el panel Cuenta en la esquina inferior izquierda de la barra lateral y genera un token de MCP — se muestra una sola vez, así que cópialo en un lugar seguro. Puedes crear un token de acceso completo, uno de solo lectura o uno limitado a un único proyecto. Luego apunta un cliente al endpoint:
{
"mcpServers": {
"done": {
"url": "https://trydone.app/mcp",
"headers": { "Authorization": "Bearer <tu-token-de-mcp-generado>" }
}
}
}En claude.ai también puedes pegar ese mismo Authorization: Bearer <token> como encabezado de solicitud en Advanced settings de un conector personalizado. De cualquier forma, un agente que usa el token solo ve y edita aquello a lo que el token tiene acceso.
3. Herramientas disponibles para el agente
El servidor MCP expone herramientas pensadas para flujos de trabajo, no CRUD en bruto:
list_my_tasksnext_tasklist_tasksget_taskclaim_task / release_taskdecline_taskpause_boardpause_taskcomment_on_taskcheck_criterionask_decisionlist_open_decisions / withdraw_decisioncheck_night_budgetdelete_commentcomplete_taskpropose_completionapprove_task / reject_taskpropose_planapprove_plan / reject_plancreate_task / update_task / delete_taskquick_capturedecompose_taskrender_planset_step_statusblock_task / unblock_taskstart_run / end_run / check_budgetfleet_statusrunner_heartbeatlist_triggers / claim_triggersearch_activitychanges_sincelist_claude_shippedlist_stale_tasksget_evidencepropose_capture / list_capture_inboxpropose_editpropose_grooming / list_grooming_proposalsget_autonomy_ledgerget_digest / get_weekly_review / get_statslist_projects / create_project / update_project / delete_projectlist_workspaceslist_goals / create_goal / update_goal / delete_goallist_tags / create_tag / delete_tag / tag_task / untag_tasklist_trash / restore_tasklist_calendar_eventssuggest_event_matcheslink_task_to_event / unlink_task_from_eventPrompts y recursos
Además de herramientas, el servidor es totalmente nativo de MCP: también expone prompts y recursos, para que un cliente pueda ofrecer flujos de trabajo listos para usar y adjuntar datos en vivo como contexto.
- prompts/list · plantillas de una línea que corresponden a flujos de trabajo reales, para que un cliente pueda mostrarlas como comandos de barra:
- plan_my_day — Arma un plan realista y priorizado para hoy a partir de mis tareas abiertas.
- work_next — Toma y trabaja la única tarea lista de mayor prioridad.
- daily_review — Resume qué se terminó, qué está vencido y en qué enfocarse después.
- groom_board — Encuentra el trabajo abierto que murió en silencio y propone qué hacer con cada uno — solo propone.
- answer_backlog — Retoma las tareas cuyas preguntas pendientes ya respondí.
- prep_meetings — Relaciona los eventos de calendario de hoy con las tareas de las que tratan y prepara cada uno.
- triage_task — Evalúa una tarea y planéala o señala qué la está bloqueando.
- resources/list · vistas de solo lectura que un cliente puede adjuntar: done://digest, done://queue y un done://task/<id> por cada tarea abierta. Los tokens con alcance limitado solo ven su propio proyecto.
Una ejecución típica de un agente
get_digest → list_open_decisions → next_task → get_task → trabajo, marcando check_criterion a medida que se cumple cada condición → comment_on_task una vez con el informe → propose_completion. Tú revisas los resultados en el hilo de la tarea y sigues siendo el responsable final.
Preguntar sin detenerse
Un agente que llega a una bifurcación real — gastar dinero, cualquier cosa de cara al exterior, cualquier cosa irreversible — no debería adivinar, pero tampoco quedarse esperando. Llama a ask_decision y sigue adelante: la tarea sale de su cola como needs_input, tú respondes en la Sala de control o directamente desde un mensaje directo de Slack, y la tarea vuelve a la cola con tu respuesta adjunta — así la siguiente ejecución lee la respuesta en lugar de volver a plantear la pregunta.
Cada pregunta trae la recomendación del propio agente y su razonamiento, así que responder suele ser un clic y no una tarea de redacción. Responder no es una aprobación: le devuelve la tarea al agente y nunca cierra nada. Solo puede haber una pregunta bloqueante abierta por tarea, lo que evita que una bandeja de decisiones se convierta en el feed de comentarios que reemplazó.
Esto es lo que hace que valga la pena dejar corriendo una rutina nocturna. Sin esto, la primera ambigüedad a las 3 a. m. detiene toda la noche; con esto, esa tarea queda en espera y el agente sigue trabajando en el resto.
Ejecútalo según un horario
Done no incluye ningún agente ni programador. Es una cola pasiva — no puede tomar la iniciativa e iniciar una ejecución — así que, para que tus tareas se trabajen sin supervisión, algo fuera de Done tiene que despertar con cierta frecuencia y llamarlo. Todos los clientes MCP se conectan de la misma forma; solo cambia la programación:
Claude — Rutinas
Se ejecuta en la nube de Anthropic según un horario, con Done conectado como conector.
- Agrega Done como conector en claude.ai/customize/connectors, con la URL del servidor MCP https://trydone.app/mcp. Tiene que estar en tu cuenta de claude.ai — una rutina no ve los servidores MCP que agregaste localmente en la CLI.
- Abre claude.ai/code/routines y haz clic en New routine — o ejecuta /schedule en la CLI de Claude Code y describe lo que quieres con tus propias palabras.
- Pega uno de los prompts de Done como instrucciones. Una rutina se ejecuta sin nadie mirando, así que el prompt tiene que valerse por sí mismo; justo para eso están escritos los de la vista Indicaciones.
- Dale un disparador de horario — cada hora, diario, entre semana o semanal. Una hora es el intervalo más corto permitido.
- En Connectors, deja Done incluido y quita los que esta rutina no tiene por qué tocar. Créala y luego presiona Run now una vez para ver la primera ejecución de principio a fin.
Antes de empezar: Las rutinas requieren un plan de pago (Pro, Max, Team o Enterprise) con Claude Code en la web activado.
ChatGPT — Tareas programadas
Una tarea con temporizador que llega a Done mediante un conector personalizado.
- Agrega Done como conector personalizado en el modo de desarrollador, apuntando a https://trydone.app/mcp, e inicia sesión cuando te lo pida.
- Inicia un chat, pega uno de los prompts de Done y pide que se ejecute según un horario — "ejecuta esto cada día entre semana a las 8 a.m.".
- Administra lo que creaste en Tareas, dentro del menú de tu perfil. Las tareas solo se activan con temporizador, como mucho cada hora aproximadamente, y se pausan solas si las ignoras por mucho tiempo.
Antes de empezar: En Plus y Pro, los conectores MCP personalizados son de solo lectura — un agente puede leer tu cola, pero no puede tomar, comentar ni completar nada. Para escribir de vuelta necesitas un plan Business, Enterprise o Edu.
Cualquier otro — Tu propio programador
Cualquier cliente MCP, activado por lo que ya usas para ejecutar cosas con temporizador.
- Apunta el cliente a https://trydone.app/mcp y envía tu token en un encabezado Authorization: Bearer.
- Haz que cron, un horario de CI o un ejecutor de flujos — lo que ya uses para correr cosas con temporizador — inicie ese cliente con uno de los prompts de Done como instrucciones.
- Dale a la ejecución un lugar donde reportar. Cada prompt de la biblioteca termina escribiendo de vuelta en Done, así que el tablero es el registro y no necesitas buscar en otro lado.
Sea cual sea el camino que elijas, este es el prompt que debes darle (está en inglés; cópialo tal cual):
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 the Control Room.
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 Account → Notifications, and call end_run when you finish.
End with a one-line summary: plans proposed, tasks worked, tasks completed, questions parked.En cada ejecución propone un plan para cualquier tarea sustancial y espera, y ejecuta todo lo que hayas aprobado en la Sala de control desde la última vez. Tú apruebas; el agente hace el trabajo — nunca tienes que iniciar una ejecución a mano. La misma configuración está a un clic en el panel Cuenta (“Pon a un agente de IA a trabajar en tu cola”).
Notas
- Conéctate por OAuth (clientes que descubren
/.well-known/oauth-authorization-server) o con un token bearer de larga duración por cuenta, generado en la app — ambos funcionan contra el mismo endpoint. - Cada token y cada autorización tienen alcance limitado a una sola cuenta; no hay tokens entre cuentas ni globales. Los tokens bearer pueden limitarse aún más a solo lectura o a un único proyecto.
- Regenerar o revocar un token lo invalida de inmediato.
- El plan Free incluye 100 llamadas de agente (MCP) al mes; Pro y Teams son ilimitados. Consulta los precios.