Перейти к основному содержимому

MCP-доступ (AI-агенты)

План Pro и выше

MCP-доступ требует план Pro или Ultra. Оба плана дают полный доступ на чтение + запись (20 инструментов). Ultra имеет более высокие квоты.

MCP (Model Context Protocol) позволяет подключить AI-ассистентов и инструменты автоматизации напрямую к твоим данным TellDone. После подключения AI-агент может читать твои заметки, задачи, события и отчеты, а также создавать, обновлять и удалять элементы. Всего 20 инструментов: 9 для чтения и 11 для записи.

Требования по плану

ВозможностьFreeBasicProUltra
MCP-доступ--Чтение + запись (20 инструментов)Чтение + запись (20 инструментов, выше квоты)

Как включить

MCP пока настраивается только в веб-приложении на app.telldone.app (в iOS-приложении пока недоступен):

  1. Зайди в Settings > Integrations > AI Agents (MCP)
  2. Нажми Enable
  3. Выбери режим доступа:
    • Только чтение - агент может просматривать данные, но не изменять их
    • Чтение + запись - агент также может создавать, обновлять и удалять элементы
  4. Скопируй токен подключения - он понадобится для настройки AI-инструмента
подсказка

Храни токен подключения в секрете. Любой, кто его получит, сможет получить доступ к твоим данным TellDone. Ты можешь перегенерировать его в любой момент на той же странице настроек.

Подключение AI-инструмента

Claude Code

Выполни команду в терминале:

claude mcp add telldone --transport http \
https://api.telldone.app/mcp/user/mcp \
--header "Authorization: Bearer YOUR_TOKEN"

Cursor

Добавь в .cursor/mcp.json:

