reddit-mcp-server
v1.2.1
Published
A Model Context Protocol (MCP) server for Reddit with full read AND write operations - create posts, reply, edit, and delete content.
Maintainers
Readme
Reddit MCP Server
A Model Context Protocol (MCP) server for interacting with Reddit - fetch posts, comments, user info, and create content.
Features at a Glance
| Feature | reddit-mcp-server | Other Reddit MCPs | | ------------------------------- | :----------------: | :----------------: | | Create Posts | :white_check_mark: | :x: | | Reply to Posts/Comments | :white_check_mark: | :x: | | Edit Posts/Comments | :white_check_mark: | :x: | | Delete Posts/Comments | :white_check_mark: | :x: | | Spam Protection (Safe Mode) | :white_check_mark: | :x: | | Browse Subreddits | :white_check_mark: | :white_check_mark: | | Search Reddit | :white_check_mark: | :white_check_mark: | | User Analysis | :white_check_mark: | :white_check_mark: | | Post Comments | :white_check_mark: | :white_check_mark: | | Zero-Setup Anonymous Mode | :white_check_mark: | :white_check_mark: | | Three-Tier Auth (10/60/100 rpm) | :white_check_mark: | :white_check_mark: |
Quick Start
Option 1: Claude Desktop Extension (Easiest)
Download and open the extension file - Claude Desktop will install it automatically:
Download reddit-mcp-server.mcpb
Option 2: NPX (No install required)
npx reddit-mcp-serverOr add to your MCP config (Claude Desktop, Cursor, etc.):
{
"mcpServers": {
"reddit": {
"command": "npx",
"args": ["reddit-mcp-server"]
}
}
}Option 3: Claude Code
claude mcp add --transport stdio reddit -- npx reddit-mcp-serverFeatures
Read-only Tools
| Tool | Description |
| ------------------------- | --------------------------------------------------- |
| get_reddit_post | Get a specific Reddit post with engagement analysis |
| get_top_posts | Get top posts from a subreddit or home feed |
| get_user_info | Get detailed information about a Reddit user |
| get_user_posts | Get posts submitted by a specific user |
| get_user_comments | Get comments made by a specific user |
| get_subreddit_info | Get subreddit details and statistics |
| get_trending_subreddits | Get currently trending subreddits |
| get_post_comments | Get comments from a specific post with threading |
| search_reddit | Search for posts across Reddit |
Write Tools (Require User Credentials)
| Tool | Description |
| ---------------- | ------------------------------------------- |
| create_post | Create a new post in a subreddit |
| reply_to_post | Post a reply to an existing post or comment |
| edit_post | Edit your own Reddit post (self-text only) |
| edit_comment | Edit your own Reddit comment |
| delete_post | Permanently delete your own post |
| delete_comment | Permanently delete your own comment |
Configuration
Environment Variables
| Variable | Required | Default | Description |
| ---------------------- | -------- | -------------- | --------------------------------------------------------- |
| REDDIT_CLIENT_ID | No* | - | Reddit app client ID |
| REDDIT_CLIENT_SECRET | No* | - | Reddit app client secret |
| REDDIT_USERNAME | No | - | Reddit username (for write operations) |
| REDDIT_PASSWORD | No | - | Reddit password (for write operations) |
| REDDIT_USER_AGENT | No | Auto-generated | Custom User-Agent string |
| REDDIT_AUTH_MODE | No | auto | Authentication mode: auto, authenticated, anonymous |
| REDDIT_SAFE_MODE | No | off | Write safeguards: off, standard, strict |
*Required only if using authenticated mode.
Full MCP Config Example
{
"mcpServers": {
"reddit": {
"command": "npx",
"args": ["reddit-mcp-server"],
"env": {
"REDDIT_CLIENT_ID": "your_client_id",
"REDDIT_CLIENT_SECRET": "your_client_secret",
"REDDIT_USERNAME": "your_username",
"REDDIT_PASSWORD": "your_password",
"REDDIT_SAFE_MODE": "standard"
}
}
}
}Safe Mode (Spam Protection)
New! Protect your Reddit account from spam detection and bans with built-in safeguards.
Why Use Safe Mode?
Reddit's spam detection can flag accounts for:
- Rapid posting or commenting
- Duplicate or similar content
- Non-standard User-Agent strings
Safe Mode helps prevent these issues automatically.
Mode Options
| Mode | Write Delay | Duplicate Detection | Use Case |
| ---------- | ----------- | ------------------- | ------------------------------ |
| off | None | No | Default, no safeguards |
| standard | 2 seconds | Last 10 items | Recommended for normal use |
| strict | 5 seconds | Last 20 items | For cautious automated posting |
Enable Safe Mode
export REDDIT_SAFE_MODE=standard
npx reddit-mcp-serverOr in your MCP config:
{
"env": {
"REDDIT_SAFE_MODE": "standard"
}
}What Safe Mode Does
- Rate Limiting: Enforces minimum delays between write operations
- Duplicate Detection: Blocks identical content from being posted twice
- Smart User-Agent: Auto-generates Reddit-compliant User-Agent format when username is provided
Authentication Modes
Mode Comparison
| Mode | Rate Limit | Setup Required | Best For |
| ---------------- | -------------- | -------------- | ------------------------ |
| anonymous | ~10 req/min | None | Quick testing, read-only |
| auto (default) | 10-100 req/min | Optional | Flexible usage |
| authenticated | 60-100 req/min | Required | Production use |
Anonymous Mode (Zero Setup)
{
"env": {
"REDDIT_AUTH_MODE": "anonymous"
}
}Authenticated Mode (Higher Rate Limits)
- Create a Reddit app at https://www.reddit.com/prefs/apps (select "script" type)
- Copy the client ID and secret
- Configure:
{
"env": {
"REDDIT_AUTH_MODE": "authenticated",
"REDDIT_CLIENT_ID": "your_client_id",
"REDDIT_CLIENT_SECRET": "your_client_secret"
}
}Write Operations
To create posts, reply, edit, or delete content, you need user credentials:
{
"env": {
"REDDIT_USERNAME": "your_username",
"REDDIT_PASSWORD": "your_password",
"REDDIT_SAFE_MODE": "standard"
}
}Development
Commands
pnpm install # Install dependencies
pnpm build # Build TypeScript
pnpm dev # Build and run MCP inspector
pnpm test # Run tests
pnpm lint # Lint code
pnpm format # Format codeCLI Options
npx reddit-mcp-server --version # Show version
npx reddit-mcp-server --help # Show help
npx reddit-mcp-server --generate-token # Generate OAuth token for HTTP modeHTTP Server Mode
For Docker deployments or web-based clients, use HTTP transport:
TRANSPORT_TYPE=httpStream PORT=3000 node dist/index.jsWith OAuth Protection
export OAUTH_ENABLED=true
export OAUTH_TOKEN=$(npx reddit-mcp-server --generate-token | tail -1)
TRANSPORT_TYPE=httpStream node dist/index.jsMake authenticated requests:
curl -H "Authorization: Bearer $OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{"method":"tools/list","params":{}}' \
http://localhost:3000/mcpDocker
Quick Start
# Pull and run
docker pull ghcr.io/jordanburke/reddit-mcp-server:latest
docker run -d \
--name reddit-mcp \
-p 3000:3000 \
-e REDDIT_CLIENT_ID=your_client_id \
-e REDDIT_CLIENT_SECRET=your_client_secret \
-e REDDIT_SAFE_MODE=standard \
ghcr.io/jordanburke/reddit-mcp-server:latestDocker Compose
services:
reddit-mcp:
image: ghcr.io/jordanburke/reddit-mcp-server:latest
ports:
- "3000:3000"
environment:
- REDDIT_CLIENT_ID=${REDDIT_CLIENT_ID}
- REDDIT_CLIENT_SECRET=${REDDIT_CLIENT_SECRET}
- REDDIT_USERNAME=${REDDIT_USERNAME}
- REDDIT_PASSWORD=${REDDIT_PASSWORD}
- REDDIT_SAFE_MODE=standard
- OAUTH_ENABLED=${OAUTH_ENABLED:-false}
- OAUTH_TOKEN=${OAUTH_TOKEN}
restart: unless-stoppedBuild Locally
docker build -t reddit-mcp-server .
docker run -d --name reddit-mcp -p 3000:3000 --env-file .env reddit-mcp-serverCredits
- Fork of reddit-mcp-server by Alexandros Lekkas
- Inspired by Python Reddit MCP Server by Arindam200
