Keyless MCP-сервер для чтения и анализа Reddit
- Python 95.2%
- Makefile 4.8%
| scripts | ||
| src/st_mcp_reddit | ||
| .env.example | ||
| .gitignore | ||
| LICENSE | ||
| Makefile | ||
| pyproject.toml | ||
| README.md | ||
MCP Reddit
Keyless MCP-сервер для чтения и анализа Reddit без регистрации приложения. Личный инструмент, который стягивает тему форума целиком — свежие треды и ключевые комментарии — в готовый для рассуждения контекст.
📑 Содержание
🚀 Возможности
- Доступ к 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.