Saltar al contenido principal

Acceso MCP (agentes de IA)

Novedad reciente

MCP ya está totalmente disponible en iPhone (además de la app web). La pantalla del iPhone refleja la de la web e incluye los mismos snippets de configuración para todos los clientes de IA compatibles.

Plan Pro y superior

El acceso MCP requiere un plan Pro o Ultra. Ambos planes tienen acceso completo de lectura + escritura (27 herramientas) y pueden cambiar al modo de solo lectura si lo prefieres.

MCP (Model Context Protocol) te permite conectar asistentes de IA y herramientas de automatización directamente a tus datos de TellDone. Una vez conectado, tu agente de IA puede leer tus notas, tareas, eventos, informes, etiquetas e historial de cambios, y crear, actualizar, eliminar y restaurar elementos. Hay 27 herramientas en total: 10 para lectura y 17 para escritura.

Disponible tanto en la app de iPhone (Ajustes → Integrations → AI Agents) como en la app web (Ajustes → AI Agents).

Dos formas de conectar

Hay dos formas de autenticar un cliente de IA, y ambas son totalmente compatibles:

  1. OAuth 2.1 (recomendado): el flujo estándar de consentimiento "Iniciar sesión con TellDone". Es lo que usan la interfaz de conectores de Claude Desktop y Claude.ai. Sin copiar tokens: inicias sesión con tu cuenta de TellDone y apruebas los permisos que pide el cliente.
  2. Token Bearer: copia tu token de acceso personal desde Ajustes y pégalo en la configuración de tu cliente. Es lo más sencillo para scripts, CLIs y clientes que no tienen un flujo OAuth integrado.
ClienteRecomendado
Claude Desktop / CoworkOAuth: añade un conector personalizado con la URL de MCP y luego inicia sesión
Claude Code (CLI)Cualquiera de las dos: claude mcp add te guía por OAuth en el navegador, o añade un encabezado Bearer para el método con token
Scripts o tu propio códigoToken Bearer: lo más sencillo de automatizar
Un cliente que solo permite elegir de un directorio de conectoresUsa por ahora el token Bearer o el puente mcp-remote: TellDone aún no está en ningún directorio de conectores

Requisitos de plan

PlanMCP
FreeBloqueado
BasicBloqueado
ProLectura + escritura (27 herramientas) - puede pasar al modo solo lectura
UltraLectura + escritura (27 herramientas) - puede pasar al modo solo lectura

La pantalla en la app

La pantalla AI Agents tiene tres estados según tu plan y si MCP está activado.

Bloqueado (Free y Basic)

Si estás en el plan Free o Basic, la pantalla explica qué hace MCP y muestra un botón Upgrade. Al pulsarlo se abre el paywall donde puedes pasar a Pro o Ultra.

Desactivado (Pro y Ultra, función apagada)

Si estás en Pro o Ultra pero aún no has activado MCP, la pantalla muestra un resumen breve de lo que tu plan permite (número de herramientas, modo de acceso, cuotas) y un botón Enable. Púlsalo para generar tu token de conexión y empezar la integración.

Activado

Una vez activado, la pantalla muestra todo lo necesario para conectar un cliente de IA:

  • Selector de modo: en Ultra puedes alternar entre Solo lectura y Lectura + escritura. En Pro el modo es fijo en Lectura + escritura.
  • Fila de Access Token con un botón de ojo para mostrar u ocultar el token y un botón para copiarlo.
  • Selector de configuración con pestañas para Claude Code, Cursor, Windsurf y Other. El snippet correspondiente aparece bajo las pestañas, listo para copiar y pegar en tu cliente de IA.
  • Botón Regenerate: rota el token al instante y desconecta cualquier sesión activa que lo estuviera usando.
  • Botón Disable: apaga MCP y elimina el token. Puedes reactivarlo más tarde, pero se emitirá un token nuevo.
consejo

Mantén tu token de conexión en privado. Cualquiera que lo tenga puede acceder a tus datos de TellDone. Usa Regenerate si sospechas que el token se ha filtrado.

Cómo activar

Puedes configurar MCP desde cualquier plataforma:

  • iPhone: Ajustes → Integrations → AI Agents (MCP)
  • Web: app.telldone.app → Ajustes → AI Agents

Pasos:

  1. Pulsa Enable.
  2. Elige tu modo de acceso (solo en Ultra; en Pro siempre es Lectura + escritura).
  3. Muestra y copia tu token con los iconos de ojo y copiar.
  4. Elige tu herramienta en la sección Setup (Claude Code, Cursor, Windsurf u Other).
  5. Pega el snippet en la configuración de tu cliente de IA.

