Accès MCP (agents IA)
MCP est désormais entièrement disponible sur iPhone (en plus de l'application web). L'écran iPhone reflète celui du web et inclut les mêmes extraits de configuration pour tous les clients IA pris en charge.
L'accès MCP nécessite un forfait Pro ou Ultra. Les deux forfaits ont l'accès complet read + write (27 outils) et peuvent basculer en mode read-only si tu préfères.
MCP (Model Context Protocol) te permet de connecter des assistants IA de code et des outils d'automatisation directement à tes données TellDone. Une fois connecté, ton agent IA peut lire tes notes, tâches, événements, rapports, tags et l'historique des modifications - et créer, mettre à jour, supprimer et restaurer des éléments. Il y a 27 outils au total : 10 pour lire les données et 17 pour écrire.
Disponible à la fois dans l'application iPhone (Paramètres → Intégrations → Agents IA) et dans l'application web (Paramètres → Agents IA).
Deux façons de se connecter
Il y a deux façons d'authentifier un client IA, et les deux sont entièrement prises en charge :
- OAuth 2.1 (recommandé) - le flux de consentement standard « Se connecter avec TellDone ». C'est ce qu'utilisent l'interface de connecteurs de Claude Desktop et Claude.ai. Aucun token à copier - tu te connectes avec ton compte TellDone et tu approuves les permissions que le client demande.
- Token bearer - copie ton token d'accès personnel depuis les Paramètres et colle-le dans la config de ton client. C'est le plus simple pour les scripts, les CLI et les clients sans flux OAuth intégré.
| Client | Recommandé |
|---|---|
| Claude Desktop / Cowork | OAuth - ajoute un connecteur personnalisé avec l'URL MCP, puis connecte-toi |
| Claude Code (CLI) | L'un ou l'autre - claude mcp add te guide dans le flux OAuth via ton navigateur, ou ajoute un en-tête Bearer pour la méthode par token |
| Scripts ou ton propre code | Token bearer - le plus simple à automatiser |
| Un client qui permet seulement de choisir dans un annuaire de connecteurs référencés | Utilise le token bearer ou le pont mcp-remote pour l'instant - TellDone n'est encore dans aucun annuaire de connecteurs |
Prérequis par forfait
| Forfait | MCP |
|---|---|
| Free | Verrouillé |
| Basic | Verrouillé |
| Pro | Read + Write (27 outils) - peut basculer en mode Read-only |
| Ultra | Read + Write (27 outils) - peut basculer en mode Read-only |
L'écran in-app
L'écran Agents IA a trois états selon ton forfait et l'état d'activation de MCP.
Verrouillé (Free et Basic)
Si tu es sur le forfait Free ou Basic, l'écran explique ce que fait MCP et affiche un bouton Passer à un forfait supérieur. Appuie dessus pour ouvrir l'écran de mise à niveau et passer à Pro ou Ultra.
Désactivé (Pro et Ultra, fonctionnalité éteinte)
Si tu es sur Pro ou Ultra mais que tu n'as pas encore activé MCP, l'écran montre un court résumé de ce que ton forfait peut faire (nombre d'outils, mode d'accès, quotas) et un bouton Activer. Appuie dessus pour générer ton token de connexion et démarrer l'intégration.
Activé
Une fois activé, l'écran affiche tout ce qu'il te faut pour connecter un client IA :
- Bascule de mode - sur Ultra tu peux basculer entre Read-only et Read + Write. Sur Pro le mode est fixé sur Read + Write.
- Ligne Token d'accès avec un œil pour révéler ou masquer le token et un bouton de copie.
- Sélecteur Configuration avec onglets pour Claude Code, Cursor, Windsurf et Autre. L'extrait de code correspondant apparaît sous les onglets - il suffit de copier-coller dans ton client IA.
- Bouton Régénérer - tourne le token immédiatement et déconnecte toutes les sessions actives utilisant l'ancien.
- Bouton Désactiver - éteint MCP et supprime le token. Tu peux réactiver plus tard, mais un nouveau token sera émis.
Garde ton token de connexion privé. Quiconque possède le token peut accéder à tes données TellDone. Utilise Régénérer si tu soupçonnes une fuite du token.
Comment activer
Tu peux configurer MCP depuis l'une ou l'autre plateforme :
- iPhone : Paramètres → Intégrations → Agents IA (MCP)
- Web : app.telldone.app → Paramètres → Agents IA
Étapes :
- Appuie sur Activer.
- Choisis ton mode d'accès (Ultra uniquement - Pro est toujours Read + Write).
- Révèle et copie ton token avec les icônes œil et copie.
- Choisis ton outil dans la section Configuration (Claude Code, Cursor, Windsurf ou Autre).
- Colle l'extrait dans la config de ton client IA.
Connexion avec OAuth
OAuth est la méthode recommandée pour Claude Desktop, Claude.ai, Cowork et Claude Code - tu te connectes avec ton compte TellDone au lieu de trimballer un token.
URL MCP pour OAuth : https://api.telldone.app/mcp/user (sans /mcp à la fin - c'est une URL différente, utilisée uniquement pour la méthode par token bearer ci-dessous)
Claude Desktop / Cowork
- Dans le client, choisis Ajouter un connecteur personnalisé.
- Saisis l'URL du serveur :
https://api.telldone.app/mcp/user - Le client ouvre la page de consentement TellDone dans ton navigateur. Tu y vois quelle application demande l'accès, les permissions exactes qu'elle réclame et un formulaire de connexion.
- Connecte-toi avec l'e-mail et le mot de passe de ton compte TellDone, puis clique sur Autoriser.
- Le client reçoit automatiquement un token d'accès et se connecte - aucun token à copier.
La connexion sur la page de consentement utilise l'e-mail et le mot de passe de ton compte TellDone. Si ton compte n'a que Sign in with Apple ou Google (pas de mot de passe défini), utilise pour l'instant la méthode par token bearer ci-dessous.
Claude Code
OAuth (ouvre une connexion dans le navigateur) :
claude mcp add --transport http telldone https://api.telldone.app/mcp/user
Claude Code détecte le flux OAuth automatiquement, mais il ne te connecte pas au premier appel - lance /mcp dans Claude Code et choisis Authenticate pour ouvrir la connexion dans le navigateur. Ensuite il rafraîchit ton token d'accès tout seul - rien à maintenir.
Token bearer (sans navigateur, pratique pour les configurations headless) :
claude mcp add telldone --transport http \
https://api.telldone.app/mcp/user/mcp \
--header "Authorization: Bearer YOUR_TOKEN"
Récupère ton YOUR_TOKEN dans l'application : Paramètres → Intégrations → Agents IA → Copier le token (voir Comment activer plus haut).
Connexion avec un token bearer
Pour les clients sans prise en charge OAuth intégrée - Cursor, Windsurf et les autres - colle ton token d'accès personnel directement dans la config du client. Remplace YOUR_TOKEN par le token de tes paramètres dans tous les exemples ci-dessous.
Cursor
Ajoute à .cursor/mcp.json :
{
"mcpServers": {
"telldone": {
"url": "https://api.telldone.app/mcp/user/mcp",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}
Windsurf
Ajoute à .codeium/windsurf/mcp_config.json :
{
"mcpServers": {
"telldone": {
"serverUrl": "https://api.telldone.app/mcp/user/mcp",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}
Autre
Utilise ces extraits pour les clients que le sélecteur in-app regroupe sous Autre.
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 via HTTP peut se connecter. Utilise l'endpoint https://api.telldone.app/mcp/user/mcp avec un en-tête d'autorisation Bearer YOUR_TOKEN.
Si ton client ou proxy réserve l'en-tête Authorization (par exemple, certaines passerelles façon Smithery), envoie le token dans X-MCP-Token: YOUR_TOKEN à la place. Les deux en-têtes fonctionnent ; si les deux sont présents, Authorization gagne.
Tester ta connexion
Tu peux vérifier que ton token fonctionne avec une commande cURL simple :
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.
| Scope | Permet à l'application de... |
|---|---|
notes:read | Lire tes notes, faire des recherches, ouvrir le détail complet d'une note |
notes:write | Créer, modifier, supprimer des notes (et lancer le pipeline de notes vocales) |
tasks:read / tasks:write | Lire / créer, modifier, terminer et supprimer des tâches |
events:read / events:write | Lire / créer, modifier et supprimer des événements |
reports:read | Lire tes rapports quotidiens, hebdomadaires, mensuels et annuels |
tags:read / tags:write | Lister tes tags / créer et renommer des tags |
profile:read | Lire ton profil et les infos de ton abonnement |
offline_access | Rester connecté quand tu es absent (émet un refresh token pour t'éviter de te reconnecter à chaque session) |
Les scopes sont un plafond, pas une garantie - une connexion qui n'a que notes:read ne peut pas appeler un outil d'écriture, quoi que tu lui demandes. Ton forfait est un second filtre par-dessus les scopes.
Les connexions par token bearer n'ont pas de scopes individuels - elles sont régies uniquement par le mode read/write de ton forfait.
Ce que tu peux faire
Outils de lecture (10) - Pro et Ultra
| Outil | Ce qu'il fait |
|---|---|
| get_notes | Liste les notes avec filtres (tags, plage de dates, recherche texte) |
| get_note | Voir une seule note avec ses tâches enfants, événements et transcription complète |
| get_notes_full | Récupérer plusieurs notes avec tâches et événements intégrés en un seul appel |
| get_tasks | Liste les tâches filtrées par statut (à faire, terminé, tout), tags ou dates |
| get_events | Liste les événements de calendrier, filtre par plage de dates |
| get_reports | Lit tes rapports quotidiens, hebdomadaires, mensuels et annuels (markdown complet) |
| get_tags | Voir tous tes tags triés par usage |
| get_profile | Voir tes infos de compte et statistiques d'usage |
| search | Recherche dans notes, tâches et événements (texte + recherche sémantique pour les notes) |
| get_change_log | Consulte l'historique des modifications d'une note, d'une tâche ou d'un événement, et si chaque modification a été annulée |
L'outil search prend en charge la recherche sémantique pour les notes - il trouve des résultats par 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
| Outil | Ce qu'il fait |
|---|---|
| process_note | Pipeline IA complet - envoie texte ou audio, récupère une note avec tâches, événements et tags |
| create_note | Ajoute une note texte simple (pas d'analyse IA) |
| create_task | Ajoute une tâche avec priorité, échéance, rappel et tags |
| create_event | Ajoute un événement de calendrier avec date, heure, lieu, rappels, participants et récurrence |
| update_note | Change le titre, résumé, type, tags, priorité ou statut de note |
| update_task | Change le titre, description, priorité, échéance, rappel, tags ou statut de tâche |
| complete_task | Marque une tâche comme faite |
| update_event | Change les détails, l'heure, le lieu, les rappels, les participants, la récurrence, les tags ou le statut d'événement |
| delete_note | Supprime une note et toutes ses tâches et événements liés |
| delete_task | Supprime une tâche |
| delete_event | Supprime un événement |
| undo_change_log_entry | Annule une seule modification suivie - faite par l'IA ou par toi - en restaurant la valeur précédente du champ |
| restore_entity | Restaure une note, une tâche ou un événement supprimé ou archivé |
| create_tag | Crée un nouveau tag, ou transforme un tag auto-suggéré en tag permanent |
| set_tag_pinned | Épingle ou désépingle un tag pour qu'il soit trié en haut |
| delete_tag | Supprime un tag (peut être restauré avec restore_tag) |
| restore_tag | Restaure un tag supprimé |
Toutes les opérations d'écriture et de suppression apparaissent instantanément sur tes appareils connectés (téléphone, application web) via la synchro en temps réel.
Référence des outils
get_notes
Liste les notes avec filtrage facultatif. Les filtres de date utilisent recorded_at (quand tu as enregistré la note vocale), pas created_at.
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
limit | int | 20 | Nombre de notes à renvoyer (max 50) |
offset | int | 0 | Sauter ce nombre de notes (pour la pagination, max 10000) |
tags | string | - | Filtrer par tags, séparés par virgules (correspond à n'importe lequel) |
search | string | - | Recherche texte sur titre et résumé |
date_from | string | - | Date de début, YYYY-MM-DD (incluse) |
date_to | string | - | Date de fin, YYYY-MM-DD (exclue) |
standalone_only | bool | false | Si true, masque les notes de suivi (notes rattachées à une note, tâche ou événement parent) et ne renvoie que les notes autonomes |
Renvoie : 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 ses tâches et événements liés.
| Paramètre | Type | Description |
|---|---|---|
note_id | string | L'UUID de la note |
Renvoie : note avec title, summary, transcript, type, tags, priority, status, metadata, created_at, plus les tableaux tasks[] et events[].
Renvoie aussi transcript_speakers (tours de transcription étiquetés par intervenant, pour les réunions à plusieurs intervenants - null sinon), speaker_count (null sauf si l'enregistrement a été découpé par intervenant), et parent_note_id/parent_task_id/parent_event_id (définis quand cette note est une modification de suivi d'un autre élément). Chaque entrée 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, mais chaque note inclut tasks[] et events[] intégrés.
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
limit | int | 10 | Nombre de notes (max 20) |
offset | int | 0 | Sauter ce nombre de notes |
tags | string | - | Filtrer par tags |
date_from | string | - | Date de début, YYYY-MM-DD |
date_to | string | - | Date de fin, YYYY-MM-DD |
standalone_only | bool | false | Si true, masque les notes de suivi (notes rattachées à une note, tâche ou événement parent) et ne renvoie que les notes autonomes |
get_tasks
Liste les tâches avec filtrage.
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
status | string | "todo" | Filtre : todo, done ou all |
limit | int | 30 | Nombre de tâches (max 100) |
offset | int | 0 | Sauter ce nombre de tâches |
tags | string | - | Filtrer par tags, séparés par virgules |
date_from | string | - | Date de début, YYYY-MM-DD (filtre par échéance ; les tâches sans échéance sont exclues) |
date_to | string | - | Date de fin, YYYY-MM-DD (filtre par échéance ; les tâches sans échéance sont exclues) |
Renvoie : 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 reflète la première entrée de reminders_at pour la compatibilité ascendante - 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ètre | Type | Défaut | Description |
|---|---|---|---|
limit | int | 30 | Nombre d'événements (max 100) |
offset | int | 0 | Sauter ce nombre d'événements |
date_from | string | - | Date de début, YYYY-MM-DD (filtre par heure de début d'événement) |
date_to | string | - | Date de fin, YYYY-MM-DD |
Renvoie : 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 IA avec contenu markdown complet.
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
report_type | string | "daily" | Type : daily, weekly, monthly ou yearly |
limit | int | 5 | Nombre de rapports (max 10) |
Renvoie : liste de rapports avec id, type, period_start, period_end, content_md, created_at.
Les rapports mensuels peuvent faire 3 000 à 5 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 par épinglés en premier, puis par nombre d'utilisations.
Pas de paramètres. Renvoie jusqu'à 100 tags, chacun avec tag, usage_count, is_pinned, is_manual.
get_profile
Récupère tes infos de compte et statistiques d'usage.
Pas de paramètres. Renvoie email, display_name, locale, transcription_locale, timezone, subscription, mcp_mode, created_at et stats (compteurs notes/tâches/événements).
search
Recherche dans notes, tâches et événements en même temps. Pour les notes, prend en charge la recherche texte et la recherche sémantique (trouve des résultats par sens grâce aux embeddings IA).
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
query | string | requis | Texte de recherche (max 500 caractères) |
limit | int | 20 | Résultats max par type (max 20) |
semantic | bool | true | Active la recherche sémantique pour les notes |
Renvoie les résultats groupés par type : notes[], tasks[], events[]. Chaque résultat a id, type, title, detail, created_at.
Mets semantic=false pour une recherche texte plus rapide.
get_change_log
Consulte 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, la plus récente en premier.
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
entity | string | requis | notes, tasks ou events |
entity_id | string | requis | L'UUID de l'élément |
include_manual | bool | false | Inclure aussi tes propres modifications manuelles, pas seulement celles faites par l'IA |
Renvoie : 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 ou manual), origin_note_id, edited_at, et reverted_at (défini une fois annulé).
process_note (Pro et Ultra)
Pipeline IA complet - fonctionne comme un enregistrement dans l'application. Envoie texte ou audio, et TellDone va transcrire, analyser avec l'IA et créer une note structurée avec tâches, événements, tags et embeddings extraits.
Cet outil est asynchrone : il renvoie immédiatement un audio_id et traite en arrière-plan. Les résultats arrivent via la synchro en temps réel sur tes appareils connectés, ou tu peux interroger avec get_notes().
| Paramètre | Type | Description |
|---|---|---|
text | string | Texte à analyser (saute la transcription si pas d'audio fourni) |
audio_base64 | string | Fichier audio encodé en base64 (jusqu'à 50 Mo, déclenche la transcription) |
audio_format | string | m4a, ogg, wav, mp3, aac ou webm (défaut : m4a) |
parent_task_id | string | UUID d'une tâche dont c'est un suivi |
parent_note_id | string | UUID d'une note dont c'est un suivi |
parent_event_id | string | UUID d'un événement dont c'est un suivi |
Tu dois fournir soit text, soit audio_base64 (ou les deux - l'audio est prioritaire pour la transcription).
Renvoie : {"audio_id": "...", "status": "processing", "mode": "text-only"} ou "mode": "audio+stt" si un audio a été fourni.
process_note est soumis aux quotas de ton forfait (envois par jour, notes par mois, longueur max de texte). Utilise get_profile pour vérifier ton usage actuel.
create_note (Pro et Ultra)
Crée instantanément une note texte simple. Ne déclenche pas l'analyse IA - aucune tâche ni événement n'est extrait. Pour l'analyse IA complète avec extraction de tâches/événements, utilise plutôt process_note.
| Paramètre | Type | Limite | Description |
|---|---|---|---|
title | string | 200 car. | Requis |
summary | string | 1000 car. | Facultatif. Court teaser (1 à 3 phrases). Inclus dans les prompts de rapport, à garder concis |
transcript | string | selon forfait | Facultatif. Corps long affiché dans le détail. Pas inclus dans les rapports. Limites : Free 2 000 / Basic 8 000 / Pro 20 000 / Ultra 50 000 caractères |
type | string | - | Facultatif. task, idea, info (défaut), status, meeting, event ou reflection |
tags | string | 20 tags | Séparés par virgules, facultatif |
create_task (Pro et Ultra)
Crée une nouvelle tâche.
| Paramètre | Type | Limite | Description |
|---|---|---|---|
title | string | 200 car. | Requis |
description | string | 2000 car. | Facultatif |
priority | string | - | low, medium (défaut) ou high |
deadline | string | - | YYYY-MM-DD, facultatif |
reminder_at | string | - | Datetime ISO 8601 (par exemple 2026-04-15T09:00:00Z), facultatif |
tags | string | 20 tags | Séparés par virgules, facultatif |
note_id | string | - | UUID pour lier la tâche à une note parente, facultatif |
create_event (Pro et Ultra)
Crée un événement de calendrier.
| Paramètre | Type | Limite | Description |
|---|---|---|---|
title | string | 200 car. | Requis |
start_at | string | - | Datetime ISO 8601, requis |
end_at | string | - | Datetime ISO 8601 (défaut : début + 1 heure) |
description | string | 2000 car. | Facultatif |
location | string | 200 car. | Facultatif |
is_all_day | bool | - | Défaut : false |
tags | string | 20 tags | Séparés par virgules, facultatif |
reminder_minutes | string | - | Minutes avant l'événement séparées par virgules (par exemple 15,60), facultatif |
attendees | string | - | Noms ou e-mails séparés par virgules, facultatif |
recurrence_rule | string | - | Chaîne RRULE (par exemple FREQ=WEEKLY;BYDAY=MO,WE,FR), facultatif |
note_id | string | - | UUID pour lier l'événement à une note parente, facultatif |
update_note (Pro et Ultra)
Met à jour un ou plusieurs champs d'une note existante. Seuls les champs fournis sont modifiés.
| Paramètre | Type | Description |
|---|---|---|
note_id | string | Requis, l'UUID de la note |
title | string | Nouveau titre (max 200 car.) |
summary | string | Nouveau résumé (max 1000 car., passe un espace " " pour effacer) |
transcript | string | Nouvelle transcription (limite selon forfait, passe un espace " " pour effacer) |
type | string | task, idea, info, status, meeting, event ou reflection |
tags | string | Tags séparés par virgules (remplace tous les tags existants, max 20) |
priority | string | low, medium ou high |
status | string | active ou archived |
Pour les notes créées par le pipeline vocal, transcript est la sortie originale de la reconnaissance vocale. La remplacer remplace la source canonique - envisage plutôt de l'append si tu veux préserver l'original.
update_task (Pro et Ultra)
Met à jour un ou plusieurs champs d'une tâche existante. Seuls les champs fournis sont modifiés.
| Paramètre | Type | Description |
|---|---|---|
task_id | string | Requis, l'UUID de la tâche |
title | string | Nouveau titre |
description | string | Nouvelle description (passe un espace " " pour effacer) |
priority | string | low, medium ou high |
deadline | string | YYYY-MM-DD (passe un espace pour effacer) |
status | string | todo ou done |
tags | string | Tags séparés par virgules (remplace tous les tags existants, max 20) |
reminder_at | string | Datetime ISO 8601 (passe un espace pour effacer) |
Mettre status à 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 faite.
| Paramètre | Type | Description |
|---|---|---|
task_id | string | Requis, 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)
Met à jour un ou plusieurs champs d'un événement existant. Seuls les champs fournis sont modifiés.
| Paramètre | Type | Description |
|---|---|---|
event_id | string | Requis, l'UUID de l'événement |
title | string | Nouveau titre |
description | string | Nouvelle description (passe un espace pour effacer) |
start_at | string | Nouvelle heure de début (ISO 8601) |
end_at | string | Nouvelle heure de fin (ISO 8601) |
location | string | Nouveau lieu (passe un espace pour effacer) |
status | string | confirmed, tentative ou cancelled |
tags | string | Tags séparés par virgules (remplace tous les tags existants, max 20) |
is_all_day | string | "true" ou "false" |
reminder_minutes | string | Minutes avant l'événement séparées par virgules (par exemple 15,60) |
attendees | string | Noms ou e-mails séparés par virgules |
recurrence_rule | string | Chaîne RRULE (passe un espace pour effacer) |
delete_note (Pro et Ultra)
Supprime une note. Cela supprime aussi toutes les tâches et événements créés à partir de cette note.
| Paramètre | Type | Description |
|---|---|---|
note_id | string | Requis, l'UUID de la note |
delete_task (Pro et Ultra)
Supprime une tâche.
| Paramètre | Type | Description |
|---|---|---|
task_id | string | Requis, l'UUID de la tâche |
delete_event (Pro et Ultra)
Supprime un événement.
| Paramètre | Type | Description |
|---|---|---|
event_id | string | Requis, l'UUID de l'événement |
undo_change_log_entry (Pro et Ultra)
Annule une seule modification suivie - restaure le champ à sa valeur avant cette modification, que celle-ci ait été faite par l'IA (à partir d'un enregistrement de suivi) ou par toi directement.
| Paramètre | Type | Description |
|---|---|---|
entity | string | Requis, notes, tasks ou events |
entity_id | string | Requis, l'UUID de l'élément |
entry_id | string | Requis, 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, une tâche ou un événement supprimé ou archivé.
| Paramètre | Type | Description |
|---|---|---|
entity | string | Requis, notes, tasks ou events |
entity_id | string | Requis, l'UUID de l'élément |
Renvoie : l'élément restauré en JSON.
create_tag (Pro et Ultra)
Crée un nouveau tag, ou transforme un tag auto-suggéré existant en tag permanent.
| Paramètre | Type | Description |
|---|---|---|
tag | string | Requis, 1 à 50 caractères (stocké en minuscules) |
category | string | Facultatif |
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ètre | Type | Description |
|---|---|---|
tag | string | Requis |
pinned | bool | Requis |
Les tags contenant un caractère / ne peuvent pas être épinglés.
delete_tag (Pro et Ultra)
Supprime un tag. Peut être restauré avec restore_tag.
| Paramètre | Type | Description |
|---|---|---|
tag | string | Requis |
restore_tag (Pro et Ultra)
Restaure un tag supprimé.
| Paramètre | Type | Description |
|---|---|---|
tag | string | Requis |
Limites d'entrée
| Champ | Longueur max | Utilisé dans |
|---|---|---|
| title | 200 caractères | create/update note, task, event |
| description | 2 000 caractères | create/update task, event |
| summary | 1 000 caractères (strict) | create/update note. Inclus dans les prompts de rapport, court pour contrôler le coût en tokens |
| transcript | selon forfait : Free 2 000 / Basic 8 000 / Pro 20 000 / Ultra 50 000 | create/update note. Corps long, pas dans les rapports |
| location | 200 caractères | create/update event |
| tags | 20 tags | create/update note, task, event |
| search query | 500 caractères | search |
| audio_base64 (décodé) | 50 Mo | process_note |
Si tu dépasses une limite, l'outil renvoie un message d'erreur du genre "title too long (max 200 chars, got 250)".
Gestion des erreurs
Tous les outils renvoient du JSON. Les erreurs utilisent ce format :
{"error": "description of what went wrong"}
Erreurs courantes :
| Erreur | Quand |
|---|---|
"MCP access is read-only..." | Outil d'écriture appelé en mode read-only |
"Invalid note_id format" | Chaîne non-UUID passée comme ID |
"Note not found" | L'ID n'existe pas ou appartient à un autre utilisateur |
"Task not found or already completed" | complete_task sur tâche inexistante ou déjà faite |
"title too long (max 200 chars, got N)" | Limite d'entrée dépassée |
"Too many tags (max 20)" | Plus de 20 tags fournis |
Erreurs au niveau HTTP :
| Code | Sens |
|---|---|
| 401 | Bearer token invalide ou manquant |
| 403 | MCP désactivé ou forfait n'autorisant pas MCP |
| 429 | Limite de débit dépassée (5 req/s, pics jusqu'à 20) |
Exemples d'usage
Tous les exemples utilisent cURL avec le protocole MCP JSON-RPC. Remplace YOUR_TOKEN par ton token de connexion.
Lecture de données
# Récupérer ton profil et tes 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"}}'
# Lister les notes récentes (limite 5, à partir d'avril 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"}}}'
# Rechercher des notes (texte hybride + sémantique)
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}}}'
Écriture de données (Pro et Ultra)
# Traiter une note via le pipeline IA complet (extrait tâches + événements)
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."}}}'
# Créer une tâche avec échéance et rappel
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"}}}'
# Créer un événement récurrent avec rappels et participants
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"}}}'
# Terminer une tâche
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 à :
{
"jsonrpc": "2.0",
"id": 10,
"result": {
"content": [{"type": "text", "text": "{\"id\":\"...\",\"title\":\"Review PR\",\"status\":\"todo\"}"}]
}
}
Les outils d'écriture et de mise à jour renvoient des réponses minimales avec uniquement id, title et status. Pour récupérer tous les détails (tags, priorité, échéance, etc.) après une écriture, fais un appel de lecture de suivi comme get_tasks ou get_note.
Gestion du token
| Action | Comment |
|---|---|
| Voir le token | iPhone Paramètres → Intégrations → Agents IA (ou web Paramètres → Agents IA), appuie sur l'icône œil |
| Copier le token | Appuie sur l'icône de copie à côté du token |
| Régénérer | Appuie sur Régénérer et confirme. L'ancien token cesse de fonctionner immédiatement et toute session active est déconnectée |
| Changer de mode | Ultra uniquement - bascule entre Read-only et Read + Write. Sur Pro le mode est fixé sur Read + Write |
| Désactiver | Appuie sur Désactiver et confirme. Le token est supprimé et toutes les connexions s'arrêtent. Tu peux réactiver plus tard (un nouveau token sera émis) |
Ce que tu peux demander à ton agent IA
Une fois connecté, demande à ton outil IA des choses comme :
Faire le bilan de ta journée :
- « Sur quoi j'ai travaillé aujourd'hui ? »
- « Affiche-moi mes notes de cette semaine »
- « Quelles tâches sont en retard ? »
Gérer des tâches :
- « Crée une tâche : revoir le rapport trimestriel, haute priorité, échéance vendredi »
- « Marque la tâche Figma comme faite »
- « Sur quelles tâches je travaille ? »
Rechercher et analyser :
- « Trouve toutes les notes sur la stratégie marketing »
- « Quels événements j'ai la semaine prochaine ? »
- « Résume mes rapports quotidiens de la semaine dernière »
Planifier :
- « Crée un événement : team standup demain à 10h »
- « Qu'est-ce que j'ai dans mon calendrier cette semaine ? »
- « Affiche mes top tags - sur quoi je passe le plus de temps ? »
L'agent IA a un accès complet à tes notes, tâches, événements et rapports. Il peut lire, créer, mettre à jour et supprimer des données, et répondre à des questions complexes en combinant des informations de plusieurs outils.
Notes importantes
- Deux façons de créer des notes -
create_notecrée instantanément une note texte simple (pas d'analyse IA).process_notelance le pipeline IA complet (comme un enregistrement dans l'application) - il analyse le texte, extrait tâches et événements, génère tags et embeddings. Utiliseprocess_notequand tu veux que TellDone réfléchisse pour toi. - Pas de synchro d'intégration - les éléments créés ou mis à jour via MCP ne déclenchent pas les automatisations webhook ni les synchros d'intégration (Todoist, Notion). Ils apparaîtront dans tes apps à la prochaine synchro.
- La recherche sémantique dépend de l'outil - les notes créées avec
process_notereçoivent des embeddings et apparaissent dans la recherche sémantique. Les notes créées aveccreate_notene reçoivent pas d'embeddings, donc elles n'apparaissent que dans la recherche texte. - Les réponses d'écriture sont minimales - les outils de création et mise à jour renvoient seulement
id,titleetstatus. Pour tous les champs après une écriture, fais un appel de lecture de suivi. - Les filtres de date utilisent UTC - les paramètres
date_from/date_tosont comparés comme timestamps UTC. Pour les utilisateurs hors UTC, les dates limites peuvent inclure ou exclure des éléments des jours adjacents. - Limite de débit - 5 requêtes par seconde, avec des pics jusqu'à 20. Pour les opérations en masse, espace tes requêtes.
Sécurité
- Chaque utilisateur reçoit un token de connexion unique de 384 bits
- Ton token est révoqué instantanément quand tu désactives MCP ou le régénères
- Toutes les données sont strictement isolées à ton compte - ton agent ne peut accéder qu'à tes propres données
- Chaque requête est cantonnée à ton utilisateur - aucun moyen pour un agent d'accéder aux données d'un autre utilisateur
- La connexion utilise HTTPS avec limitation de débit (5 req/s, pics jusqu'à 20)
- Les connexions OAuth utilisent PKCE avec des codes d'autorisation à usage unique et des tokens d'accès de courte durée - tu peux révoquer une connexion à tout moment depuis l'application
Pour une plongée technique - endpoints de découverte, durées de vie des tokens, flux OAuth complet - consulte notre référence de connecteur open source sur github.com/exp78/telldone-mcp, ou interroge directement https://api.telldone.app/.well-known/oauth-protected-resource.
Confidentialité et flux de données
Tes données ne sont transmises à un outil IA connecté que lorsque tu lui demandes explicitement de faire quelque chose - par exemple, quand tu lui demandes de lire ou de modifier tes notes. L'outil ne reçoit que les réponses aux appels précis qu'il effectue, dans la limite des permissions que tu as approuvées. Tu gardes le contrôle : change le mode read/write de ton forfait, restreins les scopes OAuth que tu approuves à la connexion, ou régénère et désactive ton token bearer, le tout depuis les Paramètres. Consulte la Politique de confidentialité pour tous les détails, ou écris à support@telldone.app si tu as des questions.
Dépannage
| Symptôme | Cause / solution |
|---|---|
| La page de consentement OAuth affiche « Wrong email or password » | Utilise l'e-mail et le mot de passe de ton compte TellDone (celui avec lequel tu te connectes à l'application). Si ton compte n'a que Sign in with Apple ou Google et pas de mot de passe, utilise plutôt la méthode par token bearer. |
| Connecté, mais l'IA ne peut rien créer ni modifier | Ton forfait ou ton mode est en read-only, ou la connexion n'a pas reçu les scopes d'écriture - reconnecte-toi et approuve-les, ou vérifie ton mode dans les Paramètres. |
| Erreur « Insufficient scope » renvoyée par un outil | La connexion OAuth n'a pas reçu ce scope. Reconnecte-toi et approuve la permission dont l'outil a besoin. |
| Les outils n'apparaissent pas du tout | MCP n'est pas activé sur ton compte (Paramètres → Agents IA), ou ton forfait n'inclut pas MCP. |
| Mon client me laisse seulement choisir dans une liste de connecteurs, et TellDone n'y est pas | TellDone n'est encore dans l'annuaire de connecteurs d'aucun client - ajoute-le comme connecteur personnalisé avec l'URL MCP, ou utilise la méthode par token bearer. |
Voir aussi
- Automatisations webhook - envoie des données vers des services externes automatiquement
- Todoist - synchro bidirectionnelle dédiée des tâches
- Notion - intégration Notion dédiée