A Model Context Protocol (MCP) server that provides AI assistants with access to Reddit data. Built on top of redd — no API keys required. 1. Features 2. Quick Start 3. Available Tools 4. Configuration 5. Architecture 6. Contributing - Search — Search all of Reddit or within a specific subreddit - Subreddit Posts — Browse hot, top, new, or rising posts from any subreddit - Post Details —
Add this skill
npx mdskills install eliasbiondo/reddit-mcp-serverWell-structured MCP server with six clearly defined Reddit tools, sensible defaults, and zero-auth setup via uvx. The hexagonal architecture is unusually clean for a community MCP server.
1# Reddit MCP Server23[](https://pypi.org/project/reddit-no-auth-mcp-server/)4[](https://github.com/eliasbiondo/reddit-mcp-server/blob/main/LICENSE)56A [Model Context Protocol](https://modelcontextprotocol.io/) (MCP) server that7provides AI assistants with access to Reddit data. Built on top of8[redd](https://github.com/eliasbiondo/redd) — no API keys required.9101112https://github.com/user-attachments/assets/af8ae52c-f9f3-4d04-80d5-4be0dfa61b0f13141516---1718## Table of Contents19201. [Features](#1-features)212. [Quick Start](#2-quick-start)223. [Available Tools](#3-available-tools)234. [Configuration](#4-configuration)245. [Architecture](#5-architecture)256. [Contributing](#6-contributing)267. [License](#7-license)2728---2930## 1. Features3132- 🔍 **Search** — Search all of Reddit or within a specific subreddit33- 📰 **Subreddit Posts** — Browse hot, top, new, or rising posts from any subreddit34- 📖 **Post Details** — Get full post content with nested comment trees35- 👤 **User Activity** — View a user's recent posts and comments36- 📝 **User Posts** — Get a user's submitted posts3738No API keys, no authentication, no browser required. Just install and run.3940---4142## 2. Quick Start4344### 2.1. Using `uvx` (recommended)4546The fastest way to run the server — no clone needed:4748```bash49# stdio transport (default, for Claude Desktop / Cursor / etc.)50uvx reddit-no-auth-mcp-server5152# HTTP transport53uvx reddit-no-auth-mcp-server \54 --transport streamable-http \55 --port 800056```5758### 2.2. From source5960```bash61git clone https://github.com/eliasbiondo/reddit-mcp-server.git62cd reddit-mcp-server63uv sync64```6566Run the server:6768```bash69# stdio transport (default)70uv run reddit-no-auth-mcp-server7172# HTTP transport73uv run reddit-no-auth-mcp-server \74 --transport streamable-http \75 --port 800076```7778### 2.3. MCP Client Configuration7980#### Claude Desktop8182Add to your `claude_desktop_config.json`:8384```json85{86 "mcpServers": {87 "reddit": {88 "command": "uvx",89 "args": ["reddit-no-auth-mcp-server"]90 }91 }92}93```9495#### Cursor9697Add to your `.cursor/mcp.json`:9899```json100{101 "mcpServers": {102 "reddit": {103 "command": "uvx",104 "args": ["reddit-no-auth-mcp-server"]105 }106 }107}108```109110#### From source (any MCP client)111112```json113{114 "mcpServers": {115 "reddit": {116 "command": "uv",117 "args": [118 "--directory", "/path/to/reddit-mcp-server",119 "run", "reddit-no-auth-mcp-server"120 ]121 }122 }123}124```125126---127128## 3. Available Tools129130| Tool | Description | Key Arguments |131|------|-------------|---------------|132| `search` | Search Reddit for posts | `query`, `limit`, `sort` |133| `search_subreddit` | Search within a subreddit | `subreddit`, `query`, `limit`, `sort` |134| `get_post` | Get post details + comment tree | `permalink` |135| `get_subreddit_posts` | Get subreddit listing | `subreddit`, `limit`, `category`, `time_filter` |136| `get_user` | Get user's activity feed | `username`, `limit` |137| `get_user_posts` | Get user's submitted posts | `username`, `limit`, `category`, `time_filter` |138139### Tool Details140141#### `search`142143Search all of Reddit for posts matching a query.144145```146query: "python async programming"147limit: 10148sort: "relevance" # relevance, hot, top, new, comments149```150151#### `search_subreddit`152153Search within a specific subreddit.154155```156subreddit: "Python"157query: "web scraping"158limit: 10159sort: "top"160```161162#### `get_post`163164Get full details of a Reddit post including its comment tree.165166```167permalink: "/r/Python/comments/abc123/my_post/"168```169170#### `get_subreddit_posts`171172Get posts from a subreddit listing.173174```175subreddit: "MachineLearning"176limit: 25177category: "hot" # hot, top, new, rising178time_filter: "week" # hour, day, week, month, year, all179```180181#### `get_user`182183Get a user's recent public activity (posts and comments).184185```186username: "spez"187limit: 10188```189190#### `get_user_posts`191192Get a user's submitted posts.193194```195username: "spez"196limit: 10197category: "top" # hot, top, new198time_filter: "all" # hour, day, week, month, year, all199```200201---202203## 4. Configuration204205All settings can be configured via environment variables:206207| Variable | Default | Description |208|----------|---------|-------------|209| `REDDIT_TRANSPORT` | `stdio` | MCP transport (`stdio`, `streamable-http`) |210| `REDDIT_HOST` | `127.0.0.1` | Host for HTTP transport |211| `REDDIT_PORT` | `8000` | Port for HTTP transport |212| `REDDIT_PATH` | `/mcp` | Path for HTTP transport |213| `REDDIT_LOG_LEVEL` | `WARNING` | Log level (`DEBUG`, `INFO`, `WARNING`, `ERROR`) |214| `REDDIT_PROXY` | — | HTTP/HTTPS proxy URL |215| `REDDIT_TIMEOUT` | `10.0` | Request timeout in seconds |216| `REDDIT_THROTTLE_MIN` | `1.0` | Min delay between paginated requests (seconds) |217| `REDDIT_THROTTLE_MAX` | `2.0` | Max delay between paginated requests (seconds) |218219CLI arguments take precedence over environment variables:220221```bash222uv run reddit-no-auth-mcp-server \223 --transport streamable-http \224 --port 9000 \225 --log-level DEBUG226```227228---229230## 5. Architecture231232This project follows **hexagonal architecture** (ports & adapters):233234```235src/reddit_mcp_server/236├── domain/ # Pure business logic, no framework imports237│ ├── exceptions.py # Domain exception hierarchy238│ └── value_objects.py # Immutable config objects239├── ports/ # Abstract interfaces (contracts)240│ ├── config.py # ConfigPort241│ └── reddit.py # RedditPort242├── application/ # Use cases (orchestration)243│ ├── search.py244│ ├── search_subreddit.py245│ ├── get_post.py246│ ├── get_user.py247│ ├── get_subreddit_posts.py248│ └── get_user_posts.py249├── adapters/250│ ├── inbound/ # Presentation layer251│ │ ├── cli.py # CLI entry point252│ │ ├── mcp_server.py253│ │ ├── error_mapping.py254│ │ ├── serialization.py255│ │ └── mcp_tools/ # MCP tool definitions256│ └── outbound/ # Infrastructure layer257│ ├── env_config.py # ConfigPort implementation258│ └── redd_client.py # RedditPort implementation (wraps redd)259└── container.py # DI composition root260```261262---263264## 6. Contributing265266Contributions are welcome. Please read [CONTRIBUTING.md](CONTRIBUTING.md) for267guidelines on setting up the project, running tests, and submitting changes.268269---270271## 7. License272273[MIT](LICENSE)274
Full transparency — inspect the skill content before installing.