Keyless MCP-сервер для чтения и анализа Reddit
  • Python 95.2%
  • Makefile 4.8%
Find a file
2026-07-07 13:39:29 +03:00
scripts feat: инициализация репозитория 2026-06-15 13:59:51 +03:00
src/st_mcp_reddit feat: инициализация репозитория 2026-06-15 13:59:51 +03:00
.env.example docs: раздел инструментов и публикация в registry 2026-06-18 15:20:35 +03:00
.gitignore docs: раздел инструментов и публикация в registry 2026-06-18 15:20:35 +03:00
LICENSE feat: инициализация репозитория 2026-06-15 13:59:51 +03:00
Makefile docs: раздел инструментов и публикация в registry 2026-06-18 15:20:35 +03:00
pyproject.toml feat: инициализация репозитория 2026-06-15 13:59:51 +03:00
README.md docs: инструкция подключения к opencode 2026-07-07 13:39:29 +03:00

MCP Reddit

Keyless MCP-сервер для чтения и анализа Reddit без регистрации приложения. Личный инструмент, который стягивает тему форума целиком — свежие треды и ключевые комментарии — в готовый для рассуждения контекст.

FastMCP PRAW

📑 Содержание

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

  • Доступ к Reddit в режиме чтения через публичный installed-client без регистрации приложения
  • Сбор темы целиком: определение релевантных сабреддитов, отбор свежих обсуждений, ключевые комментарии, устранение повторов и ранжирование по вовлечённости
  • Построение полного вложенного дерева комментариев с указанием глубины и признаками неполноты
  • Поиск обсуждений и сабреддитов, просмотр лент, профилей, правил, wiki и дублей постов
  • Подготовка данных для аналитики — выявление болей, спорных обсуждений и всплесков активности — с последующей интерпретацией агентом

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

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

claude mcp add reddit -s user -e REDDIT_CLIENT_ID=<installed-client-id> -- uvx --from st-mcp-reddit --index https://forgejo.emptyvessel.ru/api/packages/st/pypi/simple st-mcp-reddit

Подключение к opencode — секция mcp в opencode.json:

{
  "mcp": {
    "reddit": {
      "type": "local",
      "command": [
        "uvx",
        "--from",
        "st-mcp-reddit",
        "--index",
        "https://forgejo.emptyvessel.ru/api/packages/st/pypi/simple",
        "st-mcp-reddit",
      ],
      "environment": {
        "REDDIT_CLIENT_ID": "<installed-client-id>",
      },
      "enabled": true,
    },
  },
}

uvx скачает пакет из forgejo registry. В Claude Code инструменты доступны как mcp__reddit__*, в opencode — reddit_*.

REDDIT_CLIENT_ID — публичный installed-client id. В Claude Code записывается в ~/.claude.json, в opencode передаётся через environment.

🛠️ Стек

Технология Версия Назначение
Python 3.13+ Язык разработки
mcp[cli] 1.27.2 FastMCP, транспорт stdio
praw 7.8.2 Reddit API, installed-client

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

Инструмент Назначение
resolve_topic Запрос на естественном языке → релевантные сабреддиты и ключевые слова
gather_topic Сбор темы целиком: свежие обсуждения, ключевые комментарии, дедупликация
search_posts Поиск обсуждений по ключевым словам глобально или в сабреддите
subreddit_posts Лента сабреддита по сортировке: hot, new, top, rising
top_discussed Самые обсуждаемые треды по числу комментариев
get_post Пост и вложенное дерево комментариев
subreddit_info Информация о сабреддите
search_subreddits Поиск сабреддитов по теме
get_user_overview Профиль пользователя: карма, последние посты и комментарии
subreddit_rules Правила сабреддита
subreddit_wiki Wiki-страница сабреддита
post_duplicates Перепосты и дубли поста в других сабреддитах
find_pain_points Маркеры вопросов и жалоб → болевые точки для анализа
find_content_gaps Спорные обсуждения с противоречивыми ответами без согласия
trend_radar Посты с необычно высокой скоростью обсуждения (всплески)

📁 Структура

mcp.reddit/
├── src/st_mcp_reddit/
│   ├── main.py          Точка входа: запуск сервера
│   ├── server.py        FastMCP и регистрация инструментов
│   ├── client.py        RedditClient (PRAW keyless) и обработка ошибок
│   ├── config.py        Чтение настроек из окружения
│   ├── presets.py       Именованные наборы сабреддитов
│   ├── format.py        Форматтеры поста и дерева комментариев
│   ├── tools.py         Базовые и расширенные инструменты
│   ├── analyze.py       Аналитические составные инструменты
│   └── topic.py         Главные инструменты: resolve_topic и gather_topic
├── scripts/
│   └── check.py         E2E-прогон инструментов через MCP-клиент
├── .env.example
├── Makefile
└── pyproject.toml

🔧 Команды

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

👤 Автор

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

📄 Лицензия

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