Releases: ismailsaoulaj/reddit-mcp-server
Release list
v0.6.0 - Hardened Pagination, Provenance & Request Shields
Fixed
- Public Web Fetches Fully Shielded (#6):
get_public_webnow executes its entire flow (cookie tier → curl_cffi → httpx retries) under the global concurrency semaphore and the aggregate 14-second time budget, mirroring OAuth requests. - Graceful Malformed Page Tokens (#8): Invalid
page_tokenvalues inextract_public_opinionnow return a structured degraded response with restart instructions instead of escaping as raw internal errors; offset parsing is strictly validated. - Trends Fallback Provenance (#7):
analyze_niche_trendsnow reports which tier served the data (arctic_shift/rss) with tier-specific messaging.
Changed
- Persistent Auth HTTP Client (#5):
RedditAuthManagerreuses a single persistenthttpx.AsyncClientacross token fetches/refreshes (no more connection pool leaks), with full lifecycle cleanup chained through client teardown.
v0.5.1 - Native Open WebUI & Streamable HTTP Support
Added
- Streamable HTTP Transport (
--transport http): Added native support for MCP Streamable HTTP on/mcp, resolving compatibility with modern web-based AI clients (Open WebUI, Dify). - Docker Default to Streamable HTTP: Configured the
Dockerfileentrypoint to run--transport httpby default on0.0.0.0:8000.
Fixed
- Open WebUI 405/404 Handshake: Resolved
405 Method Not Allowedand404 Not Foundwhen web clients submitPOST /mcppayloads during tool discovery.
v0.5.0 - HTTP/SSE Transport & Docker Microservice Mode
This release fundamentally expands the server's reach by introducing Server-Sent Events (SSE) and HTTP transport support. It transforms the Reddit MCP Server from a local-only CLI tool into a fully deployable microservice, enabling seamless integration with web-based platforms like Open WebUI, Dify, and remote Docker environments.
Added
- SSE Transport Mode: New
--transport sseCLI flag to run the server as a continuous HTTP service. - Network Binding Flags: Added
--hostand--portCLI arguments for fine-grained network control. - Docker Microservice Ready: The
Dockerfilenow exposes port8000and runs in SSE mode by default, making deployment instant. - Dynamic Logging Routing: Logs are intelligently routed to
sys.stderrwhen in STDIO mode (to protect JSON-RPC integrity) andsys.stdoutin SSE mode for standard Docker observability. - Graceful Asyncio Cleanup: Added handling to ensure the internal ASGI (Uvicorn) event loop shuts down cleanly without throwing
RuntimeErroron exit.
v0.4.0 - Resilient Multi-Tier Engine & Anti-Ban Shields
🚀 What's New in v0.4.0
This release introduces the high-availability Cascading Multi-Tier Engine, sub-second Cookie Authentication, and built-in Protective Shields (Rate Limiting, Concurrency Semaphore, and Singleflight Coalescing) to prevent WAF 403 blocks and IP bans under heavy AI traffic.
✨ Added
- Cascading Multi-Tier Architecture: Seamless fallback pipeline (
Official OAuth->Session Cookie->Browser-Impersonated Web JSON->Enriched Public RSS->DDG + Arctic Shift). - Optional Session Cookie Tier (
REDDIT_SESSION_COOKIE): Enables direct authenticated JSON queries, sub-second latency, and native Reddit pagination (t3_...cursors). - Token Bucket Rate Limiter (
_TokenBucketRateLimiter): Enforces safe requests-per-minute limits (default: 40 RPM) with jitter. - Global Concurrency Semaphore: Bounds concurrent outbound requests (default: 4) using
asyncio.Semaphore. - Singleflight Request Coalescing (
_singleflight): Automatically merges concurrent identical in-flight requests into a single network call. - Arctic Shift Batch RSS Enrichment: Automatically enriches Tier-3 public RSS posts with live scores, upvote ratios, and comment counts.
🛡️ Fixed & Improved
- Fastly/Cloudflare WAF Bypass: Full Chrome 131 profile emulation with Client Hints (
Sec-Ch-Ua,Sec-Fetch-Mode: cors). - Live Zero-Config Trends: Revived
analyze_niche_trendsto work in real-time without API keys across all tiers. - Test Suite Expansion: 138/138 unit and integration tests passing cleanly.
v0.3.2: Arctic Shift Endpoint Fix, Fail-Fast OAuth & Extended Timeouts
🚀 What's New in v0.3.2
🛠️ Bug Fixes & Improvements
- Fixed Arctic Shift Endpoint: Resolved a breaking fallback issue by updating the batch posts endpoint from
/posts/searchto/posts/ids, completely restoring zero-config search and topic exploration without OAuth credentials. - Fail-Fast OAuth Verification: Added pre-flight token validation in
RedditClient.search(). Invalid or expired credentials now trigger the zero-config fallback immediately (~0.5s) instead of wasting time on unauthenticated upstream requests. - Extended Fallback Timeouts: Increased tool execution timeouts from
15sto25sfor web-search tools (search_knowledgeandexplore_reddit_discussions) to gracefully handle search provider and multi-engine latency without premature timeouts. - Regression Testing: Added dedicated unit tests verifying the
/posts/idsendpoint to prevent future API regressions.
v0.3.1: Global XDG Config, RSS Fixes & uvx Support
🚀 What's New in v0.3.1
Added
- Global XDG Configuration: Support for global
.envconfiguration file via XDG config directory (~/.config/reddit-mcp-server/.env), allowing clean, minimal MCP client configurations without inline secrets. - Dynamic Package Versioning: Automatic version discovery at runtime via
importlib.metadata.
Changed & Fixed
- Saved Posts RSS Setup: Updated
get_saved_postssetup instructions and error messages to direct users to the reliablehttps://www.reddit.com/prefs/feeds/tab to avoid 404 / login redirection issues. - First-Class
uvx/pipxExecution: Updated documentation, examples, and inspector guides to highlight execution viauvx reddit-mcp-ai. - Added
reddit-mcp-aibinary alias.
Quick Start:
uvx reddit-mcp-ai
# or
pipx run reddit-mcp-aiv0.3.0 - Saved Posts RSS Feed & Comment Pagination
What's Changed
- feat: merge v0.2.0 improvements and get_saved_posts tool by @ismailsaoulaj in #3
Full Changelog: v0.2.0...v0.3.0
v0.2.0 - Resilient Fallbacks & Smart Filtering
What's Changed
- Fix OAuth token handling, improve comment scoring, and enhance error reporting by @ismailsaoulaj in #1
New Contributors
- @ismailsaoulaj made their first contribution in #1
Full Changelog: v0.1.0...v0.2.0
v0.1.0 - Initial Release: AI-Native Reddit MCP Server
🚀 Reddit MCP Server v0.1.0 — Initial Release
We are excited to announce the first official release of Reddit MCP Server, a production-grade, highly resilient Model Context Protocol (MCP) server built for LLM assistants (Claude Desktop, Cursor, Zed).
✨ Key Features & Highlights
- 🚀 Zero-Config Fallback: Works immediately out of the box without requiring Reddit API keys (seamless fallback to DuckDuckGo & Arctic Shift archive).
- 🛡️ Resilient Rate Limiting: Built-in exponential backoff and automatic handling of
429 Too Many Requests(respectingRetry-Afterheaders). - 🤖 Smart LLM Comment Filtering: Filters out bots, AutoModerator notices, and low-effort comments to conserve LLM token limits.
- ⏱️ LLM Timeout Protection: Decorator-enforced execution limits preventing AI clients from hanging or disconnecting.
- 🏗️ 4-Layer Architecture: Clean separation of concerns (Domain, Infrastructure, Application, Interface) for maximum modularity and testability.
🛠️ Included MCP Tools
| Tool | Description |
|---|---|
search_knowledge |
Broad factual search using search engine indexing. |
explore_reddit_discussions |
Explores discussions and gauges sentiment with pagination support. |
extract_public_opinion |
Deep-dives into thread comments with automated noise filtering. |
analyze_niche_trends |
Discovers rising ideas, opportunities, and trends in any subreddit (OAuth). |
📦 Quick Installation
```bash
git clone https://github.com/ismailsaoulaj/reddit-mcp-server.git
cd reddit-mcp-server
pip install -e .
```
Claude Desktop Configuration:
```json
{
"mcpServers": {
"reddit": {
"command": "reddit-mcp"
}
}
}
```
Contributions, issues, and feature requests are welcome!