Reddit Growth Mcp

io.github.latent-9由 GitHub 帳號 latent-9 發布v0.2.1更新於 Oct 25, 2026

Find where to post on Reddit and score your draft before posting — no API keys needed.

概覽

AI 產生的概覽

一個本機 MCP 伺服器,分析公開的 Reddit 封存資料,協助助理挑選子版、了解發文模式,並在發佈前為草稿評分。

可以做什麼
依成長、流量、討論度與被刪風險排序子版,並產生包含跨版發佈選項與最佳發文時間的整體成長計畫。讀取某個社群的熱門配方:媒體類型、時間、標籤、標題風格與關鍵字。估算子版的活躍度與留言深度,並給出啟發式情緒判斷。為草稿預測表現分數與被接受風險,或依規模公平的契合度在多個子版間比較同一份草稿。設定 Reddit 憑證後,可抓取原始貼文與留言、搜尋子版,並依主題尋找目標子版。
適用情境
適合在規劃 Reddit 發文時,需要依據來判斷發到哪裡、什麼格式與時間表現較好、草稿被刪的可能性有多高。也適合比較候選社群在觸及與討論深度之間的差異。
執行需求
以 PyPI 套件形式透過 stdio 在本機執行,需要 Python 3.11+ 與 uv(或 pipx、Docker)。以封存資料為主的分析工具不需要 Reddit 帳號或 API 金鑰。選用的 Reddit 憑證(REDDIT_CLIENT_ID、REDDIT_CLIENT_SECRET、REDDIT_USER_AGENT)可解鎖原始資料存取、依主題尋找子版與即時刪除檢查。需要能連線到公開封存的網路。
安裝前請注意
選用的 Reddit 憑證會從環境變數讀取,應避免放入共用設定。此伺服器只讀取 Reddit 資料、不會發文,但會把子版名稱與草稿文字送到公開的 Arctic Shift 封存,設定憑證後也會送到 Reddit。數據是取樣估算與相關性,並非保證;沒有憑證時,刪除與 AutoModerator 訊號可能不確定。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Reddit Growth Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Reddit Growth MCP

Find where to post, learn each subreddit's viral recipe, and score your draft before you publish — no Reddit API key required.

[PyPI] [CI] [License: MIT] [Glama quality score]

[reddit-growth in action — plan where to post, score a draft, and compare subreddits]

One command each: plan where to post, draft to score a post before you publish, and compare to rank subreddits by removal risk.

▶ Watch the full-quality 30s MP4

Reddit Growth MCP turns a list of subreddits into a plan — where to post, what to post, and when — by reading each community's format, flair, timing, and keyword recipe from a public historical archive. The whole core workflow runs with no account or API key. It works as an MCP server (for Claude, Cursor, and other MCP clients) and as a standalone command-line tool.

Built by a Top 1% Poster in r/ClaudeAI — the heuristics here encode what actually gets upvoted and what gets removed, not guesswork.

[Top 1% Poster in r/ClaudeAI (Legendary)]

Quick start

Requirements: Python 3.11+ and uv. No Reddit account or API keys are needed to get started.

Install from PyPI:

bash
uvx reddit-growth-mcp                            # run the MCP server instantlypipx install reddit-growth-mcp                   # or install the CLI + serverreddit-growth plan singularity LocalLLaMA mcp    # your first growth plan

Or from a clone (for development):

bash
uv sync                                                    # install dependenciesuv run python -m src.cli plan singularity LocalLLaMA mcp   # your first growth plan

That prints where to post, what to post, and when — using only the public archive. Every command has the form uv run python -m src.cli <command> [options] (shown throughout as reddit-growth <command>, which is the installed alias). Add -h to any command for help, e.g. uv run python -m src.cli plan -h.

If you activate the virtualenv directly (source .venv/bin/activate) and zsh still reports command not found: reddit-growth, run rehash — zsh caches command locations at startup and needs a nudge after the venv is added to PATH. Opening a new terminal also works, or call the binary by path without activating: .venv/bin/reddit-growth plan singularity LocalLLaMA mcp.

Interactive launcher

Prefer a menu to flags? Run:

bash
bash scripts/menu.sh

Pick a mode (plan, compare, patterns, draft, …), choose subreddits from a searchable preset list, and it runs the command for you — all in one window. With gum installed you get an arrow-key TUI with fuzzy search; otherwise it falls back to a numbered menu. Type h for a built-in guide.

