AI agenti (MCP)
MCP radi na svim planovima. Free i Basic dobijaju pristup samo za čitanje svim 10 alata za čitanje (Free je ograničen na 100 zahtjeva dnevno). Pro i Ultra dobijaju puni pristup za čitanje i pisanje (27 alata) i, ako žele, mogu prijeći na način samo za čitanje.
MCP (Model Context Protocol) omogućava da AI asistente poput ChatGPT-a i Claudea, asistente za programiranje i alate za automatizaciju povežeš direktno sa svojim TellDone podacima. Kad se poveže, tvoj asistent može čitati tvoje bilješke, zadatke, događaje, izvještaje, oznake i historiju promjena. Na Pro i višim planovima može i praviti, ažurirati, brisati i vraćati stavke. Ukupno ima 27 alata: 10 za čitanje (svaki plan) i 17 za pisanje (Pro i viši).
Na iPhoneu Podešavanja > Integracije > AI agenti (MCP) otvara ekran za postavljanje MCP-a, s pristupnim tokenom sakrivenim po zadanim postavkama:

A na webu:

Dva načina povezivanja
Postoje dva načina da povežeš AI klijent:
- Prijava putem TellDonea (OAuth) (preporučeno) - prijaviš se svojim TellDone nalogom i odobriš ono što aplikacija traži. ChatGPT i Claude koriste ovo, a token nije potrebno kopirati.
- Bearer token - kopiraj pristupni token iz Podešavanja i zalijepi ga u konfiguraciju svog klijenta. Najjednostavnije za skripte, alate komandne linije i klijente koji nemaju ugrađenu OAuth prijavu.
| Klijent | Preporuka |
|---|---|
| ChatGPT (chatgpt.com ili desktop aplikacija ChatGPT, ne mobilna aplikacija) | OAuth - dodaj prilagođeni MCP server s MCP URL-om, zatim se prijavi |
| Claude (web stranica, Desktop, iPhone aplikacija) / Cowork | OAuth - dodaj prilagođeni konektor s MCP URL-om, zatim se prijavi |
| Claude Code (CLI) | Za sada Bearer token - dodaj zaglavlje Authorization sa svojim tokenom |
| Skripte ili tvoj vlastiti kod | Bearer token - najlakše za automatizaciju |
| Klijent koji dozvoljava samo biranje iz kataloga navedenih konektora | Dodaj TellDone kao prilagođeni konektor s MCP URL-om ili koristi bearer token. TellDone još nije ni u jednom katalogu konektora |
Zahtjevi plana
| Plan | MCP |
|---|---|
| Free | Samo za čitanje (10 alata za čitanje), 100 zahtjeva dnevno |
| Basic | Samo za čitanje (10 alata za čitanje), bez dnevnog ograničenja |
| Pro | Čitanje i pisanje (27 alata) - može prijeći na način samo za čitanje |
| Ultra | Čitanje i pisanje (27 alata) - može prijeći na način samo za čitanje |
Ograničenje od 100 zahtjeva dnevno na Free planu računa samo pozive alata. Povezivanje, prijava i listanje alata se ne računaju. Dan prati vremensku zonu spremljenu u tvom nalogu i resetuje se u ponoć. Kad dostigneš ograničenje, tvoj asistent dobija poruku o tome. Alati za pisanje se odbijaju na Free i Basic planu. S pristupnim tokenom odgovaraju da je veza samo za čitanje i da pravljenje i uređivanje zahtijeva Pro ili viši plan. S prijavom (OAuth) većina njih odgovara „Insufficient scope”, jer veze na Free i Basic planu nikada ne dobijaju dozvole za pisanje.
Ekran u aplikaciji
Otvori Podešavanja > Integracije, a u odjeljku AI agenti dodirni AI agenti (MCP). Ekran kaže „Neka ChatGPT, Claude i drugi AI asistenti rade s tvojim TellDone bilješkama, zadacima i događajima.” i prikazuje tvoj plan:
- Free: „Tvoj plan: pristup samo za čitanje, 100 zahtjeva dnevno. Pisanje dolazi s Pro planom.”
- Basic: „Tvoj plan: pristup samo za čitanje”
- Pro i Ultra: „Tvoj plan: pristup za čitanje i pisanje”
Dok je MCP isključen, dodirni Omogući da ga uključiš.
Kad je uključen, ekran prikazuje:
- Način pristupa (Pro i Ultra) - u svakom trenutku odaberi Samo za čitanje ili Čitanje i pisanje.
- Poveži asistenta - koraci za ChatGPT, Claude i Drugi asistent. U TellDone se prijavljuješ unutar asistenta, pa token nije potreban.
- Povezane aplikacije - asistenti koje povežeš, svaki s dugmetom Prekini vezu. Ostaje prazno do prvog povezivanja.
- Za programere (zadano sklopljeno) - polje Pristupni token (sakriveno, s opcijama Prikaži / Sakrij i Kopiraj), Regeneriši token i prekidač Claude Code / Cursor / Ostalo s gotovim tekstom i vlastitim dugmetom Kopiraj. Claude Code daje komandu
claude mcp add, Cursor daje JSON za.cursor/mcp.json, a Ostalo navodi adresu servera, opciju OAuth prijave i zaglavljeAuthorization: Bearer. Dok je token sakriven, isječci prikazujuYOUR_TOKEN. Dodirni Prikaži i sadrže tvoj pravi token.
Web ima iste kontrole u drugačijem rasporedu, bez sklopljenog odjeljka za programere: OAuth adresu s dugmetom Kopiraj, kontrole tokena, Povezane aplikacije s dugmetom Prekini vezu i Ručno podešavanje bearer tokena sa šest izbora klijenta (Claude Code, Cursor, Windsurf, Codex, OpenClaw i cURL). Na webu isječci uvijek sadrže tvoj pravi token, čak i dok je polje tokena sakriveno, pa ih čuvaj kao sam token.
- Dokumentacija - link na ovu stranicu.
- Onemogući - isključuje MCP. Potvrđuješ s „Ovime će se opozvati pristup svim povezanim AI alatima.” Tvoj token se briše i sve veze prestaju. Ako ponovo omogućiš MCP, dobijaš novi token, a aplikacije povezane prijavom (OAuth) rade ponovo bez nove prijave. Da trajno ukloniš aplikaciju, dodirni Prekini vezu pod Povezane aplikacije.
Čuvaj svoj pristupni token privatnim. Svako ko ima token može pristupiti tvojim TellDone podacima. Dodirni Regeneriši token ako ikad posumnjaš da je procurio.
Kako uključiti
MCP možeš podesiti s obje platforme:
- iPhone: Podešavanja > Integracije > AI agenti (MCP)
- Web: app.telldone.app > Podešavanja > Integracije > AI agenti (MCP)
Koraci:
- Dodirni Omogući.
- Na Pro i Ultra planu odaberi način pristupa (Samo za čitanje ili Čitanje i pisanje). Free i Basic su samo za čitanje.
- Da povežeš ChatGPT ili Claude, dodirni ga pod Poveži asistenta i slijedi korake (pogledaj ispod). Token nije potreban.
- Za klijent za programiranje na iPhoneu otvori Za programere, dodirni Prikaži, odaberi Claude Code, Cursor ili Ostalo i dodirni Kopiraj ispod isječka. Ako kopiraš prije nego što dodirneš Prikaži, isječak umjesto tvog tokena ima
YOUR_TOKEN. Na webu odaberi svoj klijent pod Ručno podešavanje bearer tokena i kopiraj isječak; on već sadrži tvoj token. - Zalijepi isječak u svoj klijent ili njegovu konfiguracijsku datoteku.
Povezivanje putem OAuth-a
OAuth je preporučeni put za ChatGPT, Claude i Cowork - prijavljuješ se svojim TellDone nalogom umjesto kopiranja tokena.
MCP URL za OAuth: https://api.telldone.app/mcp/user
Isti server odgovara i na https://api.telldone.app/mcp/user/mcp, a obje adrese prihvataju bearer token. Za OAuth prijavu koristi prvu.
ChatGPT
Prilagođeni MCP server možeš dodati na chatgpt.com ili u desktop aplikaciji ChatGPT. Mobilna aplikacija ChatGPT ne može dodavati prilagođene konektore, a aplikacija TellDone to kaže ovako: „Aplikacija ChatGPT dodaje konektore samo iz svog kataloga.” Dodirni Pošalji upute na moj računar u TellDoneu da dobiješ upute na računaru. Kad se jednom doda tamo, TellDone je dostupan i u mobilnoj aplikaciji ChatGPT.
Koraci u aplikaciji:
- Na računaru otvori chatgpt.com/plugins, klikni Add i odaberi Add custom MCP server.
- Nazovi ga TellDone, zalijepi adresu ispod (
https://api.telldone.app/mcp/user) i odaberi OAuth. - Potvrdi i instaliraj ga, zatim se prijavi u TellDone i dopusti pristup.
Pogledaj OpenAI-jev vodič o prilagođenim MCP serverima ako se nazivi menija promijene.
Claude (web stranica, Desktop, iPhone aplikacija) / Cowork
Koraci u aplikaciji:
- U Claudeu otvori Customize → Connectors i dodirni Add custom connector.
- Zalijepi adresu ispod (
https://api.telldone.app/mcp/user). - Prijavi se u TellDone i dopusti pristup.
Kad se prijaviš, TellDoneova stranica za saglasnost pokazuje koja aplikacija traži pristup i tačne dozvole koje želi. Prijavi se svojom TellDone e-poštom i lozinkom i klikni Dopusti pristup, ili dodirni Prijavi se putem Applea ili Prijavi se putem Googlea, što odobrava pristup u istom koraku. Claude se povezuje sam - nema tokena za kopiranje.
Ako se nazivi menija promijene, pogledaj Anthropicov vodič o dodavanju prilagođenog konektora.
Povezivanje bearer tokenom
Za Claude Code, Cursor i druge klijente bez ugrađene OAuth prijave zalijepi svoj pristupni token direktno u konfiguraciju klijenta. U svim primjerima ispod zamijeni YOUR_TOKEN tokenom iz svojih podešavanja.
Claude Code (bearer token)
claude mcp add --transport http telldone \
https://api.telldone.app/mcp/user/mcp \
--header "Authorization: Bearer YOUR_TOKEN"
Ne moraš ovo kucati sam: u Podešavanja > Integracije > AI agenti (MCP) > Za programere dodirni Prikaži, odaberi Claude Code i dodirni Kopiraj. Kopirana komanda već sadrži tvoj token.
Cursor
Dodaj u .cursor/mcp.json (ili kopiraj iz Za programere > Cursor nakon što dodirneš Prikaži):
{
"mcpServers": {
"telldone": {
"url": "https://api.telldone.app/mcp/user/mcp",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}
Ostali klijenti
Podešavanja za druge MCP klijente:
Codex
Dodaj u 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
Ostali MCP klijenti
Povezati se može svaki alat koji podržava MCP preko HTTP-a. Koristi krajnju tačku https://api.telldone.app/mcp/user/mcp sa zaglavljem autorizacije Bearer YOUR_TOKEN.
Ako tvoj klijent ili proxy rezerviše zaglavlje Authorization (na primjer neki gatewayi u stilu Smitherya), pošalji token u X-MCP-Token: YOUR_TOKEN. Oba zaglavlja rade; ako su prisutna oba, Authorization ima prednost.
Testiranje veze
Jednostavnom cURL komandom možeš provjeriti radi li tvoj token:
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}'
Uspješan odgovor navodi sve dostupne alate.
Dozvole (scope-ovi)
OAuth veze imaju ograničene dozvole - tokom prijave tačno vidiš šta klijent traži i izričito to odobravaš.
| Scope | Dozvoljava aplikaciji da... |
|---|---|
notes:read | Čita tvoje bilješke i otvara cijele detalje bilješke (alat search treba i tasks:read i events:read) |
notes:write | Pravi, uređuje i briše bilješke (process_note treba i tasks:write i events:write) |
tasks:read / tasks:write | Čita / pravi, uređuje, dovršava i briše zadatke |
events:read / events:write | Čita / pravi, uređuje i briše događaje |
reports:read | Čita tvoje dnevne, sedmične, mjesečne i godišnje izvještaje |
tags:read / tags:write | Navodi tvoje oznake / pravi, prikvačuje, briše i vraća oznake |
profile:read | Čita podatke o tvom nalogu i pretplati |
offline_access | Održava prijavu (izdaje refresh token da se ne moraš prijavljivati iznova svaku sesiju) |
Scope-ovi ograničavaju šta veza može raditi: veza samo s notes:read ne može pozvati alat za pisanje. Tvoj plan postavlja drugo ograničenje povrh toga.
Veze putem bearer tokena nemaju pojedinačne scope-ove - njima upravlja samo način čitanja i pisanja tvog plana.
Šta možeš raditi
Alati za čitanje (10) - svi planovi
| Alat | Šta radi |
|---|---|
| get_notes | Navodi bilješke s filterima (oznake, raspon datuma, pretraga teksta) |
| get_note | Prikazuje jednu bilješku s njenim zadacima, događajima i cijelim transkriptom |
| get_notes_full | Daje više bilješki s ugrađenim zadacima i događajima u jednom pozivu |
| get_tasks | Navodi zadatke filtrirane po statusu (to-do, done, all), oznakama ili datumima |
| get_events | Navodi događaje u kalendaru, filtrira po rasponu datuma |
| get_reports | Čita tvoje dnevne, sedmične, mjesečne i godišnje izvještaje (cijeli markdown) |
| get_tags | Prikazuje sve tvoje oznake poredane po korištenju |
| get_profile | Pokazuje podatke o tvom nalogu i koliko imaš bilješki, zadataka i događaja |
| search | Pretražuje bilješke, zadatke i događaje (tekstualna + semantička pretraga za bilješke) |
| get_change_log | Prikazuje historiju izmjena bilješke, zadatka ili događaja i je li svaka izmjena poništena |
Alat search podržava semantičku pretragu bilješki - pronalazi rezultate po značenju, a ne samo po ključnim riječima. Na primjer, pretraga „sastanci o budžetu” pronaći će bilješke o finansijskim razgovorima čak i ako ne sadrže riječ „budžet”.
Alati za pisanje (17) - Pro i Ultra
| Alat | Šta radi |
|---|---|
| process_note | Cijeli AI proces - pošalji tekst ili audio i dobij bilješku sa zadacima, događajima i oznakama |
| create_note | Dodaje običnu tekstualnu bilješku (bez AI analize) |
| create_task | Dodaje zadatak s prioritetom, rokom, podsjetnikom i oznakama |
| create_event | Dodaje događaj u kalendaru s datumom, vremenom, lokacijom, podsjetnicima, učesnicima i pravilom ponavljanja |
| update_note | Mijenja naslov, sažetak, vrstu, oznake, prioritet ili status bilješke |
| update_task | Mijenja naslov, opis, prioritet, rok, podsjetnik, oznake ili status zadatka |
| complete_task | Označava zadatak kao gotov |
| update_event | Mijenja detalje događaja, vrijeme, lokaciju, podsjetnike, učesnike, pravilo ponavljanja, oznake ili status |
| delete_note | Briše bilješku. Njeni zadaci i događaji ostaju |
| delete_task | Briše zadatak |
| delete_event | Briše događaj |
| undo_change_log_entry | Poništava jednu praćenu izmjenu - koju je napravio AI ili ti sam - vraćajući prethodnu vrijednost polja |
| restore_entity | Vraća izbrisanu ili arhiviranu bilješku ili zadatak, odnosno izbrisan ili otkazan događaj |
| create_tag | Pravi novu oznaku ili pretvara automatski predloženu oznaku u trajnu |
| set_tag_pinned | Prikvači ili otkvači oznaku da se sortira na vrh |
| delete_tag | Uklanja oznaku (može se vratiti pomoću restore_tag) |
| restore_tag | Vraća izbrisanu oznaku |
Sve operacije pisanja i brisanja odmah se pojavljuju na tvojim povezanim uređajima (telefon, web aplikacija).
Referenca alata
get_notes
List notes with optional filtering. Date filters use recorded_at (when you recorded the voice note), or created_at for a note that has none.
| Parameter | Type | Default | Description |
|---|---|---|---|
limit | int | 20 | Number of notes to return (max 50) |
offset | int | 0 | Skip this many notes (for pagination, max 10000) |
tags | string | - | Filter by tags, comma-separated (matches any) |
search | string | - | Text search on title and summary |
date_from | string | - | Start date, YYYY-MM-DD (inclusive) |
date_to | string | - | End date, YYYY-MM-DD (exclusive) |
standalone_only | bool | false | When true, hides follow-up notes (notes attached to a parent note/task/event) and returns only standalone notes |
Returns: list of notes with id, title, summary, type, tags, priority, status, recorded_at, created_at.
get_note
Get a single note with its full transcript and all linked tasks and events.
| Parameter | Type | Description |
|---|---|---|
note_id | string | The note's UUID |
Returns: note with title, summary, transcript, type, tags, priority, status, metadata, created_at, plus tasks[] and events[] arrays.
Also returns transcript_speakers (speaker-labeled transcript turns, for meetings with several speakers - null otherwise), speaker_count (null unless the recording was split by speaker), and parent_note_id/parent_task_id/parent_event_id (set when this note is a follow-up edit of another item). Each tasks[]/events[] entry also includes reminders_at/recurrence_rule (tasks) or reminder_minutes/attendees/recurrence_rule (events).
get_notes_full
Get multiple notes with their tasks and events in a single call. Same filters as get_notes except search, and each note includes embedded tasks[] and events[].
| Parameter | Type | Default | Description |
|---|---|---|---|
limit | int | 10 | Number of notes (max 20) |
offset | int | 0 | Skip this many notes |
tags | string | - | Filter by tags |
date_from | string | - | Start date, YYYY-MM-DD |
date_to | string | - | End date, YYYY-MM-DD |
standalone_only | bool | false | When true, hides follow-up notes (notes attached to a parent note/task/event) and returns only standalone notes |
get_tasks
List tasks with filtering.
| Parameter | Type | Default | Description |
|---|---|---|---|
status | string | "todo" | Filter: todo, done, or all |
limit | int | 30 | Number of tasks (max 100) |
offset | int | 0 | Skip this many tasks |
tags | string | - | Filter by tags, comma-separated |
date_from | string | - | Start date, YYYY-MM-DD (filters by deadline; tasks without a deadline are excluded) |
date_to | string | - | End date, YYYY-MM-DD (filters by deadline; tasks without a deadline are excluded) |
Returns: list of tasks with id, title, description, status, priority, tags, deadline, reminder_at, reminders_at, completed_at, completed_by, source, created_at. reminder_at mirrors the first entry of reminders_at for backward compatibility - use reminders_at to see all of a task's reminders.
get_events
List calendar events with date range filtering.
| Parameter | Type | Default | Description |
|---|---|---|---|
limit | int | 30 | Number of events (max 100) |
offset | int | 0 | Skip this many events |
date_from | string | - | First day, YYYY-MM-DD, in your own time zone (inclusive). Events that overlap the range are included, so a multi-day event shows on every day it covers |
date_to | string | - | Last day, YYYY-MM-DD, in your own time zone (inclusive) |
Returns: list of events with id, title, description, status, start_at, end_at, location, is_all_day, tags, note_id, reminder_minutes, attendees, recurrence_rule, created_at.
get_reports
Get your AI-generated reports with full markdown content.
| Parameter | Type | Default | Description |
|---|---|---|---|
report_type | string | "daily" | Type: daily, weekly, monthly, or yearly |
limit | int | 5 | Number of reports (max 10) |
Returns: list of reports with id, type, period_start, period_end, content_md, created_at.
Monthly reports are long (often well over 1,000 words). Use limit=1 if your AI tool has a tight context window.
get_tags
Get all your tags, sorted by pinned first, then by usage count.
No parameters. Returns up to 100 tags, each with tag, usage_count, is_pinned, is_manual.
get_profile
Get your account info and how many notes, tasks and events you have.
No parameters. Returns email, display_name, locale, transcription_locale, timezone, subscription, mcp_mode, created_at, and stats (note/task/event counts).
search
Search across notes, tasks, and events at once. For notes, supports both text search and semantic search (finds results by meaning using AI embeddings).
| Parameter | Type | Default | Description |
|---|---|---|---|
query | string | required | Search text (max 500 characters) |
limit | int | 20 | Max results per type (max 20) |
semantic | bool | true | Enable semantic search for notes |
Returns results grouped by type: notes[], tasks[], events[]. Each result has id, type, title, detail, created_at.
Set semantic=false for faster text-only search.
get_change_log
See the edit history of a note, task, or event - every AI-made follow-up edit and every manual edit you made yourself, newest first.
| Parameter | Type | Default | Description |
|---|---|---|---|
entity | string | required | notes, tasks, or events |
entity_id | string | required | The item's UUID |
include_manual | bool | false | Also include your own manual edits, not just AI-made ones |
Returns: list of change entries with id (use this as entry_id for undo), field_name, old_value, new_value, source (follow_up, smart_context, correction_sync for a name fix TellDone carried across a note, or manual), origin_note_id, edited_at, and reverted_at (set once undone).
process_note (Pro and Ultra)
Full AI pipeline - works the same as recording in the app. Send text or audio, and TellDone will transcribe, analyze with AI, and create a structured note with extracted tasks, events, tags, and embeddings.
This tool is asynchronous: it returns immediately with an audio_id and processes in the background. Results arrive via real-time sync to your connected devices, or you can poll with get_notes().
| Parameter | Type | Description |
|---|---|---|
text | string | Required. Text to analyze. If it is not empty, it is used as the transcript and any audio you send is not transcribed; send "" to have the audio transcribed. Limit when no audio is sent: Pro 20,000 / Ultra 50,000 characters |
audio_base64 | string | Base64-encoded audio file. The whole request is limited to 10 MB, so the audio itself can be about 7 MB. It is transcribed only when text is empty |
audio_format | string | m4a, ogg, wav, mp3, aac, or webm (default: m4a) |
parent_task_id | string | UUID of a task this is a follow-up to |
parent_note_id | string | UUID of a note this is a follow-up to |
parent_event_id | string | UUID of an event this is a follow-up to |
Always send text. To have TellDone transcribe audio, send audio_base64 with text set to an empty string (""). If text is not empty, TellDone uses it as the transcript and does not transcribe the audio. Set at most one of the three parent IDs.
Returns: {"audio_id": "...", "status": "processing", "mode": "text-only"} or "mode": "audio+stt" if audio was provided.
process_note is subject to your plan's quotas (uploads per day, notes per month, max text length). get_profile shows only how many notes, tasks and events you have, not your limits. Check your usage in the app under Settings > Usage.
create_note (Pro and Ultra)
Create a plain text note instantly. Does not trigger AI analysis - no tasks or events are extracted. Use process_note when you want TellDone to find tasks and events for you.
| Parameter | Type | Limit | Description |
|---|---|---|---|
title | string | 200 chars | Required |
summary | string | 1000 chars | Optional. Short teaser (1-3 sentences). Used in your reports, so keep it short |
transcript | string | plan-based | Optional. Long-form body shown in the note detail. Not included in reports. Limits: Pro 20,000 / Ultra 50,000 chars |
type | string | - | Optional. task, idea, info (default), status, meeting, event, or reflection |
tags | string | 20 tags | Comma-separated, optional |
suppress_external_sync | boolean | - | Optional, default false. Set true for imported or bulk items: the item is then not sent to your connected apps or automations |
create_task (Pro and Ultra)
Create a new task. The task is also created in your connected Todoist, Notion or Microsoft To Do, and your automations receive task.created. This does not happen when you pass suppress_external_sync: true.
| Parameter | Type | Limit | Description |
|---|---|---|---|
title | string | 200 chars | Required |
description | string | 2000 chars | Optional |
priority | string | - | low, medium (default), or high |
deadline | string | - | YYYY-MM-DD, optional |
reminder_at | string | - | ISO 8601 datetime (for example 2026-04-15T09:00:00Z), optional |
tags | string | 20 tags | Comma-separated, optional |
note_id | string | - | UUID to link task to a parent note, optional |
suppress_external_sync | boolean | - | Optional, default false. Set true for imported or bulk items: the item is then not sent to your connected apps or automations |
create_event (Pro and Ultra)
Create a calendar event. The event is also created in your connected Notion, and your automations receive calendar_event.created. This does not happen when you pass suppress_external_sync: true.
| Parameter | Type | Limit | Description |
|---|---|---|---|
title | string | 200 chars | Required |
start_at | string | - | ISO 8601 datetime, required |
end_at | string | - | ISO 8601 datetime (default: start + 1 hour; for an all-day event, one day) |
description | string | 2000 chars | Optional |
location | string | 200 chars | Optional |
is_all_day | bool | - | Default: false |
tags | string | 20 tags | Comma-separated, optional |
reminder_minutes | string | - | Comma-separated minutes before event (for example 15,60), optional |
attendees | string | - | Comma-separated names or emails, optional |
recurrence_rule | string | - | RRULE string (for example FREQ=WEEKLY;BYDAY=MO,WE,FR), optional. Rules more frequent than hourly, or that can never happen, are refused |
note_id | string | - | UUID to link event to a parent note, optional |
suppress_external_sync | boolean | - | Optional, default false. Set true for imported or bulk items: the item is then not sent to your connected apps or automations |
update_note (Pro and Ultra)
Update one or more fields on an existing note. Only fields you provide are changed. This works exactly like editing the note in the app: its title, summary, tags and type reach its Notion page, your automations receive note.updated, and the edit appears in the history, where it can be undone. A transcript change is saved and sent to Notion too, but is not in the history.
| Parameter | Type | Description |
|---|---|---|
note_id | string | Required, the note's UUID |
title | string | New title (max 200 chars) |
summary | string | New summary (max 1000 chars, pass a space " " to clear) |
transcript | string | New transcript (plan-based limit, pass a space " " to clear) |
type | string | task, idea, info, status, meeting, event, or reflection |
tags | string | Comma-separated tags (replaces all existing tags, max 20) |
priority | string | low, medium, or high |
status | string | active or archived |
For notes created by the voice pipeline, transcript is the original speech-to-text output. Overwriting it replaces your original words. To keep them, add to the transcript instead of replacing it.
update_task (Pro and Ultra)
Update one or more fields on an existing task. Only fields you provide are changed. This works exactly like editing the task in the app: the change reaches its copies in Todoist, Notion and Microsoft To Do, your automations receive task.updated, and the edit appears in the task's history, where it can be undone. Setting status to done completes it like complete_task. A deadline can be a date or a full date and time (its date is used). Each tag can be up to 50 characters.
| Parameter | Type | Description |
|---|---|---|
task_id | string | Required, the task's UUID |
title | string | New title |
description | string | New description (pass a space " " to clear) |
priority | string | low, medium, or high |
deadline | string | YYYY-MM-DD. This tool can't clear a deadline; clear it in the app |
status | string | todo or done |
tags | string | Comma-separated tags (replaces all existing tags, max 20) |
reminder_at | string | ISO 8601 datetime (pass a space to clear) |
Setting status to done also records when and how the task was completed.
complete_task (Pro and Ultra)
Shortcut to mark a task as done.
| Parameter | Type | Description |
|---|---|---|
task_id | string | Required, the task's UUID |
Returns an error if the task doesn't exist or is already completed.
update_event (Pro and Ultra)
Update one or more fields on an existing event. Only fields you provide are changed. This works exactly like editing the event in the app: the change reaches its Notion page, your automations receive calendar_event.updated, and the edit appears in the history, where it can be undone.
| Parameter | Type | Description |
|---|---|---|
event_id | string | Required, the event's UUID |
title | string | New title |
description | string | New description (pass a space to clear) |
start_at | string | New start time (ISO 8601) |
end_at | string | New end time (ISO 8601) |
location | string | New location (pass a space to clear) |
status | string | confirmed, tentative, or cancelled |
tags | string | Comma-separated tags (replaces all existing tags, max 20) |
is_all_day | string | "true" or "false" |
reminder_minutes | string | Comma-separated minutes before event (for example 15,60, pass a space to clear) |
attendees | string | Comma-separated names or emails (pass a space to clear) |
recurrence_rule | string | RRULE string (pass a space to clear) |
delete_note (Pro and Ultra)
Delete a note. Only the note is deleted: its tasks and events stay. This works exactly like deleting it in the app: your automations receive note.deleted. A copy of the note in Notion is not removed (the app does not remove it either).
| Parameter | Type | Description |
|---|---|---|
note_id | string | Required, the note's UUID |
delete_task (Pro and Ultra)
Delete a task. This works exactly like deleting it in the app: its copies in Todoist, Notion and Microsoft To Do are deleted too, and your automations receive task.deleted. Bring it back with restore_entity.
| Parameter | Type | Description |
|---|---|---|
task_id | string | Required, the task's UUID |
delete_event (Pro and Ultra)
Delete an event. This works exactly like deleting it in the app: your automations receive calendar_event.deleted. The event's page in Notion is not removed (the app does not remove it either).
| Parameter | Type | Description |
|---|---|---|
event_id | string | Required, the event's UUID |
undo_change_log_entry (Pro and Ultra)
Undo a single tracked edit - restores the field to its value before that edit, whether the edit was made by the AI (from a follow-up recording) or by you directly.
| Parameter | Type | Description |
|---|---|---|
entity | string | Required, notes, tasks, or events |
entity_id | string | Required, the item's UUID |
entry_id | string | Required, the change entry's id from get_change_log |
Returns: {"entry_id", "entity_type", "entity_id", "field_name", "restored_value", "reverted_at"}. Undoing the same entry twice returns an error - it's already undone.
restore_entity (Pro and Ultra)
Bring back a deleted or archived note or task, or a deleted or canceled event.
| Parameter | Type | Description |
|---|---|---|
entity | string | Required, notes, tasks, or events |
entity_id | string | Required, the item's UUID |
Returns: the restored item as JSON.
create_tag (Pro and Ultra)
Create a new tag, or turn an existing auto-suggested tag into a permanent one.
| Parameter | Type | Description |
|---|---|---|
tag | string | Required, 1-50 characters (stored lowercase) |
category | string | Optional |
set_tag_pinned (Pro and Ultra)
Pin or unpin a tag so it sorts to the top of your tag list.
| Parameter | Type | Description |
|---|---|---|
tag | string | Required |
pinned | bool | Required |
Tags containing a / character can't be pinned.
delete_tag (Pro and Ultra)
Remove a tag. Can be brought back with restore_tag.
| Parameter | Type | Description |
|---|---|---|
tag | string | Required |
restore_tag (Pro and Ultra)
Bring back a deleted tag.
| Parameter | Type | Description |
|---|---|---|
tag | string | Required |
Ograničenja unosa
| Polje | Maksimalna dužina | Koristi se u |
|---|---|---|
| title | 200 znakova | create/update note, task, event |
| description | 2.000 znakova | create/update task, event |
| summary | 1.000 znakova (čvrsto) | create/update note. Koristi se u tvojim izvještajima, pa neka bude kratko |
| transcript | zavisi od plana: Pro 20.000 / Ultra 50.000 | create/update note. Dugi tekst, nije u izvještajima |
| text | zavisi od plana: Pro 20.000 / Ultra 50.000 (kad se ne šalje audio) | process_note |
| location | 200 znakova | create/update event |
| tags | 20 oznaka | create/update note, task, event |
| search query | 500 znakova | search |
| audio_base64 | oko 7 MB audia (cijeli zahtjev je ograničen na 10 MB) | process_note |
Ako premašiš ograničenje, alat vraća poruku o grešci poput "title too long (max 200 chars, got 250)".
Rukovanje greškama
Većina alata vraća greške kao JSON:
{"error": "description of what went wrong"}
Greške plana, scope-a i ograničenja unosa vraćaju se kao greška alata s istom porukom.
Česte greške:
| Greška | Kada |
|---|---|
"This TellDone connection is read-only. Creating and editing needs the Pro or Ultra plan." | Alat za pisanje pozvan u načinu samo za čitanje (Free i Basic, ili Pro i Ultra prebačeni na samo za čitanje) |
"Daily limit reached: the Free plan includes 100 TellDone requests a day..." | Free plan je potrošio svojih 100 zahtjeva za taj dan |
"Daily limit reached (N/M today)" | Danas je preko AI asistenata napravljeno onoliko stavki koliko tvoj plan dozvoljava (process_note, create_note, create_task i create_event se računaju svaki) |
"Notes limit reached (X/Y this month)" | Mjesečno ograničenje bilješki tvog plana je potrošeno |
"Invalid note_id format" | Kao ID je proslijeđen string koji nije UUID |
"Note not found" | ID ne postoji ili pripada drugom korisniku |
"Task not found or already completed" | complete_task na zadatku koji ne postoji ili je već gotov |
"title too long (max 200 chars, got N)" | Ograničenje unosa premašeno |
"Too many tags (max 20)" | Navedeno je više od 20 oznaka |
Greške na HTTP nivou:
| Kod | Značenje |
|---|---|
| 401 | Nevažeći, opozvani ili izbrisani token (onemogućavanje MCP-a briše tvoj token, a ponovno generiranje ga zamjenjuje) |
| 429 | Premašeno ograničenje učestalosti (5 zahtj./s, nalet do 20) |
Na Free planu dostizanje ograničenja od 100 zahtjeva dnevno prijavljuje se kao poruka o grešci alata (ne kao HTTP kod) i resetuje se u ponoć u vremenskoj zoni spremljenoj u tvom nalogu.
Primjeri korištenja
Svi primjeri koriste cURL s MCP JSON-RPC protokolom. Zamijeni YOUR_TOKEN svojim pristupnim tokenom.
Čitanje podataka
# 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}}}'
Pisanje podataka (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>"}}}'
Uspješan odgovor izgleda ovako:
{
"jsonrpc": "2.0",
"id": 11,
"result": {
"content": [{"type": "text", "text": "{\"id\":\"...\",\"title\":\"Review PR\",\"status\":\"todo\"}"}]
}
}
Alati za pisanje i ažuriranje vraćaju kratke odgovore, uglavnom id, title i status. Alati za brisanje vraćaju id i deleted. Da dobiješ pune detalje (oznake, prioritet, rok itd.) nakon pisanja, napravi naknadni poziv za čitanje poput get_tasks ili get_note.
Upravljanje tokenom
| Radnja | Kako |
|---|---|
| Prikaz tokena | iPhone Podešavanja > Integracije > AI agenti (MCP) > Za programere (ili na webu Podešavanja > Integracije > AI agenti (MCP)), dodirni Prikaži |
| Kopiranje tokena | Dodirni Kopiraj pored tokena |
| Ponovno generiranje | Dodirni Regeneriši token i potvrdi. Stari token odmah prestaje raditi. Asistenti povezani OAuth prijavom nisu pogođeni; prekini njihovu vezu pod Povezane aplikacije |
| Promjena načina | Pro i Ultra: odaberi Samo za čitanje ili Čitanje i pisanje. Free i Basic su uvijek samo za čitanje |
| Onemogućavanje | Dodirni Onemogući i potvrdi („Ovime će se opozvati pristup svim povezanim AI alatima.”). Tvoj token se briše i sve veze prestaju. Ako ponovo omogućiš MCP, dobijaš novi token, a aplikacije povezane prijavom (OAuth) rade ponovo bez nove prijave. Da trajno ukloniš aplikaciju, dodirni Prekini vezu pod Povezane aplikacije |
Šta možeš pitati svog AI agenta
Kad se poveže, pitaj svoj AI alat stvari poput:
Pregled dana:
- „Daj mi pregled današnjeg rada”
- „Pokaži mi bilješke ove sedmice”
- „Koji zadaci kasne?”
Upravljanje zadacima:
- „Napravi zadatak: pregledaj kvartalni izvještaj, visok prioritet, rok petak”
- „Označi Figma zadatak kao gotov”
- „Na kojim zadacima trenutno radim?”
Pretraga i analiza:
- „Pronađi sve bilješke o marketinškoj strategiji”
- „Koje događaje imam sljedeće sedmice?”
- „Sažmi moje dnevne izvještaje od prošle sedmice”
Planiranje unaprijed:
- „Napravi događaj: timski sastanak sutra u 10”
- „Šta je na mom kalendaru ove sedmice?”
- „Pokaži mi moje najčešće oznake - na šta provodim najviše vremena?”
Tvoj asistent može čitati tvoje bilješke, zadatke, događaje i izvještaje te odgovarati na složena pitanja kombinirajući informacije iz više alata. Na Pro i Ultra planu s uključenim čitanjem i pisanjem može ih i praviti, ažurirati i brisati.
Dobro je znati
- Integracije i automatizacije -
process_noteradi kao snimak, pa njegova bilješka, zadaci i događaji idu u tvoje povezane integracije i webhook automatizacije. Stavke koje napraviš, izmijeniš ili izbrišeš ostalim alatima za pisanje ponašaju se tačno kao u aplikaciji: stižu u tvoje povezane integracije (događaji i izmjene bilješki samo u Notion) i tvoje automatizacije. Vraćanje zadatka pomoćurestore_entityili poništavanje njegovog dovršavanja pomoćuundo_change_log_entrytakođer ponovo otvara zadatak u integracijama s kojima je bio sinhroniziran. - Izmjene koje pravi AI asistent - u historiji stavke označene su kao izmjene asistenta. Ne koriste se za učenje TellDone prepoznavanja govora i ne kopiraju se u druge stavke iz iste bilješke. Izmjene preko asistenta dijele ograničenje aplikacije od 30 izmjena u minuti.
- Semantička pretraga - bilješke napravljene pomoću
process_noteilicreate_noteobje dobijaju embeddinge, pa se nakon kratkog kašnjenja pojavljuju u semantičkoj pretrazi. - Filteri datuma - za bilješke datumi su UTC dani. Za događaje datumi su tvoji lokalni dani, a događaj koji se preklapa s rasponom je uključen. Za zadatke filter je datum roka.
Sigurnost
- Svaki korisnik dobija jedinstven 384-bitni pristupni token
- Tvoj token se odmah opoziva kad onemogućiš MCP ili ga regenerišeš
- Svaki zahtjev je ograničen na tvoj nalog, pa tvoj agent može pristupiti samo tvojim vlastitim podacima
- Veza koristi HTTPS s ograničenjem učestalosti (5 zahtj./s, nalet do 20)
- OAuth veze koriste PKCE s jednokratnim autorizacijskim kodovima i kratkotrajnim pristupnim tokenima - vezu možeš opozvati u bilo kojem trenutku iz aplikacije
Za tehničko produbljivanje - krajnje tačke za otkrivanje, trajanje tokena, cijeli OAuth tok - pogledaj našu open-source referencu konektora na github.com/exp78/telldone-mcp ili direktno otvori https://api.telldone.app/.well-known/oauth-protected-resource.
Privatnost i tok podataka
Povezani AI alat dobija tvoje podatke samo kad pozove TellDone, obično zato što mu postaviš pitanje. Prima samo odgovore na te pozive, u okviru dozvola koje odobriš. Da ograničiš pristup, pređi na Samo za čitanje, prekini vezu aplikacije pod Povezane aplikacije ili regeneriši ili onemogući svoj pristupni token u Podešavanjima. Sve detalje pogledaj u Politici privatnosti ili piši na support@telldone.app ako imaš pitanja.
Rješavanje problema
| Simptom | Uzrok / rješenje |
|---|---|
| Stranica za OAuth saglasnost kaže „Wrong email or password” | Koristi e-poštu i lozinku kojima se prijavljuješ u aplikaciju ili na istoj stranici odaberi Prijavi se putem Applea / Prijavi se putem Googlea. |
| Povezano je, ali AI ne može ništa praviti ni uređivati | Tvoj plan je Free ili Basic (samo za čitanje), tvoj način je samo za čitanje ili veza nema dozvole za pisanje. Ako je veza uspostavljena prije nadogradnje, prekini vezu aplikacije pod Povezane aplikacije i poveži je ponovo. Svoj način možeš provjeriti u Podešavanjima. |
| Greška „Insufficient scope” iz alata | Veza nema tu dozvolu. Na Free i Basic planu dozvole za pisanje se nikada ne daju, pa pravljenje i uređivanje zahtijeva Pro ili Ultra. Ako je veza uspostavljena prije nadogradnje, prekini vezu aplikacije pod Povezane aplikacije i poveži je ponovo. |
Kopirani isječak kaže YOUR_TOKEN i klijent se ne može povezati | Isječak je kopiran dok je token bio sakriven. U Za programere dodirni Prikaži, zatim ponovo kopiraj isječak. |
| Alati se uopće ne pojavljuju | MCP nije omogućen na tvom nalogu (Podešavanja > Integracije > AI agenti (MCP) > Omogući). |
| „Daily limit reached” | Ovu poruku koriste dva ograničenja. „Daily limit reached: the Free plan includes 100 TellDone requests a day” je ograničenje zahtjeva na Free planu. „Daily limit reached (N/M today)” znači da je danas preko AI asistenata napravljeno onoliko stavki koliko tvoj plan dozvoljava: process_note, create_note, create_task i create_event se računaju svaki, i na Pro i Ultra planu. Oba se resetuju u ponoć u vremenskoj zoni spremljenoj u tvom nalogu. |
| Moj klijent dozvoljava samo biranje s liste konektora, a TellDone nije na njoj | TellDone još nije ni u jednom katalogu konektora klijenata - dodaj ga kao prilagođeni konektor s MCP URL-om ili koristi metodu bearer tokena. |
Pogledaj također
- Webhook automatizacije - automatski šalji podatke vanjskim uslugama
- Todoist - posebna dvosmjerna sinhronizacija zadataka
- Notion - posebna Notion integracija