{
"mcpServers": {
"telldone": {
"url": "https://api.telldone.app/mcp/user/mcp",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}

Windsurf

Добавь в .codeium/windsurf/mcp_config.json:

{
"mcpServers": {
"telldone": {
"serverUrl": "https://api.telldone.app/mcp/user/mcp",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}

Codex

Добавь в 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

Другие MCP-клиенты

Любой инструмент с поддержкой MCP через HTTP может подключиться. Используй эндпоинт https://api.telldone.app/mcp/user/mcp с заголовком авторизации Bearer YOUR_TOKEN.

Замени YOUR_TOKEN на свой токен из настроек во всех примерах выше.

Проверка подключения

Проверь, что токен работает, простой командой cURL:

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}'

Успешный ответ содержит список всех доступных инструментов.

Что можно делать

Инструменты чтения (9) - Pro и Ultra

ИнструментЧто делает
get_notesСписок заметок с фильтрами (теги, диапазон дат, текстовый поиск)
get_noteПросмотр отдельной заметки с задачами, событиями и полной транскрипцией
get_notes_fullПолучить несколько заметок с задачами и событиями за один запрос
get_tasksСписок задач с фильтрацией по статусу (к выполнению, выполнено, все), тегам или датам
get_eventsСписок событий календаря, фильтр по диапазону дат
get_reportsЧтение ежедневных, еженедельных, ежемесячных и годовых отчетов (полный markdown)
get_tagsПросмотр всех тегов, отсортированных по использованию
get_profileИнформация об аккаунте и статистика использования
searchПоиск по заметкам, задачам и событиям (текст + семантический поиск для заметок)
подсказка

Инструмент search поддерживает семантический поиск по заметкам - находит результаты по смыслу, а не только по ключевым словам. Например, поиск "встречи по бюджету" найдет заметки о финансовых обсуждениях, даже если они не содержат слово "бюджет."

Инструменты записи (11) - Pro и Ultra

ИнструментЧто делает
process_noteПолный AI-анализ - отправь текст или аудио, получи заметку с задачами, событиями и тегами
create_noteДобавить текстовую заметку (без AI-анализа)
create_taskДобавить задачу с приоритетом, дедлайном, напоминанием и тегами
create_eventДобавить событие календаря с датой, временем, местом, напоминаниями, участниками и повторением
update_noteИзменить заголовок, резюме, тип, теги, приоритет или статус заметки
update_taskИзменить заголовок, описание, приоритет, дедлайн, напоминание, теги или статус задачи
complete_taskОтметить задачу как выполненную
update_eventИзменить детали, время, место, напоминания, участников, повторение, теги или статус события
delete_noteУдалить заметку и все связанные задачи и события
delete_taskУдалить задачу
delete_eventУдалить событие

Все операции записи и удаления мгновенно отображаются на подключенных устройствах (телефон, веб-приложение) через синхронизацию в реальном времени.

Справочник инструментов

get_notes

Список заметок с опциональной фильтрацией. Фильтры по дате используют recorded_at (когда ты записал голосовую заметку), а не created_at.

ПараметрТипПо умолчаниюОписание
limitint20Количество заметок (макс. 50)
offsetint0Пропустить указанное количество заметок (для пагинации, макс. 10000)
tagsstring-Фильтр по тегам, через запятую (совпадение по любому)
searchstring-Текстовый поиск по заголовку и резюме
date_fromstring-Начальная дата, YYYY-MM-DD (включительно)
date_tostring-Конечная дата, YYYY-MM-DD (не включительно)

Возвращает: список заметок с id, title, summary, type, tags, priority, status, recorded_at, created_at.

get_note

Получить одну заметку с полной транскрипцией и всеми связанными задачами и событиями.

ПараметрТипОписание
note_idstringUUID заметки

Возвращает: заметку с title, summary, transcript, type, tags, priority, status, metadata, created_at, а также массивы tasks[] и events[].

get_notes_full

Получить несколько заметок с задачами и событиями за один запрос. Те же фильтры, что и у get_notes, но каждая заметка включает вложенные tasks[] и events[].

ПараметрТипПо умолчаниюОписание
limitint10Количество заметок (макс. 20)
offsetint0Пропустить указанное количество заметок
tagsstring-Фильтр по тегам
date_fromstring-Начальная дата, YYYY-MM-DD
date_tostring-Конечная дата, YYYY-MM-DD

get_tasks

Список задач с фильтрацией.

ПараметрТипПо умолчаниюОписание
statusstring"todo"Фильтр: todo, done или all
limitint30Количество задач (макс. 100)
offsetint0Пропустить указанное количество задач
tagsstring-Фильтр по тегам, через запятую
date_fromstring-Начальная дата, YYYY-MM-DD (по created_at)
date_tostring-Конечная дата, YYYY-MM-DD

Возвращает: список задач с id, title, description, status, priority, tags, deadline, reminder_at, completed_at, completed_by, source, created_at.

get_events

Список событий календаря с фильтрацией по диапазону дат.

ПараметрТипПо умолчаниюОписание
limitint30Количество событий (макс. 100)
offsetint0Пропустить указанное количество событий
date_fromstring-Начальная дата, YYYY-MM-DD (фильтрует по времени начала события)
date_tostring-Конечная дата, YYYY-MM-DD

Возвращает: список событий с id, title, description, status, start_at, end_at, location, is_all_day, tags, created_at.

get_reports

Получить AI-сгенерированные отчеты с полным содержимым в формате markdown.

ПараметрТипПо умолчаниюОписание
report_typestring"daily"Тип: daily, weekly, monthly или yearly
limitint5Количество отчетов (макс. 10)

Возвращает: список отчетов с id, type, period_start, period_end, content_md, created_at.

примечание

Ежемесячные отчеты могут содержать 3 000-5 000 слов. Используй limit=1, если у твоего AI-инструмента ограниченное контекстное окно.

get_tags

Получить все теги, отсортированные: сначала закрепленные, затем по количеству использований.

Без параметров. Возвращает до 100 тегов, каждый с tag, usage_count, is_pinned, is_manual.

get_profile

Получить информацию об аккаунте и статистику использования.

Без параметров. Возвращает email, display_name, locale, transcription_locale, timezone, subscription, mcp_mode, created_at и stats (количество заметок/задач/событий).

Поиск по заметкам, задачам и событиям одновременно. Для заметок поддерживается как текстовый, так и семантический поиск (находит результаты по смыслу с помощью AI-эмбеддингов).

ПараметрТипПо умолчаниюОписание
querystringобязательныйТекст поиска (макс. 500 символов)
limitint20Макс. результатов на тип (макс. 20)
semanticbooltrueВключить семантический поиск для заметок

Возвращает результаты, сгруппированные по типу: notes[], tasks[], events[]. Каждый результат содержит id, type, title, detail, created_at.

Установи semantic=false для более быстрого текстового поиска.

process_note (Pro и Ultra)

Полный AI-анализ - работает так же, как запись в приложении. Отправь текст или аудио, и TellDone транскрибирует, проанализирует с помощью AI и создаст структурированную заметку с извлеченными задачами, событиями, тегами и эмбеддингами.

Этот инструмент асинхронный: возвращает результат сразу с audio_id и обрабатывает в фоне. Результаты приходят через синхронизацию в реальном времени на подключенные устройства, или можно проверить через get_notes().

ПараметрТипОписание
textstringТекст для анализа (пропускает транскрипцию, если аудио не указано)
audio_base64stringАудиофайл в кодировке Base64 (до 50 МБ, запускает транскрипцию)
audio_formatstringm4a, ogg, wav или mp3 (по умолчанию: m4a)
parent_task_idstringUUID задачи, к которой это продолжение
parent_note_idstringUUID заметки, к которой это продолжение
parent_event_idstringUUID события, к которому это продолжение

Необходимо указать text или audio_base64 (или оба - аудио имеет приоритет для транскрипции).

Возвращает: {"audio_id": "...", "status": "processing", "mode": "text-only"} или "mode": "audio+stt", если указано аудио.

примечание

process_note подчиняется квотам твоего плана (загрузки в день, заметки в месяц, макс. длина текста). Используй get_profile для проверки текущего использования.

create_note (Pro и Ultra)

Создать текстовую заметку мгновенно. Не запускает AI-анализ - задачи и события не извлекаются. Для полного AI-анализа с извлечением задач/событий используй process_note.

ПараметрТипЛимитОписание
titlestring200 символовОбязательный
summarystring1000 символовНеобязательный
tagsstring20 теговЧерез запятую, необязательный

create_task (Pro и Ultra)

Создать новую задачу.

ПараметрТипЛимитОписание
titlestring200 символовОбязательный
descriptionstring2000 символовНеобязательный
prioritystring-low, medium (по умолчанию) или high
deadlinestring-YYYY-MM-DD, необязательный
reminder_atstring-Дата-время ISO 8601 (напр. 2026-04-15T09:00:00Z), необязательный
tagsstring20 теговЧерез запятую, необязательный
note_idstring-UUID для привязки задачи к родительской заметке, необязательный

create_event (Pro и Ultra)

Создать событие календаря.

ПараметрТипЛимитОписание
titlestring200 символовОбязательный
start_atstring-Дата-время в формате ISO 8601, обязательный
end_atstring-Дата-время в формате ISO 8601 (по умолчанию: начало + 1 час)
descriptionstring2000 символовНеобязательный
locationstring200 символовНеобязательный
is_all_daybool-По умолчанию: false
tagsstring20 теговЧерез запятую, необязательный
reminder_minutesstring-Минуты до события через запятую (напр. 15,60), необязательный
attendeesstring-Имена или email через запятую, необязательный
recurrence_rulestring-Строка RRULE (напр. FREQ=WEEKLY;BYDAY=MO,WE,FR), необязательный
note_idstring-UUID для привязки события к родительской заметке, необязательный

update_note (Pro и Ultra)

Обновить одно или несколько полей существующей заметки. Изменяются только те поля, которые ты передашь. Транскрипция не редактируется (это источник данных из распознавания речи).

ПараметрТипОписание
note_idstringОбязательный, UUID заметки
titlestringНовый заголовок (макс. 200 символов)
summarystringНовое резюме (макс. 1000 символов, передай пробел " " для очистки)
typestringtask, idea, info, status, meeting, event или reflection
tagsstringТеги через запятую (заменяет все существующие, макс. 20)
prioritystringlow, medium или high
statusstringactive или archived

update_task (Pro и Ultra)

Обновить одно или несколько полей существующей задачи. Изменяются только те поля, которые ты передашь.

ПараметрТипОписание
task_idstringОбязательный, UUID задачи
titlestringНовый заголовок
descriptionstringНовое описание (передай пробел " " для очистки)
prioritystringlow, medium или high
deadlinestringYYYY-MM-DD (передай пробел для очистки)
statusstringtodo или done
tagsstringТеги через запятую (заменяет все существующие, макс. 20)
reminder_atstringДата-время ISO 8601 (передай пробел для очистки)

Установка status в done также фиксирует когда и как задача была выполнена.

complete_task (Pro и Ultra)

Быстрый способ отметить задачу как выполненную.

ПараметрТипОписание
task_idstringОбязательный, UUID задачи

Возвращает ошибку, если задача не существует или уже выполнена.

update_event (Pro и Ultra)

Обновить одно или несколько полей существующего события. Изменяются только те поля, которые ты передашь.

ПараметрТипОписание
event_idstringОбязательный, UUID события
titlestringНовый заголовок
descriptionstringНовое описание (передай пробел для очистки)
start_atstringНовое время начала (ISO 8601)
end_atstringНовое время окончания (ISO 8601)
locationstringНовое место (передай пробел для очистки)
statusstringconfirmed, tentative или cancelled
tagsstringТеги через запятую (заменяет все существующие, макс. 20)
is_all_daystring"true" или "false"
reminder_minutesstringМинуты до события через запятую (напр. 15,60)
attendeesstringИмена или email через запятую
recurrence_rulestringСтрока RRULE (передай пробел для очистки)

delete_note (Pro и Ultra)

Удалить заметку. Также удаляет все задачи и события, созданные из этой заметки.

ПараметрТипОписание
note_idstringОбязательный, UUID заметки

delete_task (Pro и Ultra)

Удалить задачу.

ПараметрТипОписание
task_idstringОбязательный, UUID задачи

delete_event (Pro и Ultra)

Удалить событие.

ПараметрТипОписание
event_idstringОбязательный, UUID события

Лимиты ввода

ПолеМакс. длинаИспользуется в
title200 символовсоздание/обновление заметки, задачи, события
description2 000 символовсоздание/обновление задачи, события
summary1 000 символовсоздание/обновление заметки
location200 символовсоздание/обновление события
tags20 теговсоздание/обновление заметки, задачи, события
search query500 символовsearch

Если ты превысишь лимит, инструмент вернет сообщение об ошибке вида "title too long (max 200 chars, got 250)".

Обработка ошибок

Все инструменты возвращают JSON. Ошибки имеют такой формат:

{"error": "description of what went wrong"}

Частые ошибки:

ОшибкаКогда возникает
"MCP access is read-only..."Вызван инструмент записи в режиме только чтение
"Invalid note_id format"Передана строка, не являющаяся UUID
"Note not found"ID не существует или принадлежит другому пользователю
"Task not found or already completed"complete_task для несуществующей или уже выполненной задачи
"title too long (max 200 chars, got N)"Превышен лимит ввода
"Too many tags (max 20)"Передано больше 20 тегов

Ошибки на уровне HTTP:

КодЗначение
401Недействительный или отсутствующий Bearer-токен
403MCP отключен или план не поддерживает MCP
429Превышен лимит скорости (5 запр/с)

Примеры использования

Все примеры используют cURL с протоколом MCP JSON-RPC. Замени YOUR_TOKEN на свой токен подключения.

Чтение данных

# 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}}}'

Запись данных (Pro и 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 recurring 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>"}}}'

Успешный ответ выглядит так:

{
"jsonrpc": "2.0",
"id": 10,
"result": {
"content": [{"type": "text", "text": "{\"id\":\"...\",\"title\":\"Review PR\",\"status\":\"todo\"}"}]
}
}
примечание

Инструменты записи и обновления возвращают минимальные ответы - только id, title и status. Чтобы получить все поля (теги, приоритет, дедлайн и т.д.) после записи, сделай дополнительный запрос на чтение, например get_tasks или get_note.

Управление токеном

ДействиеКак
Посмотреть токенSettings > Integrations > AI Agents > иконка глаза
Скопировать токенНажми иконку копирования рядом с токеном
ПерегенерироватьНажми "Regenerate" и подтверди. Старый токен перестает работать мгновенно
Сменить режимПереключение между Только чтение и Чтение + запись
ОтключитьНажми "Disable" и подтверди. Токен удаляется, все соединения прерываются

Что можно спросить у AI-агента

После подключения проси AI-инструмент:

Обзор дня:

  • "Чем я занимался сегодня?"
  • "Покажи мои заметки за эту неделю"
  • "Какие задачи просрочены?"

Управление задачами:

  • "Создай задачу: проверить квартальный отчет, высокий приоритет, дедлайн пятница"
  • "Отметь задачу по Figma как выполненную"
  • "Над какими задачами я работаю?"

Поиск и анализ:

  • "Найди все заметки про маркетинговую стратегию"
  • "Какие события у меня на следующей неделе?"
  • "Резюмируй мои ежедневные отчеты за прошлую неделю"

Планирование:

  • "Создай событие: стендап команды завтра в 10 утра"
  • "Что у меня в календаре на этой неделе?"
  • "Покажи мои основные теги - на что я трачу больше всего времени?"

AI-агент имеет полный доступ к твоим заметкам, задачам, событиям и отчетам. Он может читать, создавать, обновлять и удалять данные, а также отвечать на сложные вопросы, комбинируя информацию из нескольких инструментов.

Важно знать

  • Два способа создать заметку - create_note создает текстовую заметку мгновенно (без AI-анализа). process_note запускает полный AI-анализ (как запись в приложении) - анализирует текст, извлекает задачи и события, генерирует теги и эмбеддинги. Используй process_note, когда хочешь, чтобы TellDone думал за тебя.
  • Без синхронизации интеграций - элементы, созданные или обновленные через MCP, не запускают вебхуки и синхронизацию интеграций (Todoist, Notion). Они появятся в приложениях при следующей синхронизации.
  • Семантический поиск зависит от инструмента - заметки, созданные через process_note, получают эмбеддинги и появляются в семантическом поиске. Заметки, созданные через create_note, не получают эмбеддинги и доступны только в текстовом поиске.
  • Ответы на запись минимальны - инструменты создания и обновления возвращают только id, title и status. Чтобы получить все поля после записи, сделай дополнительный запрос на чтение.
  • Фильтры дат используют UTC - параметры date_from/date_to сравниваются как метки времени UTC. Для пользователей в часовых поясах, отличных от UTC, граничные даты могут включать или исключать элементы из соседних дней.
  • Лимит скорости - 5 запросов в секунду. Для массовых операций делай паузы между запросами.

Безопасность

  • Каждый пользователь получает уникальный 384-битный токен подключения
  • Токен мгновенно аннулируется при отключении MCP или перегенерации
  • Все данные строго изолированы на уровне аккаунта - агент может получить доступ только к твоим данным
  • Каждый запрос привязан к твоему пользователю - у агента нет возможности получить доступ к данным другого пользователя
  • Соединение использует HTTPS с лимитом скорости (5 запр/с)

Смотри также

  • Вебхук-автоматизации - автоматическая отправка данных во внешние сервисы
  • Todoist - выделенная двусторонняя синхронизация задач
  • Notion - выделенная интеграция для Notion