Aller au contenu principal

Agents IA (MCP)

Disponible avec tous les plans

MCP fonctionne avec tous les plans. Free et Basic ont un accès en lecture seule aux 10 outils de lecture (Free est limité à 100 requêtes par jour). Pro et Ultra ont un accès complet en lecture et écriture (27 outils) et peuvent passer en mode lecture seule s’ils préfèrent.

MCP (Model Context Protocol) te permet de connecter des assistants IA comme ChatGPT et Claude, des assistants de programmation et des outils d’automatisation directement à tes données TellDone. Une fois connecté, ton assistant peut lire tes notes, tâches, événements, rapports, tags et l’historique des modifications. À partir de Pro, il peut aussi créer, modifier, supprimer et restaurer des éléments. Il y a 27 outils : 10 pour lire (tous les plans) et 17 pour écrire (Pro et plus).

Sur l’iPhone, Réglages > Intégrations > Agents IA (MCP) ouvre l’écran de configuration MCP, avec ton jeton d’accès masqué par défaut :

Réglages des agents IA sur iPhone avec le jeton masqué

Et sur le web :

Réglages des agents IA sur le web avec le jeton d’accès masqué

Deux façons de se connecter​

Il y a deux façons de connecter un client IA :

  1. Se connecter avec TellDone (OAuth) (recommandé) - tu te connectes avec ton compte TellDone et tu approuves ce que l’app demande. ChatGPT et Claude utilisent cette méthode, et il n’y a aucun jeton à copier.
  2. Jeton Bearer - copie ton jeton d’accès depuis les Réglages et colle-le dans la configuration de ton client. C’est le plus simple pour les scripts, les outils en ligne de commande et les clients sans flux OAuth intégré.
ClientRecommandé
ChatGPT (chatgpt.com ou l’app de bureau ChatGPT, pas l’app mobile)OAuth - ajoute un serveur MCP personnalisé avec l’URL MCP, puis connecte-toi
Claude (site web, Desktop, app iPhone) / CoworkOAuth - ajoute un connecteur personnalisé avec l’URL MCP, puis connecte-toi
Claude Code (CLI)Jeton Bearer pour l’instant - ajoute l’en-tête Authorization avec ton jeton
Scripts ou ton propre codeJeton Bearer - le plus simple à automatiser
Un client qui ne permet de choisir que dans un annuaire de connecteursAjoute TellDone comme connecteur personnalisé avec l’URL MCP, ou utilise un jeton Bearer. TellDone n’est encore dans aucun annuaire de connecteurs

Plans requis​

PlanMCP
FreeLecture seule (10 outils de lecture), 100 requêtes par jour
BasicLecture seule (10 outils de lecture), sans limite quotidienne
ProLecture et écriture (27 outils) - peut passer en mode lecture seule
UltraLecture et écriture (27 outils) - peut passer en mode lecture seule

La limite de 100 requêtes par jour avec Free compte uniquement les appels d’outils. Se connecter, s’authentifier et lister les outils ne comptent pas. La journée suit le fuseau horaire enregistré dans ton compte et se réinitialise à minuit. Quand tu atteins la limite, ton assistant reçoit un message qui le dit. Les outils d’écriture sont refusés avec Free et Basic. Avec un jeton d’accès, ils répondent que la connexion est en lecture seule et que créer et modifier demande Pro ou plus. Avec la connexion (OAuth), la plupart répondent « Insufficient scope », parce que les connexions Free et Basic n’obtiennent jamais de permissions d’écriture.

L’écran dans l’app​

Ouvre Réglages > Intégrations et, dans la section Agents IA, touche Agents IA (MCP). L’écran indique « Laisse ChatGPT, Claude et d’autres assistants IA travailler avec tes notes, tâches et événements TellDone. » et affiche ton plan :

  • Free : « Ton plan : accès en lecture seule, 100 requêtes par jour. L’écriture arrive avec Pro. »
  • Basic : « Ton plan : accès en lecture seule »
  • Pro et Ultra : « Ton plan : accès en lecture et écriture »

Tant que MCP est désactivé, touche Activer pour l’activer.

Une fois activé, l’écran affiche :

  • Mode d’accès (Pro et Ultra) - choisis Lecture seule ou Lecture et écriture à tout moment.
  • Connecter un assistant - les étapes pour ChatGPT, Claude et Autre assistant. Tu te connectes à TellDone dans l’assistant, donc aucun jeton n’est nécessaire.
  • Applications connectées - les assistants que tu as connectés, chacun avec un bouton Déconnecter. La liste reste vide jusqu’à la première connexion.
  • Pour les développeurs (replié par défaut) - le champ Jeton d’accès (masqué, avec Afficher / Masquer et Copier), Régénérer le jeton, et un sélecteur Claude Code / Cursor / Autre avec un texte prêt à l’emploi et son propre bouton Copier. Claude Code te donne la commande claude mcp add, Cursor te donne le JSON pour .cursor/mcp.json, et Autre liste l’adresse du serveur, l’option de connexion OAuth et l’en-tête Authorization: Bearer. Tant que le jeton est masqué, les extraits affichent YOUR_TOKEN. Touche Afficher et ils contiennent ton vrai jeton.

