~/products/telegram-mcp/tools.md
Инструменты
Десять инструментов. Пять только читают Telegram; отправка текста, файла и выход требуют confirm: true.
Чтение
| Инструмент | Параметры | Что делает |
|---|---|---|
status | — | Есть ли вход и под каким аккаунтом |
list_dialogs | query, limit ≤ 50, archived | Последние чаты: id, название, @username, непрочитанные |
get_messages | peer, limit ≤ 50, offsetId | История чата, старше offsetId. Не отмечает прочитанным |
search_messages | query, peer, limit ≤ 30 | Поиск по всем чатам или внутри одного |
download_media | peer, messageIds ≤ 20 | Сохраняет фото и документы до 50 МБ в локальную папку downloads/, возвращает пути |
Запись
| Инструмент | Параметры | Что делает |
|---|---|---|
send_message | peer, text ≤ 4096, confirm, replyTo | Отправляет текст, при replyTo — ответом |
send_file | peer, path, caption ≤ 1024, asPhoto, confirm, replyTo | Отправляет локальный файл до 50 МБ по абсолютному пути; документом или фото (JPG/PNG) |
login_send_code | phone | Запрашивает код входа |
login_sign_in | code, password | Завершает вход, при необходимости с облачным паролем |
logout | confirm | Закрывает только сессию telegram-mcp |
Как указать чат
Параметр peer принимает три формы:
1234567890— id изlist_dialogs;@username— публичное имя;title:Название— по названию среди последних 200 чатов. Если подходит несколько, сервер перечислит их, а не выберет сам.
Что возвращается
{
"id": 4812,
"date": "2026-10-27T18:04:11.000Z",
"out": false,
"sender": "Андрей",
"text": "Релиз переносим на пятницу",
"textTruncated": false,
"replyTo": null,
"media": null
}Текст сообщения обрезается до 1500 символов, флагtextTruncated об этом сообщает. Сами вложения в ответ не входят — только их тип; файлы забирает download_media.