st-mcp-habr (1.1.0)

Published 2026-06-18 14:51:05 +03:00 by st in st/mcp.habr

Installation

pip install --index-url  st-mcp-habr

About this package

Keyless Habr MCP — поиск, чтение статей в Markdown, анализ дискуссий

MCP Habr

Keyless MCP-сервер для чтения и анализа Хабра без авторизации. Личный инструмент, который даёт агенту доступ к статьям и к структуре обсуждений: топ-комментарии, дерево вложенности и сводка дискуссии с выявлением спорных веток.

FastMCP httpx markdownify

📑 Содержание

🚀 Возможности

  • Доступ к контенту Хабра в режиме чтения через публичный API kek/v2 без авторизации
  • Тело статьи в чистом Markdown, комментарии в JSON
  • Анализ дискуссий: топ-комментарии по рейтингу, полное дерево вложенности, сводка с топ-заплюсованными и самыми горячими ветками (спорами)
  • Информирование о полноте: везде, где данные режутся, в ответе поля returned/total/has_more/next_offset/filtered_out — агент видит, что получил не всё, и дозапрашивает
  • Экономия контекста: по умолчанию отдаётся отфильтрованное (топ по рейтингу), сырой дамп — только по явному limit/offset
  • Поиск статей и хабов, ленты и топ по рейтингу (хаба или всего Хабра), свежая лента через RSS, профили пользователей

Быстрый старт

Регистрация сервера в Claude Code:

claude mcp add habr -s user -- uvx --from st-mcp-habr --index https://forgejo.emptyvessel.ru/api/packages/st/pypi/simple st-mcp-habr

uvx скачает пакет из forgejo registry. После регистрации инструменты доступны как mcp__habr__*. Авторизация не требуется.

🛠️ Стек

Технология Версия Назначение
Python 3.13+ Язык разработки
mcp[cli] 1.27.2 FastMCP, транспорт stdio
httpx 0.28.1 HTTP-клиент к kek/v2 и RSS
markdownify 1.2.2 Конвертация HTML в Markdown

🧰 Инструменты

Инструмент Назначение
search_articles Поиск статей по ключевым словам, опционально в хабе
hub_articles Лента хаба по сортировке (top/new) за период
feed_fresh Свежая лента (RSS): только что вышедшие статьи
top_articles Лучшие статьи за период по рейтингу — топ по всему Хабру
top_discussed Самые обсуждаемые статьи — вход в анализ дискуссий
get_article Полная статья: тело в Markdown и метаданные
get_top_comments Топ комментариев по рейтингу с информированием о полноте
get_comment_tree Дерево вложенности (ветка или вся дискуссия)
get_discussion_summary Сводка обсуждения: топ-заплюсованные и горячие ветки
get_hub Инфо о хабе: описание, подписчики, рейтинг
search_hubs Поиск хабов по теме
get_user Профиль: карма, рейтинг, последние статьи и комментарии

📁 Структура

mcp.habr/
├── src/st_mcp_habr/
│   ├── main.py          Точка входа: запуск сервера
│   ├── server.py        FastMCP и регистрация инструментов
│   ├── client.py        HabrClient (httpx) и обработка ошибок
│   ├── config.py        Чтение настроек из окружения
│   ├── format.py        Форматтеры статей и комментариев, HTML→Markdown
│   ├── tools.py         Поиск, ленты, чтение статьи
│   ├── discussion.py    Ядро: топ-комментарии, дерево, сводка дискуссии
│   └── catalog.py       Хабы и пользователи
├── scripts/
│   └── check.py         E2E-прогон инструментов через MCP-клиент
├── .env.example
├── Makefile
└── pyproject.toml

🏗️ Архитектура

Сервер читает контентную модель Хабра через kek/v2. Сущности связаны так:

Поток ─────► Хаб ─────► Публикация ─────► Комментарии
                       (статья │ новость)
                              ▲
                              │
                       Автор │ Компания
  • Поток — крупная надкатегория Хабра (Разработка, Администрирование, Дизайн, Менеджмент, Научпоп), объединяющая хабы.
  • Хаб — тематическая рубрика (python, infosecurity), к которой привязываются публикации; единица подписки и навигации.
  • Публикация — общий контейнер материала с заголовком и телом; обиходно зовётся «постом».
  • Статья — полноценный материал (туториал, разбор, обзор, перевод) с телом, хабами, тегами и рейтингом.
  • Новость — короткое сообщение о событии в IT со своей лентой; в топе по рейтингу отсекается флагом include_news.
  • Автор — аккаунт-человек со своей кармой, рейтингом, статьями и комментариями.
  • Компания — корпоративный аккаунт-организация, чьи публикации помечены флагом корпоративности.
  • Комментарии — дерево обсуждения под публикацией, ядро анализа в этом сервере.

🔧 Команды

make install      Установка зависимостей
make e2e          Прогон инструментов через MCP-клиент
make lint         Проверка линтером
make fix          Автоисправление и проверка типов
make format       Форматирование кода
make clean        Очистка кэша
make purge        Удаление окружения и кэшей

👤 Автор

Станислав Байков (@st.rnd)

📄 Лицензия

Распространяется под лицензией MIT. Подробности в LICENSE.

Requirements

Requires Python: >=3.13
Details
PyPI
2026-06-18 14:51:05 +03:00
105
33 KiB
Assets (2)
Versions (1) View all
1.1.0 2026-06-18