Conectar con OAuth

OAuth es la vía recomendada para Claude Desktop, Claude.ai, Cowork y Claude Code: inicias sesión con tu cuenta de TellDone en lugar de andar copiando un token.

URL de MCP para OAuth: https://api.telldone.app/mcp/user (sin /mcp al final: esa es otra URL, usada solo para la vía con token Bearer que se describe más abajo)

Claude Desktop / Cowork

  1. En el cliente, elige Add custom connector.
  2. Introduce la URL del servidor: https://api.telldone.app/mcp/user
  3. El cliente abre la página de consentimiento de TellDone en tu navegador. Verás qué app pide acceso, los permisos exactos que solicita y un formulario para iniciar sesión.
  4. Inicia sesión con el correo y la contraseña de tu cuenta de TellDone y pulsa Allow.
  5. El cliente recibe un token de acceso automáticamente y se conecta. No hay ningún token que copiar.
nota

El inicio de sesión en la página de consentimiento usa el correo y la contraseña de tu cuenta de TellDone. Si tu cuenta solo tiene inicio de sesión con Apple o Google (sin contraseña definida), usa por ahora el método con token Bearer que se describe más abajo.

Claude Code

OAuth (abre el inicio de sesión en el navegador):

claude mcp add --transport http telldone https://api.telldone.app/mcp/user

Claude Code detecta el flujo de OAuth automáticamente, pero no inicia tu sesión en la primera llamada: ejecuta /mcp dentro de Claude Code y elige Authenticate para abrir el inicio de sesión en el navegador. A partir de ahí renueva tu token de acceso por ti, así que no tienes que mantener nada.

Token Bearer (sin navegador, ideal para entornos sin interfaz):

claude mcp add telldone --transport http \
https://api.telldone.app/mcp/user/mcp \
--header "Authorization: Bearer YOUR_TOKEN"

Consigue tu YOUR_TOKEN en la app: Ajustes → Integrations → AI Agents → Copy token (consulta Cómo activar más arriba).

Conectar con un token Bearer

Para clientes sin soporte de OAuth integrado (Cursor, Windsurf y otros), pega tu token de acceso personal directamente en la configuración del cliente. Sustituye YOUR_TOKEN por el token de tus ajustes en todos los ejemplos de abajo.

Cursor

Añade a .cursor/mcp.json:

{
"mcpServers": {
"telldone": {
"url": "https://api.telldone.app/mcp/user/mcp",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}

Windsurf

Añade a .codeium/windsurf/mcp_config.json:

{
"mcpServers": {
"telldone": {
"serverUrl": "https://api.telldone.app/mcp/user/mcp",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}

Other

Usa estos snippets para los clientes que el selector dentro de la app agrupa bajo Other.

Codex

Añade a codex.json:

{
"mcpServers": {
"telldone": {
"type": "http",
"url": "https://api.telldone.app/mcp/user/mcp",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}

OpenClaw

Settings > MCP Servers > Add:

  • Name: TellDone
  • URL: https://api.telldone.app/mcp/user/mcp
  • Auth: Bearer YOUR_TOKEN

Otros clientes MCP

Cualquier herramienta que admita MCP sobre HTTP puede conectarse. Usa el endpoint https://api.telldone.app/mcp/user/mcp con un encabezado de autorización Bearer YOUR_TOKEN.

Encabezado de autenticación alternativo

Si tu cliente o proxy reserva el encabezado Authorization (por ejemplo, algunas pasarelas tipo Smithery), envía el token en X-MCP-Token: YOUR_TOKEN en su lugar. Ambos encabezados funcionan; si ambos están presentes, gana Authorization.

Probar tu conexión

Puedes verificar que tu token funciona con un comando cURL:

curl -X POST https://api.telldone.app/mcp/user/mcp \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'

Una respuesta exitosa lista todas las herramientas disponibles.

Permisos (scopes)

Las conexiones por OAuth tienen scopes: durante el inicio de sesión ves exactamente qué pide el cliente y lo apruebas de forma explícita.

ScopePermite a la app...
notes:readLeer tus notas, buscar y abrir el detalle completo de una nota
notes:writeCrear, editar y eliminar notas (y ejecutar el flujo de notas de voz)
tasks:read / tasks:writeLeer / crear, editar, completar y eliminar tareas
events:read / events:writeLeer / crear, editar y eliminar eventos
reports:readLeer tus informes diarios, semanales, mensuales y anuales
tags:read / tags:writeListar tus etiquetas / crear y renombrar etiquetas
profile:readLeer la información de tu perfil y tu suscripción
offline_accessMantener la conexión cuando no estás (emite un token de actualización para que no tengas que iniciar sesión en cada sesión)

Los scopes son un techo, no una garantía: una conexión que solo tiene notes:read no puede llamar a una herramienta de escritura por mucho que se lo pidas. Tu plan es un segundo filtro por encima de los scopes.

Las conexiones con token Bearer no tienen scopes individuales: se rigen únicamente por el modo de lectura/escritura de tu plan.

Qué puedes hacer

Herramientas de lectura (10): Pro y Ultra

HerramientaQué hace
get_notesListar notas con filtros (etiquetas, rango de fechas, búsqueda de texto)
get_noteVer una nota individual con sus tareas, eventos y transcripción completa
get_notes_fullObtener varias notas con tareas y eventos incluidos en una sola llamada
get_tasksListar tareas filtradas por estado (pendientes, completadas, todas), etiquetas o fechas
get_eventsListar eventos del calendario, filtrar por rango de fechas
get_reportsLeer informes diarios, semanales, mensuales y anuales (markdown completo)
get_tagsVer todas tus etiquetas ordenadas por uso
get_profileVer información de tu cuenta y estadísticas de uso
searchBuscar en notas, tareas y eventos (texto + búsqueda semántica para notas)
get_change_logVer el historial de ediciones de una nota, tarea o evento, y si cada edición se ha deshecho
consejo

La herramienta search admite búsqueda semántica para notas: encuentra resultados por significado, no solo por palabras clave. Por ejemplo, buscar "reuniones sobre presupuesto" encontrará notas sobre discusiones financieras aunque no contengan la palabra "presupuesto".

Herramientas de escritura (17): Pro y Ultra

HerramientaQué hace
process_noteAnálisis completo con IA: envía texto o audio y obtienes una nota con tareas, eventos y etiquetas
create_noteAñadir una nota de texto plano (sin análisis de IA)
create_taskAñadir una tarea con prioridad, fecha límite, recordatorio y etiquetas
create_eventAñadir un evento de calendario con fecha, hora, ubicación, recordatorios, asistentes y recurrencia
update_noteCambiar título, resumen, tipo, etiquetas, prioridad o estado de una nota
update_taskCambiar título, descripción, prioridad, fecha límite, recordatorio, etiquetas o estado de una tarea
complete_taskMarcar una tarea como completada
update_eventCambiar detalles, hora, ubicación, recordatorios, asistentes, recurrencia, etiquetas o estado de un evento
delete_noteEliminar una nota y todas sus tareas y eventos vinculados
delete_taskEliminar una tarea
delete_eventEliminar un evento
undo_change_log_entryDeshacer una sola edición registrada, hecha por la IA o por ti, restaurando el valor anterior del campo
restore_entityRecuperar una nota, tarea o evento eliminado o archivado
create_tagCrear una etiqueta nueva, o convertir una etiqueta sugerida automáticamente en una permanente
set_tag_pinnedFijar o dejar de fijar una etiqueta para que se ordene arriba
delete_tagEliminar una etiqueta (se puede restaurar con restore_tag)
restore_tagRecuperar una etiqueta eliminada

Todas las operaciones de escritura y eliminación aparecen al instante en tus dispositivos conectados (teléfono, app web) por sincronización en tiempo real.

Referencia de herramientas

get_notes

Lista notas con filtrado opcional. Los filtros de fecha usan recorded_at (cuando grabaste la nota de voz), no created_at.

ParámetroTipoPor defectoDescripción
limitint20Número de notas a devolver (máx. 50)
offsetint0Omitir este número de notas (para paginación, máx. 10000)
tagsstring-Filtrar por etiquetas, separadas por comas (coincide con cualquiera)
searchstring-Búsqueda de texto en título y resumen
date_fromstring-Fecha de inicio, YYYY-MM-DD (inclusiva)
date_tostring-Fecha de fin, YYYY-MM-DD (exclusiva)
standalone_onlyboolfalseCuando es true, oculta las notas de seguimiento (notas vinculadas a una nota, tarea o evento superior) y devuelve solo notas independientes

Devuelve: lista de notas con id, title, summary, type, tags, priority, status, recorded_at, created_at.

get_note

Obtiene una nota individual con su transcripción completa y todas las tareas y eventos vinculados.

ParámetroTipoDescripción
note_idstringEl UUID de la nota

Devuelve: nota con title, summary, transcript, type, tags, priority, status, metadata, created_at, más los arrays tasks[] y events[].

También devuelve transcript_speakers (turnos de transcripción etiquetados por hablante, para reuniones con varios hablantes; null en caso contrario), speaker_count (null salvo que la grabación se haya dividido por hablante) y parent_note_id/parent_task_id/parent_event_id (se rellenan cuando esta nota es una edición de seguimiento de otro elemento). Cada entrada de tasks[]/events[] incluye además reminders_at/recurrence_rule (tareas) o reminder_minutes/attendees/recurrence_rule (eventos).

get_notes_full

Obtiene varias notas con sus tareas y eventos en una sola llamada. Mismos filtros que get_notes, pero cada nota incluye tasks[] y events[] incorporados.

ParámetroTipoPor defectoDescripción
limitint10Número de notas (máx. 20)
offsetint0Omitir este número de notas
tagsstring-Filtrar por etiquetas
date_fromstring-Fecha de inicio, YYYY-MM-DD
date_tostring-Fecha de fin, YYYY-MM-DD
standalone_onlyboolfalseCuando es true, oculta las notas de seguimiento (notas vinculadas a una nota, tarea o evento superior) y devuelve solo notas independientes

get_tasks

Lista tareas con filtrado.

ParámetroTipoPor defectoDescripción
statusstring"todo"Filtro: todo, done o all
limitint30Número de tareas (máx. 100)
offsetint0Omitir este número de tareas
tagsstring-Filtrar por etiquetas, separadas por comas
date_fromstring-Fecha de inicio, YYYY-MM-DD (filtra por fecha límite; las tareas sin fecha límite se excluyen)
date_tostring-Fecha de fin, YYYY-MM-DD (filtra por fecha límite; las tareas sin fecha límite se excluyen)

Devuelve: lista de tareas con id, title, description, status, priority, tags, deadline, reminder_at, reminders_at, completed_at, completed_by, source, created_at. reminder_at refleja la primera entrada de reminders_at por compatibilidad - usa reminders_at para ver todos los recordatorios de una tarea.

get_events

Lista eventos del calendario con filtrado por rango de fechas.

ParámetroTipoPor defectoDescripción
limitint30Número de eventos (máx. 100)
offsetint0Omitir este número de eventos
date_fromstring-Fecha de inicio, YYYY-MM-DD (filtra por hora de inicio del evento)
date_tostring-Fecha de fin, YYYY-MM-DD

Devuelve: lista de eventos con id, title, description, status, start_at, end_at, location, is_all_day, tags, note_id, reminder_minutes, attendees, recurrence_rule, created_at.

get_reports

Obtiene tus informes generados por IA con contenido completo en markdown.

ParámetroTipoPor defectoDescripción
report_typestring"daily"Tipo: daily, weekly, monthly o yearly
limitint5Número de informes (máx. 10)

Devuelve: lista de informes con id, type, period_start, period_end, content_md, created_at.

nota

Los informes mensuales pueden tener entre 3.000 y 5.000 palabras. Usa limit=1 si tu herramienta de IA tiene una ventana de contexto limitada.

get_tags

Obtiene todas tus etiquetas, ordenadas primero las fijadas, luego por cantidad de uso.

Sin parámetros. Devuelve hasta 100 etiquetas, cada una con tag, usage_count, is_pinned, is_manual.

get_profile

Obtiene la información de tu cuenta y estadísticas de uso.

Sin parámetros. Devuelve email, display_name, locale, transcription_locale, timezone, subscription, mcp_mode, created_at y stats (conteos de notas/tareas/eventos).

Busca en notas, tareas y eventos a la vez. Para notas, soporta tanto búsqueda de texto como búsqueda semántica (encuentra resultados por significado usando embeddings de IA).

ParámetroTipoPor defectoDescripción
querystringobligatorioTexto de búsqueda (máx. 500 caracteres)
limitint20Máx. resultados por tipo (máx. 20)
semanticbooltrueActivar búsqueda semántica para notas

Devuelve resultados agrupados por tipo: notes[], tasks[], events[]. Cada resultado tiene id, type, title, detail, created_at.

Usa semantic=false para una búsqueda solo de texto más rápida.

get_change_log

Ver el historial de ediciones de una nota, tarea o evento: cada edición de seguimiento hecha por la IA y cada edición manual que hiciste tú, de la más reciente a la más antigua.

ParámetroTipoPor defectoDescripción
entitystringobligatorionotes, tasks o events
entity_idstringobligatorioEl UUID del elemento
include_manualboolfalseIncluir también tus propias ediciones manuales, no solo las hechas por la IA

Devuelve: lista de entradas de cambios con id (úsalo como entry_id para deshacer), field_name, old_value, new_value, source (follow_up, smart_context o manual), origin_note_id, edited_at y reverted_at (se rellena una vez deshecha).

process_note (Pro y Ultra)

Análisis completo con IA: funciona igual que grabar en la app. Envía texto o audio y TellDone lo transcribirá, lo analizará con IA y creará una nota estructurada con tareas, eventos, etiquetas y embeddings extraídos.

Esta herramienta es asíncrona: devuelve al instante un audio_id y procesa en segundo plano. Los resultados llegan por sincronización en tiempo real a tus dispositivos conectados, o puedes consultarlos con get_notes().

ParámetroTipoDescripción
textstringTexto para analizar (omite la transcripción si no se proporciona audio)
audio_base64stringArchivo de audio codificado en Base64 (hasta 50MB, activa la transcripción)
audio_formatstringm4a, ogg, wav, mp3, aac o webm (por defecto: m4a)
parent_task_idstringUUID de una tarea a la que esto es un seguimiento
parent_note_idstringUUID de una nota a la que esto es un seguimiento
parent_event_idstringUUID de un evento al que esto es un seguimiento

Tienes que proporcionar text o audio_base64 (o ambos: el audio tiene prioridad para la transcripción).

Devuelve: {"audio_id": "...", "status": "processing", "mode": "text-only"} o "mode": "audio+stt" si se proporcionó audio.

nota

process_note está sujeto a las cuotas de tu plan (subidas por día, notas por mes, longitud máxima de texto). Usa get_profile para consultar tu uso actual.

create_note (Pro y Ultra)

Crea una nota de texto plano al instante. No activa el análisis de IA: no se extraen tareas ni eventos. Para análisis completo con IA y extracción de tareas/eventos, usa process_note en su lugar.

ParámetroTipoLímiteDescripción
titlestring200 caracteresObligatorio
summarystring1000 caracteresOpcional. Resumen corto (1-3 frases). Se incluye en los prompts de informes, mantenlo conciso
transcriptstringsegún planOpcional. Cuerpo largo que se muestra en el detalle de la nota. No se incluye en informes. Límites: Free 2.000 / Basic 8.000 / Pro 20.000 / Ultra 50.000 caracteres
typestring-Opcional. task, idea, info (por defecto), status, meeting, event o reflection
tagsstring20 etiquetasSeparadas por comas, opcional

create_task (Pro y Ultra)

Crea una nueva tarea.

ParámetroTipoLímiteDescripción
titlestring200 caracteresObligatorio
descriptionstring2000 caracteresOpcional
prioritystring-low, medium (por defecto) o high
deadlinestring-YYYY-MM-DD, opcional
reminder_atstring-Fecha y hora ISO 8601 (ej. 2026-04-15T09:00:00Z), opcional
tagsstring20 etiquetasSeparadas por comas, opcional
note_idstring-UUID para vincular la tarea a una nota padre, opcional

create_event (Pro y Ultra)

Crea un evento de calendario.

ParámetroTipoLímiteDescripción
titlestring200 caracteresObligatorio
start_atstring-Fecha y hora ISO 8601, obligatorio
end_atstring-Fecha y hora ISO 8601 (por defecto: inicio + 1 hora)
descriptionstring2000 caracteresOpcional
locationstring200 caracteresOpcional
is_all_daybool-Por defecto: false
tagsstring20 etiquetasSeparadas por comas, opcional
reminder_minutesstring-Minutos antes del evento, separados por comas (ej. 15,60), opcional
attendeesstring-Nombres o correos separados por comas, opcional
recurrence_rulestring-Cadena RRULE (ej. FREQ=WEEKLY;BYDAY=MO,WE,FR), opcional
note_idstring-UUID para vincular el evento a una nota padre, opcional

update_note (Pro y Ultra)

Actualiza uno o más campos de una nota existente. Solo se modifican los campos que proporciones.

ParámetroTipoDescripción
note_idstringObligatorio, el UUID de la nota
titlestringNuevo título (máx. 200 caracteres)
summarystringNuevo resumen (máx. 1000 caracteres, envía un espacio " " para borrar)
transcriptstringNueva transcripción (límite según plan, envía un espacio " " para borrar)
typestringtask, idea, info, status, meeting, event o reflection
tagsstringEtiquetas separadas por comas (reemplaza todas las existentes, máx. 20)
prioritystringlow, medium o high
statusstringactive o archived
precaucion

Para notas creadas por el flujo de voz, transcript es la salida original del reconocimiento de voz. Sobrescribirla reemplaza la fuente canónica: si quieres conservar el original, plantéate añadir al final en lugar de reemplazar.

update_task (Pro y Ultra)

Actualiza uno o más campos de una tarea existente. Solo se modifican los campos que proporciones.

ParámetroTipoDescripción
task_idstringObligatorio, el UUID de la tarea
titlestringNuevo título
descriptionstringNueva descripción (envía un espacio " " para borrar)
prioritystringlow, medium o high
deadlinestringYYYY-MM-DD (envía un espacio para borrar)
statusstringtodo o done
tagsstringEtiquetas separadas por comas (reemplaza todas las existentes, máx. 20)
reminder_atstringFecha y hora ISO 8601 (envía un espacio para borrar)

Cambiar status a done también registra cuándo y cómo se completó la tarea.

complete_task (Pro y Ultra)

Atajo para marcar una tarea como completada.

ParámetroTipoDescripción
task_idstringObligatorio, el UUID de la tarea

Devuelve un error si la tarea no existe o ya está completada.

update_event (Pro y Ultra)

Actualiza uno o más campos de un evento existente. Solo se modifican los campos que proporciones.

ParámetroTipoDescripción
event_idstringObligatorio, el UUID del evento
titlestringNuevo título
descriptionstringNueva descripción (envía un espacio para borrar)
start_atstringNueva hora de inicio (ISO 8601)
end_atstringNueva hora de fin (ISO 8601)
locationstringNueva ubicación (envía un espacio para borrar)
statusstringconfirmed, tentative o cancelled
tagsstringEtiquetas separadas por comas (reemplaza todas las existentes, máx. 20)
is_all_daystring"true" o "false"
reminder_minutesstringMinutos antes del evento, separados por comas (ej. 15,60)
attendeesstringNombres o correos separados por comas
recurrence_rulestringCadena RRULE (envía un espacio para borrar)

delete_note (Pro y Ultra)

Elimina una nota. También elimina todas las tareas y eventos creados a partir de esta nota.

ParámetroTipoDescripción
note_idstringObligatorio, el UUID de la nota

delete_task (Pro y Ultra)

Elimina una tarea.

ParámetroTipoDescripción
task_idstringObligatorio, el UUID de la tarea

delete_event (Pro y Ultra)

Elimina un evento.

ParámetroTipoDescripción
event_idstringObligatorio, el UUID del evento

undo_change_log_entry (Pro y Ultra)

Deshace una sola edición registrada: restaura el campo a su valor anterior a esa edición, tanto si la hizo la IA (desde una grabación de seguimiento) como si la hiciste tú directamente.

ParámetroTipoDescripción
entitystringObligatorio, notes, tasks o events
entity_idstringObligatorio, el UUID del elemento
entry_idstringObligatorio, el id de la entrada de cambio de get_change_log

Devuelve: {"entry_id", "entity_type", "entity_id", "field_name", "restored_value", "reverted_at"}. Deshacer la misma entrada dos veces devuelve un error: ya está deshecha.

restore_entity (Pro y Ultra)

Recupera una nota, tarea o evento eliminado o archivado.

ParámetroTipoDescripción
entitystringObligatorio, notes, tasks o events
entity_idstringObligatorio, el UUID del elemento

Devuelve: el elemento restaurado en formato JSON.

create_tag (Pro y Ultra)

Crea una etiqueta nueva, o convierte una etiqueta sugerida automáticamente en una permanente.

ParámetroTipoDescripción
tagstringObligatorio, 1-50 caracteres (se guarda en minúsculas)
categorystringOpcional

set_tag_pinned (Pro y Ultra)

Fija o deja de fijar una etiqueta para que se ordene al principio de tu lista de etiquetas.

ParámetroTipoDescripción
tagstringObligatorio
pinnedboolObligatorio

Las etiquetas que contienen el carácter / no se pueden fijar.

delete_tag (Pro y Ultra)

Elimina una etiqueta. Se puede recuperar con restore_tag.

ParámetroTipoDescripción
tagstringObligatorio

restore_tag (Pro y Ultra)

Recupera una etiqueta eliminada.

ParámetroTipoDescripción
tagstringObligatorio

Límites de entrada

CampoLongitud máximaUsado en
title200 caracterescrear/actualizar nota, tarea, evento
description2.000 caracterescrear/actualizar tarea, evento
summary1.000 caracteres (estricto)crear/actualizar nota. Se incluye en los prompts de informes, se mantiene corto para controlar el coste de tokens
transcriptsegún plan: Free 2.000 / Basic 8.000 / Pro 20.000 / Ultra 50.000crear/actualizar nota. Cuerpo largo, no va en informes
location200 caracterescrear/actualizar evento
tags20 etiquetascrear/actualizar nota, tarea, evento
search query500 caracteressearch
audio_base64 (decodificado)50 MBprocess_note

Si excedes un límite, la herramienta devuelve un mensaje de error como "title too long (max 200 chars, got 250)".

Manejo de errores

Todas las herramientas devuelven JSON. Los errores usan este formato:

{"error": "description of what went wrong"}

Errores comunes:

ErrorCuándo
"MCP access is read-only..."Se llamó a una herramienta de escritura con modo de solo lectura
"Invalid note_id format"Se pasó un string que no es UUID como ID
"Note not found"El ID no existe o pertenece a otro usuario
"Task not found or already completed"complete_task en una tarea inexistente o ya completada
"title too long (max 200 chars, got N)"Se excedió el límite de entrada
"Too many tags (max 20)"Se proporcionaron más de 20 etiquetas

Errores HTTP:

CódigoSignificado
401Token Bearer inválido o faltante
403MCP desactivado o el plan no permite MCP
429Límite de velocidad excedido (5 req/s, ráfagas de hasta 20)

Ejemplos de uso

Todos los ejemplos usan cURL con el protocolo MCP JSON-RPC. Sustituye YOUR_TOKEN por tu token de conexión.

Leer datos

# Get your profile and stats
curl -s -X POST https://api.telldone.app/mcp/user/mcp \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"get_profile"}}'

# List recent notes (limit 5, from April 2026)
curl -s -X POST https://api.telldone.app/mcp/user/mcp \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call",
"params":{"name":"get_notes","arguments":{"limit":5,"date_from":"2026-04-01"}}}'

# Search notes (hybrid text + semantic)
curl -s -X POST https://api.telldone.app/mcp/user/mcp \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call",
"params":{"name":"search","arguments":{"query":"project deadline","limit":5}}}'

Escribir datos (Pro y Ultra)

# Process a note through full AI pipeline (extracts tasks + events)
curl -s -X POST https://api.telldone.app/mcp/user/mcp \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"jsonrpc":"2.0","id":10,"method":"tools/call",
"params":{"name":"process_note","arguments":{"text":"Need to buy groceries tomorrow. Meeting with Katie at 3pm at the cafe to discuss the project."}}}'

# Create a task with deadline and reminder
curl -s -X POST https://api.telldone.app/mcp/user/mcp \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"jsonrpc":"2.0","id":11,"method":"tools/call",
"params":{"name":"create_task","arguments":{"title":"Review PR","priority":"high","deadline":"2026-04-15","reminder_at":"2026-04-15T09:00:00Z","tags":"dev"}}}'

# Create a recurring event with reminders and attendees
curl -s -X POST https://api.telldone.app/mcp/user/mcp \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"jsonrpc":"2.0","id":12,"method":"tools/call",
"params":{"name":"create_event","arguments":{"title":"Team standup","start_at":"2026-04-12T10:00:00Z","reminder_minutes":"15","attendees":"Katie,John","recurrence_rule":"FREQ=DAILY;BYDAY=MO,TU,WE,TH,FR","tags":"meeting"}}}'

# Complete a task
curl -s -X POST https://api.telldone.app/mcp/user/mcp \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"jsonrpc":"2.0","id":13,"method":"tools/call",
"params":{"name":"complete_task","arguments":{"task_id":"<task-uuid>"}}}'