What it answers

  • Which subreddits fit my topic, and how much reach do they have?
  • Will my post survive here, or does this community remove a lot of posts?
  • What actually performs here: which format, title style, timing, and flair?
  • Given a specific draft, how is it likely to do, and how do I improve it?

See it work

compare ranks candidate subreddits by growth, viral ceiling, discussion, and removal risk — so you post where you'll be seen and skip communities that remove most submissions (note r/ClaudeAI below: 96% removed, strict):

[compare mode]

patterns reads one community's viral recipe — the media types, hours, days, flairs, and keywords that actually perform, ranked by median so a single lucky post can't crown a category:

[patterns mode]

Figures are live estimates from a sample and shift over time — run the commands yourself for current numbers.

Tools

ToolPurposeNeeds credentials
analyze_post_patternsWhat performs in a sub: timing, media, title style, flair, keywords, by a configurable metricNo
analyze_acceptanceRemoval rate and what tends to get removed; official rules when credentials are presentNo
compare_subredditsRank subreddits by growth (typical reach + viral upside), with traffic (posts/day), discussion, removal risk, and a safety label; rank_by switches to viral/opportunity/insightNo
analyze_insightDiscussion depth (comment substance) plus a heuristic sentiment read (supportive/mixed/critical) — not just comment countNo
growth_planOne call: safest strong target, cross-post options, viral recipe, and best posting timesNo
evaluate_draftPredict a draft's performance (0-100) and acceptance risk, with drivers and fixesNo
evaluate_draft_acrossScore one draft across subs, ranked by size-fair fit (percentile) vs raw reachNo
analyze_subredditEstimate a subreddit's activity (posts/day); uses the archive without credentialsNo
find_target_subreddits_toolDiscover and rank subreddits for topics by estimated trafficYes
fetch_posts, fetch_multiple, search_subreddit, fetch_commentsRaw data accessYes

The analysis tools are subreddit-agnostic — they work on any archived sub. The launcher ships 40+ presets across AI, dev, and startup communities (ChatGPT, DeepSeek, LocalLLaMA, StableDiffusion, SaaS, indiehackers, …).

Data sources

Removal detection follows the reveddit approach: the archive records what was posted, and moderator removals are read from that record. When Reddit credentials are available, analyze_acceptance performs an accurate live diff (archive vs. current Reddit) to resolve ambiguous cases; without credentials it runs archive-only and flags its confidence.

Reddit credentials (optional)

Everything above works with no account. Credentials only unlock the credential-only tools (raw data access, find_target_subreddits_tool) and the accurate live-removal check. Create a "script" app at https://www.reddit.com/prefs/apps, then:

bash
cp .env.sample .env# REDDIT_CLIENT_ID=...# REDDIT_CLIENT_SECRET=...# REDDIT_USER_AGENT=reddit-growth-mcp/0.2.1 by u/your_username

Command-line usage

Every command runs credential-free from the archive. The commands are: traffic, insight, patterns, acceptance, compare, plan, report, draft, and fit (run -h on any of them for options).

bash
uv run python -m src.cli traffic LocalLLaMAuv run python -m src.cli insight mcpuv run python -m src.cli patterns Fedora --time monthuv run python -m src.cli patterns commandline --metric discussionuv run python -m src.cli acceptance technologyuv run python -m src.cli compare Fedora gnome linuxuv run python -m src.cli plan singularity LocalLLaMA mcp --tz 7uv run python -m src.cli draft ClaudeAI --title "I built an ASCII art tool" --type imageuv run python -m src.cli fit singularity LocalLLaMA mcp --title "..." --type video

fit scores one draft across several subreddits and ranks by a size-fair fit (the draft's percentile within each sub's own score distribution) alongside raw expected reach, so a small sub where the post lands in the top decile isn't buried by a big sub's larger absolute numbers.

Add --json to any command for raw output.

Time-based commands (patterns, plan, draft, fit, report) accept --time day|week|month|year|all — shorter is fresher but a smaller sample.

patterns accepts --metric:

  • score: upvotes (reach).
  • comments: comment volume.
  • discussion: comments per upvote, a proxy for genuine engagement rather than drive-by upvotes.
  • quality: upvotes damped by a clickbait penalty.

