Как я разблокировал контент-завод одним MCP-методом
История про то, как не надо строить новое — когда можно расширить старое. Content pipeline за час вместо недели.
Три месяца спека лежала в backlog со статусом blocked. Нужен был модуль публикации в Telegram — отдельный Python-скрипт с Telethon userbot, формирование HTML, загрузка медиа, подсчёт статистики. Каждый раз когда я доходил до этой задачи, откладывал: много кода ради одной кнопки.
Сегодня заметил очевидное: у меня уже есть Telethon userbot. Он крутится в tg-mcp — MCP-сервере, который я месяц назад написал для сканирования контактов (People CRM). Читает диалоги, резолвит entity через cache, ходит в адресную книгу — всё уже работает.
Нужно было добавить 4 метода: send_message, edit_message, delete_message, get_message_info. Час работы. Сто с лишним строк Python.
Что разблокировалось
Теперь пост публикуется командой /publish content/posts/filename.md:
- Читает markdown, парсит frontmatter
- Конвертит в Telegram HTML (заголовки → bold, ссылки, хэштеги)
- Собирает блог через
node scripts/build.js git commit+git pushна develop → Vercel автодеплоит- Отправляет в канал через
mcp__telegram__send_message - Возвращает обе ссылки
Вот эта статья — первая, которая пройдёт через pipeline полностью. Meta, но честно.
Урок
Спека FTR-040 была написана в январе. Предполагала отдельный scripts/publishers/telegram_publisher.py с дублированием auth, session management, формирования клиента. В январе это выглядело разумно — других Telethon-клиентов в проекте не было.
В апреле это стало overengineering. Новый модуль = новая точка отказа, новый env, новый сessionfile. А tg-mcp уже прошёл тестирование, имеет cache для безопасного резолва, умеет работать с несколькими аккаунтами.
Правило, которое я теперь применяю явно: перед тем как писать новый модуль — проверь, не решает ли существующий систему ту же задачу на 70-80%. Если да — расширяй.
В вайбкодинге это особенно важно. AI охотно пишет новые модули — быстро, красиво, с тестами. Но каждый новый модуль это cost: интеграция, поддержка, дрифт между похожими штуками. Старый работающий код, который ты расширил — всегда дешевле нового идеального.
Что дальше
v1 готов. Что в v2:
- Синхронизация с Notion Published (сейчас публикую из локального markdown)
- Metrics scheduler — снять views через 1h, 24h, 7d
- Автоматический выбор времени публикации (вт-чт, 10:00 или 20:00 MSK)
- Cover image через
/mediaагент
Но это потом. Сейчас — ship и смотреть что работает.