Skip to main content
Glama
jordanburke

reddit-mcp-server

Reddit MCP Server

A Model Context Protocol (MCP) server for interacting with Reddit - fetch posts, comments, user info, and create content.

npm version npm downloads GitHub stars License: MIT

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:

Related MCP server: Upstash MCP Server

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-server

Or 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-server

Features

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-server

Or in your MCP config:

{
  "env": {
    "REDDIT_SAFE_MODE": "standard"
  }
}

What Safe Mode Does

  1. Rate Limiting: Enforces minimum delays between write operations

  2. Duplicate Detection: Blocks identical content from being posted twice

  3. 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)

  1. Create a Reddit app at https://www.reddit.com/prefs/apps (select "script" type)

  2. Copy the client ID and secret

  3. 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 code

CLI 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 mode

HTTP Server Mode

For Docker deployments or web-based clients, use HTTP transport:

TRANSPORT_TYPE=httpStream PORT=3000 node dist/index.js

With OAuth Protection

export OAUTH_ENABLED=true
export OAUTH_TOKEN=$(npx reddit-mcp-server --generate-token | tail -1)
TRANSPORT_TYPE=httpStream node dist/index.js

Make authenticated requests:

curl -H "Authorization: Bearer $OAUTH_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"method":"tools/list","params":{}}' \
     http://localhost:3000/mcp

Docker

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:latest

Docker 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-stopped

Build Locally

docker build -t reddit-mcp-server .
docker run -d --name reddit-mcp -p 3000:3000 --env-file .env reddit-mcp-server

Credits

Appeared in Searches

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jordanburke/reddit-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server