tymcftw

Reddit Content API - Setup and Usage Guide

Community tymcftw
Updated

MCP for reddit

Reddit Content API - Setup and Usage Guide

GitHub starsGitHub forks

This project provides MCP (Model Context Protocol) tools for interacting with Reddit through Claude and Cursor.

Features

  • Reading trending posts from subreddits
  • Analyzing Reddit discussions with comments
  • Creating posts on Reddit
  • Adding comments to posts or replies to existing comments
  • Voting on posts and comments

Requirements

  • Python 3.10+
  • A Reddit account
  • A registered Reddit application (to obtain client_id and client_secret)
  • Virtual environment (venv or similar)
  • Claude Desktop and/or Cursor (optional but recommended)

Installation from Scratch

Follow these steps carefully to avoid import and configuration issues:

# 1. Clone the repository
git clone https://github.com/your-username/mcp-reddit.git
cd mcp-reddit

# 2. Create and activate virtual environment
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# 3. Install dependencies (WITHOUT installing the package in editable mode)
pip install -r requirements.txt

# 4. Configure environment variables (see below)
# Create and edit the .env file

⚠️ IMPORTANT: DO NOT install the package in editable mode (pip install -e .)as it can cause module import problems.

Environment Configuration

  1. Create a .env file in the project root with the following variables:
REDDIT_CLIENT_ID=your_client_id
REDDIT_CLIENT_SECRET=your_client_secret
REDDIT_REFRESH_TOKEN=your_refresh_token
  1. To obtain a refresh token, run:
python -m mcp_reddit.auth_helper

Follow the instructions to authorize the application. The token will be automatically saved to the .env file.

Project Structure

mcp-reddit/
│
├── src/
│   └── mcp_reddit/
│       ├── __init__.py
│       ├── main.py           # Entry point for the MCP server
│       ├── reddit_fetcher.py # Implementation of Reddit tools
│       └── auth_helper.py    # Helper for generating authentication tokens
│
├── .env                      # Environment variables (create manually)
├── requirements.txt
├── setup.py
└── README.md

Running the Server Directly

To run manually (useful for development and testing):

cd /path/to/mcp-reddit
.venv/bin/python src/mcp_reddit/main.py

You should see logs indicating:

  • Server initialization
  • Reddit authentication verification
  • Registration of 10 tools (5 original + 5 with prefix)
  • "Running MCP server..."

Claude Desktop Configuration

  1. Locate the configuration file:

    • On macOS: /Users/your-username/Library/Application Support/Claude/claude_desktop_config.json
    • On Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. Add the configuration for reddit-content-api:

"reddit-content-api": {
  "command": "/full/path/to/mcp-reddit/.venv/bin/python",
  "args": [
    "-m",
    "mcp_reddit.main",
    "--stdio"
  ],
  "cwd": "/full/path/to/mcp-reddit",
  "env": {
    "PYTHONPATH": "/full/path/to/mcp-reddit/src:/full/path/to/mcp-reddit",
    "DEBUG": "true"
  }
}

⚠️ EXTREMELY IMPORTANT: PYTHONPATH must include both the src directory and the project root, in that order, separated by : (on Unix/macOS) or ; (on Windows)

Cursor Configuration

  1. Locate the configuration file:

    • On macOS: /Users/your-username/.cursor/mcp.json
    • On Windows: %USERPROFILE%\.cursor\mcp.json
  2. Add the same configuration as in Claude, adjusting paths as necessary.

Troubleshooting Common Issues

Issue: Only 2 tools appear instead of the expected 10

Symptoms: When running the server, only 2 tools appear instead of the expected 10.

Possible causes and solutions:

  1. Import problem: Python is importing an installed version from site-packages instead of the local code in src/.

    Solution:

    • Make sure NOT to install the package in editable mode (pip install -e .)
    • Explicitly add src to the beginning of PYTHONPATH in the configurations
    • If you've already installed it, use pip uninstall reddit-content-api to remove it
  2. Python cache: Old .pyc files can cause problems.

    Solution:

    • Remove all __pycache__ directories from the project
  3. Version conflicts: Different versions of the same library.

    Solution:

    • Reinstall dependencies with pip install -r requirements.txt

Issue: "Cannot create post: Reddit authentication is not configured properly"

Cause: The refresh token is invalid or has expired.

Solution: Regenerate the token by running python -m mcp_reddit.auth_helper and make sure it's saved in .env.

Issue: Tools don't appear in Claude/Cursor

Cause: Incorrect configuration in the configuration files.

Solution:

  • Check paths and especially PYTHONPATH in the configuration files
  • Completely restart Claude/Cursor after modifying the configuration

Using the Tools in Claude/Cursor

Once configured, you can use the following tools:

  1. mcp_reddit_content_api_fetch_reddit_hot_threads - Get trending posts
  2. mcp_reddit_content_api_fetch_reddit_post_content - Analyze a post and its comments
  3. mcp_reddit_content_api_create_reddit_post - Create a new post
  4. mcp_reddit_content_api_add_reddit_comment - Add a comment
  5. mcp_reddit_content_api_vote_on_reddit_content - Vote on content

Examples

Getting trending posts:

Subreddit: python
Number of posts: 5

Creating a post:

Subreddit: test
Title: Test from MCP
Content type: text
Content: This is a test from the Reddit Content API using MCP.

Contributions

If you find issues or have improvements, please create an issue or submit a pull request.

License

MIT

Support This Project

If you find this project useful in your work or research, please consider:

  • ⭐ Starring the repository to show your support
  • 🔄 Following the repository for updates on new features and improvements
  • 🐛 Opening issues for bugs or feature requests
  • 🛠️ Contributing with pull requests if you have improvements to share

Your support helps make this project better for everyone!

MCP Server · Populars

MCP Server · New

    anysiteio

    AnySite MCP Server

    A Model Context Protocol (MCP) server that provides comprehensive access to LinkedIn data and functionalities using the AnySite API, enabling not only data retrieval but also robust management of user accounts.

    Community anysiteio
    kontext-dev

    browser-use-mcp-server

    Browse the web, directly from Cursor etc.

    Community kontext-dev
    WordPress

    MCP Adapter

    An MCP adapter that bridges the Abilities API to the Model Context Protocol, enabling MCP clients to discover and invoke WordPress plugin, theme, and core abilities programmatically.

    Community WordPress
    HzaCode

    OneCite

    📚 An intelligent toolkit to automatically parse, complete, and format academic references, with Model Context Protocol (MCP) support.

    Community HzaCode
    cexll

    Codex MCP Tool

    Codex Mcp Server

    Community cexll