Use as an MCP server

Register the server once (Claude Code shown):

bash
claude mcp add reddit-growth-mcp -- uvx reddit-growth-mcp

For Cline, Cursor, Claude Desktop, and other clients, add it to the MCP settings JSON (no separate install — uvx fetches it from PyPI):

json
{  "mcpServers": {    "reddit-growth": {      "command": "uvx",      "args": ["reddit-growth-mcp"]    }  }}

Then ask in natural language, for example "analyze what performs in r/Fedora" or "will this title get accepted in r/linux?" The client calls the tools.

For the full flow in one step, ask for a growth plan ("build a growth plan for r/singularity, r/LocalLLaMA, r/mcp") to invoke growth_plan, or select the reddit_growth prompt, which guides the assistant through finding a safe high-traffic subreddit and crafting a post that fits its viral recipe.

To run the server directly over stdio:

bash
uv run python -m src.server

Docker

The server also ships as a container (stdio transport):

bash
docker build -t reddit-growth-mcp .docker run -i --rm reddit-growth-mcp# with credentials:docker run -i --rm -e REDDIT_CLIENT_ID=... -e REDDIT_CLIENT_SECRET=... reddit-growth-mcp

Targeting workflow

To find where to post for growth, compare_subreddits reports, per subreddit:

  • viral potential (90th-percentile reach adjusted for removal risk) and ceiling,
  • posts per day (a credential-free traffic proxy),
  • typical discussion (median comments),
  • removal rate and a safety label (safe / moderate / strict), so you can avoid communities that remove most posts.

A typical flow: compare to shortlist safe, high-traffic, high-ceiling subs, then patterns to read the viral recipe, then evaluate_draft to score a draft against it before posting.

Reach and insight are different goals. compare counts comments (volume); analyze_insight measures their depth — median comment length and the share of substantive comments. A sub can have many short one-line replies (high volume, low insight) or fewer long technical comments (low volume, high insight). Use reach-oriented ranking for visibility, and analyze_insight to find where thoughtful discussion happens and reputation is built.

Accuracy and methodology

The tool is built to avoid the common failure modes of naive Reddit analytics.

  • Robust central tendency. Categories (media, flair, time) are ranked by the median, with the mean shown for reference, so a single viral post cannot crown a category.
  • Minimum-sample gating. A category or time bucket must contain enough posts to be reported as "best". Small buckets are not treated as reliable signals, and draft scoring ignores title signals whose with/without groups are too small, so a single lucky post cannot swing a projection or seed a bogus suggestion.
  • Confidence labelling. Each pattern report states a confidence level based on its sample size, and each acceptance report states a reliability level.
  • Settled scores. Archived scores stabilise after roughly 36 hours, so analysis excludes the most recent two days.
  • AutoMod awareness. Posts that were only AutoMod-filtered at capture time are treated as uncertain, not confirmed removals, because they are frequently approved later. On AutoMod-heavy subreddits this is flagged, and an accurate live check requires credentials.
  • Removal-aware verdicts. A draft's acceptance verdict folds in the sub's base removal rate, so a compliant post in a subreddit that removes most of what it gets is flagged risky rather than "likely accepted".
  • Anti-clickbait. Clickbait titles are detected (hype phrases, shouted words, emoji and punctuation spam), and each report states whether the community actually rewards or penalises clickbait, so guidance never pushes you toward it. evaluate_draft penalises a clickbaity draft only where the sub dislikes it.

Limitations

  • Traffic figures are estimates. Reddit does not expose true daily visitor counts through its public API.
  • Findings are correlations from a sample, not Reddit's ranking algorithm and not a guarantee of performance.
  • AutoModerator configuration is private. Karma and account-age gates are inferred from rule text and require credentials to read.

Development

bash
uv sync --extra devuv run pytest -q                       # testsuv run ruff check src tests            # lintuv run ruff format src tests           # format

CI runs the lint, format check, and tests on every push and pull request.

The analysis logic lives in src/analysis/ (traffic, acceptance, patterns, draft, compare, arctic, helpers). The MCP surface is src/server.py and the CLI is src/cli.py.

License

MIT

mcp-name: io.github.latent-9/reddit-growth-mcp

來源:README.md,提交 d2e730e

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.2.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分