Una respuesta exitosa se ve así:

{
"jsonrpc": "2.0",
"id": 10,
"result": {
"content": [{"type": "text", "text": "{\"id\":\"...\",\"title\":\"Review PR\",\"status\":\"todo\"}"}]
}
}
nota

Las herramientas de escritura y actualización devuelven respuestas mínimas con solo id, title y status. Para obtener todos los detalles (etiquetas, prioridad, fecha límite, etc.) después de escribir, haz una llamada de lectura adicional como get_tasks o get_note.

Gestión del token

AcciónCómo
Ver tokenAjustes del iPhone → Integrations → AI Agents (o Ajustes web → AI Agents), pulsa el icono de ojo
Copiar tokenPulsa el icono de copiar junto al token
RegenerarPulsa Regenerate y confirma. El token anterior deja de funcionar al instante y cualquier sesión activa se desconecta
Cambiar modoSolo Ultra: alterna entre Solo lectura y Lectura + escritura. En Pro el modo es fijo en Lectura + escritura
DesactivarPulsa Disable y confirma. El token se elimina y todas las conexiones se detienen. Puedes reactivarlo más tarde (se emitirá un token nuevo)

Qué puedes pedirle a tu agente de IA

Una vez conectado, pídele a tu herramienta de IA cosas como:

Revisar tu día:

  • "¿Qué hice hoy?"
  • "Muéstrame mis notas de esta semana"
  • "¿Qué tareas están atrasadas?"

Gestionar tareas:

  • "Crea una tarea: revisar informe trimestral, prioridad alta, fecha límite viernes"
  • "Marca la tarea de Figma como completada"
  • "¿En qué tareas estoy trabajando?"

Buscar y analizar:

  • "Encuentra todas las notas sobre la estrategia de marketing"
  • "¿Qué eventos tengo la próxima semana?"
  • "Resume mis informes diarios de la semana pasada"

Planificar:

  • "Crea un evento: standup del equipo mañana a las 10am"
  • "¿Qué tengo en mi calendario esta semana?"
  • "Muéstrame mis etiquetas principales: ¿en qué paso más tiempo?"

El agente de IA tiene acceso completo a tus notas, tareas, eventos e informes. Puede leer, crear, actualizar y eliminar datos, y responder preguntas complejas combinando información de múltiples herramientas.

Notas importantes

  • Dos formas de crear notas: create_note crea una nota de texto plano al instante (sin análisis de IA). process_note ejecuta el análisis completo con IA (igual que grabar en la app): analiza el texto, extrae tareas y eventos, y genera etiquetas y embeddings. Usa process_note cuando quieras que TellDone piense por ti.
  • Sin sincronización de integraciones: los elementos creados o actualizados por MCP no disparan webhooks ni sincronización de integraciones (Todoist, Notion). Aparecerán en tus apps en la próxima sincronización.
  • La búsqueda semántica depende de la herramienta: las notas creadas con process_note obtienen embeddings y aparecen en la búsqueda semántica. Las notas creadas con create_note no obtienen embeddings, así que solo aparecen en la búsqueda de texto.
  • Las respuestas de escritura son mínimas: las herramientas de creación y actualización devuelven solo id, title y status. Para obtener todos los campos tras escribir, haz una llamada de lectura adicional.
  • Los filtros de fecha usan UTC: los parámetros date_from/date_to se comparan como marcas de tiempo UTC. Para personas en zonas horarias no UTC, las fechas límite pueden incluir o excluir elementos de días adyacentes.
  • Límite de velocidad: 5 solicitudes por segundo, con ráfagas de hasta 20. Para operaciones masivas, espacia tus solicitudes.

