Skip to main content

A Model Context Protocol Server for Reddit — browse, search, and read Reddit from any MCP client. No API keys required.

Project description

Reddit MCP Server

PyPI License: MIT

A Model Context Protocol (MCP) server that provides AI assistants with access to Reddit data. Built on top of redd — no API keys required.


Table of Contents

  1. Features
  2. Quick Start
  3. Available Tools
  4. Configuration
  5. Architecture
  6. Contributing
  7. License

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

# HTTP transport
uv run reddit-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-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:

reddit-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.


7. License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reddit_no_auth_mcp_server-0.1.1.tar.gz (92.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

reddit_no_auth_mcp_server-0.1.1-py3-none-any.whl (25.0 kB view details)

Uploaded Python 3

File details

Details for the file reddit_no_auth_mcp_server-0.1.1.tar.gz.

File metadata

  • Download URL: reddit_no_auth_mcp_server-0.1.1.tar.gz
  • Upload date:
  • Size: 92.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for reddit_no_auth_mcp_server-0.1.1.tar.gz
Algorithm Hash digest
SHA256 0d4cb881fbe318e354827352d1ad0c9092a9bbfe3e7bd0020a17655a23f63a8c
MD5 5f5ea8913a36f19ef04832bc58013430
BLAKE2b-256 b93d781806c57a6b4a5773117674553097adcf476f3b9e24aabfade31f769f48

See more details on using hashes here.

File details

Details for the file reddit_no_auth_mcp_server-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: reddit_no_auth_mcp_server-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 25.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for reddit_no_auth_mcp_server-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b27145b3825013c1996e0a81b9c1f7596343a439c828c832e7d1d7fc999f5a94
MD5 4ad599d7233392c2d3fab54b9aa9339d
BLAKE2b-256 b486b4ce874c19d86d3514a946fc3215f244556f6f0163d0ed9ab10fbf5bcd30

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page