๐ A zero-config Model Context Protocol (MCP) server for Reddit โ search posts, browse subreddits, scrape user activity, and get structured data via any MCP-compatible AI client. No API keys or authentication needed.
Reddit MCP Server
A Model Context Protocol (MCP) server that provides AI assistants with access to Reddit data. Built on top of redd โ no API keys required.
https://github.com/user-attachments/assets/af8ae52c-f9f3-4d04-80d5-4be0dfa61b0f
Table of Contents
1. Features
- ๐ Search โ Search all of Reddit or within a specific subreddit
- ๐ฐ Subreddit Posts โ Browse hot, top, new, or rising posts from any subreddit
- ๐ Post Details โ Get full post content with nested comment trees
- ๐ค User Activity โ View a user's recent posts and comments
- ๐ User Posts โ Get a user's submitted posts
No API keys, no authentication, no browser required. Just install and run.
2. Quick Start
2.1. Using uvx (recommended)
The fastest way to run the server โ no clone needed:
# stdio transport (default, for Claude Desktop / Cursor / etc.)
uvx reddit-no-auth-mcp-server
# HTTP transport
uvx reddit-no-auth-mcp-server \
--transport streamable-http \
--port 8000
2.2. From source
git clone https://github.com/eliasbiondo/reddit-mcp-server.git
cd reddit-mcp-server
uv sync
Run the server:
# stdio transport (default)
uv run reddit-no-auth-mcp-server
# HTTP transport
uv run reddit-no-auth-mcp-server \
--transport streamable-http \
--port 8000
2.3. MCP Client Configuration
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"reddit": {
"command": "uvx",
"args": ["reddit-no-auth-mcp-server"]
}
}
}
Cursor
Add to your .cursor/mcp.json:
{
"mcpServers": {
"reddit": {
"command": "uvx",
"args": ["reddit-no-auth-mcp-server"]
}
}
}
From source (any MCP client)
{
"mcpServers": {
"reddit": {
"command": "uv",
"args": [
"--directory", "/path/to/reddit-mcp-server",
"run", "reddit-no-auth-mcp-server"
]
}
}
}
3. Available Tools
| Tool | Description | Key Arguments |
|------|-------------|---------------|
| search | Search Reddit for posts | query, limit, sort |
| search_subreddit | Search within a subreddit | subreddit, query, limit, sort |
| get_post | Get post details + comment tree | permalink |
| get_subreddit_posts | Get subreddit listing | subreddit, limit, category, time_filter |
| get_user | Get user's activity feed | username, limit |
| get_user_posts | Get user's submitted posts | username, limit, category, time_filter |
Tool Details
search
Search all of Reddit for posts matching a query.
query: "python async programming"
limit: 10
sort: "relevance" # relevance, hot, top, new, comments
search_subreddit
Search within a specific subreddit.
subreddit: "Python"
query: "web scraping"
limit: 10
sort: "top"
get_post
Get full details of a Reddit post including its comment tree.
permalink: "/r/Python/comments/abc123/my_post/"
get_subreddit_posts
Get posts from a subreddit listing.
subreddit: "MachineLearning"
limit: 25
category: "hot" # hot, top, new, rising
time_filter: "week" # hour, day, week, month, year, all
get_user
Get a user's recent public activity (posts and comments).
username: "spez"
limit: 10
get_user_posts
Get a user's submitted posts.
username: "spez"
limit: 10
category: "top" # hot, top, new
time_filter: "all" # hour, day, week, month, year, all
4. Configuration
All settings can be configured via environment variables:
| Variable | Default | Description |
|----------|---------|-------------|
| REDDIT_TRANSPORT | stdio | MCP transport (stdio, streamable-http) |
| REDDIT_HOST | 127.0.0.1 | Host for HTTP transport |
| REDDIT_PORT | 8000 | Port for HTTP transport |
| REDDIT_PATH | /mcp | Path for HTTP transport |
| REDDIT_LOG_LEVEL | WARNING | Log level (DEBUG, INFO, WARNING, ERROR) |
| REDDIT_PROXY | โ | HTTP/HTTPS proxy URL |
| REDDIT_TIMEOUT | 10.0 | Request timeout in seconds |
| REDDIT_THROTTLE_MIN | 1.0 | Min delay between paginated requests (seconds) |
| REDDIT_THROTTLE_MAX | 2.0 | Max delay between paginated requests (seconds) |
CLI arguments take precedence over environment variables:
uv run reddit-no-auth-mcp-server \
--transport streamable-http \
--port 9000 \
--log-level DEBUG
5. Architecture
This project follows hexagonal architecture (ports & adapters):
src/reddit_mcp_server/
โโโ domain/ # Pure business logic, no framework imports
โ โโโ exceptions.py # Domain exception hierarchy
โ โโโ value_objects.py # Immutable config objects
โโโ ports/ # Abstract interfaces (contracts)
โ โโโ config.py # ConfigPort
โ โโโ reddit.py # RedditPort
โโโ application/ # Use cases (orchestration)
โ โโโ search.py
โ โโโ search_subreddit.py
โ โโโ get_post.py
โ โโโ get_user.py
โ โโโ get_subreddit_posts.py
โ โโโ get_user_posts.py
โโโ adapters/
โ โโโ inbound/ # Presentation layer
โ โ โโโ cli.py # CLI entry point
โ โ โโโ mcp_server.py
โ โ โโโ error_mapping.py
โ โ โโโ serialization.py
โ โ โโโ mcp_tools/ # MCP tool definitions
โ โโโ outbound/ # Infrastructure layer
โ โโโ env_config.py # ConfigPort implementation
โ โโโ redd_client.py # RedditPort implementation (wraps redd)
โโโ container.py # DI composition root
6. Contributing
Contributions are welcome. Please read CONTRIBUTING.md for guidelines on setting up the project, running tests, and submitting changes.