Сценарий из mcp-everything. Актуально на 2026-10-24.
Для бота на домашнем компьютере, в локальной сети или в скрипте — без публичного адреса и сертификата.
import requests
API = "https://api.telegram.org/bot<токен>"
offset = 0
while True:
r = requests.post(f"{API}/getUpdates", json={"offset": offset, "timeout": 30, "allowed_updates": ["message"]}, timeout=40).json()
for upd in r.get("result", []):
offset = upd["update_id"] + 1
msg = upd.get("message")
if msg and "text" in msg:
requests.post(f"{API}/sendMessage", json={"chat_id": msg["chat"]["id"], "text": f"Вы написали: {msg['text']}"})
https://api.telegram.orghttps://api.telegram.org/bot<token>/METHOD_NAMEТип: API-ключ
Токен бота (выдаёт @BotFather) передаётся в пути запроса после bot.
https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/getMe
Возвращает массив объектов Update. Не работает, пока установлен вебхук.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
token |
path | string | да | Токен бота |
offset |
body | integer | нет | ID первого обновления; на 1 больше последнего полученного — подтверждает предыдущие |
limit |
body | integer | нет | Число обновлений, 1–100, по умолчанию 100 |
timeout |
body | integer | нет | Таймаут long polling в секундах, по умолчанию 0 |
allowed_updates |
body | array | нет | Типы обновлений, например ["message", "edited_channel_post", "callback_query"] |
Возвращает отправленный Message.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
token |
path | string | да | Токен бота |
chat_id |
body | integer/string | да | ID чата или @username канала/супергруппы |
text |
body | string | да | Текст, 1–4096 символов после разбора сущностей |
parse_mode |
body | string | нет | Режим форматирования (Markdown-стиль или HTML) |
entities |
body | array | нет | Сущности текста вместо parse_mode |
message_thread_id |
body | integer | нет | ID темы форума |
link_preview_options |
body | object | нет | Настройки превью ссылок |
disable_notification |
body | boolean | нет | Отправить без звука |
protect_content |
body | boolean | нет | Запретить пересылку и сохранение |
reply_parameters |
body | object | нет | Сообщение, на которое отвечаем |
reply_markup |
body | object | нет | Inline-клавиатура, обычная клавиатура, её удаление или ForceReply |
business_connection_id |
body | string | нет | Бизнес-подключение, от имени которого отправляем |
application/x-www-form-urlencoded, application/json (кроме загрузки файлов) или multipart/form-data (для файлов).ok; при успехе результат в result, при ошибке — description и error_code.getUpdates и вебхук взаимоисключающие: пока вебхук установлен, getUpdates не работает. Порты вебхука: 443, 80, 88, 8443.offset после каждого ответа.allow_paid_broadcast снимает лимиты рассылки до 1000 сообщений в секунду за 0,1 Telegram Stars за сообщение.Если этого недостаточно — официальная документация: https://core.telegram.org/bots/api Вся интеграция одним документом: https://mcp-everything.ru/integrations/telegram-bot-api.md