Seguridad

  • Cada usuario recibe un token de conexión único de 384 bits
  • Tu token se revoca al instante al desactivar MCP o regenerarlo
  • Todos los datos están aislados estrictamente a tu cuenta: tu agente solo puede acceder a tus propios datos
  • Cada solicitud está vinculada a tu usuario: no hay forma de que un agente acceda a datos de otra persona
  • La conexión usa HTTPS con límite de velocidad (5 req/s, ráfagas de hasta 20)
  • Las conexiones por OAuth usan PKCE con códigos de autorización de un solo uso y tokens de acceso de corta duración: puedes revocar una conexión en cualquier momento desde la app

Para un análisis técnico a fondo (endpoints de descubrimiento, duración de los tokens, el flujo completo de OAuth) consulta nuestra referencia de conector de código abierto en github.com/exp78/telldone-mcp, o consulta directamente https://api.telldone.app/.well-known/oauth-protected-resource.

Privacidad y flujo de datos

Tus datos se transmiten a una herramienta de IA conectada solo cuando le pides explícitamente que haga algo, por ejemplo cuando le pides que lea o modifique tus notas. La herramienta solo recibe las respuestas a las llamadas concretas que hace, limitadas a los permisos que aprobaste. Tú tienes el control: cambia el modo de lectura/escritura de tu plan, reduce los scopes de OAuth que apruebas al iniciar sesión, o regenera y desactiva tu token Bearer, todo desde Ajustes. Consulta la Política de privacidad para ver todos los detalles, o escribe a support@telldone.app si tienes dudas.

Solución de problemas

SíntomaCausa / solución
La página de consentimiento de OAuth dice "Wrong email or password"Usa el correo y la contraseña de tu cuenta de TellDone (los mismos con los que entras en la app). Si tu cuenta solo tiene inicio de sesión con Apple o Google y no tiene contraseña, usa el método con token Bearer.
Se conecta, pero la IA no puede crear ni editar nadaTu plan o tu modo es de solo lectura, o la conexión no recibió scopes de escritura: vuelve a conectar y apruébalos, o revisa tu modo en Ajustes.
Una herramienta devuelve un error de "Insufficient scope"La conexión por OAuth no recibió ese scope. Vuelve a conectar y aprueba el permiso que necesita la herramienta.
Las herramientas no aparecenMCP no está activado en tu cuenta (Ajustes → AI Agents), o tu plan no incluye MCP.
Mi cliente solo me deja elegir de una lista de conectores y TellDone no estáTellDone aún no está en el directorio de conectores de ningún cliente: añádelo como conector personalizado con la URL de MCP, o usa el método con token Bearer.

Ver también