MCP-toegang (AI-agents)
MCP is nu volledig beschikbaar op de iPhone (naast de web-app). Het iPhone-scherm spiegelt het web-scherm en bevat dezelfde setup-snippets voor alle ondersteunde AI-clients.
MCP-toegang vereist een Pro- of Ultra-abonnement. Beide abonnementen krijgen volledige read + write-toegang (27 tools) en kunnen naar read-only-modus schakelen als je dat wilt.
Met MCP (Model Context Protocol) verbind je AI-codeerassistenten en automation-tools direct met je TellDone-data. Eenmaal verbonden kan je AI-agent je notities, taken, afspraken, rapporten, tags en wijzigingsgeschiedenis lezen - en items aanmaken, bijwerken, verwijderen en herstellen. Er zijn 27 tools in totaal: 10 voor het lezen van data en 17 voor het schrijven.
Beschikbaar in zowel de iPhone-app (Instellingen → Integraties → AI Agents) als de web-app (Instellingen → AI Agents).
Twee manieren om te verbinden
Er zijn twee manieren om een AI-client te authenticeren, en beide worden volledig ondersteund:
- OAuth 2.1 (aanbevolen) - de standaard "Inloggen met TellDone"-toestemmingsflow. Dit is wat de connector-interface van Claude Desktop en Claude.ai gebruiken. Geen tokens kopiëren - je logt in met je TellDone-account en keurt de rechten goed die de client vraagt.
- Bearer-token - kopieer je persoonlijke toegangstoken uit Instellingen en plak het in de config van je client. Het eenvoudigst voor scripts, CLI's en clients zonder ingebouwde OAuth-flow.
| Client | Aanbevolen |
|---|---|
| Claude Desktop / Cowork | OAuth - voeg een custom connector toe met de MCP-URL en log daarna in |
| Claude Code (CLI) | Allebei - claude mcp add loodst je door OAuth in je browser, of voeg een Bearer-header toe voor de tokenmethode |
| Scripts of je eigen code | Bearer-token - het eenvoudigst te automatiseren |
| Een client die je alleen laat kiezen uit een directory met vermelde connectors | Gebruik voorlopig de bearer-token of de mcp-remote-bridge - TellDone staat nog niet in een connector-directory |
Abonnementsvereisten
| Abonnement | MCP |
|---|---|
| Free | Vergrendeld |
| Basic | Vergrendeld |
| Pro | Read + Write (27 tools) - kan naar Read-only-modus schakelen |
| Ultra | Read + Write (27 tools) - kan naar Read-only-modus schakelen |
Het in-app scherm
Het scherm AI Agents heeft drie staten afhankelijk van je abonnement en of MCP aanstaat.
Vergrendeld (Free en Basic)
Als je het Free- of Basic-abonnement hebt, legt het scherm uit wat MCP doet en toont het een knop Upgraden. Daarop tikken opent de paywall waar je naar Pro of Ultra kunt upgraden.
Uitgeschakeld (Pro en Ultra, functie uit)
Als je Pro of Ultra hebt maar MCP nog niet hebt ingeschakeld, toont het scherm een korte samenvatting van wat je abonnement kan (aantal tools, toegangsmodus, quota) en een knop Inschakelen. Tik erop om je verbindingstoken te genereren en de integratie te starten.
Ingeschakeld
Eenmaal ingeschakeld toont het scherm alles wat je nodig hebt om een AI-client te verbinden:
- Modus-toggle - op Ultra kun je schakelen tussen Read-only en Read + Write. Op Pro is de modus vast ingesteld op Read + Write.
- Access Token-rij met een oog-toggle om het token te tonen of verbergen en een kopieerknop.
- Setup-picker met tabbladen voor Claude Code, Cursor, Windsurf en Other. Het bijbehorende codesnippet verschijnt onder de tabbladen - kopieer en plak het in je AI-client.
- Knop Regenerate - roteert het token direct en verbreekt actieve sessies die het oude token gebruiken.
- Knop Disable - zet MCP uit en verwijdert het token. Je kunt het later opnieuw inschakelen, maar er wordt dan een nieuw token uitgegeven.
Houd je verbindingstoken privé. Iedereen met het token heeft toegang tot je TellDone-data. Gebruik Regenerate als je vermoedt dat het token is gelekt.
Hoe in te schakelen
Je kunt MCP vanaf beide platforms configureren:
- iPhone: Instellingen → Integraties → AI Agents (MCP)
- Web: app.telldone.app → Instellingen → AI Agents
Stappen:
- Tik op Inschakelen.
- Kies je toegangsmodus (alleen Ultra - Pro is altijd Read + Write).
- Onthul en kopieer je token met de oog- en kopieerpictogrammen.
- Kies je tool in de sectie Setup (Claude Code, Cursor, Windsurf of Other).
- Plak het snippet in de config van je AI-client.
Verbinden met OAuth
OAuth is de aanbevolen route voor Claude Desktop, Claude.ai, Cowork en Claude Code - je logt in met je TellDone-account in plaats van een token rond te kopiëren.
MCP-URL voor OAuth: https://api.telldone.app/mcp/user (zonder /mcp erachter - dat is een andere URL, die alleen wordt gebruikt voor de bearer-tokenroute hieronder)
Claude Desktop / Cowork
- Kies in de client Add custom connector.
- Voer de server-URL in:
https://api.telldone.app/mcp/user - De client opent de toestemmingspagina van TellDone in je browser. Je ziet welke app toegang vraagt, welke rechten die precies wil en een inlogformulier.
- Log in met het e-mailadres en wachtwoord van je TellDone-account en klik op Allow.
- De client ontvangt automatisch een toegangstoken en verbindt - geen tokens om te kopiëren.
Inloggen op de toestemmingspagina gaat met het e-mailadres en wachtwoord van je TellDone-account. Als je account alleen Apple of Google Sign In heeft (geen wachtwoord ingesteld), gebruik dan voorlopig de bearer-tokenmethode hieronder.
Claude Code
OAuth (opent een inlogscherm in je browser):
claude mcp add --transport http telldone https://api.telldone.app/mcp/user
Claude Code ontdekt de OAuth-flow automatisch, maar logt je niet in bij de eerste oproep - voer /mcp uit in Claude Code en kies Authenticate om het inlogscherm in je browser te openen. Daarna vernieuwt Claude Code je toegangstoken voor je - je hoeft niets bij te houden.
Bearer-token (geen browser, handig voor headless setups):
claude mcp add telldone --transport http \
https://api.telldone.app/mcp/user/mcp \
--header "Authorization: Bearer YOUR_TOKEN"
Je YOUR_TOKEN haal je uit de app: Instellingen → Integraties → AI Agents → Token kopiëren (zie Hoe in te schakelen hierboven).
Verbinden met een bearer-token
Voor clients zonder ingebouwde OAuth-ondersteuning - Cursor, Windsurf en andere - plak je je persoonlijke toegangstoken rechtstreeks in de config van de client. Vervang YOUR_TOKEN in alle onderstaande voorbeelden door het token uit je instellingen.
Cursor
Voeg toe aan .cursor/mcp.json:
{
"mcpServers": {
"telldone": {
"url": "https://api.telldone.app/mcp/user/mcp",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}
Windsurf
Voeg toe aan .codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"telldone": {
"serverUrl": "https://api.telldone.app/mcp/user/mcp",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}
Other
Gebruik deze snippets voor clients die de in-app picker onder Other groepeert.
Codex
Voeg toe aan codex.json:
{
"mcpServers": {
"telldone": {
"type": "http",
"url": "https://api.telldone.app/mcp/user/mcp",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}
OpenClaw
Settings > MCP Servers > Add:
- Naam:
TellDone - URL:
https://api.telldone.app/mcp/user/mcp - Auth:
Bearer YOUR_TOKEN
Andere MCP-clients
Elke tool die MCP via HTTP ondersteunt, kan verbinden. Gebruik het endpoint https://api.telldone.app/mcp/user/mcp met een autorisatie-header Bearer YOUR_TOKEN.
Als je client of proxy de Authorization-header reserveert (bijvoorbeeld sommige Smithery-achtige gateways), stuur het token dan in X-MCP-Token: YOUR_TOKEN. Beide headers werken; als beide aanwezig zijn, wint Authorization.
Je verbinding testen
Je kunt verifiëren of je token werkt met een eenvoudig cURL-commando:
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}'
Een succesvol antwoord toont alle beschikbare tools.
Rechten (scopes)
OAuth-verbindingen zijn voorzien van scopes - tijdens het inloggen zie je precies wat de client vraagt en keur je dat expliciet goed.
| Scope | Laat de app... |
|---|---|
notes:read | Je notities lezen, zoeken, volledige notitiedetails openen |
notes:write | Notities aanmaken, bewerken, verwijderen (en de spraaknotitie-pipeline uitvoeren) |
tasks:read / tasks:write | Taken lezen / aanmaken, bewerken, afronden en verwijderen |
events:read / events:write | Afspraken lezen / aanmaken, bewerken en verwijderen |
reports:read | Je dagelijkse, wekelijkse, maandelijkse en jaarlijkse rapporten lezen |
tags:read / tags:write | Je tags opsommen / tags aanmaken en hernoemen |
profile:read | Je profiel- en abonnementsinfo lezen |
offline_access | Verbonden blijven als je er niet bent (geeft een refresh-token uit, zodat je niet elke sessie opnieuw hoeft in te loggen) |
Scopes zijn een bovengrens, geen garantie - een verbinding met alleen notes:read kan geen schrijftool aanroepen, wat je er ook aan vraagt. Je abonnement is een tweede horde bovenop de scopes.
Bearer-tokenverbindingen krijgen geen eigen scopes - ze worden alleen bepaald door de read/write-modus van je abonnement.
Wat je kunt doen
Read-tools (10) - Pro en Ultra
| Tool | Wat het doet |
|---|---|
| get_notes | Lijst notities met filters (tags, datumbereik, tekstzoekopdracht) |
| get_note | Bekijk een enkele notitie met onderliggende taken, afspraken en volledig transcript |
| get_notes_full | Krijg meerdere notities met ingebedde taken en afspraken in een oproep |
| get_tasks | Lijst taken gefilterd op status (to-do, klaar, alle), tags of datums |
| get_events | Lijst agenda-afspraken, filter op datumbereik |
| get_reports | Lees je dagelijkse, wekelijkse, maandelijkse en jaarlijkse rapporten (volledige markdown) |
| get_tags | Bekijk al je tags gesorteerd op gebruik |
| get_profile | Zie je accountinfo en gebruiksstatistieken |
| search | Zoek door notities, taken en afspraken (tekst + semantische zoekopdracht voor notities) |
| get_change_log | Bekijk de bewerkingsgeschiedenis van een notitie, taak of afspraak, en of elke bewerking ongedaan is gemaakt |
De tool search ondersteunt semantische zoekopdrachten voor notities - die vindt resultaten op betekenis, niet alleen op trefwoorden. Bijvoorbeeld: "vergaderingen over budget" vindt notities over financiele discussies ook al bevatten ze het woord "budget" niet.
Write-tools (17) - Pro en Ultra
| Tool | Wat het doet |
|---|---|
| process_note | Volledige AI-pipeline - stuur tekst of audio, krijg een notitie terug met taken, afspraken en tags |
| create_note | Voeg een platte tekstnotitie toe (geen AI-analyse) |
| create_task | Voeg een taak toe met prioriteit, deadline, herinnering en tags |
| create_event | Voeg een agenda-afspraak toe met datum, tijd, locatie, herinneringen, deelnemers en herhaling |
| update_note | Wijzig notitietitel, samenvatting, type, tags, prioriteit of status |
| update_task | Wijzig taaktitel, beschrijving, prioriteit, deadline, herinnering, tags of status |
| complete_task | Markeer een taak als klaar |
| update_event | Wijzig afspraakdetails, tijd, locatie, herinneringen, deelnemers, herhaling, tags of status |
| delete_note | Verwijder een notitie en alle gekoppelde taken en afspraken |
| delete_task | Verwijder een taak |
| delete_event | Verwijder een afspraak |
| undo_change_log_entry | Maak een enkele bijgehouden bewerking ongedaan - door de AI of door jezelf - en herstel de vorige waarde van het veld |
| restore_entity | Haal een verwijderde of gearchiveerde notitie, taak of afspraak terug |
| create_tag | Maak een nieuwe tag aan, of maak van een automatisch voorgestelde tag een permanente tag |
| set_tag_pinned | Zet een tag vast of maak deze los zodat die bovenaan wordt gesorteerd |
| delete_tag | Verwijder een tag (kan worden hersteld met restore_tag) |
| restore_tag | Haal een verwijderde tag terug |
Alle schrijf- en verwijderoperaties verschijnen direct op je verbonden apparaten (telefoon, web-app) via realtime sync.
Tools-naslagwerk
get_notes
Lijst notities met optionele filtering. Datumfilters gebruiken recorded_at (wanneer je de spraaknotitie hebt opgenomen), niet created_at.
| Parameter | Type | Standaard | Beschrijving |
|---|---|---|---|
limit | int | 20 | Aantal te retourneren notities (max 50) |
offset | int | 0 | Sla zoveel notities over (voor paginering, max 10000) |
tags | string | - | Filter op tags, door komma's gescheiden (matcht een of meerdere) |
search | string | - | Tekstzoekopdracht op titel en samenvatting |
date_from | string | - | Begindatum, YYYY-MM-DD (inclusief) |
date_to | string | - | Einddatum, YYYY-MM-DD (exclusief) |
standalone_only | bool | false | Indien true worden vervolgnotities (notities gekoppeld aan een bovenliggende notitie, taak of afspraak) verborgen en worden alleen zelfstandige notities geretourneerd |
Geeft terug: lijst van notities met id, title, summary, type, tags, priority, status, recorded_at, created_at.
get_note
Krijg een enkele notitie met volledig transcript en alle gekoppelde taken en afspraken.
| Parameter | Type | Beschrijving |
|---|---|---|
note_id | string | De UUID van de notitie |
Geeft terug: notitie met title, summary, transcript, type, tags, priority, status, metadata, created_at, plus arrays tasks[] en events[].
Geeft ook transcript_speakers terug (transcriptbeurten met sprekerlabels, voor vergaderingen met meerdere sprekers - anders null), speaker_count (null tenzij de opname per spreker is gesplitst) en parent_note_id/parent_task_id/parent_event_id (ingesteld wanneer deze notitie een opvolgbewerking van een ander item is). Elke tasks[]/events[]-vermelding bevat ook reminders_at/recurrence_rule (taken) of reminder_minutes/attendees/recurrence_rule (afspraken).
get_notes_full
Krijg meerdere notities met hun taken en afspraken in een enkele oproep. Dezelfde filters als get_notes, maar elke notitie bevat ingebedde tasks[] en events[].
| Parameter | Type | Standaard | Beschrijving |
|---|---|---|---|
limit | int | 10 | Aantal notities (max 20) |
offset | int | 0 | Sla zoveel notities over |
tags | string | - | Filter op tags |
date_from | string | - | Begindatum, YYYY-MM-DD |
date_to | string | - | Einddatum, YYYY-MM-DD |
standalone_only | bool | false | Indien true worden vervolgnotities (notities gekoppeld aan een bovenliggende notitie, taak of afspraak) verborgen en worden alleen zelfstandige notities geretourneerd |
get_tasks
Lijst taken met filtering.
| Parameter | Type | Standaard | Beschrijving |
|---|---|---|---|
status | string | "todo" | Filter: todo, done of all |
limit | int | 30 | Aantal taken (max 100) |
offset | int | 0 | Sla zoveel taken over |
tags | string | - | Filter op tags, door komma's gescheiden |
date_from | string | - | Begindatum, YYYY-MM-DD (filtert op deadline; taken zonder deadline worden uitgesloten) |
date_to | string | - | Einddatum, YYYY-MM-DD (filtert op deadline; taken zonder deadline worden uitgesloten) |
Geeft terug: lijst van taken met id, title, description, status, priority, tags, deadline, reminder_at, reminders_at, completed_at, completed_by, source, created_at. reminder_at spiegelt de eerste vermelding van reminders_at voor achterwaartse compatibiliteit - gebruik reminders_at om alle herinneringen van een taak te zien.
get_events
Lijst agenda-afspraken met filtering op datumbereik.
| Parameter | Type | Standaard | Beschrijving |
|---|---|---|---|
limit | int | 30 | Aantal afspraken (max 100) |
offset | int | 0 | Sla zoveel afspraken over |
date_from | string | - | Begindatum, YYYY-MM-DD (filtert op begintijd afspraak) |
date_to | string | - | Einddatum, YYYY-MM-DD |
Geeft terug: lijst van afspraken met id, title, description, status, start_at, end_at, location, is_all_day, tags, note_id, reminder_minutes, attendees, recurrence_rule, created_at.
get_reports
Krijg je door AI gegenereerde rapporten met volledige markdown-inhoud.
| Parameter | Type | Standaard | Beschrijving |
|---|---|---|---|
report_type | string | "daily" | Type: daily, weekly, monthly of yearly |
limit | int | 5 | Aantal rapporten (max 10) |
Geeft terug: lijst van rapporten met id, type, period_start, period_end, content_md, created_at.
Maandrapporten kunnen 3.000-5.000 woorden zijn. Gebruik limit=1 als je AI-tool een krap context-venster heeft.
get_tags
Krijg al je tags, eerst gesorteerd op gepind, daarna op gebruiksaantal.
Geen parameters. Geeft tot 100 tags terug, elk met tag, usage_count, is_pinned, is_manual.
get_profile
Krijg je accountinfo en gebruiksstatistieken.
Geen parameters. Geeft terug email, display_name, locale, transcription_locale, timezone, subscription, mcp_mode, created_at en stats (aantallen notities/taken/afspraken).
search
Zoek tegelijk door notities, taken en afspraken. Voor notities ondersteunt het zowel tekstzoekopdrachten als semantische zoekopdrachten (vindt resultaten op betekenis met AI-embeddings).
| Parameter | Type | Standaard | Beschrijving |
|---|---|---|---|
query | string | vereist | Zoektekst (max 500 tekens) |
limit | int | 20 | Max resultaten per type (max 20) |
semantic | bool | true | Semantische zoekopdracht voor notities inschakelen |
Geeft resultaten terug gegroepeerd per type: notes[], tasks[], events[]. Elk resultaat heeft id, type, title, detail, created_at.
Stel semantic=false in voor snellere zoekopdracht op alleen tekst.
get_change_log
Bekijk de bewerkingsgeschiedenis van een notitie, taak of afspraak - elke opvolgbewerking door de AI en elke handmatige bewerking die je zelf hebt aangebracht, nieuwste eerst.
| Parameter | Type | Standaard | Beschrijving |
|---|---|---|---|
entity | string | vereist | notes, tasks of events |
entity_id | string | vereist | De UUID van het item |
include_manual | bool | false | Neem ook je eigen handmatige bewerkingen mee, niet alleen die door de AI zijn gemaakt |
Geeft terug: lijst van wijzigingsvermeldingen met id (gebruik dit als entry_id om ongedaan te maken), field_name, old_value, new_value, source (follow_up, smart_context of manual), origin_note_id, edited_at en reverted_at (ingesteld zodra ongedaan gemaakt).
process_note (Pro en Ultra)
Volledige AI-pipeline - werkt hetzelfde als opnemen in de app. Stuur tekst of audio, en TellDone transcribeert, analyseert met AI en maakt een gestructureerde notitie met eruit gehaalde taken, afspraken, tags en embeddings.
Deze tool is asynchroon: hij geeft direct een audio_id terug en verwerkt op de achtergrond. Resultaten komen binnen via realtime sync naar je verbonden apparaten, of je kunt pollen met get_notes().
| Parameter | Type | Beschrijving |
|---|---|---|
text | string | Tekst om te analyseren (slaat transcriptie over als er geen audio is meegegeven) |
audio_base64 | string | Base64-gecodeerd audiobestand (tot 50MB, triggert transcriptie) |
audio_format | string | m4a, ogg, wav, mp3, aac of webm (standaard: m4a) |
parent_task_id | string | UUID van een taak waar dit een opvolging op is |
parent_note_id | string | UUID van een notitie waar dit een opvolging op is |
parent_event_id | string | UUID van een afspraak waar dit een opvolging op is |
Je moet ofwel text of audio_base64 (of beide - audio krijgt voorrang voor transcriptie) meegeven.
Geeft terug: {"audio_id": "...", "status": "processing", "mode": "text-only"} of "mode": "audio+stt" als audio is meegegeven.
process_note valt onder de quota van je abonnement (uploads per dag, notities per maand, max tekstlengte). Gebruik get_profile om je huidige gebruik te controleren.
create_note (Pro en Ultra)
Maak direct een platte tekstnotitie. Triggert geen AI-analyse - er worden geen taken of afspraken eruit gehaald. Voor volledige AI-analyse met taak-/afspraakextractie gebruik je in plaats hiervan process_note.
| Parameter | Type | Limiet | Beschrijving |
|---|---|---|---|
title | string | 200 tekens | Vereist |
summary | string | 1000 tekens | Optioneel. Korte teaser (1-3 zinnen). Opgenomen in rapport-prompts, dus houd het beknopt |
transcript | string | per abonnement | Optioneel. Lange body weergegeven in het notitiedetail. Niet opgenomen in rapporten. Limieten: Free 2.000 / Basic 8.000 / Pro 20.000 / Ultra 50.000 tekens |
type | string | - | Optioneel. task, idea, info (standaard), status, meeting, event of reflection |
tags | string | 20 tags | Door komma's gescheiden, optioneel |
create_task (Pro en Ultra)
Maak een nieuwe taak aan.
| Parameter | Type | Limiet | Beschrijving |
|---|---|---|---|
title | string | 200 tekens | Vereist |
description | string | 2000 tekens | Optioneel |
priority | string | - | low, medium (standaard) of high |
deadline | string | - | YYYY-MM-DD, optioneel |
reminder_at | string | - | ISO 8601 datetime (bijv. 2026-04-15T09:00:00Z), optioneel |
tags | string | 20 tags | Door komma's gescheiden, optioneel |
note_id | string | - | UUID om taak aan een bovenliggende notitie te koppelen, optioneel |
create_event (Pro en Ultra)
Maak een agenda-afspraak aan.
| Parameter | Type | Limiet | Beschrijving |
|---|---|---|---|
title | string | 200 tekens | Vereist |
start_at | string | - | ISO 8601 datetime, vereist |
end_at | string | - | ISO 8601 datetime (standaard: start + 1 uur) |
description | string | 2000 tekens | Optioneel |
location | string | 200 tekens | Optioneel |
is_all_day | bool | - | Standaard: false |
tags | string | 20 tags | Door komma's gescheiden, optioneel |
reminder_minutes | string | - | Door komma's gescheiden minuten voor afspraak (bijv. 15,60), optioneel |
attendees | string | - | Door komma's gescheiden namen of e-mails, optioneel |
recurrence_rule | string | - | RRULE-string (bijv. FREQ=WEEKLY;BYDAY=MO,WE,FR), optioneel |
note_id | string | - | UUID om afspraak aan bovenliggende notitie te koppelen, optioneel |
update_note (Pro en Ultra)
Werk een of meer velden van een bestaande notitie bij. Alleen velden die je meegeeft, worden gewijzigd.
| Parameter | Type | Beschrijving |
|---|---|---|
note_id | string | Vereist, de UUID van de notitie |
title | string | Nieuwe titel (max 200 tekens) |
summary | string | Nieuwe samenvatting (max 1000 tekens, geef een spatie " " mee om te wissen) |
transcript | string | Nieuw transcript (limiet per abonnement, geef een spatie " " mee om te wissen) |
type | string | task, idea, info, status, meeting, event of reflection |
tags | string | Door komma's gescheiden tags (vervangt alle bestaande tags, max 20) |
priority | string | low, medium of high |
status | string | active of archived |
Voor notities die door de spraak-pipeline zijn aangemaakt, is transcript de originele speech-to-text-uitvoer. Overschrijven vervangt de canonieke bron - overweeg om eraan toe te voegen als je het origineel wilt bewaren.
update_task (Pro en Ultra)
Werk een of meer velden van een bestaande taak bij. Alleen velden die je meegeeft, worden gewijzigd.
| Parameter | Type | Beschrijving |
|---|---|---|
task_id | string | Vereist, de UUID van de taak |
title | string | Nieuwe titel |
description | string | Nieuwe beschrijving (geef een spatie " " om te wissen) |
priority | string | low, medium of high |
deadline | string | YYYY-MM-DD (geef een spatie om te wissen) |
status | string | todo of done |
tags | string | Door komma's gescheiden tags (vervangt alle bestaande tags, max 20) |
reminder_at | string | ISO 8601 datetime (geef een spatie om te wissen) |
status op done zetten registreert ook wanneer en hoe de taak is voltooid.
complete_task (Pro en Ultra)
Snelkoppeling om een taak als klaar te markeren.
| Parameter | Type | Beschrijving |
|---|---|---|
task_id | string | Vereist, de UUID van de taak |
Geeft een fout terug als de taak niet bestaat of al voltooid is.
update_event (Pro en Ultra)
Werk een of meer velden van een bestaande afspraak bij. Alleen velden die je meegeeft, worden gewijzigd.
| Parameter | Type | Beschrijving |
|---|---|---|
event_id | string | Vereist, de UUID van de afspraak |
title | string | Nieuwe titel |
description | string | Nieuwe beschrijving (geef een spatie om te wissen) |
start_at | string | Nieuwe begintijd (ISO 8601) |
end_at | string | Nieuwe eindtijd (ISO 8601) |
location | string | Nieuwe locatie (geef een spatie om te wissen) |
status | string | confirmed, tentative of cancelled |
tags | string | Door komma's gescheiden tags (vervangt alle bestaande tags, max 20) |
is_all_day | string | "true" of "false" |
reminder_minutes | string | Door komma's gescheiden minuten voor afspraak (bijv. 15,60) |
attendees | string | Door komma's gescheiden namen of e-mails |
recurrence_rule | string | RRULE-string (geef een spatie om te wissen) |
delete_note (Pro en Ultra)
Verwijder een notitie. Dit verwijdert ook alle taken en afspraken die uit deze notitie zijn aangemaakt.
| Parameter | Type | Beschrijving |
|---|---|---|
note_id | string | Vereist, de UUID van de notitie |
delete_task (Pro en Ultra)
Verwijder een taak.
| Parameter | Type | Beschrijving |
|---|---|---|
task_id | string | Vereist, de UUID van de taak |
delete_event (Pro en Ultra)
Verwijder een afspraak.
| Parameter | Type | Beschrijving |
|---|---|---|
event_id | string | Vereist, de UUID van de afspraak |
undo_change_log_entry (Pro en Ultra)
Maak een enkele bijgehouden bewerking ongedaan - herstelt het veld naar de waarde van vóór die bewerking, of de bewerking nu door de AI is gemaakt (vanuit een opvolgopname) of door jou rechtstreeks.
| Parameter | Type | Beschrijving |
|---|---|---|
entity | string | Vereist, notes, tasks of events |
entity_id | string | Vereist, de UUID van het item |
entry_id | string | Vereist, de id van de wijzigingsvermelding uit get_change_log |
Geeft terug: {"entry_id", "entity_type", "entity_id", "field_name", "restored_value", "reverted_at"}. Dezelfde vermelding twee keer ongedaan maken geeft een fout - die is al ongedaan gemaakt.
restore_entity (Pro en Ultra)
Haal een verwijderde of gearchiveerde notitie, taak of afspraak terug.
| Parameter | Type | Beschrijving |
|---|---|---|
entity | string | Vereist, notes, tasks of events |
entity_id | string | Vereist, de UUID van het item |
Geeft terug: het herstelde item als JSON.
create_tag (Pro en Ultra)
Maak een nieuwe tag aan, of maak van een bestaande automatisch voorgestelde tag een permanente tag.
| Parameter | Type | Beschrijving |
|---|---|---|
tag | string | Vereist, 1-50 tekens (opgeslagen in kleine letters) |
category | string | Optioneel |
set_tag_pinned (Pro en Ultra)
Zet een tag vast of maak deze los zodat die bovenaan je taglijst wordt gesorteerd.
| Parameter | Type | Beschrijving |
|---|---|---|
tag | string | Vereist |
pinned | bool | Vereist |
Tags met een /-teken kunnen niet worden vastgezet.
delete_tag (Pro en Ultra)
Verwijder een tag. Kan worden teruggehaald met restore_tag.
| Parameter | Type | Beschrijving |
|---|---|---|
tag | string | Vereist |
restore_tag (Pro en Ultra)
Haal een verwijderde tag terug.
| Parameter | Type | Beschrijving |
|---|---|---|
tag | string | Vereist |
Invoerlimieten
| Veld | Max lengte | Gebruikt in |
|---|---|---|
| title | 200 tekens | create/update note, task, event |
| description | 2.000 tekens | create/update task, event |
| summary | 1.000 tekens (hard) | create/update note. Opgenomen in rapport-prompts, kort gehouden om tokenkosten te beheersen |
| transcript | per abonnement: Free 2.000 / Basic 8.000 / Pro 20.000 / Ultra 50.000 | create/update note. Lange body, niet in rapporten |
| location | 200 tekens | create/update event |
| tags | 20 tags | create/update note, task, event |
| zoekquery | 500 tekens | search |
| audio_base64 (gedecodeerd) | 50 MB | process_note |
Als je een limiet overschrijdt, retourneert de tool een foutmelding zoals "title too long (max 200 chars, got 250)".
Foutafhandeling
Alle tools retourneren JSON. Fouten gebruiken dit formaat:
{"error": "description of what went wrong"}
Veelvoorkomende fouten:
| Fout | Wanneer |
|---|---|
"MCP access is read-only..." | Schrijftool aangeroepen in read-only-modus |
"Invalid note_id format" | Niet-UUID-string als ID meegegeven |
"Note not found" | ID bestaat niet of hoort bij een andere gebruiker |
"Task not found or already completed" | complete_task op niet-bestaande of reeds afgeronde taak |
"title too long (max 200 chars, got N)" | Invoerlimiet overschreden |
"Too many tags (max 20)" | Meer dan 20 tags meegegeven |
Fouten op HTTP-niveau:
| Code | Betekenis |
|---|---|
| 401 | Ongeldig of ontbrekend Bearer-token |
| 403 | MCP uitgeschakeld of abonnement staat MCP niet toe |
| 429 | Rate limit overschreden (5 req/s, burst tot 20) |
Gebruiksvoorbeelden
Alle voorbeelden gebruiken cURL met het MCP JSON-RPC-protocol. Vervang YOUR_TOKEN door je verbindingstoken.
Data lezen
# Krijg je profiel en 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"}}'
# Lijst recente notities (limiet 5, vanaf 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"}}}'
# Zoek notities (hybride tekst + semantisch)
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}}}'
Data schrijven (Pro en Ultra)
# Verwerk een notitie door de volledige AI-pipeline (haalt taken + afspraken eruit)
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."}}}'
# Maak een taak met deadline en herinnering
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"}}}'
# Maak een terugkerende afspraak met herinneringen en deelnemers
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"}}}'
# Rond een taak af
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>"}}}'
Een succesvol antwoord ziet er zo uit:
{
"jsonrpc": "2.0",
"id": 10,
"result": {
"content": [{"type": "text", "text": "{\"id\":\"...\",\"title\":\"Review PR\",\"status\":\"todo\"}"}]
}
}
Schrijf- en update-tools retourneren minimale antwoorden met alleen id, title en status. Om volledige details te krijgen (tags, prioriteit, deadline, enz.) na een schrijfactie, doe een opvolgende leesoproep zoals get_tasks of get_note.
Tokenbeheer
| Actie | Hoe |
|---|---|
| Token bekijken | iPhone Instellingen → Integraties → AI Agents (of web Instellingen → AI Agents), tik op het oogpictogram |
| Token kopiëren | Tik op het kopieerpictogram naast het token |
| Regenerate | Tik op Regenerate en bevestig. Het oude token werkt direct niet meer en actieve sessies worden verbroken |
| Modus wijzigen | Alleen Ultra - schakel tussen Read-only en Read + Write. Op Pro is de modus vast op Read + Write |
| Uitschakelen | Tik op Disable en bevestig. Het token wordt verwijderd en alle verbindingen stoppen. Je kunt later opnieuw inschakelen (er wordt dan een nieuw token uitgegeven) |
Wat je je AI-agent kunt vragen
Zodra je verbonden bent, kun je je AI-tool dingen vragen als:
Bekijk je dag:
- "Waar heb ik vandaag aan gewerkt?"
- "Toon mijn notities van deze week"
- "Welke taken zijn achterstallig?"
Beheer taken:
- "Maak een taak: kwartaalrapport reviewen, hoge prioriteit, deadline vrijdag"
- "Markeer de Figma-taak als klaar"
- "Aan welke taken werk ik?"
Zoek en analyseer:
- "Vind alle notities over de marketingstrategie"
- "Welke afspraken heb ik volgende week?"
- "Vat mijn dagrapporten van afgelopen week samen"
Plan vooruit:
- "Maak een afspraak: team standup morgen om 10 uur"
- "Wat staat er deze week in mijn agenda?"
- "Toon mijn top tags - waar besteed ik de meeste tijd aan?"
De AI-agent heeft volledige toegang tot je notities, taken, afspraken en rapporten. Hij kan data lezen, aanmaken, bijwerken en verwijderen, en complexe vragen beantwoorden door informatie uit meerdere tools te combineren.
Belangrijke opmerkingen
- Twee manieren om notities aan te maken -
create_notemaakt direct een platte tekstnotitie aan (geen AI-analyse).process_notevoert de volledige AI-pipeline uit (zelfde als opnemen in de app) - het analyseert de tekst, haalt taken en afspraken eruit en genereert tags en embeddings. Gebruikprocess_notewanneer je wilt dat TellDone het denkwerk voor je doet. - Geen integratiesync - items aangemaakt of bijgewerkt via MCP triggeren geen webhook-automations of integratiesyncs (Todoist, Notion). Ze verschijnen in je apps bij de volgende sync.
- Semantische zoekopdracht hangt af van de tool - notities aangemaakt met
process_notekrijgen embeddings en verschijnen in semantische zoekopdrachten. Notities aangemaakt metcreate_notekrijgen geen embeddings, dus ze verschijnen alleen in tekstzoekopdrachten. - Schrijfantwoorden zijn minimaal - create- en update-tools retourneren alleen
id,titleenstatus. Om alle velden te krijgen na een schrijfactie, doe een opvolgende leesoproep. - Datumfilters gebruiken UTC - parameters
date_from/date_toworden vergeleken als UTC-tijdstempels. Voor gebruikers in niet-UTC-tijdzones kunnen grensdatums items van aangrenzende dagen opnemen of uitsluiten. - Rate limit - 5 verzoeken per seconde, met bursts tot 20. Voor bulkoperaties moet je je verzoeken doseren.
Beveiliging
- Elke gebruiker krijgt een uniek verbindingstoken van 384 bits
- Je token wordt direct ingetrokken wanneer je MCP uitschakelt of regenereert
- Alle data is strikt geïsoleerd tot je account - je agent kan alleen je eigen data benaderen
- Elk verzoek is gescoped naar je gebruiker - er is geen manier waarop een agent data van een andere gebruiker kan benaderen
- Verbinding gebruikt HTTPS met rate limiting (5 req/s, burst tot 20)
- OAuth-verbindingen gebruiken PKCE met eenmalig bruikbare autorisatiecodes en kortlevende toegangstokens - je kunt een verbinding op elk moment intrekken vanuit de app
Wil je de techniek induiken - discovery-endpoints, tokenlevensduur, de volledige OAuth-flow - bekijk dan onze open-source connector-referentie op github.com/exp78/telldone-mcp, of bevraag https://api.telldone.app/.well-known/oauth-protected-resource rechtstreeks.
Privacy en datastroom
Je data wordt alleen naar een verbonden AI-tool gestuurd wanneer je die er expliciet om vraagt - bijvoorbeeld wanneer je vraagt om je notities te lezen of te wijzigen. De tool ontvangt alleen de antwoorden op de specifieke oproepen die hij doet, binnen de rechten die je hebt goedgekeurd. Jij houdt de controle: wijzig de read/write-modus van je abonnement, beperk de OAuth-scopes die je bij het inloggen goedkeurt, of regenereer en schakel je bearer-token uit, allemaal vanuit Instellingen. Zie het Privacybeleid voor alle details, of neem contact op via support@telldone.app als je vragen hebt.
Problemen oplossen
| Symptoom | Oorzaak / oplossing |
|---|---|
| De OAuth-toestemmingspagina zegt "Wrong email or password" | Gebruik het e-mailadres en wachtwoord van je TellDone-account (waarmee je inlogt in de app). Als je account alleen Apple of Google Sign In heeft en geen wachtwoord, gebruik dan de bearer-tokenmethode. |
| Verbonden, maar de AI kan niets aanmaken of bewerken | Je abonnement of modus is read-only, of de verbinding heeft geen write-scopes gekregen - verbind opnieuw en keur ze goed, of controleer je modus in Instellingen. |
| Foutmelding "Insufficient scope" van een tool | De OAuth-verbinding heeft die scope niet gekregen. Verbind opnieuw en keur het recht goed dat de tool nodig heeft. |
| Er verschijnen helemaal geen tools | MCP staat niet aan op je account (Instellingen → AI Agents), of je abonnement bevat geen MCP. |
| Mijn client laat me alleen kiezen uit een lijst met connectors en TellDone staat er niet bij | TellDone staat nog niet in de connector-directory van een client - voeg het toe als custom connector met de MCP-URL, of gebruik de bearer-tokenmethode. |
Zie ook
- Webhook-automations - data automatisch naar externe services sturen
- Todoist - dedicated tweerichtings tasksync
- Notion - dedicated Notion-integratie