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

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

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

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

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

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

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

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

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

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

API и MCP‑сервер

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

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

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

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

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

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

AI‑ассистент

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

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

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

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

Архитектура

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)
}

Ссылки

Комментарии (11)


  1. garbuzenko Автор
    15.03.2026 17:20

    RSS сработала и на сайт подтянулась статья с habr о моем сайте

    https://aitg.pro/ru/article/27934

    Круг замкнулся))))


    1. cartonworld
      15.03.2026 17:20

      Кнопка "Читать" вводит в заблуждение, наверное её нужно назвать "Поделиться"


      1. cartonworld
        15.03.2026 17:20

        удалено, поторопился, ниже уже написали


  1. achekalin
    15.03.2026 17:20

    Чисто раздел новостей на Хабре - перепевки с западных источников!


    1. garbuzenko Автор
      15.03.2026 17:20

      Отличие есть, в оперативности получения новостей с авто переводом(на Хабр хорошую статью только через неделю кто-нибудь переведет и добавит, а здесь мгновенно), в объеме (так как все мировые СМИ можно настроить - по 3000 в день сейчас новостей - это я ещё часть тем отключил), в аналитике трендов используя mcp-сервера.


      1. garbuzenko Автор
        15.03.2026 17:20

        У меня ещё идея есть, я хочу на базе этих новостей автоматически новости по AI и MCP к себе в канал телеграмм постить, причем выбирая лучшие и формируя ежедневный дайджест

        Я для этого проект подготовил

        https://tgpage.ru/

        Скоро доделаю и будет очень прикольно

        Вот например сайт моего канала сгенерил

        https://garbuzenko-mikhail.tgpage.ru/


  1. JerryI
    15.03.2026 17:20

    Почему LLM так любят градиенты пурпурного...


    1. garbuzenko Автор
      15.03.2026 17:20

      Gemini законодатель в сфере Web-дизайна)


  1. privet_mir
    15.03.2026 17:20

    Привет, проект полезный, но очень сырой, на мобильной версии к сожалению ассистент полу рабочий, а так я бы тут хотел попробовать почитать новости :)

    Рекомендую первым делам добавить пробелы в тексте между всеми использованиями инструментов (tool calling), чтобы не было всё слитно


    1. garbuzenko Автор
      15.03.2026 17:20

      Да, работы впереди много)


  1. ga661go6
    15.03.2026 17:20

    Гениально. Вы молодец!