tg-userbot
Provides Instagram research tools: profile info, posts, reels, post comments, hashtag exploration, and search.
Provides Reddit research tools: search, hot posts, post contents, comments, subreddit info, and user post listings.
Allows a personal Telegram account to act as a userbot: read chats and history, send messages and media, interact with inline and reply buttons of other bots, react to messages, schedule sends, and manage chats and channels.
Provides YouTube research tools: video search, video details, comments, captions, channel info, playlists, and quota status.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@tg-userbotsend a message to Alex: I'll be there in 20"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Юзербот
MCP-сервер, который даёт агенту (Claude Code, Codex и любому MCP-клиенту) руки в вашем Telegram: не бот с отдельным именем и кнопкой «Start», а ваш обычный аккаунт-человек. Агент читает те же чаты, что видите вы, пишет от вашего имени, жмёт кнопки чужих ботов, качает вложения, ставит реакции, ведёт очередь рассылки с человеческими паузами. Плюс, в том же сервере, тулы для YouTube, Reddit и Instagram: ресёрч и переписка живут в одном месте.
Работает на Telethon (MTProto). 68 инструментов, из них 45 про Telegram.
Чем это отличается от обычного бота
Что | Bot API | Юзербот |
Кто пишет | бот с суффиксом | вы, обычный аккаунт |
Кому может написать первым | только тем, кто нажал Start | кому угодно |
Что видит в группе | сообщения по privacy-настройке | всё, что видите вы |
Читает историю чата | нет | да, всю |
Жмёт кнопки других ботов | нет | да |
Риск | бан бота | бан аккаунта, поэтому аккаунт отдельный |
Related MCP server: telegram-mcp
Что умеет
Читать. get_messages (с пагинацией, топиками форума, метаданными медиа,
просмотрами и реакциями), search_messages по истории, get_message_by_id,
export_channel — выгрузка канала целиком, list_chats, list_forum_topics,
get_chat_info, get_pinned_message, get_chat_member_count, get_me.
Писать. send_message (в том числе ответом на конкретное сообщение),
send_file, send_album, send_contact, edit_message, delete_message,
pin_message, unpin_message, forward_message, copy_message — репост чужого
поста без плашки «переслано от», react — реакции, set_typing — «печатает…».
Рассылать не под баном. queue_messages кладёт серию в фоновую очередь и
шлёт по одному с паузой 25–45 секунд, queue_status показывает, где она.
Это не украшение: см. раздел про PeerFlood ниже.
Отложенное. send_message(..., schedule="+2h") или schedule="2026-09-10 09:00",
дальше get_scheduled_messages, reschedule_scheduled, delete_scheduled,
send_scheduled_now. Годится и как отложенный постинг, и как напоминалка себе.
Общаться с чужими ботами как человек. list_inline_buttons,
press_inline_button, list_reply_buttons, press_reply_button,
read_bot_response, get_bot_info. Отсюда же берётся трюк «создай себе бота
сам»: агент идёт в @BotFather, проходит диалог, ставит аватарку и команды.
Медиа. download_media (фото приходит картинкой прямо в контекст, видео и
файлы — на диск), download_album, download_profile_photo,
get_sticker_set_emojis.
Администрировать. join_group, join_chatlist — вступить во все чаты из
папки-ссылки, add_chat_member, promote_admin — выдать боту админку,
create_folder, mute_chat, unmute_chat.
Ресёрч рядом. YouTube (yt_search, yt_video_info, yt_comments,
yt_captions, yt_channel_info, yt_playlist, yt_quota), Reddit
(reddit_search, reddit_hot, reddit_post, reddit_comments,
reddit_subreddit_info, reddit_user_posts), Instagram (ig_profile,
ig_posts, ig_reels, ig_post_comments, ig_hashtag, ig_search),
плюс browse_page, gdoc_read, gsheet_read и rate_limit_status.
Прежде чем ставить: как не потерять аккаунт
Отдельный аккаунт и отдельный номер. Не личный. Бан прилетает аккаунту целиком, вместе с перепиской.
Прогрейте его. Заведите, залогиньтесь с телефона и просто поживите на нём неделю: переписки, чтение каналов. Свежий аккаунт, который на второй день начинает писать незнакомым, улетает быстро.
Один IP — один юзербот. Два аккаунта с одного адреса Telegram связывает между собой: заблокируют один, найдут второй.
Массовая отправка незнакомым — главный способ поймать бан. Не FloodWait (это секундная пауза, сервер её пересиживает сам), а PeerFlood: блокировка отправки на сутки-двое всему аккаунту. Ловится объёмом плюс одинаковым текстом встык. Поэтому серии — только
queue_messages, тексты — разные.Реакции безопаснее слов.
reactне считается рассылкой и годится как прогрев активности.
Что сервер делает за вас: случайная пауза 2–5 секунд между вызовами, потолок 15 вызовов в минуту с автоматическим торможением, FloodWait пережидается со сдвигом, entity кэшируются (без лишних resolve), fingerprint клиента — TDesktop на Windows.
Установка
Нужен свой сервер (проверено на Ubuntu 22.04 и 24.04, Python 3.10+; хватит 1 CPU и 1 ГБ памяти), Telegram-аккаунт из предыдущего раздела и телефон, на котором этот аккаунт залогинен.
1. Ключи приложения. Зайти на https://my.telegram.org тем самым аккаунтом,
раздел API development tools, создать приложение. Оттуда api_id и api_hash.
Пара привязана к аккаунту, чужую не переиспользовать.
2. Разложить код.
mkdir -p /opt/tg-userbot && cd /opt/tg-userbot
git clone <репозиторий> app
python3 -m venv venv
venv/bin/pip install -r app/requirements.txt3. Войти в аккаунт. Только на этом же сервере: логин с одного адреса и работа с другого — повод для проверки со стороны Telegram.
cd /opt/tg-userbot/app && ../venv/bin/python scripts/login.pyСкрипт спросит api_id, api_hash, телефон и код. Код приходит в само
приложение Telegram, а не по SMS, и живёт около пяти минут — если провозились,
запустите заново. Есть двухфакторный пароль — спросит и его. В конце печатает
строку сессии.
4. Настроить окружение.
cp app/.env.example /opt/tg-userbot/.env
chmod 600 /opt/tg-userbot/.env
# заполнить TELEGRAM_API_ID, TELEGRAM_API_HASH, TELEGRAM_SESSION_STRINGСтрока сессии равнозначна полному доступу к аккаунту: не в git, не в переписку, права на файл 600. YouTube, Reddit и Instagram — по желанию, без ключей эти тулы просто вернут понятную ошибку, Telegram работает.
5. Политика исходящих (подробности в следующем разделе). Пока файла нет, переписка с людьми закрыта, а чтение и боты работают. Копируются оба файла:
cp app/policy.example.yaml /opt/tg-userbot/policy.yaml
cp app/assistant-gate.example.yaml /opt/tg-userbot/assistant-gate.yamlДва места, куда стоит посмотреть сразу, а не потом:
live_channelsв примере пуст. Пока он пуст, агент может опубликовать в любой ваш канал мгновенно. Есть канал с живой аудиторией — впишите его id сейчас.human_gate.modeв примере стоитenforced, стоп-лист берётся изassistant-gate.yaml. Правьте копию под себя; правила в примере — заготовка, а не канон. Осознанно не хотите проверки — ставьтеdisabledруками.
6. Поднять сервисом.
cp app/deploy/tg-userbot.service /etc/systemd/system/
systemctl daemon-reload && systemctl enable --now tg-userbot
systemctl status tg-userbot7. Подключить агента. Сервер слушает 127.0.0.1:8765 и наружу не смотрит.
С рабочей машины пробрасывается туннель, поверх него подключается MCP:
ssh -N -L 8765:localhost:8765 root@ваш-сервер # держать поднятым
claude mcp add userbot --transport http http://127.0.0.1:8765/mcp -s userПроверка живости: claude mcp list, затем попросить агента вызвать get_me.
Политика исходящих
Агент, который пишет живым людям от вашего имени, рано или поздно пообещает
что-нибудь лишнее. Поэтому проверка отправки живёт в самом сервере
(common/outbound_policy.py), а не в клиентском хуке: её нельзя обойти
переключением approvals или другой моделью.
policy.yaml рядом с рабочей копией (не внутри неё — git pull не должен её
трогать) задаёт три вещи:
self.extra_targets— ваши собственные аккаунты; сообщения туда не считаются перепиской с посторонним. Аккаунт самого юзербота добавляется автоматически;live_channels— боевые каналы: туда разрешена только отложенная публикация в будущее, мгновенная запрещена;human_gate.mode—disabled(писать людям свободно) илиenforced(тексты проходят через стоп-листassistant-gate.yaml, пример лежит рядом).
Поведение при поломке — закрытое: файла нет вообще, значит переписка с людьми
блокируется с объяснением, что это разовая настройка; файл битый или режим
незнакомый, значит блокируется всё охраняемое. delete_scheduled работает
всегда: инструмент остановки отправки нельзя терять вместе с конфигом.
Фразы из requires_confirmation уходят только после вашего явного решения —
повтором того же вызова с approved_by_owner=true. Флаг не отменяет
forbidden_phrases и не разрешает мгновенную публикацию в боевой канал.
Что этот предохранитель не закрывает
Честный список, чтобы не полагаться на него больше, чем он стоит:
Агент с shell-доступом на этом же хосте обходит политику несколькими командами — правит
policy.yaml, подменяет путь, останавливает сервис. Гейт защищает от неудачной формулировки и спешки, а не от агента, которому вы дали root там же.forward_messageиsend_scheduled_nowвыпускают контент без проверки текста.Часть действий аккаунта (
join_group,mute_chat,set_typingи ещё несколько) вне политики вовсе.Очередь рассылки проверяет политику при постановке, а не в момент отправки.
Строка сессии на диске сервера — это весь аккаунт. Хост держите свой.
Эксплуатация
systemctl status tg-userbot # жив ли
journalctl -u tg-userbot -f # логи
systemctl restart tg-userbot # перезапуск
/opt/tg-userbot/app/deploy/update.sh # git pull, зависимости, рестартНесколько аккаунтов на одной машине: свой каталог, свой USERBOT_PORT, своя
копия юнита. Помнить про пункт «один IP — один юзербот».
Квота YouTube (10 000 единиц в сутки) считается на ключ, а не на инстанс: два сервера с одним ключом делят её, а счётчики ведут раздельно и оба думают, что она целая.
Лицензия и здравый смысл
Юзербот-API не запрещён, но политика Telegram запрещает спам и массовые рассылки. Всё, что вы отправите этим сервером, отправлено вашим аккаунтом и вашими руками. Ответственность тоже ваша.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Telegram bridge for your MCP-compatible agent. Bidirectional, no LLM in our stack.
Unified inbox MCP for WhatsApp, Telegram, Email, voice — read/send messages, search, AI agents.
MemberPass MCP — manage projects, plans, members, payments, and analytics for Telegram creators.
Unofficial Telegram MCP server — read, search, reply and react in your own Telegram account.
141
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables full access to your personal Telegram account via MCP, allowing reading, sending, and searching messages, managing chats, and retrieving user information through natural language commands.18283MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to control a real Telegram user account via MTProto, allowing message sending, chat reading/searching, and message management through MCP tools.19-
- FlicenseBqualityCmaintenanceEnables MCP clients to interact with Telegram user accounts, providing tools for messaging, contacts, groups, channels, and media management through the Telegram API.853-
- AlicenseBqualityCmaintenanceEnables MCP clients to operate a Telegram account as a userbot, providing tools for reading and sending messages, searching chats and contacts, managing media, and performing other account actions via MTProto with a locally encrypted session.28MIT