MCP-Zugang (KI-Agenten)
MCP ist jetzt vollständig auf dem iPhone verfügbar (zusätzlich zur Web-App). Der iPhone-Bildschirm spiegelt den Web-Bildschirm und enthält dieselben Setup-Snippets für alle unterstützten KI-Clients.
MCP-Zugang erfordert einen Pro- oder Ultra-Plan. Beide Pläne erhalten vollen Read + Write-Zugriff (20 Tools). Ultra hat höhere Quoten und kann zusätzlich auf Read-only umschalten.
MCP (Model Context Protocol) lässt dich KI-Coding-Assistenten und Automations-Tools direkt mit deinen TellDone-Daten verbinden. Einmal verbunden, kann dein KI-Agent deine Notizen, Aufgaben, Termine und Berichte lesen - und Einträge erstellen, aktualisieren und löschen. Es gibt insgesamt 20 Tools: 9 zum Lesen und 11 zum Schreiben von Daten.
Verfügbar sowohl in der iPhone-App (Einstellungen -> Integrationen -> KI-Agenten) als auch in der Web-App (Einstellungen -> KI-Agenten).
Plan-Voraussetzungen
| Plan | MCP |
|---|---|
| Free | Gesperrt |
| Basic | Gesperrt |
| Pro | Read + Write (20 Tools) |
| Ultra | Read + Write (20 Tools, höhere Quoten) - kann zusätzlich auf Read-only umschalten |
Der In-App-Bildschirm
Der KI-Agenten-Bildschirm hat drei Zustände, je nach Plan und ob MCP eingeschaltet ist.
Gesperrt (Free und Basic)
Im Free- oder Basic-Plan erklärt der Bildschirm, was MCP macht, und zeigt einen Upgrade-Button. Tippst du drauf, öffnet sich die Paywall, wo du auf Pro oder Ultra wechseln kannst.
Deaktiviert (Pro und Ultra, Funktion aus)
Bist du auf Pro oder Ultra, hast MCP aber noch nicht eingeschaltet, zeigt der Bildschirm eine kurze Übersicht, was dein Plan kann (Anzahl Tools, Zugriffsmodus, Quoten) und einen Aktivieren-Button. Tipp drauf, um deinen Verbindungs-Token zu generieren und die Integration zu starten.
Aktiviert
Einmal aktiviert, zeigt der Bildschirm alles, was du brauchst, um einen KI-Client zu verbinden:
- Modus-Schalter - auf Ultra kannst du zwischen Read-only und Read + Write wechseln. Auf Pro ist der Modus auf Read + Write festgelegt.
- Access Token-Zeile mit Augen-Schalter zum Anzeigen oder Verbergen des Tokens und einem Kopieren-Button.
- Setup-Auswahl mit Tabs für Claude Code, Cursor, Windsurf und Sonstige. Das passende Code-Snippet erscheint unter den Tabs - einfach kopieren und in deinen KI-Client einfügen.
- Regenerieren-Button - rotiert den Token sofort und trennt aktive Sitzungen, die den alten Token nutzen.
- Deaktivieren-Button - schaltet MCP aus und löscht den Token. Du kannst es später wieder aktivieren, dann wird ein neuer Token ausgestellt.
Halt deinen Verbindungs-Token geheim. Wer den Token hat, kann auf deine TellDone-Daten zugreifen. Nutze Regenerieren, falls du jemals vermutest, dass der Token nach außen gelangt ist.
So aktivierst du
Du kannst MCP von beiden Plattformen aus konfigurieren:
- iPhone: Einstellungen -> Integrationen -> KI-Agenten (MCP)
- Web: app.telldone.app -> Einstellungen -> KI-Agenten
Schritte:
- Tipp auf Aktivieren.
- Wähle deinen Zugriffsmodus (nur Ultra - Pro ist immer Read + Write).
- Zeige deinen Token mit dem Augen-Symbol an und kopier ihn mit dem Kopieren-Symbol.
- Wähle dein Tool im Abschnitt Setup (Claude Code, Cursor, Windsurf oder Sonstige).
- Füg das Snippet in die Konfiguration deines KI-Clients ein.
Dein KI-Tool verbinden
Die vier Tabs in der In-App-Setup-Auswahl (Claude Code, Cursor, Windsurf, Sonstige) entsprechen den Abschnitten unten. Ersetz YOUR_TOKEN in allen Beispielen durch den Token aus deinen Einstellungen.
Claude Code
Führ diesen Befehl im Terminal aus:
claude mcp add telldone --transport http \
https://api.telldone.app/mcp/user/mcp \
--header "Authorization: Bearer YOUR_TOKEN"
Cursor
Füg in .cursor/mcp.json hinzu:
{
"mcpServers": {
"telldone": {
"url": "https://api.telldone.app/mcp/user/mcp",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}
Windsurf
Füg in .codeium/windsurf/mcp_config.json hinzu:
{
"mcpServers": {
"telldone": {
"serverUrl": "https://api.telldone.app/mcp/user/mcp",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}
Sonstige
Nutz diese Snippets für Clients, die der In-App-Picker unter Sonstige zusammenfasst.
Codex
Füg in codex.json hinzu:
{
"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
Andere MCP-Clients
Jedes Tool, das MCP über HTTP unterstützt, kann verbunden werden. Nutz den Endpoint https://api.telldone.app/mcp/user/mcp mit einem Bearer YOUR_TOKEN-Authorization-Header.
Wenn dein Client oder Proxy den Authorization-Header reserviert (z. B. einige Smithery-artige Gateways), schick den Token stattdessen in X-MCP-Token: YOUR_TOKEN. Beide Header funktionieren; wenn beide vorhanden sind, gewinnt Authorization.
Verbindung testen
Du kannst mit einem einfachen cURL-Befehl prüfen, ob dein Token funktioniert:
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}'
Eine erfolgreiche Antwort listet alle verfügbaren Tools auf.
Was du tun kannst
Read-Tools (9) - Pro und Ultra
| Tool | Was es macht |
|---|---|
| get_notes | Notizen mit Filtern auflisten (Tags, Datumsbereich, Textsuche) |
| get_note | Eine einzelne Notiz mit ihren untergeordneten Aufgaben, Terminen und vollständigem Transkript ansehen |
| get_notes_full | Mehrere Notizen mit eingebetteten Aufgaben und Terminen in einem Aufruf holen |
| get_tasks | Aufgaben gefiltert nach Status (offen, erledigt, alle), Tags oder Datum auflisten |
| get_events | Kalendertermine auflisten, nach Datumsbereich filtern |
| get_reports | Tages-, Wochen-, Monats- und Jahresberichte lesen (volles Markdown) |
| get_tags | Alle deine Tags nach Nutzung sortiert ansehen |
| get_profile | Konto-Infos und Nutzungsstatistiken einsehen |
| search | Über Notizen, Aufgaben und Termine hinweg suchen (Text + semantische Suche für Notizen) |
Das search-Tool unterstützt semantische Suche für Notizen - es findet Ergebnisse nach Bedeutung, nicht nur nach Stichwörtern. Eine Suche nach "Meetings über Budget" findet etwa Notizen über finanzielle Diskussionen, auch wenn das Wort "Budget" nicht vorkommt.
Write-Tools (11) - Pro und Ultra
| Tool | Was es macht |
|---|---|
| process_note | Volle KI-Pipeline - schick Text oder Audio, bekomm eine Notiz mit Aufgaben, Terminen und Tags zurück |
| create_note | Eine reine Textnotiz hinzufügen (ohne KI-Analyse) |
| create_task | Aufgabe mit Priorität, Frist, Erinnerung und Tags hinzufügen |
| create_event | Kalendertermin mit Datum, Uhrzeit, Ort, Erinnerungen, Teilnehmern und Wiederholung hinzufügen |
| update_note | Notiztitel, Zusammenfassung, Typ, Tags, Priorität oder Status ändern |
| update_task | Aufgabentitel, Beschreibung, Priorität, Frist, Erinnerung, Tags oder Status ändern |
| complete_task | Aufgabe als erledigt markieren |
| update_event | Termindetails, Zeit, Ort, Erinnerungen, Teilnehmer, Wiederholung, Tags oder Status ändern |
| delete_note | Notiz und alle verknüpften Aufgaben und Termine löschen |
| delete_task | Aufgabe löschen |
| delete_event | Termin löschen |
Alle Write- und Delete-Operationen erscheinen über Echtzeit-Sync sofort auf deinen verbundenen Geräten (Telefon, Web-App).
Tools-Referenz
get_notes
Notizen mit optionalen Filtern auflisten. Datumsfilter nutzen recorded_at (wann du die Sprachnotiz aufgenommen hast), nicht created_at.
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
limit | int | 20 | Anzahl der Notizen (max 50) |
offset | int | 0 | So viele Notizen überspringen (für Paginierung, max 10000) |
tags | string | - | Nach Tags filtern, kommagetrennt (matcht beliebigen) |
search | string | - | Textsuche in Titel und Zusammenfassung |
date_from | string | - | Startdatum, YYYY-MM-DD (inklusive) |
date_to | string | - | Enddatum, YYYY-MM-DD (exklusive) |
Gibt zurück: Liste der Notizen mit id, title, summary, type, tags, priority, status, recorded_at, created_at.
get_note
Eine einzelne Notiz mit vollständigem Transkript und allen verknüpften Aufgaben und Terminen abrufen.
| Parameter | Typ | Beschreibung |
|---|---|---|
note_id | string | Die UUID der Notiz |
Gibt zurück: Notiz mit title, summary, transcript, type, tags, priority, status, metadata, created_at, plus tasks[] und events[] Arrays.
get_notes_full
Mehrere Notizen mit ihren Aufgaben und Terminen in einem einzigen Aufruf holen. Gleiche Filter wie get_notes, aber jede Notiz enthält eingebettete tasks[] und events[].
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
limit | int | 10 | Anzahl der Notizen (max 20) |
offset | int | 0 | So viele Notizen überspringen |
tags | string | - | Nach Tags filtern |
date_from | string | - | Startdatum, YYYY-MM-DD |
date_to | string | - | Enddatum, YYYY-MM-DD |
get_tasks
Aufgaben mit Filtern auflisten.
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
status | string | "todo" | Filter: todo, done oder all |
limit | int | 30 | Anzahl der Aufgaben (max 100) |
offset | int | 0 | So viele Aufgaben überspringen |
tags | string | - | Nach Tags filtern, kommagetrennt |
date_from | string | - | Startdatum, YYYY-MM-DD (filtert nach Frist; Aufgaben ohne Frist werden ausgeschlossen) |
date_to | string | - | Enddatum, YYYY-MM-DD (filtert nach Frist; Aufgaben ohne Frist werden ausgeschlossen) |
Gibt zurück: Liste der Aufgaben mit id, title, description, status, priority, tags, deadline, reminder_at, completed_at, completed_by, source, created_at.
get_events
Kalendertermine mit Datumsbereichsfilter auflisten.
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
limit | int | 30 | Anzahl der Termine (max 100) |
offset | int | 0 | So viele Termine überspringen |
date_from | string | - | Startdatum, YYYY-MM-DD (filtert nach Termin-Startzeit) |
date_to | string | - | Enddatum, YYYY-MM-DD |
Gibt zurück: Liste der Termine mit id, title, description, status, start_at, end_at, location, is_all_day, tags, created_at.
get_events gibt attendees, reminder_minutes oder recurrence_rule nicht zurück. Diese sind über create_event/update_event schreibbar, aber nicht in der Listenausgabe enthalten. Wenn du sie brauchst, hol die übergeordnete Notiz mit get_note.
get_reports
Hol deine KI-generierten Berichte mit vollständigem Markdown-Inhalt.
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
report_type | string | "daily" | Typ: daily, weekly, monthly oder yearly |
limit | int | 5 | Anzahl der Berichte (max 10) |
Gibt zurück: Liste der Berichte mit id, type, period_start, period_end, content_md, created_at.
Monatsberichte können 3.000-5.000 Wörter haben. Nutz limit=1, wenn dein KI-Tool ein enges Kontextfenster hat.
get_tags
Alle deine Tags abrufen, sortiert nach Pinned zuerst, dann nach Nutzungszahl.
Keine Parameter. Gibt bis zu 100 Tags zurück, jeweils mit tag, usage_count, is_pinned, is_manual.
get_profile
Hol Konto-Infos und Nutzungsstatistiken.
Keine Parameter. Gibt zurück: email, display_name, locale, transcription_locale, timezone, subscription, mcp_mode, created_at und stats (Anzahl Notizen/Aufgaben/Termine).
search
Such gleichzeitig über Notizen, Aufgaben und Termine. Für Notizen werden sowohl Textsuche als auch semantische Suche unterstützt (findet Ergebnisse nach Bedeutung mittels KI-Embeddings).
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
query | string | erforderlich | Suchtext (max 500 Zeichen) |
limit | int | 20 | Max. Ergebnisse pro Typ (max 20) |
semantic | bool | true | Semantische Suche für Notizen aktivieren |
Gibt Ergebnisse nach Typ gruppiert zurück: notes[], tasks[], events[]. Jedes Ergebnis hat id, type, title, detail, created_at.
Setze semantic=false für eine schnellere Nur-Text-Suche.
process_note (Pro und Ultra)
Volle KI-Pipeline - funktioniert wie das Aufnehmen in der App. Schick Text oder Audio, und TellDone transkribiert, analysiert mit KI und erstellt eine strukturierte Notiz mit extrahierten Aufgaben, Terminen, Tags und Embeddings.
Dieses Tool ist asynchron: es kehrt sofort mit einer audio_id zurück und verarbeitet im Hintergrund. Ergebnisse kommen über Echtzeit-Sync auf deinen verbundenen Geräten an, oder du kannst mit get_notes() pollen.
| Parameter | Typ | Beschreibung |
|---|---|---|
text | string | Zu analysierender Text (überspringt Transkription, wenn kein Audio mitgeschickt) |
audio_base64 | string | Base64-kodierte Audio-Datei (bis 50 MB, löst Transkription aus) |
audio_format | string | m4a, ogg, wav, mp3, aac oder webm (Standard: m4a) |
parent_task_id | string | UUID einer Aufgabe, zu der dies eine Folgeaufnahme ist |
parent_note_id | string | UUID einer Notiz, zu der dies eine Folgeaufnahme ist |
parent_event_id | string | UUID eines Termins, zu dem dies eine Folgeaufnahme ist |
Du musst entweder text oder audio_base64 mitschicken (oder beides - Audio hat Vorrang für die Transkription).
Gibt zurück: {"audio_id": "...", "status": "processing", "mode": "text-only"} oder "mode": "audio+stt" falls Audio mitgeschickt wurde.
process_note unterliegt den Quoten deines Plans (Uploads pro Tag, Notizen pro Monat, max. Textlänge). Nutz get_profile, um deine aktuelle Nutzung zu prüfen.
create_note (Pro und Ultra)
Sofort eine reine Textnotiz erstellen. Löst keine KI-Analyse aus - es werden keine Aufgaben oder Termine extrahiert. Für volle KI-Analyse mit Aufgaben-/Terminextraktion nimm stattdessen process_note.
| Parameter | Typ | Limit | Beschreibung |
|---|---|---|---|
title | string | 200 Zeichen | Erforderlich |
summary | string | 1000 Zeichen | Optional. Kurzer Teaser (1-3 Sätze). Geht in die Bericht-Prompts ein, also kurz halten |
transcript | string | plan-basiert | Optional. Langer Textkörper, in der Notiz-Detailansicht. Nicht in Berichten. Limits: Free 2.000 / Basic 8.000 / Pro 20.000 / Ultra 50.000 Zeichen |
type | string | - | Optional. task, idea, info (Standard), status, meeting, event oder reflection |
tags | string | 20 Tags | Kommagetrennt, optional |
create_task (Pro und Ultra)
Eine neue Aufgabe erstellen.
| Parameter | Typ | Limit | Beschreibung |
|---|---|---|---|
title | string | 200 Zeichen | Erforderlich |
description | string | 2000 Zeichen | Optional |
priority | string | - | low, medium (Standard) oder high |
deadline | string | - | YYYY-MM-DD, optional |
reminder_at | string | - | ISO 8601-Datum/Uhrzeit (z. B. 2026-04-15T09:00:00Z), optional |
tags | string | 20 Tags | Kommagetrennt, optional |
note_id | string | - | UUID, um die Aufgabe mit einer Eltern-Notiz zu verknüpfen, optional |
create_event (Pro und Ultra)
Einen Kalendertermin erstellen.
| Parameter | Typ | Limit | Beschreibung |
|---|---|---|---|
title | string | 200 Zeichen | Erforderlich |
start_at | string | - | ISO 8601-Datum/Uhrzeit, erforderlich |
end_at | string | - | ISO 8601-Datum/Uhrzeit (Standard: Start + 1 Stunde) |
description | string | 2000 Zeichen | Optional |
location | string | 200 Zeichen | Optional |
is_all_day | bool | - | Standard: false |
tags | string | 20 Tags | Kommagetrennt, optional |
reminder_minutes | string | - | Kommagetrennte Minuten vor dem Termin (z. B. 15,60), optional |
attendees | string | - | Kommagetrennte Namen oder E-Mails, optional |
recurrence_rule | string | - | RRULE-String (z. B. FREQ=WEEKLY;BYDAY=MO,WE,FR), optional |
note_id | string | - | UUID, um den Termin mit einer Eltern-Notiz zu verknüpfen, optional |
update_note (Pro und Ultra)
Eines oder mehrere Felder einer bestehenden Notiz aktualisieren. Nur die übergebenen Felder werden geändert.
| Parameter | Typ | Beschreibung |
|---|---|---|
note_id | string | Erforderlich, die UUID der Notiz |
title | string | Neuer Titel (max 200 Zeichen) |
summary | string | Neue Zusammenfassung (max 1000 Zeichen, ein Leerzeichen " " zum Löschen übergeben) |
transcript | string | Neues Transkript (plan-basiertes Limit, ein Leerzeichen " " zum Löschen übergeben) |
type | string | task, idea, info, status, meeting, event oder reflection |
tags | string | Kommagetrennte Tags (ersetzt alle vorhandenen Tags, max 20) |
priority | string | low, medium oder high |
status | string | active oder archived |
Bei Notizen, die durch die Sprach-Pipeline erstellt wurden, ist transcript der ursprüngliche Speech-to-Text-Output. Wenn du ihn überschreibst, ersetzt das die kanonische Quelle - erwäg lieber, etwas anzuhängen, wenn du das Original behalten willst.
update_task (Pro und Ultra)
Eines oder mehrere Felder einer bestehenden Aufgabe aktualisieren. Nur die übergebenen Felder werden geändert.
| Parameter | Typ | Beschreibung |
|---|---|---|
task_id | string | Erforderlich, die UUID der Aufgabe |
title | string | Neuer Titel |
description | string | Neue Beschreibung (Leerzeichen zum Löschen übergeben) |
priority | string | low, medium oder high |
deadline | string | YYYY-MM-DD (Leerzeichen zum Löschen) |
status | string | todo oder done |
tags | string | Kommagetrennte Tags (ersetzt alle vorhandenen Tags, max 20) |
reminder_at | string | ISO 8601-Datum/Uhrzeit (Leerzeichen zum Löschen) |
status auf done zu setzen erfasst auch, wann und wie die Aufgabe abgeschlossen wurde.
complete_task (Pro und Ultra)
Kürzel, um eine Aufgabe als erledigt zu markieren.
| Parameter | Typ | Beschreibung |
|---|---|---|
task_id | string | Erforderlich, die UUID der Aufgabe |
Gibt einen Fehler zurück, wenn die Aufgabe nicht existiert oder bereits abgeschlossen ist.
update_event (Pro und Ultra)
Eines oder mehrere Felder eines bestehenden Termins aktualisieren. Nur die übergebenen Felder werden geändert.
| Parameter | Typ | Beschreibung |
|---|---|---|
event_id | string | Erforderlich, die UUID des Termins |
title | string | Neuer Titel |
description | string | Neue Beschreibung (Leerzeichen zum Löschen) |
start_at | string | Neue Startzeit (ISO 8601) |
end_at | string | Neue Endzeit (ISO 8601) |
location | string | Neuer Ort (Leerzeichen zum Löschen) |
status | string | confirmed, tentative oder cancelled |
tags | string | Kommagetrennte Tags (ersetzt alle vorhandenen Tags, max 20) |
is_all_day | string | "true" oder "false" |
reminder_minutes | string | Kommagetrennte Minuten vor dem Termin (z. B. 15,60) |
attendees | string | Kommagetrennte Namen oder E-Mails |
recurrence_rule | string | RRULE-String (Leerzeichen zum Löschen) |
delete_note (Pro und Ultra)
Eine Notiz löschen. Damit werden auch alle Aufgaben und Termine gelöscht, die aus dieser Notiz erstellt wurden.
| Parameter | Typ | Beschreibung |
|---|---|---|
note_id | string | Erforderlich, die UUID der Notiz |
delete_task (Pro und Ultra)
Eine Aufgabe löschen.
| Parameter | Typ | Beschreibung |
|---|---|---|
task_id | string | Erforderlich, die UUID der Aufgabe |
delete_event (Pro und Ultra)
Einen Termin löschen.
| Parameter | Typ | Beschreibung |
|---|---|---|
event_id | string | Erforderlich, die UUID des Termins |
Eingabelimits
| Feld | Max. Länge | Verwendet in |
|---|---|---|
| title | 200 Zeichen | create/update note, task, event |
| description | 2.000 Zeichen | create/update task, event |
| summary | 1.000 Zeichen (hart) | create/update note. Geht in Bericht-Prompts ein, kurz gehalten zur Token-Kosten-Kontrolle |
| transcript | plan-basiert: Free 2.000 / Basic 8.000 / Pro 20.000 / Ultra 50.000 | create/update note. Langer Textkörper, nicht in Berichten |
| location | 200 Zeichen | create/update event |
| tags | 20 Tags | create/update note, task, event |
| Suchanfrage | 500 Zeichen | search |
| audio_base64 (dekodiert) | 50 MB | process_note |
Wenn du ein Limit überschreitest, gibt das Tool eine Fehlermeldung wie "title too long (max 200 chars, got 250)" zurück.
Fehlerbehandlung
Alle Tools geben JSON zurück. Fehler nutzen dieses Format:
{"error": "description of what went wrong"}
Häufige Fehler:
| Fehler | Wann |
|---|---|
"MCP access is read-only..." | Write-Tool im Read-only-Modus aufgerufen |
"Invalid note_id format" | Nicht-UUID-String als ID übergeben |
"Note not found" | ID existiert nicht oder gehört einem anderen Nutzer |
"Task not found or already completed" | complete_task für nicht existierende oder bereits erledigte Aufgabe |
"title too long (max 200 chars, got N)" | Eingabe-Limit überschritten |
"Too many tags (max 20)" | Mehr als 20 Tags übergeben |
HTTP-Fehler:
| Code | Bedeutung |
|---|---|
| 401 | Ungültiger oder fehlender Bearer-Token |
| 403 | MCP deaktiviert oder Plan erlaubt MCP nicht |
| 429 | Rate Limit überschritten (5 Anfragen/s) |
Nutzungsbeispiele
Alle Beispiele nutzen cURL mit dem MCP-JSON-RPC-Protokoll. Ersetz YOUR_TOKEN durch deinen Verbindungs-Token.
Daten lesen
# Profil und Statistiken abrufen
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"}}'
# Aktuelle Notizen auflisten (Limit 5, ab 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"}}}'
# Notizen suchen (hybrid Text + 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}}}'
Daten schreiben (Pro und Ultra)
# Notiz durch die volle KI-Pipeline laufen lassen (extrahiert Aufgaben + Termine)
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."}}}'
# Aufgabe mit Frist und Erinnerung erstellen
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"}}}'
# Wiederkehrenden Termin mit Erinnerungen und Teilnehmern erstellen
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"}}}'
# Aufgabe abschließen
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>"}}}'
Eine erfolgreiche Antwort sieht so aus:
{
"jsonrpc": "2.0",
"id": 10,
"result": {
"content": [{"type": "text", "text": "{\"id\":\"...\",\"title\":\"Review PR\",\"status\":\"todo\"}"}]
}
}
Write- und Update-Tools geben minimale Antworten mit nur id, title und status zurück. Um nach einem Schreibvorgang volle Details (Tags, Priorität, Frist etc.) zu bekommen, mach einen Folgeaufruf wie get_tasks oder get_note.
Token-Verwaltung
| Aktion | Wie |
|---|---|
| Token anzeigen | iPhone-Einstellungen -> Integrationen -> KI-Agenten (oder Web-Einstellungen -> KI-Agenten), tippe auf das Augen-Symbol |
| Token kopieren | Tippe auf das Kopier-Symbol neben dem Token |
| Regenerieren | Tippe auf Regenerieren und bestätige. Der alte Token wird sofort ungültig und aktive Sitzungen werden getrennt |
| Modus ändern | Nur Ultra - umschalten zwischen Read-only und Read + Write. Auf Pro ist der Modus auf Read + Write festgelegt |
| Deaktivieren | Tippe auf Deaktivieren und bestätige. Der Token wird gelöscht und alle Verbindungen werden getrennt. Du kannst es später wieder aktivieren (ein neuer Token wird ausgestellt) |
Was du deinen KI-Agenten fragen kannst
Einmal verbunden, frag dein KI-Tool Dinge wie:
Tag durchgehen:
- "Woran habe ich heute gearbeitet?"
- "Zeig mir meine Notizen aus dieser Woche"
- "Welche Aufgaben sind überfällig?"
Aufgaben verwalten:
- "Erstell eine Aufgabe: Quartalsbericht prüfen, hohe Priorität, Frist Freitag"
- "Markiere die Figma-Aufgabe als erledigt"
- "Welche Aufgaben habe ich gerade?"
Suchen und analysieren:
- "Finde alle Notizen über die Marketing-Strategie"
- "Welche Termine habe ich nächste Woche?"
- "Fass meine Tagesberichte der letzten Woche zusammen"
Vorausplanen:
- "Erstell einen Termin: Team-Standup morgen um 10 Uhr"
- "Was steht diese Woche in meinem Kalender?"
- "Zeig mir meine Top-Tags - womit verbringe ich die meiste Zeit?"
Der KI-Agent hat vollen Zugriff auf deine Notizen, Aufgaben, Termine und Berichte. Er kann lesen, erstellen, aktualisieren und löschen und komplexe Fragen beantworten, indem er Infos aus mehreren Tools kombiniert.
Wichtige Hinweise
- Zwei Wege, Notizen zu erstellen -
create_noteerstellt sofort eine reine Textnotiz (keine KI-Analyse).process_notedurchläuft die komplette KI-Pipeline (wie eine Aufnahme in der App) - es analysiert den Text, extrahiert Aufgaben und Termine, generiert Tags und Embeddings. Nimmprocess_note, wenn TellDone für dich denken soll. - Keine Integrations-Synchronisierung - Einträge, die per MCP erstellt oder aktualisiert werden, lösen keine Webhook-Automationen oder Integrations-Syncs (Todoist, Notion) aus. Sie erscheinen in deinen Apps beim nächsten Sync.
- Semantische Suche hängt vom Tool ab - Notizen, die mit
process_noteerstellt wurden, bekommen Embeddings und tauchen in der semantischen Suche auf. Notizen, die mitcreate_noteerstellt wurden, bekommen keine Embeddings, sodass sie nur in der Textsuche auftauchen. - Write-Antworten sind minimal - Create- und Update-Tools geben nur
id,titleundstatuszurück. Für alle Felder nach einem Schreibvorgang mach einen Folgeaufruf zum Lesen. - Datumsfilter nutzen UTC - die Parameter
date_from/date_towerden als UTC-Zeitstempel verglichen. Für Nutzer in Nicht-UTC-Zeitzonen können Grenzdaten Einträge benachbarter Tage einschließen oder ausschließen. - Rate Limit - 5 Anfragen pro Sekunde. Verteile deine Anfragen bei Massenoperationen.
Sicherheit
- Jeder Nutzer bekommt einen eindeutigen 384-Bit-Verbindungs-Token
- Dein Token wird sofort widerrufen, wenn du MCP deaktivierst oder regenerierst
- Alle Daten sind strikt auf dein Konto isoliert - dein Agent kann nur auf deine eigenen Daten zugreifen
- Jede Anfrage ist auf deinen Nutzer beschränkt - es gibt keinen Weg, mit dem ein Agent auf Daten anderer Nutzer zugreifen kann
- Verbindung läuft über HTTPS mit Rate Limiting (5 Anfragen/s)
Siehe auch
- Webhook-Automationen - Daten automatisch an externe Dienste senden
- Todoist - dedizierter Zwei-Wege-Aufgaben-Sync
- Notion - dedizierte Notion-Integration