Agenți AI (MCP)
MCP funcționează în toate planurile. Free și Basic primesc acces doar pentru citire la toate cele 10 instrumente de citire (Free este limitat la 100 de cereri pe zi). Pro și Ultra primesc acces complet de citire și scriere (27 de instrumente) și pot trece în modul doar pentru citire, dacă preferă.
MCP (Model Context Protocol) îți permite să conectezi asistenți AI precum ChatGPT și Claude, asistenți de programare și instrumente de automatizare direct la datele tale TellDone. După conectare, asistentul tău poate citi notițele, sarcinile, evenimentele, rapoartele, etichetele și istoricul modificărilor. În planurile Pro și peste, poate și să creeze, să actualizeze, să șteargă și să restaureze elemente. Există 27 de instrumente: 10 pentru citire (în orice plan) și 17 pentru scriere (Pro și peste).
Pe iPhone, Setări > Integrări > Agenți AI (MCP) deschide ecranul de configurare MCP, cu tokenul tău de acces mascat implicit:

Iar pe web:

Două moduri de conectare
Există două moduri de a conecta un client AI:
- Conectare cu TellDone (OAuth) (recomandat) - te conectezi cu contul tău TellDone și aprobi ce cere aplicația. ChatGPT și Claude folosesc această variantă, și nu ai de copiat niciun token.
- Token Bearer - copiezi tokenul de acces din Setări și îl lipești în configurația clientului tău. Cel mai simplu pentru scripturi, instrumente din linia de comandă și clienți fără flux OAuth încorporat.
| Client | Recomandat |
|---|---|
| ChatGPT (chatgpt.com sau aplicația ChatGPT pentru desktop, nu aplicația mobilă) | OAuth - adaugă un server MCP personalizat cu URL-ul MCP, apoi conectează-te |
| Claude (site, Desktop, aplicația pentru iPhone) / Cowork | OAuth - adaugă un conector personalizat cu URL-ul MCP, apoi conectează-te |
| Claude Code (CLI) | Token Bearer deocamdată - adaugă antetul Authorization cu tokenul tău |
| Scripturi sau propriul cod | Token Bearer - cel mai simplu de automatizat |
| Un client care permite doar alegerea dintr-un director de conectori listați | Adaugă TellDone ca un conector personalizat cu URL-ul MCP sau folosește un token Bearer. TellDone nu se află încă în niciun director de conectori |
Cerințe pe planuri
| Plan | MCP |
|---|---|
| Free | Doar citire (10 instrumente de citire), 100 de cereri pe zi |
| Basic | Doar citire (10 instrumente de citire), fără limită zilnică |
| Pro | Citire și scriere (27 de instrumente) - poate trece în modul doar citire |
| Ultra | Citire și scriere (27 de instrumente) - poate trece în modul doar citire |
Limita de 100 de cereri pe zi din planul Free numără doar apelurile de instrumente. Conectarea, autentificarea și listarea instrumentelor nu se numără. Ziua urmează fusul orar salvat în contul tău și se resetează la miezul nopții. Când atingi limita, asistentul tău primește un mesaj care o spune. Instrumentele de scriere sunt refuzate în planurile Free și Basic. Cu un token de acces, ele răspund că conexiunea este doar pentru citire și că crearea și editarea necesită Pro și peste. Cu autentificare (OAuth), cele mai multe răspund „Insufficient scope”, deoarece conexiunile Free și Basic nu primesc niciodată permisiuni de scriere.
Ecranul din aplicație
Deschide Setări > Integrări și, în secțiunea Agenți AI, atinge Agenți AI (MCP). Ecranul spune „Lasă ChatGPT, Claude și alți asistenți AI să lucreze cu notițele, sarcinile și evenimentele tale din TellDone.” și arată planul tău:
- Free: „Planul tău: acces doar citire, 100 de cereri pe zi. Scrierea vine cu Pro.”
- Basic: „Planul tău: acces doar citire”
- Pro și Ultra: „Planul tău: acces citire și scriere”
Cât timp MCP este dezactivat, atinge Activează ca să-l pornești.
După activare, ecranul arată:
- Mod de acces (Pro și Ultra) - alege Doar citire sau Citire și scriere oricând.
- Conectează un asistent - pașii pentru ChatGPT, Claude și Alt asistent. Te conectezi la TellDone în interiorul asistentului, deci nu ai nevoie de token.
- Aplicații conectate - asistenții pe care i-ai conectat, fiecare cu un buton Deconectează. Rămâne gol până la prima conectare.
- Pentru dezvoltatori (restrâns implicit) - câmpul Token de acces (ascuns, cu Afișează / Ascunde și Copiază), Regenerează tokenul și un comutator Claude Code / Cursor / Altele cu text gata făcut și propriul buton Copiază. Claude Code îți dă comanda
claude mcp add, Cursor îți dă JSON-ul pentru.cursor/mcp.json, iar Altele listează adresa serverului, opțiunea de autentificare OAuth și antetulAuthorization: Bearer. Cât timp tokenul este ascuns, fragmentele aratăYOUR_TOKEN. Atinge Afișează și ele conțin tokenul tău real.
Pe web există aceleași comenzi, într-o dispunere diferită, fără secțiunea restrânsă pentru dezvoltatori: adresa OAuth cu un buton Copy, comenzile pentru token, Connected apps cu Disconnect și Manual bearer token setup cu șase variante de client (Claude Code, Cursor, Windsurf, Codex, OpenClaw și cURL). Pe web, fragmentele conțin întotdeauna tokenul tău real, chiar dacă câmpul tokenului este ascuns, așa că tratează-le ca pe tokenul însuși.
- Documentație - un link către această pagină.
- Dezactivează - oprește MCP. Confirmi cu „Accesul tuturor uneltelor AI conectate va fi revocat.” Tokenul tău este șters și toate conexiunile se opresc. Dacă activezi MCP din nou, primești un token nou, iar aplicațiile conectate prin autentificare (OAuth) funcționează din nou fără să te mai conectezi. Ca să elimini definitiv o aplicație, atinge Deconectează la Aplicații conectate.
Păstrează tokenul de acces privat. Oricine are tokenul poate accesa datele tale TellDone. Atinge Regenerează tokenul dacă bănuiești vreodată că a fost expus.
Cum activezi
Poți configura MCP de pe oricare platformă:
- iPhone: Setări > Integrări > Agenți AI (MCP)
- Web: app.telldone.app > Settings > Integrations > AI agents (MCP)
Pași:
- Atinge Activează.
- În planurile Pro și Ultra, alege modul de acces (Doar citire sau Citire și scriere). Free și Basic sunt doar pentru citire.
- Ca să conectezi ChatGPT sau Claude, atinge-l la Conectează un asistent și urmează pașii (vezi mai jos). Nu ai nevoie de token.
- Pentru un client de programare pe iPhone, deschide Pentru dezvoltatori, atinge Afișează, alege Claude Code, Cursor sau Altele și atinge Copiază sub fragment. Dacă copiezi înainte să atingi Afișează, fragmentul conține
YOUR_TOKENîn locul tokenului tău. Pe web, alege clientul la Manual bearer token setup și copiază fragmentul; el conține deja tokenul tău. - Lipește fragmentul în client sau în fișierul lui de configurare.
Conectarea cu OAuth
OAuth este calea recomandată pentru ChatGPT, Claude și Cowork - te conectezi cu contul tău TellDone în loc să copiezi un token.
URL MCP pentru OAuth: https://api.telldone.app/mcp/user
Același server răspunde și la https://api.telldone.app/mcp/user/mcp, iar ambele adrese acceptă un token Bearer. Pentru autentificarea OAuth, folosește-o pe prima.
ChatGPT
Poți adăuga un server MCP personalizat pe chatgpt.com sau în aplicația ChatGPT pentru desktop. Aplicația mobilă ChatGPT nu poate adăuga conectori personalizați, iar aplicația TellDone o spune așa: „Aplicația ChatGPT adaugă conectori doar din catalogul său.” Atinge Trimite pașii pe computerul meu în TellDone ca să primești instrucțiunile pe un computer. După ce îl adaugi acolo, TellDone este disponibil și în aplicația mobilă ChatGPT.
Pașii din aplicație:
- Pe un computer, deschide chatgpt.com/plugins, dă clic pe Add și alege Add custom MCP server.
- Numește-l TellDone, lipește adresa de mai jos (
https://api.telldone.app/mcp/user) și alege OAuth. - Confirmă și instalează-l, apoi conectează-te la TellDone și permite accesul.
Vezi ghidul OpenAI despre servere MCP personalizate dacă se schimbă numele din meniuri.
Claude (site, Desktop, aplicația pentru iPhone) / Cowork
Pașii din aplicație:
- În Claude, deschide Customize → Connectors și atinge Add custom connector.
- Lipește adresa de mai jos (
https://api.telldone.app/mcp/user). - Conectează-te la TellDone și permite accesul.
Când te conectezi, pagina de consimțământ TellDone arată ce aplicație cere acces și permisiunile exacte pe care le dorește. Conectează-te cu e-mailul și parola TellDone și dă clic pe Allow access sau atinge Sign in with Apple ori Sign in with Google, care aprobă accesul în același pas. Claude se conectează singur - nu ai niciun token de copiat.
Dacă se schimbă numele din meniuri, vezi ghidul Anthropic despre adăugarea unui conector personalizat.
Conectarea cu un token Bearer
Pentru Claude Code, Cursor și alți clienți fără autentificare OAuth încorporată, lipește tokenul de acces direct în configurația clientului. În toate exemplele de mai jos, înlocuiește YOUR_TOKEN cu tokenul din setările tale.
Claude Code (token Bearer)
claude mcp add --transport http telldone \
https://api.telldone.app/mcp/user/mcp \
--header "Authorization: Bearer YOUR_TOKEN"
Nu trebuie să-l tastezi singur: la Setări > Integrări > Agenți AI (MCP) > Pentru dezvoltatori, atinge Afișează, alege Claude Code și atinge Copiază. Comanda copiată conține deja tokenul tău.
Cursor
Adaugă în .cursor/mcp.json (sau copiază de la Pentru dezvoltatori > Cursor după ce atingi Afișează):
{
"mcpServers": {
"telldone": {
"url": "https://api.telldone.app/mcp/user/mcp",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}
Alți clienți
Setări pentru alți clienți MCP:
Codex
Adaugă în 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
Alți clienți MCP
Orice instrument care acceptă MCP prin HTTP se poate conecta. Folosește endpointul https://api.telldone.app/mcp/user/mcp cu un antet de autorizare Bearer YOUR_TOKEN.
Dacă clientul sau proxy-ul tău rezervă antetul Authorization (de exemplu, unele gateway-uri în stil Smithery), trimite tokenul în X-MCP-Token: YOUR_TOKEN. Ambele antete funcționează; dacă sunt prezente amândouă, câștigă Authorization.
Testarea conexiunii
Poți verifica dacă tokenul funcționează cu o comandă cURL simplă:
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}'
Un răspuns reușit listează toate instrumentele disponibile.
Permisiuni (scopes)
Conexiunile OAuth au domenii de acces - în timpul autentificării vezi exact ce cere clientul și aprobi explicit.
| Scope | Permite aplicației să... |
|---|---|
notes:read | Citească notițele tale și să deschidă detaliile complete ale unei notițe (instrumentul search necesită și tasks:read și events:read) |
notes:write | Creeze, editeze și șteargă notițe (process_note necesită și tasks:write și events:write) |
tasks:read / tasks:write | Citească / creeze, editeze, finalizeze și șteargă sarcini |
events:read / events:write | Citească / creeze, editeze și șteargă evenimente |
reports:read | Citească rapoartele tale zilnice, săptămânale, lunare și anuale |
tags:read / tags:write | Listeze etichetele tale / creeze, fixeze, șteargă și restaureze etichete |
profile:read | Citească informațiile contului și abonamentul tău |
offline_access | Rămână conectată (emite un token de reîmprospătare, ca să nu trebuiască să te conectezi din nou la fiecare sesiune) |
Scope-urile limitează ce poate face o conexiune: o conexiune cu doar notes:read nu poate apela un instrument de scriere. Planul tău stabilește o a doua limită, în plus.
Conexiunile cu token Bearer nu au scope-uri individuale - sunt guvernate doar de modul de citire/scriere al planului tău.
Ce poți face
Instrumente de citire (10) - toate planurile
| Instrument | Ce face |
|---|---|
| get_notes | Listează notițele cu filtre (etichete, interval de date, căutare în text) |
| get_note | Afișează o singură notiță, cu sarcinile, evenimentele și transcrierea completă |
| get_notes_full | Obține mai multe notițe cu sarcinile și evenimentele încorporate, într-un singur apel |
| get_tasks | Listează sarcinile filtrate după stare (de făcut, finalizate, toate), etichete sau date |
| get_events | Listează evenimentele din calendar, filtrate după intervalul de date |
| get_reports | Citește rapoartele tale zilnice, săptămânale, lunare și anuale (markdown complet) |
| get_tags | Afișează toate etichetele tale, sortate după utilizare |
| get_profile | Arată informațiile contului și câte notițe, sarcini și evenimente ai |
| search | Caută în notițe, sarcini și evenimente (căutare în text + căutare semantică pentru notițe) |
| get_change_log | Arată istoricul modificărilor unei notițe, sarcini sau eveniment și dacă fiecare modificare a fost anulată |
Instrumentul search acceptă căutarea semantică pentru notițe - găsește rezultate după sens, nu doar după cuvinte-cheie. De exemplu, căutarea „ședințe despre buget” va găsi notițe despre discuții financiare chiar dacă nu conțin cuvântul „buget”.
Instrumente de scriere (17) - Pro și Ultra
| Instrument | Ce face |
|---|---|
| process_note | Fluxul AI complet - trimiți text sau audio și primești o notiță cu sarcini, evenimente și etichete |
| create_note | Adaugă o notiță text simplă (fără analiză AI) |
| create_task | Adaugă o sarcină cu prioritate, termen limită, memento și etichete |
| create_event | Adaugă un eveniment de calendar cu dată, oră, locație, mementouri, participanți și regulă de repetare |
| update_note | Schimbă titlul, rezumatul, tipul, etichetele, prioritatea sau starea unei notițe |
| update_task | Schimbă titlul, descrierea, prioritatea, termenul limită, mementoul, etichetele sau starea unei sarcini |
| complete_task | Marchează o sarcină ca finalizată |
| update_event | Schimbă detaliile, ora, locația, mementourile, participanții, regula de repetare, etichetele sau starea unui eveniment |
| delete_note | Șterge o notiță. Sarcinile și evenimentele ei rămân |
| delete_task | Șterge o sarcină |
| delete_event | Șterge un eveniment |
| undo_change_log_entry | Anulează o singură modificare urmărită - făcută de AI sau de tine - restabilind valoarea anterioară a câmpului |
| restore_entity | Readuce o notiță sau o sarcină ștearsă ori arhivată, sau un eveniment șters ori anulat |
| create_tag | Creează o etichetă nouă sau transformă o etichetă sugerată automat într-una permanentă |
| set_tag_pinned | Fixează sau defixează o etichetă, ca să apară în față |
| delete_tag | Elimină o etichetă (poate fi restaurată cu restore_tag) |
| restore_tag | Readuce o etichetă ștearsă |
Toate operațiile de scriere și ștergere apar imediat pe dispozitivele tale conectate (telefon, aplicația web).
Referință instrumente
get_notes
Listează notițele cu filtrare opțională. Filtrele de date folosesc recorded_at (când ai înregistrat notița vocală) sau created_at pentru o notiță care nu are așa ceva.
| Parametru | Tip | Implicit | Descriere |
|---|---|---|---|
limit | int | 20 | Numărul de notițe returnate (maximum 50) |
offset | int | 0 | Omite atâtea notițe (pentru paginare, maximum 10000) |
tags | string | - | Filtrează după etichete, separate prin virgulă (se potrivește oricare) |
search | string | - | Căutare în text în titlu și rezumat |
date_from | string | - | Data de început, YYYY-MM-DD (inclusiv) |
date_to | string | - | Data de sfârșit, YYYY-MM-DD (exclusiv) |
standalone_only | bool | false | Când este true, ascunde notițele de continuare (atașate unei notițe, sarcini sau eveniment părinte) și returnează doar notițele de sine stătătoare |
Returnează: lista de notițe cu id, title, summary, type, tags, priority, status, recorded_at, created_at.
get_note
Obține o singură notiță cu transcrierea completă și toate sarcinile și evenimentele asociate.
| Parametru | Tip | Descriere |
|---|---|---|
note_id | string | UUID-ul notiței |
Returnează: notița cu title, summary, transcript, type, tags, priority, status, metadata, created_at, plus listele tasks[] și events[].
Returnează și transcript_speakers (replicile transcrierii etichetate pe vorbitori, pentru ședințe cu mai mulți vorbitori - altfel null), speaker_count (null dacă înregistrarea nu a fost împărțită pe vorbitori) și parent_note_id/parent_task_id/parent_event_id (setate când această notiță este o modificare de continuare a altui element). Fiecare intrare din tasks[]/events[] include și reminders_at/recurrence_rule (sarcini) sau reminder_minutes/attendees/recurrence_rule (evenimente).
get_notes_full
Obține mai multe notițe, cu sarcinile și evenimentele lor, într-un singur apel. Aceleași filtre ca la get_notes, cu excepția lui search, iar fiecare notiță include tasks[] și events[] încorporate.
| Parametru | Tip | Implicit | Descriere |
|---|---|---|---|
limit | int | 10 | Numărul de notițe (maximum 20) |
offset | int | 0 | Omite atâtea notițe |
tags | string | - | Filtrează după etichete |
date_from | string | - | Data de început, YYYY-MM-DD |
date_to | string | - | Data de sfârșit, YYYY-MM-DD |
standalone_only | bool | false | Când este true, ascunde notițele de continuare (atașate unei notițe, sarcini sau eveniment părinte) și returnează doar notițele de sine stătătoare |
get_tasks
Listează sarcinile cu filtrare.
| Parametru | Tip | Implicit | Descriere |
|---|---|---|---|
status | string | "todo" | Filtru: todo, done sau all |
limit | int | 30 | Numărul de sarcini (maximum 100) |
offset | int | 0 | Omite atâtea sarcini |
tags | string | - | Filtrează după etichete, separate prin virgulă |
date_from | string | - | Data de început, YYYY-MM-DD (filtrează după termenul limită; sarcinile fără termen limită sunt excluse) |
date_to | string | - | Data de sfârșit, YYYY-MM-DD (filtrează după termenul limită; sarcinile fără termen limită sunt excluse) |
Returnează: lista de sarcini cu id, title, description, status, priority, tags, deadline, reminder_at, reminders_at, completed_at, completed_by, source, created_at. reminder_at oglindește prima intrare din reminders_at, pentru compatibilitate cu versiunile anterioare - folosește reminders_at ca să vezi toate mementourile unei sarcini.
get_events
Listează evenimentele din calendar cu filtrare pe intervalul de date.
| Parametru | Tip | Implicit | Descriere |
|---|---|---|---|
limit | int | 30 | Numărul de evenimente (maximum 100) |
offset | int | 0 | Omite atâtea evenimente |
date_from | string | - | Prima zi, YYYY-MM-DD, în fusul tău orar (inclusiv). Evenimentele care se suprapun cu intervalul sunt incluse, deci un eveniment pe mai multe zile apare în fiecare zi pe care o acoperă |
date_to | string | - | Ultima zi, YYYY-MM-DD, în fusul tău orar (inclusiv) |
Returnează: lista de evenimente cu id, title, description, status, start_at, end_at, location, is_all_day, tags, note_id, reminder_minutes, attendees, recurrence_rule, created_at.
get_reports
Obține rapoartele tale generate de AI, cu conținut markdown complet.
| Parametru | Tip | Implicit | Descriere |
|---|---|---|---|
report_type | string | "daily" | Tip: daily, weekly, monthly sau yearly |
limit | int | 5 | Numărul de rapoarte (maximum 10) |
Returnează: lista de rapoarte cu id, type, period_start, period_end, content_md, created_at.
Rapoartele lunare sunt lungi (adesea cu mult peste 1.000 de cuvinte). Folosește limit=1 dacă instrumentul tău AI are o fereastră de context mică.
get_tags
Obține toate etichetele tale, sortate mai întâi cele fixate, apoi după numărul de utilizări.
Fără parametri. Returnează până la 100 de etichete, fiecare cu tag, usage_count, is_pinned, is_manual.
get_profile
Obține informațiile contului și câte notițe, sarcini și evenimente ai.
Fără parametri. Returnează email, display_name, locale, transcription_locale, timezone, subscription, mcp_mode, created_at și stats (numărul de notițe/sarcini/evenimente).
search
Caută simultan în notițe, sarcini și evenimente. Pentru notițe, acceptă atât căutarea în text, cât și căutarea semantică (găsește rezultate după sens, folosind embeddinguri AI).
| Parametru | Tip | Implicit | Descriere |
|---|---|---|---|
query | string | obligatoriu | Textul căutat (maximum 500 de caractere) |
limit | int | 20 | Maximum de rezultate pe tip (maximum 20) |
semantic | bool | true | Activează căutarea semantică pentru notițe |
Returnează rezultatele grupate pe tip: notes[], tasks[], events[]. Fiecare rezultat are id, type, title, detail, created_at.
Setează semantic=false pentru o căutare doar în text, mai rapidă.
get_change_log
Vezi istoricul modificărilor unei notițe, sarcini sau eveniment - fiecare modificare de continuare făcută de AI și fiecare modificare manuală făcută de tine, cele mai noi primele.
| Parametru | Tip | Implicit | Descriere |
|---|---|---|---|
entity | string | obligatoriu | notes, tasks sau events |
entity_id | string | obligatoriu | UUID-ul elementului |
include_manual | bool | false | Include și modificările tale manuale, nu doar cele făcute de AI |
Returnează: lista de intrări de modificare cu id (folosește-l ca entry_id pentru anulare), field_name, old_value, new_value, source (follow_up, smart_context, correction_sync pentru o corectare de nume pe care TellDone a extins-o într-o notiță, sau manual), origin_note_id, edited_at și reverted_at (setat după anulare).
process_note (Pro și Ultra)
Fluxul AI complet - funcționează la fel ca înregistrarea în aplicație. Trimiți text sau audio, iar TellDone transcrie, analizează cu AI și creează o notiță structurată cu sarcini, evenimente, etichete și embeddinguri extrase.
Acest instrument este asincron: returnează imediat un audio_id și procesează în fundal. Rezultatele ajung prin sincronizare în timp real pe dispozitivele tale conectate sau poți interoga cu get_notes().
| Parametru | Tip | Descriere |
|---|---|---|
text | string | Obligatoriu. Textul de analizat. Dacă nu este gol, se folosește ca transcriere, iar audio-ul trimis nu este transcris; trimite "" ca audio-ul să fie transcris. Limită când nu se trimite audio: Pro 20.000 / Ultra 50.000 de caractere |
audio_base64 | string | Fișier audio codificat Base64. Întreaga cerere este limitată la 10 MB, deci audio-ul în sine poate avea aproximativ 7 MB. Este transcris doar când text este gol |
audio_format | string | m4a, ogg, wav, mp3, aac sau webm (implicit: m4a) |
parent_task_id | string | UUID-ul unei sarcini a cărei continuare este aceasta |
parent_note_id | string | UUID-ul unei notițe a cărei continuare este aceasta |
parent_event_id | string | UUID-ul unui eveniment al cărui continuare este aceasta |
Trimite întotdeauna text. Ca TellDone să transcrie audio, trimite audio_base64 cu text setat la un șir gol (""). Dacă text nu este gol, TellDone îl folosește ca transcriere și nu transcrie audio-ul. Setează cel mult unul dintre cele trei ID-uri părinte.
Returnează: {"audio_id": "...", "status": "processing", "mode": "text-only"} sau "mode": "audio+stt" dacă s-a trimis audio.
process_note este supus cotelor planului tău (încărcări pe zi, notițe pe lună, lungimea maximă a textului). get_profile arată doar câte notițe, sarcini și evenimente ai, nu limitele tale. Verifică-ți utilizarea în aplicație la Setări > Utilizare.
create_note (Pro și Ultra)
Creează instant o notiță text simplă. Nu declanșează analiza AI - nu se extrag sarcini sau evenimente. Folosește process_note când vrei ca TellDone să găsească sarcini și evenimente pentru tine.
| Parametru | Tip | Limită | Descriere |
|---|---|---|---|
title | string | 200 de caractere | Obligatoriu |
summary | string | 1000 de caractere | Opțional. Scurt rezumat introductiv (1-3 propoziții). Se folosește în rapoartele tale, deci păstrează-l scurt |
transcript | string | în funcție de plan | Opțional. Corp lung afișat în detaliile notiței. Nu este inclus în rapoarte. Limite: Pro 20.000 / Ultra 50.000 de caractere |
type | string | - | Opțional. task, idea, info (implicit), status, meeting, event sau reflection |
tags | string | 20 de etichete | Separate prin virgulă, opțional |
suppress_external_sync | boolean | - | Opțional, implicit false. Setează true pentru elemente importate sau adăugate în masă: elementul nu mai este trimis în aplicațiile conectate sau în automatizările tale |
create_task (Pro și Ultra)
Creează o sarcină nouă. Sarcina este creată și în Todoist, Notion sau Microsoft To Do, dacă le-ai conectat, iar automatizările tale primesc task.created. Asta nu se întâmplă când trimiți suppress_external_sync: true.
| Parametru | Tip | Limită | Descriere |
|---|---|---|---|
title | string | 200 de caractere | Obligatoriu |
description | string | 2000 de caractere | Opțional |
priority | string | - | low, medium (implicit) sau high |
deadline | string | - | YYYY-MM-DD, opțional |
reminder_at | string | - | Dată și oră ISO 8601 (de exemplu 2026-04-15T09:00:00Z), opțional |
tags | string | 20 de etichete | Separate prin virgulă, opțional |
note_id | string | - | UUID pentru a lega sarcina de o notiță părinte, opțional |
suppress_external_sync | boolean | - | Opțional, implicit false. Setează true pentru elemente importate sau adăugate în masă: elementul nu mai este trimis în aplicațiile conectate sau în automatizările tale |
create_event (Pro și Ultra)
Creează un eveniment de calendar. Evenimentul este creat și în Notion, dacă l-ai conectat, iar automatizările tale primesc calendar_event.created. Asta nu se întâmplă când trimiți suppress_external_sync: true.
| Parametru | Tip | Limită | Descriere |
|---|---|---|---|
title | string | 200 de caractere | Obligatoriu |
start_at | string | - | Dată și oră ISO 8601, obligatoriu |
end_at | string | - | Dată și oră ISO 8601 (implicit: început + 1 oră; pentru un eveniment pe toată ziua, o zi) |
description | string | 2000 de caractere | Opțional |
location | string | 200 de caractere | Opțional |
is_all_day | bool | - | Implicit: false |
tags | string | 20 de etichete | Separate prin virgulă, opțional |
reminder_minutes | string | - | Minute înainte de eveniment, separate prin virgulă (de exemplu 15,60), opțional |
attendees | string | - | Nume sau adrese de e-mail, separate prin virgulă, opțional |
recurrence_rule | string | - | Șir RRULE (de exemplu FREQ=WEEKLY;BYDAY=MO,WE,FR), opțional. Regulile mai frecvente decât cele orare sau care nu se pot întâmpla niciodată sunt refuzate |
note_id | string | - | UUID pentru a lega evenimentul de o notiță părinte, opțional |
suppress_external_sync | boolean | - | Opțional, implicit false. Setează true pentru elemente importate sau adăugate în masă: elementul nu mai este trimis în aplicațiile conectate sau în automatizările tale |
update_note (Pro și Ultra)
Actualizează unul sau mai multe câmpuri ale unei notițe existente. Se schimbă doar câmpurile pe care le furnizezi. Funcționează exact ca editarea notiței în aplicație: titlul, rezumatul, etichetele și tipul ajung în pagina ei din Notion, automatizările tale primesc note.updated, iar modificarea apare în istoric, de unde o poți anula. O modificare a transcrierii este salvată și trimisă și în Notion, dar nu apare în istoric.
| Parametru | Tip | Descriere |
|---|---|---|
note_id | string | Obligatoriu, UUID-ul notiței |
title | string | Titlu nou (maximum 200 de caractere) |
summary | string | Rezumat nou (maximum 1000 de caractere, trimite un spațiu " " ca să-l golești) |
transcript | string | Transcriere nouă (limită în funcție de plan, trimite un spațiu " " ca s-o golești) |
type | string | task, idea, info, status, meeting, event sau reflection |
tags | string | Etichete separate prin virgulă (înlocuiește toate etichetele existente, maximum 20) |
priority | string | low, medium sau high |
status | string | active sau archived |
Pentru notițele create de fluxul vocal, transcript este rezultatul original al recunoașterii vocale. Suprascrierea lui îți înlocuiește cuvintele originale. Ca să le păstrezi, adaugă la transcriere în loc să o înlocuiești.
update_task (Pro și Ultra)
Actualizează unul sau mai multe câmpuri ale unei sarcini existente. Se schimbă doar câmpurile pe care le furnizezi. Funcționează exact ca editarea sarcinii în aplicație: modificarea ajunge în copiile ei din Todoist, Notion și Microsoft To Do, automatizările tale primesc task.updated, iar modificarea apare în istoricul sarcinii, de unde o poți anula. Dacă setezi status pe done, sarcina este finalizată la fel ca prin complete_task. Termenul limită poate fi o dată sau o dată cu oră completă (se folosește data). Fiecare etichetă poate avea cel mult 50 de caractere.
| Parametru | Tip | Descriere |
|---|---|---|
task_id | string | Obligatoriu, UUID-ul sarcinii |
title | string | Titlu nou |
description | string | Descriere nouă (trimite un spațiu " " ca s-o golești) |
priority | string | low, medium sau high |
deadline | string | YYYY-MM-DD. Acest instrument nu poate șterge un termen limită; șterge-l în aplicație |
status | string | todo sau done |
tags | string | Etichete separate prin virgulă (înlocuiește toate etichetele existente, maximum 20) |
reminder_at | string | Dată și oră ISO 8601 (trimite un spațiu ca s-o ștergi) |
Setarea lui status pe done înregistrează și când și cum a fost finalizată sarcina.
complete_task (Pro și Ultra)
Scurtătură pentru a marca o sarcină ca finalizată.
| Parametru | Tip | Descriere |
|---|---|---|
task_id | string | Obligatoriu, UUID-ul sarcinii |
Returnează o eroare dacă sarcina nu există sau este deja finalizată.
update_event (Pro și Ultra)
Actualizează unul sau mai multe câmpuri ale unui eveniment existent. Se schimbă doar câmpurile pe care le furnizezi. Funcționează exact ca editarea evenimentului în aplicație: modificarea ajunge în pagina lui din Notion, automatizările tale primesc calendar_event.updated, iar modificarea apare în istoric, de unde o poți anula.
| Parametru | Tip | Descriere |
|---|---|---|
event_id | string | Obligatoriu, UUID-ul evenimentului |
title | string | Titlu nou |
description | string | Descriere nouă (trimite un spațiu ca s-o ștergi) |
start_at | string | Oră nouă de început (ISO 8601) |
end_at | string | Oră nouă de sfârșit (ISO 8601) |
location | string | Locație nouă (trimite un spațiu ca s-o ștergi) |
status | string | confirmed, tentative sau cancelled |
tags | string | Etichete separate prin virgulă (înlocuiește toate etichetele existente, maximum 20) |
is_all_day | string | "true" sau "false" |
reminder_minutes | string | Minute înainte de eveniment, separate prin virgulă (de exemplu 15,60, trimite un spațiu ca să le ștergi) |
attendees | string | Nume sau adrese de e-mail, separate prin virgulă (trimite un spațiu ca să le ștergi) |
recurrence_rule | string | Șir RRULE (trimite un spațiu ca s-o ștergi) |
delete_note (Pro și Ultra)
Șterge o notiță. Se șterge doar notița: sarcinile și evenimentele ei rămân. Funcționează exact ca ștergerea în aplicație: automatizările tale primesc note.deleted. O copie a notiței din Notion nu este eliminată (nici aplicația nu o elimină).
| Parametru | Tip | Descriere |
|---|---|---|
note_id | string | Obligatoriu, UUID-ul notiței |
delete_task (Pro și Ultra)
Șterge o sarcină. Funcționează exact ca ștergerea în aplicație: copiile ei din Todoist, Notion și Microsoft To Do sunt șterse și ele, iar automatizările tale primesc task.deleted. O poți readuce cu restore_entity.
| Parametru | Tip | Descriere |
|---|---|---|
task_id | string | Obligatoriu, UUID-ul sarcinii |
delete_event (Pro și Ultra)
Șterge un eveniment. Funcționează exact ca ștergerea în aplicație: automatizările tale primesc calendar_event.deleted. Pagina evenimentului din Notion nu este eliminată (nici aplicația nu o elimină).
| Parametru | Tip | Descriere |
|---|---|---|
event_id | string | Obligatoriu, UUID-ul evenimentului |
undo_change_log_entry (Pro și Ultra)
Anulează o singură modificare urmărită - readuce câmpul la valoarea de dinainte de acea modificare, indiferent dacă a fost făcută de AI (dintr-o înregistrare de continuare) sau direct de tine.
| Parametru | Tip | Descriere |
|---|---|---|
entity | string | Obligatoriu, notes, tasks sau events |
entity_id | string | Obligatoriu, UUID-ul elementului |
entry_id | string | Obligatoriu, id-ul intrării de modificare din get_change_log |
Returnează: {"entry_id", "entity_type", "entity_id", "field_name", "restored_value", "reverted_at"}. Anularea aceleiași intrări de două ori returnează o eroare - este deja anulată.
restore_entity (Pro și Ultra)
Readuce o notiță sau o sarcină ștearsă ori arhivată, sau un eveniment șters ori anulat.
| Parametru | Tip | Descriere |
|---|---|---|
entity | string | Obligatoriu, notes, tasks sau events |
entity_id | string | Obligatoriu, UUID-ul elementului |
Returnează: elementul restaurat, ca JSON.
create_tag (Pro și Ultra)
Creează o etichetă nouă sau transformă o etichetă existentă, sugerată automat, într-una permanentă.
| Parametru | Tip | Descriere |
|---|---|---|
tag | string | Obligatoriu, 1-50 de caractere (stocată cu litere mici) |
category | string | Opțional |
set_tag_pinned (Pro și Ultra)
Fixează sau defixează o etichetă, ca să apară în fruntea listei tale de etichete.
| Parametru | Tip | Descriere |
|---|---|---|
tag | string | Obligatoriu |
pinned | bool | Obligatoriu |
Etichetele care conțin caracterul / nu pot fi fixate.
delete_tag (Pro și Ultra)
Elimină o etichetă. Poate fi readusă cu restore_tag.
| Parametru | Tip | Descriere |
|---|---|---|
tag | string | Obligatoriu |
restore_tag (Pro și Ultra)
Readuce o etichetă ștearsă.
| Parametru | Tip | Descriere |
|---|---|---|
tag | string | Obligatoriu |
Limite de intrare
| Câmp | Lungime maximă | Folosit în |
|---|---|---|
| title | 200 de caractere | create/update note, task, event |
| description | 2.000 de caractere | create/update task, event |
| summary | 1.000 de caractere (strict) | create/update note. Se folosește în rapoartele tale, deci păstrează-l scurt |
| transcript | în funcție de plan: Pro 20.000 / Ultra 50.000 | create/update note. Corp lung, nu apare în rapoarte |
| text | în funcție de plan: Pro 20.000 / Ultra 50.000 (când nu se trimite audio) | process_note |
| location | 200 de caractere | create/update event |
| tags | 20 de etichete | create/update note, task, event |
| search query | 500 de caractere | search |
| audio_base64 | aproximativ 7 MB de audio (întreaga cerere este limitată la 10 MB) | process_note |
Dacă depășești o limită, instrumentul returnează un mesaj de eroare precum "title too long (max 200 chars, got 250)".
Gestionarea erorilor
Majoritatea instrumentelor returnează erorile ca JSON:
{"error": "description of what went wrong"}
Erorile de plan, de scope și de limită de intrare revin ca eroare de instrument, cu același mesaj.
Erori frecvente:
| Eroare | Când |
|---|---|
"This TellDone connection is read-only. Creating and editing needs the Pro or Ultra plan." | Instrument de scriere apelat în modul doar citire (Free și Basic sau Pro și Ultra trecute pe doar citire) |
"Daily limit reached: the Free plan includes 100 TellDone requests a day..." | Planul Free și-a epuizat cele 100 de cereri pe zi |
"Daily limit reached (N/M today)" | Ai creat azi, prin asistenți AI, atâtea elemente cât permite planul tău (process_note, create_note, create_task și create_event se numără fiecare) |
"Notes limit reached (X/Y this month)" | Limita lunară de notițe a planului tău este epuizată |
"Invalid note_id format" | S-a trimis ca ID un șir care nu este UUID |
"Note not found" | ID-ul nu există sau aparține altui utilizator |
"Task not found or already completed" | complete_task pe o sarcină inexistentă sau deja finalizată |
"title too long (max 200 chars, got N)" | Limită de intrare depășită |
"Too many tags (max 20)" | S-au trimis mai mult de 20 de etichete |
Erori la nivel HTTP:
| Cod | Semnificație |
|---|---|
| 401 | Token invalid, revocat sau șters (dezactivarea MCP îți șterge tokenul, iar regenerarea îl înlocuiește) |
| 429 | Limita de cereri depășită (5 cereri/s, vârf până la 20) |
În planul Free, atingerea limitei de 100 de cereri pe zi este raportată ca mesaj de eroare de instrument (nu ca cod HTTP) și se resetează la miezul nopții, în fusul orar salvat în contul tău.
Exemple de utilizare
Toate exemplele folosesc cURL cu protocolul MCP JSON-RPC. Înlocuiește YOUR_TOKEN cu tokenul tău de acces.
Citirea datelor
# 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}}}'
Scrierea datelor (Pro și 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>"}}}'
Un răspuns reușit arată astfel:
{
"jsonrpc": "2.0",
"id": 11,
"result": {
"content": [{"type": "text", "text": "{\"id\":\"...\",\"title\":\"Review PR\",\"status\":\"todo\"}"}]
}
}
Instrumentele de scriere și actualizare returnează răspunsuri scurte, în principal id, title și status. Instrumentele de ștergere returnează id și deleted. Ca să obții toate detaliile (etichete, prioritate, termen limită etc.) după o scriere, fă un apel de citire ulterior, precum get_tasks sau get_note.
Gestionarea tokenului
| Acțiune | Cum |
|---|---|
| Vezi tokenul | iPhone Setări > Integrări > Agenți AI (MCP) > Pentru dezvoltatori (sau pe web, Settings > Integrations > AI agents (MCP)), atinge Afișează |
| Copiază tokenul | Atinge Copiază lângă token |
| Regenerează | Atinge Regenerează tokenul și confirmă. Tokenul vechi nu mai funcționează imediat. Asistenții conectați prin autentificare OAuth nu sunt afectați; deconectează-i la Aplicații conectate |
| Schimbă modul | Pro și Ultra: alege Doar citire sau Citire și scriere. Free și Basic sunt întotdeauna doar pentru citire |
| Dezactivează | Atinge Dezactivează și confirmă („Accesul tuturor uneltelor AI conectate va fi revocat.”). Tokenul tău este șters și toate conexiunile se opresc. Dacă activezi MCP din nou, primești un token nou, iar aplicațiile conectate prin autentificare (OAuth) funcționează din nou fără să te mai conectezi. Ca să elimini definitiv o aplicație, atinge Deconectează la Aplicații conectate |
Ce poți cere agentului tău AI
După conectare, cere-i instrumentului tău AI lucruri precum:
Treci în revistă ziua:
- „Ce am lucrat azi?”
- „Arată-mi notițele din această săptămână”
- „Ce sarcini sunt restante?”
Gestionează sarcini:
- „Creează o sarcină: revizuiește raportul trimestrial, prioritate ridicată, termen vineri”
- „Marchează sarcina Figma ca finalizată”
- „La ce sarcini lucrez?”
Caută și analizează:
- „Găsește toate notițele despre strategia de marketing”
- „Ce evenimente am săptămâna viitoare?”
- „Rezumă-mi rapoartele zilnice din săptămâna trecută”
Planifică înainte:
- „Creează un eveniment: ședința echipei mâine la 10”
- „Ce am în calendar săptămâna aceasta?”
- „Arată-mi cele mai folosite etichete - în ce îmi petrec cel mai mult timp?”
Asistentul tău poate citi notițele, sarcinile, evenimentele și rapoartele tale și poate răspunde la întrebări complexe combinând informații din mai multe instrumente. În planurile Pro și Ultra, cu Citire și scriere activate, poate și să le creeze, să le actualizeze și să le șteargă.
Bine de știut
- Integrări și automatizări -
process_notefuncționează ca o înregistrare, deci notița, sarcinile și evenimentele lui ajung în integrările tale conectate și în automatizările webhook. Elementele pe care le creezi, le editezi sau le ștergi cu celelalte instrumente de scriere se comportă exact ca în aplicație: ajung în integrările tale conectate (evenimentele și modificările notițelor ajung doar în Notion) și în automatizările tale. Restaurarea unei sarcini curestore_entitysau anularea finalizării ei cuundo_change_log_entryo redeschide și în integrările cu care a fost sincronizată. - Modificări făcute de un asistent AI - apar în istoricul elementului marcate ca făcute de un asistent. Nu sunt folosite pentru a antrena recunoașterea vocală din TellDone și nu sunt copiate în celelalte elemente ale notiței. Modificările prin asistent împart cu aplicația aceeași limită de 30 de modificări pe minut.
- Căutare semantică - notițele create cu
process_notesaucreate_noteprimesc amândouă embeddinguri, deci apar în căutarea semantică după o scurtă întârziere. - Filtre de date - pentru notițe, datele sunt zile UTC. Pentru evenimente, datele sunt zilele tale locale, iar un eveniment care se suprapune cu intervalul este inclus. Pentru sarcini, filtrul este data termenului limită.
Securitate
- Fiecare utilizator primește un token de acces unic de 384 de biți
- Tokenul tău este revocat instantaneu când dezactivezi MCP sau îl regenerezi
- Fiecare cerere este limitată la contul tău, deci agentul tău poate accesa doar propriile tale date
- Conexiunea folosește HTTPS cu limitare a ratei (5 cereri/s, vârf până la 20)
- Conexiunile OAuth folosesc PKCE, coduri de autorizare de unică folosință și tokenuri de acces cu durată scurtă - poți revoca o conexiune oricând din aplicație
Pentru o analiză tehnică aprofundată - endpointuri de descoperire, durata de viață a tokenurilor, fluxul OAuth complet - vezi referința noastră open-source a conectorului la github.com/exp78/telldone-mcp sau interoghează direct https://api.telldone.app/.well-known/oauth-protected-resource.
Confidențialitate și fluxul datelor
Un instrument AI conectat primește datele tale doar când apelează TellDone, de obicei pentru că i-ai cerut ceva. Primește doar răspunsurile la acele apeluri, în limitele permisiunilor aprobate de tine. Ca să limitezi accesul, treci pe Doar citire, deconectează aplicația la Aplicații conectate sau regenerează ori dezactivează tokenul de acces din Setări. Vezi Politica de confidențialitate pentru detalii complete sau scrie la support@telldone.app dacă ai întrebări.
Depanare
| Simptom | Cauză / remediu |
|---|---|
| Pagina de consimțământ OAuth spune „Wrong email or password” | Folosește e-mailul și parola cu care te conectezi în aplicație sau alege Sign in with Apple / Sign in with Google pe aceeași pagină. |
| Conectat, dar AI-ul nu poate crea sau edita nimic | Planul tău este Free sau Basic (doar citire), modul tău este doar citire sau conexiunea nu are permisiuni de scriere. Dacă te-ai conectat înainte să treci la un plan superior, deconectează aplicația la Aplicații conectate și conectează-o din nou. Îți poți verifica modul în Setări. |
| Eroarea „Insufficient scope” de la un instrument | Conexiunea nu are acea permisiune. În planurile Free și Basic, permisiunile de scriere nu se acordă niciodată, deci crearea și editarea necesită Pro sau Ultra. Dacă te-ai conectat înainte să treci la un plan superior, deconectează aplicația la Aplicații conectate și conectează-o din nou. |
Fragmentul copiat spune YOUR_TOKEN, iar clientul nu se poate conecta | L-ai copiat cât timp tokenul era ascuns. La Pentru dezvoltatori, atinge Afișează, apoi copiază din nou fragmentul. |
| Instrumentele nu apar deloc | MCP nu este activat în contul tău (Setări > Integrări > Agenți AI (MCP) > Activează). |
| „Daily limit reached” | Două limite folosesc acest mesaj. „Daily limit reached: the Free plan includes 100 TellDone requests a day” este limita de cereri a planului Free. „Daily limit reached (N/M today)” înseamnă că ai creat azi, prin asistenți AI, atâtea elemente cât permite planul tău: process_note, create_note, create_task și create_event se numără fiecare, inclusiv în planurile Pro și Ultra. Ambele se resetează la miezul nopții, în fusul orar salvat în contul tău. |
| Clientul meu îmi permite doar să aleg dintr-o listă de conectori, iar TellDone nu apare în ea | TellDone nu se află încă în directorul de conectori al niciunui client - adaugă-l ca un conector personalizat cu URL-ul MCP sau folosește metoda cu token Bearer. |
Vezi și
- Automatizări prin webhook - trimite date automat către servicii externe
- Todoist - sincronizare bidirecțională dedicată a sarcinilor
- Notion - integrare Notion dedicată