telegram-ads-assistant
Click on "Deploy 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., "@telegram-ads-assistantCreate a new Search ad campaign with $50 daily budget targeting Russian users"
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.
Telegram Ads Assistant
Методика рекламы в этом репозитории собрана по материалам Марии Смирновой и её канала Маша & Russian Ads (раньше — «Маша & Telegram Ads»). Маша — редкий практик официальной Telegram Ads, у которого разборы каналов, 1к1, исключений, тестов и экономики можно сразу нести в кабинет. Если ведёте рекламу всерьёз, её канал стоит читать раньше чужих чек-листов. Это рабочий свод её подходов, не дословный курс и не замена публикациям.
Одна система: навык telegram-ads ведёт запуск (посадочная, каналы, 1к1, тесты, оптимизация) и тем же маршрутом создаёт и правит объявления в кабинете. Расширение Chrome, локальный мост и MCP — руки этой системы. Агент не должен сначала «применить методику», а потом отдельно «открыть приложение».
Русский интерфейс. Не требует BB, отдельного VPS или официального рекламного API. Вы описываете объявление структурированными данными; расширение заполняет форму Telegram Ads в авторизованном Chrome, загружает медиа и сохраняет запись. Агент сверяет сохранённые настройки.
Версия приложения 0.5.0, навыка системы 0.6.0. Это независимый инструмент, не продукт Telegram. Он использует DOM кабинета; изменения сайта могут потребовать обновления адаптера.
Что умеет
Создавать объявления Search, Bots, Channels и Users.
Выбирать несколько каналов, страны и языки; задавать исключения площадок и аудиторий.
Загружать JPEG, PNG и MP4 из локального файла или HTTP(S)-ссылки, включая localhost.
Читать объявления, CPM, бюджеты, статусы и отображаемую статистику; скачивать доступный CSV.
Подготавливать и сохранять изменения текста, URL, CPM, статуса и бюджета.
Вести запуск по одной методике: бриф, каналы, креативы, матрица тестов, исключения, журнал оптимизации.
Работать через MCP: проверка → подготовка → сохранение → чтение результата.
Обновлять уже установленное расширение командой MCP
reload_extension.
Проверено в реальном кабинете: создание четырёх типов, включение статуса, фото, видео, 10 каналов с двумя исключениями, Users с тремя включёнными и двумя исключёнными аудиториями, Search с тремя запросами, размещение Users «Banner in Video». Проверка сохранённых фильтров не доказывает фактическую уникальность охвата.
Related MCP server: telegram-ads-mcp
Установка за несколько минут
Нужны Google Chrome, аккаунт Telegram Ads и Node.js 24 или новее с npm. Установите Node.js с официального сайта.
Скачайте
telegram-ads-assistant-0.4.0.zipиз Releases и распакуйте в постоянную папку. Не запускайте из ZIP.Откройте терминал в распакованной папке и выполните:
npm ci npm startДождитесь сообщения
Telegram Ads bridge listening on loopback port 18791. Оставьте терминал открытым. На macOS после установки зависимостей можно запускатьStart.commandдвойным щелчком.Откройте в Chrome
chrome://extensions/, включите «Режим разработчика», нажмите «Загрузить распакованное расширение» и выберите папку, где лежитmanifest.json.В этом же профиле Chrome войдите в Telegram Ads.
Нажмите значок расширения. Откроется панель со списком объявлений. Кнопка обновления перечитывает кабинет; индикатор MCP показывает связь с локальным сервером.
Первый запуск создаёт ваш собственный ключ соединения в .local/bridge.json и src/local-config.js. Эти файлы не входят в релиз. Не отправляйте их другим людям. Не публикуйте рабочую папку целиком после запуска.
Если не работает
Нет соединения: проверьте, что
npm startработает, порт 18791 свободен и панель расширения открыта. Нажмите кнопку подключения MCP.Пустой список: войдите в нужный профиль Telegram Ads и нажмите обновление. Список отражает загруженные строки, не весь исторический архив.
Не запускается
Start.command: выполнитеnpm startв терминале.После переезда папки: заново выберите её в Chrome и обновите абсолютный путь в MCP-клиенте.
Ошибка после сохранения или таймаут: сначала проверьте кабинет. Не повторяйте создание автоматически, иначе возможны дубли.
Подключение AI-агента
Добавьте в настройки MCP вашего клиента (Claude Code/Desktop, Cursor, Codex или другого совместимого клиента):
{
"mcpServers": {
"telegram-ads-assistant": {
"command": "node",
"args": ["/ABSOLUTE/PATH/telegram-ads-assistant/server/mcp.js"]
}
}
}На Windows используйте абсолютный путь с / либо экранированными \\. Если клиент не видит node, задайте полный путь к исполняемому файлу. MCP запускает stdio-сервер, но не заменяет отдельный npm start. Chrome и панель расширения должны оставаться открытыми.
Скопируйте папку skills/telegram-ads в каталог скиллов клиента, например .claude/skills/, .agents/skills/ или .bb/skills/. Это единственный рабочий вход: план и кабинет. Старые имена telegram-ads-method и telegram-ads-assistant оставлены как указатели на него. Если клиент не поддерживает скиллы, добавьте skills/telegram-ads/SKILL.md к инструкции агента.
Пример поручения на систему целиком:
Подготовь запуск Telegram Ads для [продукт]: посадочная, 8 каналов, тест креативов на общем пуле, затем 1к1. Бюджет тестов [сумма], цель [действие]. Когда матрица готова — проверь кабинет через Assistant, собери пакет, покажи перед сохранением. После разрешения создай объявления on hold и верни ID.
Пример только на кабинет:
Проверь подключение и выбранный кабинет. Подготовь одно объявление моего бота на эти три канала с бюджетом 1 и CPM 0.2. Покажи параметры перед сохранением. После разрешения сохрани, повторно прочитай объявление и сообщи его ID и статус. Бюджет автоматически не пополняй.
Основные MCP-команды
Задача | Команды |
Подключение |
|
Локальные пакеты |
|
Новый черновик |
|
Сохранение |
|
Изменения |
|
Бюджет |
|
Чтение |
|
stage_package хранит пакет локально, не создаёт рекламу. Импорт файла в панели также не равен публикации. Для полного агентского сценария используйте MCP. Старые prepare_form и get_statistics оставлены для совместимости; для новой работы используйте prepare_ad и read_statistics.
Формат объявления
См. пример пакета. Пример одной записи для prepare_ad:
{
"ad": {
"id": "demo-channels-1",
"title": "demo-channels-1",
"text": "Ваш проверенный рекламный текст.",
"url": "https://t.me/ExampleBot?start=demo_1",
"budget": 1,
"cpm": 0.2,
"status": "on_hold",
"target": {
"type": "channels",
"channels": ["example_channel", "second_channel"],
"excludeChannels": ["excluded_channel"]
}
}
}Замените демонстрационные имена реальными. Ставка должна соответствовать минимуму текущего кабинета. Уточняйте валюту и надбавки за медиа перед сохранением.
Search:
{"type":"search","queries":["ваш запрос"]}. Только простой URL бота без start, без загружаемого медиа.Bots:
{"type":"bots","bots":["ExampleBot"]}. Площадка должна удовлетворять порогу Telegram (в проверенном кабинете 1000+ daily users). Произвольного медиавложения нет.Users:
{"type":"users","countries":["Germany"],"languages":["Russian"],"channels":["example_channel"],"excludeChannels":["excluded_channel"]}.Для Users
placement—channel_postилиvideo_banner; второй режим означает размещение в чужом видео, не загрузку вашего ролика.В Channels
excludeChannelsисключает площадки. В Users исключает аудитории каналов. Это разные механизмы.Названия стран/языков/тем задаются точно как в английском кабинете; username без
@. Таргетинг сохранённого объявления неизменяем.
Медиа: upload_media({"path":"/path/ad.mp4"}) либо upload_media({"url":"https://example.com/ad.mp4"}). Ровно один источник. Для существующего объявления добавьте adId. Локальный кэш ограничен 200 MB, файл видео — 20 MB, изображения — 5 MB. Это консервативные пределы приложения. URL должен отдавать сам файл, а не HTML-страницу просмотра. Private LAN и metadata endpoints отклоняются; localhost относится к машине сервиса.
Ограничения и внешние действия
Публикация и бюджетные команды включены. Агент должен действовать в рамках разрешения владельца и согласованного лимита.
commit_adавтоматически отмечает галочку условий Telegram. Разрешение на их принятие должно быть получено у владельца до вызова команды.submitted_needs_verification— отправка формы, не доказательство успеха. Требуется чтение сохранённого объявления.Автоматическая сквозная сверка результата пока не завершена: её выполняет вызывающий агент.
delete_adоткрывает подтверждение удаления; окончательное удаление не реализовано.clone_adоткрывает черновик копии. Расписание реализовано как подготовка и не прошло полную живую приёмку.Изменение/возврат бюджета покрыты адаптером и тестами, но полный живой цикл всех финансовых операций не заявляется.
Графики canvas не извлекаются. CSV и таблицы зависят от доступности в кабинете; нужный месяц следует проверить на странице.
Произвольные сайты как рекламные назначения пока не поддерживаются валидатором: текущий сценарий ориентирован на Telegram-ботов.
Внешнего публичного вебхука и долговечной очереди нет. Локальный HTTP-мост слушает только
127.0.0.1, требует ключ и не должен публиковаться в интернет напрямую.Расширение не пополняет аккаунт, не подключает кошельки и не обходит ограничения Telegram.
Разработка и выпуск
npm ci
npm test
python3 scripts/package_release.pyИсходники расширения: src/, index.html, style.css, manifest.json; серверы: server/; тесты: tests/. JS-модули исполняются непосредственно Chrome: отдельная компиляция расширения не нужна. ZIP содержит готовый код расширения и локального сервера; npm-зависимости устанавливаются на машине пользователя через lockfile.
Скрипт выпуска включает только разрешённые файлы, исключает локальные ключи, данные и node_modules, создаёт SHA-256. Он не публикует релиз сам.
Проверки входа
Подробный контракт: VALIDATION.md. read_constraints читает доступные лимиты кабинета. validate_package возвращает человекочитаемые ошибки и структурированные issues; serverValidationRequired всегда отделяет локальную проверку от серверной.
Валюта, посадочная и география (0.5.0)
Пакеты принимают currency: "TON" | "EUR" | "XTR" (Stars). Перед заполнением валюта сверяется с read_constraints; неизвестная валюта или несовпадение останавливают подготовку. Конвертации сумм нет. MCP: prepare_ad({ad, currency: "XTR"}). Устаревший prepare_form отключён; используйте prepare_ad.
URL может быть HTTPS-сайтом (UTM сохраняются), t.me каналом, постом, invite или ботом с необязательным start. Search требует простой Telegram URL. Синтаксическая проверка не означает доступность назначения в аккаунте. Для сайта подготовка ждёт нативное поле имени сайта; при отказе Telegram прекращается. websiteName задаёт подпись сайта. Перед commit проверяйте errors, URL и fingerprint. География определяется выбранными странами и сообщением кабинета, а не валютой.
14.09.2026 в Stars-кабинете SelfyStudio проверено без создания рекламы: внешний сайт отклонён сообщением You can't promote external links; Users → Russian Federation принят с Will be shown for users from Russian Federation. Это наблюдение конкретного кабинета, не универсальная матрица прав. Украина и остальные страны отдельно не проверены; ограничения TON не переносятся на Stars. EUR также не означает запрет сайта: возможности зависят от кабинета и провайдера.
Локальная рабочая установка обновлена; ZIP старого релиза выше остаётся 0.4.0 до отдельного выпуска.
This server cannot be deployed
Maintenance
Related MCP Connectors
Manage Telegram drafts, media, schedules and publications from AI clients.
Build, edit and sync Google, Microsoft, Reddit and Meta ad campaigns from your assistant.
Run Google, Meta, Microsoft, TikTok and LinkedIn Ads from Claude or ChatGPT. Writes need approval.
Telegram-native CRM for agents: contacts, deals, pipelines, campaigns, docs and reports.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to interact with Telegram accounts through MCP, supporting messaging, contacts, groups, media, and admin functions.4Apache 2.0
- AlicenseAqualityBmaintenanceAn MCP server that lets AI agents read and manage Telegram Ads campaigns, including listing accounts and ads, reading stats and budgets, and creating/updating ads, CPM, status, and budget by driving the real ads.telegram.org web UI through Playwright with a reused cookie-based login session.111MIT
- AlicenseNot gradedqualityCmaintenanceEnables managing Telegram channels from MCP-capable AI assistants, including drafting and scheduling posts, publishing content, and retrieving channel analytics.MIT
- FlicenseAqualityAmaintenanceEnables AI agents to create, target, pause, and read stats for Telegram Ads campaigns through ads.telegram.org using a logged-in session, with tools for managing ads, creatives, targeting, and account settings.251-