Le web a les mêmes commandes dans une disposition différente, sans section développeur repliée : l’adresse OAuth avec un bouton Copier, les commandes de ton jeton, Applications connectées avec Déconnecter, et Manual bearer token setup avec six choix de client (Claude Code, Cursor, Windsurf, Codex, OpenClaw et cURL). Sur le web, les extraits contiennent toujours ton vrai jeton, même quand le champ du jeton est masqué : traite-les donc comme le jeton lui-même.

  • Documentation - un lien vers cette page.
  • Désactiver - désactive MCP. Tu confirmes avec « Cela révoquera l’accès pour tous les outils IA connectés. » Ton jeton est supprimé et toutes les connexions s’arrêtent. Si tu réactives MCP, tu obtiens un nouveau jeton, et les apps connectées avec la connexion (OAuth) refonctionnent sans se reconnecter. Pour retirer une app définitivement, touche Déconnecter sous Applications connectées.
astuce

Garde ton jeton d’accès privé. Toute personne qui a le jeton peut accéder à tes données TellDone. Touche Régénérer le jeton si tu soupçonnes qu’il a fuité.

Comment l’activer​

Tu peux configurer MCP depuis l’une ou l’autre plateforme :

  • iPhone : Réglages > Intégrations > Agents IA (MCP)
  • Web : app.telldone.app > Réglages > Intégrations > Agents IA (MCP)

Étapes :

  1. Touche Activer.
  2. Avec Pro et Ultra, choisis ton mode d’accès (Lecture seule ou Lecture et écriture). Free et Basic sont en lecture seule.
  3. Pour connecter ChatGPT ou Claude, touche-le sous Connecter un assistant et suis les étapes (voir plus bas). Aucun jeton n’est nécessaire.
  4. Pour un client de programmation sur iPhone, ouvre Pour les développeurs, touche Afficher, choisis Claude Code, Cursor ou Autre, puis touche Copier sous l’extrait. Si tu copies avant de toucher Afficher, l’extrait contient YOUR_TOKEN à la place de ton jeton. Sur le web, choisis ton client sous Manual bearer token setup et copie l’extrait ; il contient déjà ton jeton.
  5. Colle l’extrait dans ton client ou dans son fichier de configuration.

Se connecter avec OAuth​

OAuth est la méthode recommandée pour ChatGPT, Claude et Cowork : tu te connectes avec ton compte TellDone au lieu de copier un jeton.

URL MCP pour OAuth : https://api.telldone.app/mcp/user

Le même serveur répond aussi à l’adresse https://api.telldone.app/mcp/user/mcp, et les deux adresses acceptent un jeton Bearer. Pour la connexion OAuth, utilise la première.

ChatGPT​

Tu peux ajouter un serveur MCP personnalisé sur chatgpt.com ou dans l’app de bureau ChatGPT. L’app mobile ChatGPT ne peut pas ajouter de connecteurs personnalisés, et l’app TellDone le formule ainsi : « L’application ChatGPT n’ajoute que les connecteurs de son catalogue. » Touche Envoyer les étapes à mon ordinateur dans TellDone pour recevoir les instructions sur un ordinateur. Une fois ajouté là-bas, TellDone est aussi disponible dans l’app mobile ChatGPT.

