A comprehensive Model Context Protocol (MCP) server for Reddit integration. This server enables AI agents to interact with Reddit programmatically through a standardized interface.
This MCP server provides 6 powerful tools for Reddit interaction:
- fetchPosts - Fetch hot posts from any subreddit
- getComments - Retrieve comments from specific posts
- searchPosts - Search for posts within subreddits
- postComment - Post comments on Reddit posts
- getSubredditInfo - Get detailed subreddit information
- postToSubreddit - Create new text or link posts
- Reddit API Credentials - Create a Reddit app at https://www.reddit.com/prefs/apps
- Docker - For containerized deployment
- Environment Variables:
REDDIT_CLIENT_ID- Your Reddit app client IDREDDIT_CLIENT_SECRET- Your Reddit app client secretREDDIT_USERNAME- Your Reddit usernameREDDIT_PASSWORD- Your Reddit passwordREDDIT_USER_AGENT- User agent string (optional, defaults to "mcp-reddit-agent/0.1")
Linux/macOS:
# Clone the repository
git clone https://github.com/KrishnaRandad2023/mcp-reddit
cd mcp-reddit
# Build the Docker image
make build
# Set environment variables
export REDDIT_CLIENT_ID="your_client_id"
export REDDIT_CLIENT_SECRET="your_client_secret"
export REDDIT_USERNAME="your_username"
export REDDIT_PASSWORD="your_password"
# Test the server
make testWindows (PowerShell/Batch):
# Clone the repository
git clone https://github.com/<my-org>/reddit-mcp
cd reddit-mcp
# Build the Docker image
.\build.ps1 build
# Or use simple batch file: .\build-win.bat build
# Set environment variables
$env:REDDIT_CLIENT_ID = "your_client_id"
$env:REDDIT_CLIENT_SECRET = "your_client_secret"
$env:REDDIT_USERNAME = "your_username"
$env:REDDIT_PASSWORD = "your_password"
# Test the server
.\build.ps1 test
# Or: .\build-win.bat test# Create server instance
task create -- --category social https://github.com/<my-org>/reddit-mcp \
-e REDDIT_CLIENT_ID=your_client_id \
-e REDDIT_USERNAME=your_username \
-e REDDIT_USER_AGENT="mcp-reddit-agent/0.1" \
-e REDDIT_CLIENT_SECRET=your_client_secret \
-e REDDIT_PASSWORD=your_password
# Build the tools
task build -- --tools reddit-mcp
# Import catalog
task catalog -- reddit-mcp
docker mcp catalog import $PWD/catalogs/reddit-mcp/catalog.yamldocker run --rm -i \
-e REDDIT_CLIENT_ID="your_client_id" \
-e REDDIT_CLIENT_SECRET="your_client_secret" \
-e REDDIT_USERNAME="your_username" \
-e REDDIT_PASSWORD="your_password" \
-e REDDIT_USER_AGENT="mcp-reddit-agent/0.1" \
mcp/reddit-mcp:latestFetch hot posts from a subreddit.
Arguments:
subreddit(string, required) - Name of the subredditlimit(integer, optional) - Number of posts to fetch (1-100, default: 10)
Example:
{
"subreddit": "technology",
"limit": 5
}Get comments for a specific Reddit post.
Arguments:
post_id(string, required) - Reddit post ID (without 't3_' prefix)
Example:
{
"post_id": "abc123"
}Search for posts within a subreddit.
Arguments:
subreddit(string, required) - Name of the subredditquery(string, required) - Search querylimit(integer, optional) - Number of results (1-100, default: 10)
Example:
{
"subreddit": "programming",
"query": "python tutorial",
"limit": 10
}Post a comment on a Reddit post.
Arguments:
post_id(string, required) - Reddit post ID (without 't3_' prefix)comment_text(string, required) - Comment text to post
Example:
{
"post_id": "abc123",
"comment_text": "Great post! Thanks for sharing."
}Get detailed information about a subreddit.
Arguments:
subreddit(string, required) - Name of the subreddit
Example:
{
"subreddit": "MachineLearning"
}Create a new post in a subreddit.
Arguments:
subreddit(string, required) - Name of the subreddittitle(string, required) - Post titlecontent(string, optional) - Post content for text postsurl(string, optional) - URL for link posts
Note: Either content or url must be provided.
Example (Text Post):
{
"subreddit": "test",
"title": "My Test Post",
"content": "This is a test post created via MCP."
}Example (Link Post):
{
"subreddit": "technology",
"title": "Interesting Article",
"url": "https://example.com/article"
}# Clone repository
git clone https://github.com/<my-org>/reddit-mcp
cd reddit-mcp
# Install dependencies
pip install -r requirements.txt
# Run locally (requires environment variables)
python src/server.pyLinux/macOS (Makefile):
make help # Show help
make build # Build Docker image
make test # Run tests
make catalog # Generate MCP catalog
make publish # Prepare for registry submission
make clean # Clean up Docker imagesWindows (PowerShell/Batch):
.\build.ps1 help # Show help
.\build.ps1 build # Build Docker image
.\build.ps1 test # Run tests
.\build.ps1 catalog # Generate MCP catalog
.\build.ps1 publish # Prepare for registry submission
.\build.ps1 clean # Clean up Docker images
# Or use simple batch files:
.\build-win.bat build # Build Docker image
.\build-win.bat test # Run tests
.\build-win.bat catalog # Generate MCP catalog
.\build-win.bat clean # Clean up Docker imagesreddit-mcp/
βββ src/
β βββ server.py # Main MCP server implementation
βββ catalogs/
β βββ reddit-mcp/
β βββ catalog.yaml # MCP catalog definition
βββ Dockerfile # Docker container definition
βββ requirements.txt # Python dependencies
βββ server.json # MCP server metadata
βββ tools.json # Tool definitions
βββ Makefile # Build automation
βββ *.sh # Shell scripts for automation
βββ README.md # This file
- Go to https://www.reddit.com/prefs/apps
- Click "Create App" or "Create Another App"
- Choose "script" as the app type
- Note your client ID (under app name) and client secret
- Set environment variables with your credentials
| Variable | Required | Secret | Description |
|---|---|---|---|
REDDIT_CLIENT_ID |
β | β | Reddit application client ID |
REDDIT_CLIENT_SECRET |
β | β | Reddit application client secret |
REDDIT_USERNAME |
β | β | Your Reddit username |
REDDIT_PASSWORD |
β | β | Your Reddit password |
REDDIT_USER_AGENT |
β | β | User agent string (default: "mcp-reddit-agent/0.1") |
- Store secrets securely (use environment variables, not hardcoded values)
- Use dedicated Reddit account for automation
- Follow Reddit's API rate limiting guidelines
- Respect subreddit rules and Reddit's terms of service
{
"mcpServers": {
"reddit": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"REDDIT_CLIENT_ID=your_client_id",
"-e",
"REDDIT_CLIENT_SECRET=your_client_secret",
"-e",
"REDDIT_USERNAME=your_username",
"-e",
"REDDIT_PASSWORD=your_password",
"-e",
"REDDIT_USER_AGENT=mcp-reddit-agent/0.1",
"mcp/reddit-mcp:latest"
]
}
}
}Fetch Latest Posts:
"Get the top 5 posts from r/technology"
Search and Comment:
"Search for Python tutorials in r/programming and comment on the top result"
Subreddit Analysis:
"Get information about r/MachineLearning and show me recent posts about transformers"
This server is ready for submission to the official Docker MCP Registry:
-
Build and test locally:
Linux/macOS:
make build make testWindows:
.\build.ps1 build .\build.ps1 test
-
Push to Docker Hub:
docker tag mcp/reddit-mcp:latest your-dockerhub-username/reddit-mcp:latest docker push your-dockerhub-username/reddit-mcp:latest
-
Update server.json with your repository details
-
Submit to MCP Registry:
# Using mcp-publisher CLI mcp-publisher init mcp-publisher login github mcp-publisher publish
This server meets all Docker MCP registry requirements:
- β
Docker Label:
io.modelcontextprotocol.server.name="reddit-mcp" - β STDIO Transport: Uses stdio for MCP communication
- β Environment Variables: Properly configured secrets and env vars
- β Server Metadata: Complete server.json with tools definitions
- β Documentation: Comprehensive README and usage examples
- β Category: Social (as specified)
- Name:
io.github.my-org/reddit-mcp - Category: social
- Docker Image:
mcp/reddit-mcp - Description: Reddit MCP server for API interactions: fetch posts, search, comments, and submissions
- Icon: https://www.redditinc.com/assets/images/site/reddit-logo.png
- Repository: https://github.com//reddit-mcp
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: MCP Documentation
- Reddit API: Reddit API Documentation
- Reddit API has rate limits - respect them
- Use appropriate delay between requests for bulk operations
- Follow Reddit's API Terms of Service
- Be respectful to communities and follow subreddit rules
- Consider using read-only operations when possible
Ready for MCP Registry Submission π