Reddit MCP Server
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: |
Bot Disclosure Footer | :white_check_mark: | :x: |
Policy Compliance Built-in | :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 a specific Reddit post with engagement analysis |
| Get top posts from a subreddit or home feed |
| Browse a subreddit/home feed by sort (hot, new, top, rising, controversial) |
| Get detailed information about a Reddit user |
| Get posts submitted by a specific user |
| Get comments made by a specific user |
| Get subreddit details and statistics |
| Get currently trending subreddits |
| Get comments from a specific post with threading |
| Search for posts across Reddit |
Write Tools (Require User Credentials)
Tool | Description |
| Create a new post in a subreddit |
| Post a reply to an existing post or comment |
| Edit your own Reddit post (self-text only) |
| Edit your own Reddit comment |
| Permanently delete your own post |
| Permanently delete your own comment |
Configuration
Environment Variables
Variable | Required | Default | Description |
| No* | - | Reddit app client ID |
| No* | - | Reddit app client secret |
| No | - | Reddit username (for write operations) |
| No | - | Reddit password (for write operations) |
| No | Auto-generated | Custom User-Agent string |
| No |
| Authentication mode: |
| No |
| Write safeguards: |
| No |
| Bot disclosure footer: |
| No | Built-in | Custom bot footer text (when disclosure is |
| No |
| In-memory caching of read requests: |
| No |
| Cache size cap in MB (LRU eviction beyond this) |
| No |
| Retries on HTTP 429 with Retry-After backoff ( |
*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)
Protect your Reddit account from spam detection and bans with built-in safeguards. Enabled by default (standard mode) per Reddit's Responsible Builder Policy.
Why Use Safe Mode?
Reddit's spam detection can flag accounts for:
Rapid posting or commenting
Duplicate or similar content
Posting the same content across multiple subreddits
Non-standard User-Agent strings
Safe Mode helps prevent these issues automatically.
Mode Options
Mode | Write Delay | Duplicate Detection | Use Case |
| None | No | Explicit opt-out only |
| 2 seconds | Last 10 items + cross-sub | Default, recommended |
| 5 seconds | Last 20 items + cross-sub | For cautious automated posting |
Disable Safe Mode
Safe mode is enabled by default. To explicitly disable:
export REDDIT_SAFE_MODE=off
npx reddit-mcp-serverWhat Safe Mode Does
Rate Limiting: Enforces minimum delays between write operations
Duplicate Detection: Blocks identical content from being posted twice
Cross-Subreddit Detection: Prevents posting the same content to multiple subreddits (per Reddit policy)
Smart User-Agent: Auto-generates Reddit-compliant User-Agent format when username is provided
Bot Disclosure
Reddit's Responsible Builder Policy requires bots to disclose their automated nature. Enable automatic bot footers on all posted content:
export REDDIT_BOT_DISCLOSURE=auto
npx reddit-mcp-serverWhen enabled, a footer is appended to all posts, replies, and edits:
---
š¤ I am a bot | Built with reddit-mcp-serverCustomize the footer with REDDIT_BOT_FOOTER:
export REDDIT_BOT_DISCLOSURE=auto
export REDDIT_BOT_FOOTER=$'\n\n---\n^(š¤ Custom bot footer text)'Authentication Modes
Mode Comparison
Mode | Rate Limit | Setup Required | Best For |
| ~10 req/min | None | Quick testing, read-only |
| 10-100 req/min | Optional | Flexible usage |
| 60-100 req/min | Required | Production use |
Anonymous Mode (Zero Setup)
{
"env": {
"REDDIT_AUTH_MODE": "anonymous"
}
}Anonymous mode does not work on every network. Reddit blocks unauthenticated requests from many IP ranges ā datacenters, cloud hosts, VPNs, and addresses it has flagged ā and answers with an HTTP 403 block page. If you hit this, tools fail with:
Reddit is blocking unauthenticated requests from this network (HTTP 403 with a
block page). Set REDDIT_CLIENT_ID and REDDIT_CLIENT_SECRET to authenticate with
OAuth, which also raises the rate limit from ~10 to 60+ requests/min.The fix is OAuth credentials ā see the next section. This is a property of your network, not of your Reddit account or the subreddit you asked for, so it affects every tool at once. A 403 on a single subreddit while others work is a different thing: that subreddit is private or quarantined.
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-serverReddit Responsible Builder Policy
This server is designed with Reddit's Responsible Builder Policy in mind:
Safe mode on by default ā rate limiting and duplicate detection prevent spam
Cross-subreddit duplicate detection ā blocks identical content across subreddits
Bot disclosure support ā optional automated footer for transparency
No voting/karma manipulation ā upvote/downvote tools are intentionally excluded
No private messaging ā DM tools are intentionally excluded
Policy-aware AI instructions ā MCP server instructions remind AI assistants of data usage restrictions
Credits
Fork of reddit-mcp-server by Alexandros Lekkas
Inspired by Python Reddit MCP Server by Arindam200