Les étapes dans l’app :

  1. Sur un ordinateur, ouvre chatgpt.com/plugins, clique sur Add et choisis Add custom MCP server.
  2. Nomme-le TellDone, colle l’adresse ci-dessous (https://api.telldone.app/mcp/user) et choisis OAuth.
  3. Confirme et installe-le, puis connecte-toi à TellDone et autorise l’accès.

Consulte le guide d’OpenAI sur les serveurs MCP personnalisés si les noms des menus changent.

Claude (site web, Desktop, app iPhone) / Cowork​

Les étapes dans l’app :

  1. Dans Claude, ouvre Customize → Connectors et touche Add custom connector.
  2. Colle l’adresse ci-dessous (https://api.telldone.app/mcp/user).
  3. Connecte-toi à TellDone et autorise l’accès.

Quand tu te connectes, la page de consentement de TellDone indique quelle app demande l’accès et les permissions exactes qu’elle veut. Connecte-toi avec ton e-mail et ton mot de passe TellDone puis clique sur Allow access, ou touche Se connecter avec Apple ou Se connecter avec Google, ce qui approuve l’accès dans la même étape. Claude se connecte tout seul : il n’y a aucun jeton à copier.

Si les noms des menus changent, consulte le guide d’Anthropic sur l’ajout d’un connecteur personnalisé.

Se connecter avec un jeton Bearer​

Pour Claude Code, Cursor et les autres clients sans connexion OAuth intégrée, colle ton jeton d’accès directement dans la configuration du client. Dans tous les exemples ci-dessous, remplace YOUR_TOKEN par le jeton de tes réglages.

Claude Code (jeton Bearer)​

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

Tu n’as pas besoin de la taper toi-même : dans Réglages > Intégrations > Agents IA (MCP) > Pour les développeurs, touche Afficher, choisis Claude Code et touche Copier. La commande copiée contient déjà ton jeton.

Cursor​

Ajoute ceci à .cursor/mcp.json (ou copie-le depuis Pour les développeurs > Cursor après avoir touché Afficher) :

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

Autres clients​

Réglages pour les autres clients MCP :

Codex​

Ajoute à 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

Autres clients MCP​

Tout outil qui prend en charge MCP sur HTTP peut se connecter. Utilise l’endpoint https://api.telldone.app/mcp/user/mcp avec un en-tête d’autorisation Bearer YOUR_TOKEN.

En-tête d’authentification alternatif

Si ton client ou ton proxy réserve l’en-tête Authorization (par exemple, certaines passerelles de type Smithery), envoie plutôt le jeton dans X-MCP-Token: YOUR_TOKEN. Les deux en-têtes fonctionnent ; si les deux sont présents, Authorization l’emporte.

Tester ta connexion​

Tu peux vérifier que ton jeton fonctionne avec une simple commande 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}'

Une réponse réussie liste tous les outils disponibles.

Permissions (scopes)​

Les connexions OAuth sont limitées par des scopes : pendant la connexion, tu vois exactement ce que le client demande et tu l’approuves explicitement.

ScopePermet à l’app de...
notes:readLire tes notes et ouvrir le détail complet d’une note (l’outil search a aussi besoin de tasks:read et events:read)
notes:writeCréer, modifier et supprimer des notes (process_note a aussi besoin de tasks:write et events:write)
tasks:read / tasks:writeLire / créer, modifier, terminer et supprimer des tâches
events:read / events:writeLire / créer, modifier et supprimer des événements
reports:readLire tes rapports quotidiens, hebdomadaires, mensuels et annuels
tags:read / tags:writeLister tes tags / créer, épingler, supprimer et restaurer des tags
profile:readLire les infos de ton compte et ton abonnement
offline_accessRester connecté (émet un jeton d’actualisation pour que tu n’aies pas à te reconnecter à chaque session)

Les scopes limitent ce qu’une connexion peut faire : une connexion avec seulement notes:read ne peut pas appeler un outil d’écriture. Ton plan ajoute une seconde limite par-dessus.

Les connexions par jeton Bearer n’ont pas de scopes individuels : elles dépendent uniquement du mode lecture/écriture de ton plan.

Ce que tu peux faire​

Outils de lecture (10) - tous les plans​

OutilCe qu’il fait
get_notesListe les notes avec des filtres (tags, plage de dates, recherche de texte)
get_noteAffiche une seule note avec ses tâches et événements enfants et sa transcription complète
get_notes_fullRécupère plusieurs notes avec leurs tâches et événements intégrés en un seul appel
get_tasksListe les tâches filtrées par statut (à faire, terminées, toutes), tags ou dates
get_eventsListe les événements de calendrier, filtrés par plage de dates
get_reportsLit tes rapports quotidiens, hebdomadaires, mensuels et annuels (markdown complet)
get_tagsAffiche tous tes tags triés par usage
get_profileAffiche les infos de ton compte et le nombre de notes, tâches et événements que tu as
searchCherche dans les notes, tâches et événements (texte + recherche sémantique pour les notes)
get_change_logAffiche l’historique des modifications d’une note, d’une tâche ou d’un événement, et si chaque modification a été annulée
astuce

L’outil search prend en charge la recherche sémantique pour les notes : il trouve des résultats par le sens, pas seulement par mots-clés. Par exemple, chercher « réunions sur le budget » trouvera des notes sur des discussions financières même si elles ne contiennent pas le mot « budget ».

Outils d’écriture (17) - Pro et Ultra​

OutilCe qu’il fait
process_notePipeline IA complet : envoie du texte ou de l’audio et reçois une note avec ses tâches, événements et tags
create_noteAjoute une note texte simple (sans analyse IA)
create_taskAjoute une tâche avec priorité, échéance, rappel et tags
create_eventAjoute un événement de calendrier avec date, heure, lieu, rappels, participants et règle de répétition
update_noteChange le titre, le résumé, le type, les tags, la priorité ou le statut d’une note
update_taskChange le titre, la description, la priorité, l’échéance, le rappel, les tags ou le statut d’une tâche
complete_taskMarque une tâche comme terminée
update_eventChange les détails, l’heure, le lieu, les rappels, les participants, la règle de répétition, les tags ou le statut d’un événement
delete_noteSupprime une note. Ses tâches et ses événements restent
delete_taskSupprime une tâche
delete_eventSupprime un événement
undo_change_log_entryAnnule une seule modification suivie, faite par l’IA ou par toi, en rétablissant l’ancienne valeur du champ
restore_entityRestaure une note ou une tâche supprimée ou archivée, ou un événement supprimé ou annulé
create_tagCrée un nouveau tag, ou transforme un tag suggéré automatiquement en tag permanent
set_tag_pinnedÉpingle ou désépingle un tag pour qu’il soit trié en haut
delete_tagRetire un tag (peut être restauré avec restore_tag)
restore_tagRestaure un tag supprimé

Toutes les opérations d’écriture et de suppression apparaissent tout de suite sur tes appareils connectés (téléphone, app web).

Référence des outils​

get_notes​

Liste les notes avec un filtrage facultatif. Les filtres de date utilisent recorded_at (le moment où tu as enregistré la note vocale), ou created_at pour une note qui n’en a pas.

ParamètreTypeDéfautDescription
limitint20Nombre de notes à renvoyer (max 50)
offsetint0Nombre de notes à sauter (pour la pagination, max 10000)
tagsstring-Filtre par tags, séparés par des virgules (correspond à n’importe lequel)
searchstring-Recherche de texte dans le titre et le résumé
date_fromstring-Date de début, YYYY-MM-DD (incluse)
date_tostring-Date de fin, YYYY-MM-DD (exclue)
standalone_onlyboolfalseSi true, masque les notes de suivi (notes rattachées à une note, tâche ou événement parent) et renvoie seulement les notes indépendantes

Renvoie : une liste de notes avec id, title, summary, type, tags, priority, status, recorded_at, created_at.

get_note​

Récupère une seule note avec sa transcription complète et toutes les tâches et tous les événements liés.

ParamètreTypeDescription
note_idstringL’UUID de la note

Renvoie : la note avec title, summary, transcript, type, tags, priority, status, metadata, created_at, ainsi que les tableaux tasks[] et events[].

Renvoie aussi transcript_speakers (tours de parole de la transcription avec le nom de l’interlocuteur, pour les réunions à plusieurs interlocuteurs, sinon null), speaker_count (null sauf si l’enregistrement a été découpé par interlocuteur) et parent_note_id/parent_task_id/parent_event_id (renseignés quand cette note est une modification de suivi d’un autre élément). Chaque entrée de tasks[]/events[] inclut aussi reminders_at/recurrence_rule (tâches) ou reminder_minutes/attendees/recurrence_rule (événements).

get_notes_full​

Récupère plusieurs notes avec leurs tâches et événements en un seul appel. Mêmes filtres que get_notes sauf search, et chaque note inclut les tableaux tasks[] et events[].

ParamètreTypeDéfautDescription
limitint10Nombre de notes (max 20)
offsetint0Nombre de notes à sauter
tagsstring-Filtre par tags
date_fromstring-Date de début, YYYY-MM-DD
date_tostring-Date de fin, YYYY-MM-DD
standalone_onlyboolfalseSi true, masque les notes de suivi (notes rattachées à une note, tâche ou événement parent) et renvoie seulement les notes indépendantes

get_tasks​

Liste les tâches avec filtrage.

ParamètreTypeDéfautDescription
statusstring"todo"Filtre : todo, done ou all
limitint30Nombre de tâches (max 100)
offsetint0Nombre de tâches à sauter
tagsstring-Filtre par tags, séparés par des virgules
date_fromstring-Date de début, YYYY-MM-DD (filtre sur l’échéance ; les tâches sans échéance sont exclues)
date_tostring-Date de fin, YYYY-MM-DD (filtre sur l’échéance ; les tâches sans échéance sont exclues)

Renvoie : une liste de tâches avec id, title, description, status, priority, tags, deadline, reminder_at, reminders_at, completed_at, completed_by, source, created_at. reminder_at reprend la première entrée de reminders_at pour la rétrocompatibilité : utilise reminders_at pour voir tous les rappels d’une tâche.

get_events​

Liste les événements de calendrier avec filtrage par plage de dates.

ParamètreTypeDéfautDescription
limitint30Nombre d’événements (max 100)
offsetint0Nombre d’événements à sauter
date_fromstring-Premier jour, YYYY-MM-DD, dans ton propre fuseau horaire (inclus). Les événements qui chevauchent la plage sont inclus, donc un événement de plusieurs jours apparaît chaque jour qu’il couvre
date_tostring-Dernier jour, YYYY-MM-DD, dans ton propre fuseau horaire (inclus)

Renvoie : une liste d’événements avec id, title, description, status, start_at, end_at, location, is_all_day, tags, note_id, reminder_minutes, attendees, recurrence_rule, created_at.

get_reports​

Récupère tes rapports générés par l’IA avec leur contenu markdown complet.

ParamètreTypeDéfautDescription
report_typestring"daily"Type : daily, weekly, monthly ou yearly
limitint5Nombre de rapports (max 10)

Renvoie : une liste de rapports avec id, type, period_start, period_end, content_md, created_at.

remarque

Les rapports mensuels sont longs (souvent bien plus de 1 000 mots). Utilise limit=1 si ton outil IA a une fenêtre de contexte serrée.

get_tags​

Récupère tous tes tags, triés avec les épinglés d’abord, puis par nombre d’utilisations.

Aucun paramètre. Renvoie jusqu’à 100 tags, chacun avec tag, usage_count, is_pinned, is_manual.

get_profile​

Récupère les infos de ton compte et le nombre de notes, tâches et événements que tu as.

Aucun paramètre. Renvoie email, display_name, locale, transcription_locale, timezone, subscription, mcp_mode, created_at et stats (nombre de notes, tâches et événements).

Cherche dans les notes, tâches et événements en une fois. Pour les notes, prend en charge la recherche de texte et la recherche sémantique (trouve des résultats par le sens grâce aux embeddings IA).

ParamètreTypeDéfautDescription
querystringobligatoireTexte à chercher (max 500 caractères)
limitint20Nombre max de résultats par type (max 20)
semanticbooltrueActive la recherche sémantique pour les notes

Renvoie les résultats regroupés par type : notes[], tasks[], events[]. Chaque résultat a id, type, title, detail, created_at.

Mets semantic=false pour une recherche texte seul plus rapide.

get_change_log​

Affiche l’historique des modifications d’une note, d’une tâche ou d’un événement : chaque modification de suivi faite par l’IA et chaque modification manuelle que tu as faite toi-même, de la plus récente à la plus ancienne.

ParamètreTypeDéfautDescription
entitystringobligatoirenotes, tasks ou events
entity_idstringobligatoireL’UUID de l’élément
include_manualboolfalseInclut aussi tes modifications manuelles, pas seulement celles faites par l’IA

Renvoie : une liste d’entrées de modification avec id (à utiliser comme entry_id pour annuler), field_name, old_value, new_value, source (follow_up, smart_context, correction_sync pour une correction de nom que TellDone a reportée sur une note, ou manual), origin_note_id, edited_at et reverted_at (renseigné une fois annulée).

process_note (Pro et Ultra)​

Pipeline IA complet : fonctionne comme un enregistrement dans l’app. Envoie du texte ou de l’audio, et TellDone transcrit, analyse avec l’IA et crée une note structurée avec les tâches, événements, tags et embeddings extraits.

Cet outil est asynchrone : il répond tout de suite avec un audio_id et traite en arrière-plan. Les résultats arrivent par synchro en temps réel sur tes appareils connectés, ou tu peux interroger avec get_notes().

ParamètreTypeDescription
textstringObligatoire. Texte à analyser. S’il n’est pas vide, il est utilisé comme transcription et l’audio que tu envoies n’est pas transcrit ; envoie "" pour faire transcrire l’audio. Limite quand aucun audio n’est envoyé : Pro 20 000 / Ultra 50 000 caractères
audio_base64stringFichier audio encodé en Base64. La requête entière est limitée à 10 Mo, donc l’audio lui-même peut faire environ 7 Mo. Il n’est transcrit que si text est vide
audio_formatstringm4a, ogg, wav, mp3, aac ou webm (par défaut : m4a)
parent_task_idstringUUID d’une tâche dont c’est le suivi
parent_note_idstringUUID d’une note dont c’est le suivi
parent_event_idstringUUID d’un événement dont c’est le suivi

Envoie toujours text. Pour faire transcrire de l’audio par TellDone, envoie audio_base64 avec text réglé sur une chaîne vide (""). Si text n’est pas vide, TellDone l’utilise comme transcription et ne transcrit pas l’audio. Renseigne au plus un des trois identifiants parents.

Renvoie : {"audio_id": "...", "status": "processing", "mode": "text-only"} ou "mode": "audio+stt" si de l’audio a été fourni.

remarque

process_note est soumis aux quotas de ton plan (envois par jour, notes par mois, longueur max du texte). get_profile n’indique que le nombre de notes, tâches et événements que tu as, pas tes limites. Vérifie ton utilisation dans l’app sous Réglages > Utilisation.

create_note (Pro et Ultra)​

Crée tout de suite une note texte simple. Ne déclenche pas d’analyse IA : aucune tâche ni aucun événement n’est extrait. Utilise process_note si tu veux que TellDone trouve les tâches et les événements pour toi.

ParamètreTypeLimiteDescription
titlestring200 car.Obligatoire
summarystring1000 car.Facultatif. Court aperçu (1 à 3 phrases). Utilisé dans tes rapports, donc garde-le court
transcriptstringselon le planFacultatif. Corps long affiché dans le détail de la note. Non inclus dans les rapports. Limites : Pro 20 000 / Ultra 50 000 car.
typestring-Facultatif. task, idea, info (par défaut), status, meeting, event ou reflection
tagsstring20 tagsSéparés par des virgules, facultatif
suppress_external_syncboolean-Facultatif, false par défaut. Mets true pour des éléments importés ou en masse : l’élément n’est alors pas envoyé vers tes apps connectées ni vers tes automatisations

create_task (Pro et Ultra)​

Crée une nouvelle tâche. La tâche est aussi créée dans ton Todoist, Notion ou Microsoft To Do connecté, et tes automatisations reçoivent task.created. Ce n’est pas le cas quand tu passes suppress_external_sync: true.

ParamètreTypeLimiteDescription
titlestring200 car.Obligatoire
descriptionstring2000 car.Facultatif
prioritystring-low, medium (par défaut) ou high
deadlinestring-YYYY-MM-DD, facultatif
reminder_atstring-Date et heure ISO 8601 (par exemple 2026-04-15T09:00:00Z), facultatif
tagsstring20 tagsSéparés par des virgules, facultatif
note_idstring-UUID pour lier la tâche à une note parente, facultatif
suppress_external_syncboolean-Facultatif, false par défaut. Mets true pour des éléments importés ou en masse : l’élément n’est alors pas envoyé vers tes apps connectées ni vers tes automatisations

create_event (Pro et Ultra)​

Crée un événement de calendrier. L’événement est aussi créé dans ton Notion connecté, et tes automatisations reçoivent calendar_event.created. Ce n’est pas le cas quand tu passes suppress_external_sync: true.

ParamètreTypeLimiteDescription
titlestring200 car.Obligatoire
start_atstring-Date et heure ISO 8601, obligatoire
end_atstring-Date et heure ISO 8601 (par défaut : début + 1 heure ; pour un événement sur toute la journée, un jour)
descriptionstring2000 car.Facultatif
locationstring200 car.Facultatif
is_all_daybool-Par défaut : false
tagsstring20 tagsSéparés par des virgules, facultatif
reminder_minutesstring-Minutes avant l’événement, séparées par des virgules (par exemple 15,60), facultatif
attendeesstring-Noms ou e-mails séparés par des virgules, facultatif
recurrence_rulestring-Chaîne RRULE (par exemple FREQ=WEEKLY;BYDAY=MO,WE,FR), facultatif. Les règles plus fréquentes qu’une fois par heure, ou qui ne peuvent jamais se produire, sont refusées
note_idstring-UUID pour lier l’événement à une note parente, facultatif
suppress_external_syncboolean-Facultatif, false par défaut. Mets true pour des éléments importés ou en masse : l’élément n’est alors pas envoyé vers tes apps connectées ni vers tes automatisations

update_note (Pro et Ultra)​

Modifie un ou plusieurs champs d’une note existante. Seuls les champs que tu fournis changent. Cela fonctionne exactement comme une modification de la note dans l’app : son titre, son résumé, ses tags et son type arrivent sur sa page Notion, tes automatisations reçoivent note.updated, et la modification apparaît dans l’historique des modifications, où tu peux l’annuler. Un changement de transcription est enregistré et envoyé vers Notion lui aussi, mais n’apparaît pas dans l’historique.

ParamètreTypeDescription
note_idstringObligatoire, l’UUID de la note
titlestringNouveau titre (max 200 car.)
summarystringNouveau résumé (max 1000 car., envoie une espace " " pour l’effacer)
transcriptstringNouvelle transcription (limite selon le plan, envoie une espace " " pour l’effacer)
typestringtask, idea, info, status, meeting, event ou reflection
tagsstringTags séparés par des virgules (remplace tous les tags existants, max 20)
prioritystringlow, medium ou high
statusstringactive ou archived
attention

Pour les notes créées par le pipeline vocal, transcript est le résultat d’origine de la reconnaissance vocale. L’écraser remplace tes mots d’origine. Pour les garder, ajoute à la transcription au lieu de la remplacer.

update_task (Pro et Ultra)​

Modifie un ou plusieurs champs d’une tâche existante. Seuls les champs que tu fournis changent. Cela fonctionne exactement comme une modification de la tâche dans l’app : le changement arrive sur ses copies dans Todoist, Notion et Microsoft To Do, tes automatisations reçoivent task.updated, et la modification apparaît dans l’historique des modifications de la tâche, où tu peux l’annuler. Régler status sur done la termine comme complete_task. Une échéance peut être une date ou une date avec une heure (seule la date est prise en compte). Chaque tag peut compter jusqu’à 50 caractères.

ParamètreTypeDescription
task_idstringObligatoire, l’UUID de la tâche
titlestringNouveau titre
descriptionstringNouvelle description (envoie une espace " " pour l’effacer)
prioritystringlow, medium ou high
deadlinestringYYYY-MM-DD. Cet outil ne peut pas effacer une échéance ; efface-la dans l’app
statusstringtodo ou done
tagsstringTags séparés par des virgules (remplace tous les tags existants, max 20)
reminder_atstringDate et heure ISO 8601 (envoie une espace pour l’effacer)

Régler status sur done enregistre aussi quand et comment la tâche a été terminée.

complete_task (Pro et Ultra)​

Raccourci pour marquer une tâche comme terminée.

ParamètreTypeDescription
task_idstringObligatoire, l’UUID de la tâche

Renvoie une erreur si la tâche n’existe pas ou est déjà terminée.

update_event (Pro et Ultra)​

Modifie un ou plusieurs champs d’un événement existant. Seuls les champs que tu fournis changent. Cela fonctionne exactement comme une modification de l’événement dans l’app : le changement arrive sur sa page Notion, tes automatisations reçoivent calendar_event.updated, et la modification apparaît dans l’historique des modifications, où tu peux l’annuler.

ParamètreTypeDescription
event_idstringObligatoire, l’UUID de l’événement
titlestringNouveau titre
descriptionstringNouvelle description (envoie une espace pour l’effacer)
start_atstringNouvelle heure de début (ISO 8601)
end_atstringNouvelle heure de fin (ISO 8601)
locationstringNouveau lieu (envoie une espace pour l’effacer)
statusstringconfirmed, tentative ou cancelled
tagsstringTags séparés par des virgules (remplace tous les tags existants, max 20)
is_all_daystring"true" ou "false"
reminder_minutesstringMinutes avant l’événement, séparées par des virgules (par exemple 15,60, envoie une espace pour effacer)
attendeesstringNoms ou e-mails séparés par des virgules (envoie une espace pour effacer)
recurrence_rulestringChaîne RRULE (envoie une espace pour effacer)

delete_note (Pro et Ultra)​

Supprime une note. Seule la note est supprimée : ses tâches et ses événements restent. Cela fonctionne exactement comme la suppression dans l’app : tes automatisations reçoivent note.deleted. Une copie de la note dans Notion n’est pas retirée (l’app ne la retire pas non plus).

ParamètreTypeDescription
note_idstringObligatoire, l’UUID de la note

delete_task (Pro et Ultra)​

Supprime une tâche. Cela fonctionne exactement comme la suppression dans l’app : ses copies dans Todoist, Notion et Microsoft To Do sont aussi supprimées, et tes automatisations reçoivent task.deleted. Récupère-la avec restore_entity.

ParamètreTypeDescription
task_idstringObligatoire, l’UUID de la tâche

delete_event (Pro et Ultra)​

Supprime un événement. Cela fonctionne exactement comme la suppression dans l’app : tes automatisations reçoivent calendar_event.deleted. La page de l’événement dans Notion n’est pas retirée (l’app ne la retire pas non plus).

ParamètreTypeDescription
event_idstringObligatoire, l’UUID de l’événement

undo_change_log_entry (Pro et Ultra)​

Annule une seule modification suivie : rétablit le champ à sa valeur d’avant cette modification, qu’elle ait été faite par l’IA (depuis un enregistrement de suivi) ou par toi directement.

ParamètreTypeDescription
entitystringObligatoire, notes, tasks ou events
entity_idstringObligatoire, l’UUID de l’élément
entry_idstringObligatoire, l'id de l’entrée de modification issu de get_change_log

Renvoie : {"entry_id", "entity_type", "entity_id", "field_name", "restored_value", "reverted_at"}. Annuler deux fois la même entrée renvoie une erreur : elle est déjà annulée.

restore_entity (Pro et Ultra)​

Restaure une note ou une tâche supprimée ou archivée, ou un événement supprimé ou annulé.

ParamètreTypeDescription
entitystringObligatoire, notes, tasks ou events
entity_idstringObligatoire, l’UUID de l’élément

Renvoie : l’élément restauré au format JSON.

create_tag (Pro et Ultra)​

Crée un nouveau tag, ou transforme un tag existant suggéré automatiquement en tag permanent.

ParamètreTypeDescription
tagstringObligatoire, 1 à 50 caractères (stocké en minuscules)
categorystringFacultatif

set_tag_pinned (Pro et Ultra)​

Épingle ou désépingle un tag pour qu’il soit trié en haut de ta liste de tags.

ParamètreTypeDescription
tagstringObligatoire
pinnedboolObligatoire

Les tags qui contiennent le caractère / ne peuvent pas être épinglés.

delete_tag (Pro et Ultra)​

Retire un tag. Peut être restauré avec restore_tag.

ParamètreTypeDescription
tagstringObligatoire

restore_tag (Pro et Ultra)​

Restaure un tag supprimé.

ParamètreTypeDescription
tagstringObligatoire

Limites de saisie​

ChampLongueur maxUtilisé dans
title200 caractèrescreate/update note, task, event
description2 000 caractèrescreate/update task, event
summary1 000 caractères (strict)create/update note. Utilisé dans tes rapports, donc garde-le court
transcriptselon le plan : Pro 20 000 / Ultra 50 000create/update note. Corps long, absent des rapports
textselon le plan : Pro 20 000 / Ultra 50 000 (quand aucun audio n’est envoyé)process_note
location200 caractèrescreate/update event
tags20 tagscreate/update note, task, event
search query500 caractèressearch
audio_base64environ 7 Mo d’audio (la requête entière est limitée à 10 Mo)process_note

Si tu dépasses une limite, l’outil renvoie un message d’erreur comme "title too long (max 200 chars, got 250)".

Gestion des erreurs​

La plupart des outils renvoient les erreurs en JSON :

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

Les erreurs de plan, de scope et de limite de saisie reviennent sous forme d’erreur d’outil avec le même message.

Erreurs courantes :

ErreurQuand
"This TellDone connection is read-only. Creating and editing needs the Pro or Ultra plan."Outil d’écriture appelé en mode lecture seule (Free et Basic, ou Pro et Ultra passés en lecture seule)
"Daily limit reached: the Free plan includes 100 TellDone requests a day..."Le plan Free a utilisé ses 100 requêtes du jour
"Daily limit reached (N/M today)"Tu as créé aujourd’hui autant d’éléments via des assistants IA que ton plan le permet (process_note, create_note, create_task et create_event comptent chacun)
"Notes limit reached (X/Y this month)"La limite mensuelle de notes de ton plan est atteinte
"Invalid note_id format"Une chaîne qui n’est pas un UUID a été passée comme identifiant
"Note not found"L’identifiant n’existe pas ou appartient à un autre utilisateur
"Task not found or already completed"complete_task sur une tâche inexistante ou déjà terminée
"title too long (max 200 chars, got N)"Limite de saisie dépassée
"Too many tags (max 20)"Plus de 20 tags fournis

Erreurs au niveau HTTP :

CodeSignification
401Jeton invalide, révoqué ou supprimé (désactiver MCP supprime ton jeton, et le régénérer le remplace)
429Limite de débit dépassée (5 req/s, pointe jusqu’à 20)

Avec Free, atteindre la limite de 100 requêtes par jour est signalé par un message d’erreur d’outil (pas par un code HTTP) et se réinitialise à minuit dans le fuseau horaire enregistré dans ton compte.

Exemples d’utilisation​

Tous les exemples utilisent cURL avec le protocole JSON-RPC de MCP. Remplace YOUR_TOKEN par ton jeton d’accès.

Lire des données​

# 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}}}'

Écrire des données (Pro et 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 repeating 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>"}}}'

Une réponse réussie ressemble à ceci :

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

Les outils d’écriture et de modification renvoient des réponses courtes, surtout id, title et status. Les outils de suppression renvoient id et deleted. Pour obtenir les détails complets (tags, priorité, échéance, etc.) après une écriture, fais un appel de lecture de suivi comme get_tasks ou get_note.

Gestion du jeton​

ActionComment
Voir le jetoniPhone : Réglages > Intégrations > Agents IA (MCP) > Pour les développeurs (ou sur le web, Réglages > Intégrations > Agents IA (MCP)), touche Afficher
Copier le jetonTouche Copier à côté du jeton
RégénérerTouche Régénérer le jeton et confirme. L’ancien jeton cesse de fonctionner immédiatement. Les assistants connectés avec la connexion OAuth ne sont pas affectés ; déconnecte-les sous Applications connectées
Changer le modePro et Ultra : choisis Lecture seule ou Lecture et écriture. Free et Basic sont toujours en lecture seule
DésactiverTouche Désactiver et confirme (« Cela révoquera l’accès pour tous les outils IA connectés. »). Ton jeton est supprimé et toutes les connexions s’arrêtent. Si tu réactives MCP, tu obtiens un nouveau jeton, et les apps connectées avec la connexion (OAuth) refonctionnent sans se reconnecter. Pour retirer une app définitivement, touche Déconnecter sous Applications connectées

Ce que tu peux demander à ton agent IA​

Une fois connecté, demande à ton outil IA des choses comme :

Faire le point sur ta journée :

  • « Sur quoi ai-je travaillé aujourd’hui ? »
  • « Montre-moi mes notes de cette semaine »
  • « Quelles tâches sont en retard ? »

Gérer les tâches :

  • « Crée une tâche : relire le rapport trimestriel, priorité haute, échéance vendredi »
  • « Marque la tâche Figma comme terminée »
  • « Sur quelles tâches suis-je en train de travailler ? »

Chercher et analyser :

  • « Trouve toutes les notes sur la stratégie marketing »
  • « Quels événements ai-je la semaine prochaine ? »
  • « Résume mes rapports quotidiens de la semaine dernière »

Planifier :

  • « Crée un événement : point d’équipe demain à 10 h »
  • « Qu’y a-t-il dans mon calendrier cette semaine ? »
  • « Montre-moi mes principaux tags : à quoi je consacre le plus de temps ? »

Ton assistant peut lire tes notes, tâches, événements et rapports, et répondre à des questions complexes en combinant les informations de plusieurs outils. Avec Pro et Ultra, quand Lecture et écriture est activé, il peut aussi les créer, les modifier et les supprimer.

Bon à savoir​

  • Intégrations et automatisations - process_note fonctionne comme un enregistrement : sa note, ses tâches et ses événements vont donc vers tes intégrations connectées et tes automatisations webhook. Les éléments que tu crées, modifies ou supprimes avec les autres outils d’écriture se comportent exactement comme dans l’app : ils arrivent dans tes intégrations connectées (les événements et les modifications de notes n’arrivent que dans Notion) et dans tes automatisations. Restaurer une tâche avec restore_entity, ou annuler son achèvement avec undo_change_log_entry, la rouvre aussi dans les intégrations avec lesquelles elle était synchronisée.
  • Modifications par un assistant IA - elles sont signalées comme faites par un assistant dans l’historique des modifications de l’élément. Elles ne servent pas à entraîner la reconnaissance vocale de TellDone et ne sont pas recopiées dans les autres éléments de la note. Les modifications faites via un assistant partagent la limite de l’app : 30 modifications par minute.
  • Recherche sémantique - les notes créées avec process_note ou create_note reçoivent toutes deux des embeddings, donc elles apparaissent dans la recherche sémantique après un court délai.
  • Filtres de date - pour les notes, les dates sont des jours UTC. Pour les événements, les dates sont tes jours locaux, et un événement qui chevauche la plage est inclus. Pour les tâches, le filtre porte sur la date d’échéance.

Sécurité​

  • Chaque utilisateur reçoit un jeton d’accès unique de 384 bits
  • Ton jeton est révoqué instantanément quand tu désactives MCP ou que tu le régénères
  • Chaque requête est limitée à ton compte, donc ton agent ne peut accéder qu’à tes propres données
  • La connexion utilise HTTPS avec une limitation de débit (5 req/s, pointe jusqu’à 20)
  • Les connexions OAuth utilisent PKCE avec des codes d’autorisation à usage unique et des jetons d’accès de courte durée : tu peux révoquer une connexion à tout moment depuis l’app

Pour une analyse technique approfondie (endpoints de découverte, durées de vie des jetons, flux OAuth complet), consulte notre référence open source du connecteur sur github.com/exp78/telldone-mcp, ou interroge directement https://api.telldone.app/.well-known/oauth-protected-resource.

Confidentialité et circulation des données​

Un outil IA connecté ne reçoit tes données que lorsqu’il appelle TellDone, en général parce que tu lui as posé une question. Il reçoit uniquement les réponses à ces appels, dans les limites des permissions que tu as approuvées. Pour limiter l’accès, passe en Lecture seule, déconnecte l’app sous Applications connectées, ou régénère ou désactive ton jeton d’accès dans les Réglages. Consulte la Politique de confidentialité pour tous les détails, ou écris à support@telldone.app pour toute question.

Dépannage​

SymptômeCause / solution
La page de consentement OAuth affiche « Wrong email or password »Utilise l’e-mail et le mot de passe avec lesquels tu te connectes à l’app, ou choisis Se connecter avec Apple / Se connecter avec Google sur la même page.
Connecté, mais l’IA ne peut rien créer ni modifierTon plan est Free ou Basic (lecture seule), ton mode est en lecture seule, ou la connexion n’a pas les permissions d’écriture. Si tu t’es connecté avant de passer à un plan supérieur, déconnecte l’app sous Applications connectées et reconnecte-la. Tu peux vérifier ton mode dans les Réglages.
Erreur « Insufficient scope » renvoyée par un outilLa connexion n’a pas cette permission. Avec Free et Basic, les permissions d’écriture ne sont jamais accordées, donc créer et modifier demande Pro ou Ultra. Si tu t’es connecté avant de passer à un plan supérieur, déconnecte l’app sous Applications connectées et reconnecte-la.
L’extrait copié indique YOUR_TOKEN et le client ne peut pas se connecterTu l’as copié alors que le jeton était masqué. Dans Pour les développeurs, touche Afficher, puis copie de nouveau l’extrait.
Les outils n’apparaissent pas du toutMCP n’est pas activé sur ton compte (Réglages > Intégrations > Agents IA (MCP) > Activer).
« Daily limit reached »Deux limites utilisent ce message. « Daily limit reached: the Free plan includes 100 TellDone requests a day » est la limite de requêtes de Free. « Daily limit reached (N/M today) » signifie que tu as créé aujourd’hui autant d’éléments via des assistants IA que ton plan le permet : process_note, create_note, create_task et create_event comptent chacun, avec Pro et Ultra aussi. Les deux se réinitialisent à minuit dans le fuseau horaire enregistré dans ton compte.
Mon client ne me laisse choisir que dans une liste de connecteurs, et TellDone n’y est pasTellDone n’est dans aucun annuaire de connecteurs de client pour l’instant : ajoute-le comme connecteur personnalisé avec l’URL MCP, ou utilise la méthode du jeton Bearer.

Voir aussi​

  • Automatisations webhook - envoie des données vers des services externes automatiquement
  • Todoist - synchro des tâches dédiée dans les deux sens
  • Notion - intégration Notion dédiée