Reddit MCP Сервер
Сервер по протоколу MCP (Model Context Protocol) для доступа к данным Reddit без API-ключей. Подходит для Claude Desktop, Cursor и других MCP-клиентов. Основан на библиотеке redd — не требует аутентификации и браузера.
Возможности
- Поиск по Reddit — поиск по всем сабреддитам или внутри одного сабреддита.
- Посты сабреддита — просмотр горячих, лучших, новых и восходящих постов.
- Детали поста — полное содержание поста с древовидными комментариями.
- Активность пользователя — просмотр недавних постов и комментариев пользователя.
- Посты пользователя — список отправленных постов пользователя.
Не нужны API-ключи, аутентификация или браузер. Просто установи и запусти.
Быстрый старт
1. Через uvx (рекомендуется)
Самый быстрый способ — без клонирования репозитория.
# stdio transport (по умолчанию, для Claude Desktop / Cursor и др.)
uvx reddit-no-auth-mcp-server
# HTTP transport
uvx reddit-no-auth-mcp-server \
--transport streamable-http \
--port 8000
2. Из исходного кода
git clone https://github.com/eliasbiondo/reddit-mcp-server.git
cd reddit-mcp-server
uv sync
# Запуск с stdio
euv run reddit-no-auth-mcp-server
# Запуск с HTTP
euv run reddit-no-auth-mcp-server \
--transport streamable-http \
--port 9000 --log-level DEBUG
3. Настройка MCP-клиента
Claude Desktop — добавь в claude_desktop_config.json:
{
"mcpServers": {
"reddit": {
"command": "uvx",
"args": ["reddit-no-auth-mcp-server"]
}
}
}
Cursor — добавь в .cursor/mcp.json:
{
"mcpServers": {
"reddit": {
"command": "uvx",
"args": ["reddit-no-auth-mcp-server"]
}
}
}
Из исходников (любой MCP-клиент):
{
"mcpServers": {
"reddit": {
"command": "uv",
"args": ["--directory", "/путь/к/reddit-mcp-server", "run", "reddit-no-auth-mcp-server"]
}
}
}
Инструменты (Tools)
| Инструмент |
Описание |
Ключевые аргументы |
search |
Поиск постов по Reddit |
query, limit, sort |
search_subreddit |
Поиск внутри сабреддита |
subreddit, query, limit, sort |
get_post |
Данные поста + дерево комментариев |
permalink |
get_subreddit_posts |
Список постов сабреддита |
subreddit, limit, category, time_filter |
get_user |
Лента активности пользователя |
username, limit |
get_user_posts |
Посты пользователя |
username, limit, category, time_filter |
Примеры вызова
search: query = "python async programming", limit = 10, sort = "relevance"
search_subreddit: subreddit = "Python", query = "web scraping", limit = 10, sort = "top"
get_post: permalink = "/r/Python/comments/abc123/my_post/"
get_subreddit_posts: subreddit = "MachineLearning", limit = 25, category = "hot", time_filter = "week"
get_user: username = "spez", limit = 10
get_user_posts: username = "spez", limit = 10, category = "top", time_filter = "all"
Параметры сортировки: sort принимает relevance, hot, top, new, comments.
Параметры категории: category принимает hot, top, new, rising (для get_subreddit_posts) и hot, top, new (для get_user_posts).
Фильтр времени: time_filter принимает hour, day, week, month, year, all.
Конфигурация
Настройки задаются через переменные окружения или аргументы командной строки (CLI имеют приоритет).
| Переменная |
По умолчанию |
Описание |
REDDIT_TRANSPORT |
stdio |
Транспорт MCP (stdio, streamable-http) |
REDDIT_HOST |
127.0.0.1 |
Хост для HTTP |
REDDIT_PORT |
8000 |
Порт для HTTP |
REDDIT_PATH |
/mcp |
Путь для HTTP |
REDDIT_LOG_LEVEL |
WARNING |
Уровень логирования (DEBUG, INFO, WARNING, ERROR) |
REDDIT_PROXY |
— |
URL HTTP/HTTPS прокси |
REDDIT_TIMEOUT |
10.0 |
Таймаут запроса (сек) |
REDDIT_THROTTLE_MIN |
1.0 |
Мин. задержка между пагинированными запросами (сек) |
REDDIT_THROTTLE_MAX |
2.0 |
Макс. задержка между пагинированными запросами (сек) |
Пример с аргументами CLI:
uv run reddit-no-auth-mcp-server \
--transport streamable-http \
--port 9000 \
--log-level DEBUG
Архитектура
Проект следует гексагональной архитектуре (порты и адаптеры). Основные модули:
domain/ — бизнес-логика, независимая от фреймворков.
ports/ — абстрактные интерфейсы (конфигурация, Reddit).
application/ — сценарии использования (use cases).
adapters/inbound/ — CLI, MCP-сервер, сериализация.
adapters/outbound/ — реализация портов (env_config, redd_client).
container.py — точка сборки зависимостей (DI).
Такой подход упрощает тестирование и замену компонентов.
Разработка и вклад
Любые улучшения приветствуются. Пожалуйста, ознакомься с CONTRIBUTING.md — там описаны настройка проекта, запуск тестов и правила отправки изменений.
Лицензия
MIT
Комментарии
Комментариев пока нет. Будьте первым.