- BrainTools - https://www.braintools.ru -

Дроны над Дубаем и новостной агрегатор: Flask, MCP-сервер, AI-агент и Telegram-бот

28 февраля 2026 года я стоял у окна на 41-м этаже в JBR в Дубае и смотрел, как системы ПВО ОАЭ перехватывают иранские беспилотники прямо над моей головой. Полез в новости — в Google и Яндексе статья двухчасовой давности, Telegram‑каналы противоречат друг другу. Когда это происходит где‑то далеко, не придаёшь этому значения. Когда ты в центре событий, то хочешь знать оперативную информацию, желательно с push‑уведомлениями.

Начал с Telegram‑канала по Ближнему Востоку — агрегировал RSS мировых агентств. Быстро понял: 200+ статей в день руками не покроешь. Написал парсер. Добавил автоперевод. Потом IT‑источники, потом экономику. Так появился мой продукт — сайт агрегатор новостей с AI и MCP.

Сайт https://aitg.pro/ru

Сайт https://aitg.pro/ru [1]

Что это такое?

Мультиязычный новостной агрегатор.

  • 80+ источников: Reuters, Bloomberg, FT, Habr, iXBT, RBC, ТАСС…

  • Структура из 9 категорий и 50 тегов, на актуальные темы

  • Лента хронологическая, отражение темы со всех сторон без цензуры(но с официальных источников).

  • Мультиязычность: статья приходит на EN, автоматически переводится на RU, получает теги и появляется в ленте.

Пример новостей

Пример новостей

API и MCP‑сервер

Это то, чем проект отличается от обычного агрегатора.

Есть REST API с документацией (aitg.pro/apidocs [2]): поиск, фильтрация по тегам/источникам/датам, полнотекстовый поиск с релевантностью.

Поверх работает MCP‑сервер(https://aitg.pro/mcp [3]) — стандарт для подключения AI‑ассистентов к внешним данным.

MCP (Model Context Protocol) — стандарт от Anthropic, который позволяет AI‑ассистентам вроде Claude подключаться к внешним источникам данных. По сути — способ дать LLM доступ к инструментам.

Все инструменты возвращают типизированные данные через Pydantic‑модели (ArticleSummary, ArticleDetail, TagNode, SearchResult). Это важно для AI‑агентов: структурированный вывод вместо сырого JSON уменьшает ошибки [4] парсинга и экономит токены.

MCP‑сервер можно вызывать и из браузера, и из Claude Desktop.

Например, подключаешь MCP к Claude, пишешь «Собери дайджест по AI за 3 дня» — получаешь структурированный отчёт. Агент сам находит тег, запрашивает статьи, читает полные тексты, формирует выжимку.

Claude->Settings->Connectors->Add custom connector и указываем ссылку https://aitg.pro/mcp/mcp

Claude→Settings→Connectors→Add custom connector и указываем ссылку https://aitg.pro/mcp/mcp [5]

AI‑ассистент

AI‑чат, который ищет и анализирует новости в реальном времени.

Под капотом — DeepSeek, так как он в 15–30 раз дешевле при сопоставимом качестве для поиска и суммаризации. Для бесплатного продукта принципиально.

Нюанс архитектуры: агент не хардкодит инструменты, а динамически подгружает их из MCP каждые 5 минут. Добавил новый инструмент — агент на сайте подхватит автоматически.

Диалог с агентом https://aitg.pro/ru/

Диалог с агентом https://aitg.pro/ru/ [6]

Архитектура

Дроны над Дубаем и новостной агрегатор: Flask, MCP-сервер, AI-агент и Telegram-бот - 5

FeedManager — отдельный сервис, который парсит RSS и пишет в MySQL.
Flask только читает. Парсер может зависнуть, упасть при дёрганом RSS‑источнике — фронтенд этого не замечает.

Проставление тегов реализовано в auto_tagger.py он читает из MySQL свежие статьи и пишет обратно теги. Поэтому на схеме двунаправленная стрелка — это не ошибка, а честное отражение того, что процесс и читает, и пишет в одну базу.

Реализован MCP‑сервер для AI‑агента и внешних потребителей.

Телеграмм бот живёт своей жизнью и по запросам пользователей отправляет новости.

Мультиязычность

Я собираю мировые новости, планирую сделать сайт международным и добавить 30 языков.
Переводы хранятся прямо в записи статьи как JSON‑колонка(это быстрее join):

{
  "en": {"title": "...", "summary": "...", "content": "..."},
  "ru": {"title": "...", "summary": "...", "content": "..."}
}

Автоматическое проставление тегов 600 ключевых слов вместо нейросети

Для меня важно разметить все статьи по крупным тегам и далее по дочерним тегам:

Система основных и дочерних тегов

Система основных и дочерних тегов

Для экономии, вместо AI, применил keyword matching, потому что на таком объеме новостей LLM будет кушать много токенов и работать медленнее, а keyword matching стоит 0 денег, <1 мс на статью, точность: ~85%.

TAG_RULES = {
    "ai": [
        "artificial intelligence", " ai ", "neural network",
        "deep learning", "искусственный интеллект", "нейросет",
    ],
    "cybersecurity": [
        "cybersecurity", "ransomware", "vulnerability",
        "кибербезопасность", "уязвимость", "хакер",
    ],
    # 47 тегов, ~600 ключевых слов (EN + RU)
}

Ссылки

Автор: garbuzenko

Источник [11]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/27163

URLs in this post:

[1] https://aitg.pro/ru: https://aitg.pro/ru/tag/it-tech

[2] aitg.pro/apidocs: https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Faitg.pro%2Fapidocs%2F&postId=2796468

[3] https://aitg.pro/mcp: https://aitg.pro/mcp

[4] ошибки: http://www.braintools.ru/article/4192

[5] https://aitg.pro/mcp/mcp: https://aitg.pro/mcp/mcp

[6] https://aitg.pro/ru/: https://aitg.pro/ru/

[7] aitg.pro: http://aitg.pro

[8] aitg.pro/ru/ai: https://aitg.pro/ru/ai

[9] @aitg_pro_bot: https://t.me/aitg_pro_bot

[10] aitg.pro/apidocs/: https://aitg.pro/apidocs/

[11] Источник: https://habr.com/ru/articles/1010502/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1010502

www.BrainTools.ru

Rambler's Top100