RED
Integrates with Apple Search Ads (EU repository) to retrieve ad creatives and subtitle copy tests for Apple Search Ads campaigns.
Retrieves App Store listing data including ratings, release age, update cadence, and listing copy for store analysis.
Integrates with Google ad libraries to pull paid ad data and with Google Play to retrieve install counts and listing copy.
Collects Instagram social metrics such as followers, posts per week, median reach, and top hooks via Scrape Creators.
Integrates with Meta ad libraries to retrieve real Meta ads including formats, durations, hooks, CTAs, and per-ad permalinks.
Collects Product Hunt launch data as part of launch and distribution analysis.
Audits subreddits and retrieves Reddit search data, including posts per day, link share, promo share, question share, medians, samples, and classified community rules.
Integrates with TikTok ad access and organic data to retrieve TikTok ads and social metrics like followers, posts per week, median reach, and top hooks.
Uses Wikidata to identify founder names and associated audience data, ranked by confidence.
Collects YouTube social metrics such as followers, posts per week, median reach, and top hooks.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@REDreverse engineer how plausible.io is distributed"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
RED: Reverse Engineer Distribution
Paste a link. Get the distribution machine behind it, and the list of places you are allowed to play.
Hooks · cadence · search families · communities (channel or language mine) · launches · store · paid amplification — every claim cited, and a 7/30-day plan at the end.
red notion.so
red plausible.io --communities r/selfhosted,r/webdev,r/analytics
red plan plausible.ioMost "distribution" advice is a list of channels with no evidence. RED collects what is public about how a product actually reaches people, separates the surfaces that are open to us from the ones that only look open, and writes the next 30 days.
Everything RED could not see is listed as unknown with a link to check it by hand. "Not checked" is never "they don't do it", and a community whose rules we could not read is unknown, not open.
Why this repo exists
Two repos came before it, and this is a reimplementation of the second adapted to distribution:
REA, Reverse Engineer Anything — the pattern: investigate → spec → build → verify, with an evidence contract.
REM, Reverse Engineer Marketing (MIT, by DansUGC) — the collector engine RED is built on: website forensics, pixels, SEO/sitemaps, Wayback, ad libraries, social stats, founders, Reddit, HN, a versioned harness and a validator.
RED keeps that engine and changes what it is for. The marketing teardown asks what are they doing; distribution asks where can we play, and what do we do on Monday. Concretely, what is new here:
REM | RED | |
Question | how they acquire customers | where their distribution works and where we are allowed in |
Communities | mentions and brand/founder replies | audited: cadence, link share, promo share, and the rules quoted and classified |
Verdicts | channel scorecard | scorecard + channel / mine / gated / closed / unknown per community |
Output | report + "steal this playbook" | report + deterministic 7/30-day plan with a day-0 baseline and a day-30 settle |
Harness | marketing analyst, 10 channel playbooks | distribution operator, 9 surface playbooks, rules-first guardrails |
Tests | 23 | 66 (inherited parsers + communities, plan, harness, validator) |
Related MCP server: market-research
Quick start
npm install
npm run build
node dist/cli.js plausible.io --no-ai
# or, once linked / installed
red plausible.io --no-aiZero keys gets you: website positioning and offer, tracking pixels (including inside GTM containers), SEO/sitemaps and programmatic families, AI-crawler stance, Wayback history, App Store/Play, Hacker News, and community audits from the public Atom feed.
Add keys for the rest:
export SCRAPECREATORS_API_KEY=... # ad libraries, social stats, founders, Reddit search (~25–50 credits/run)
export ANTHROPIC_API_KEY=... # written report (otherwise your agent writes it over MCP)Output goes to ./red-reports/<domain>-<date>/: report.md, plan.md and evidence.json.
The part that matters: where we can play
A community is a distribution channel only when two things are true, and both are checkable:
The format hosts products. Measured from the community's own posts: share of posts carrying an external link, share that are self-promo, share that are questions. Under 8% link posts, a product post is foreign to the format.
The rules allow it. Quoted and classified. Four classes close or gate a channel, and promotion is only one of them:
Class | What it looks like | Effect |
apps / promo | "no apps", "no self promotion", "stealth marketing" | closes the channel |
AI content | "AI-generated", "even if it is just for translation" | an agent-written post violates it even when a human publishes it |
identity | "must not identify primarily as…" | closed without lying about who is writing |
account gate | "account at least 30 days old and 50 karma" | a date, not an obstacle to route around |
Verdicts: channel (post there), mine (harvest the language, do not post), gated (earn the account first), closed (the rule that forbids it is named), unknown (rules never read — ask a moderator, do not post).
Reddit serves about/rules as 403 to datacenter IPs, so rules are pasted by a human:
red plausible.io --communities r/selfhosted,r/webdev --rules community-rules.txtcommunity-rules.txt:
== r/selfhosted ==
1. No self promotion...
== r/webdev ==
...Without that file, a community with 44% link posts still comes back unknown: the measurement is there, the permission is not.
The plan
plan.md is deterministic — no model, same input same output:
Day 0: the baseline, before anything is posted.
Days 1–7: mine the communities that only give language, post in the ones that allow it, publish on the surface that already works for them.
Days 8–30: copy the page family (or the cadence), defer paid until there is a winning organic artifact, and settle on day 30 by diffing.
Closed / Unconfirmed: the places not to retry, each with the reason.
Every step cites the evidence ids it was copied from. If a channel was not observed, it does not appear.
Evidence contract
Every item is an observation (seen at a URL or API) or a derivation (computed, e.g. posts/day, link share). Interpretations must cite evidence ids and be labelled. Unchecked things are unknowns, with a manual-check link. A pixel proves intent, not spend; dollar spend is never invented.
The rules that must not regress are listed in CONTRIBUTING.md and enforced by tests/communities.test.ts and tests/plan.test.ts.
The harness in harness/ (role, guardrails, template, lessons, 9 playbooks) is versioned and hashed into every report, so a prompt change is a change you can eval and roll back.
Use it from your agent (MCP)
red mcp # stdio MCP serverTool | What it does |
| Collects everything for a URL, optionally audits communities. Returns scorecard + community verdicts + evidence index + unknowns, and a |
| Full data for specific ids or a source (hooks, sitemap families, community measurements, rules) |
| The actual posts, videos and ads to quote or show |
| The deterministic 7/30-day plan (markdown or JSON) |
| Analyst role, evidence rules, template, lessons, one playbook per surface |
| Citations resolve, sections exist, plan grounded, every audited community judged, no invented spend |
| Optional server-side report (needs |
| What changed since last time |
Named prompts: investigate_distribution, where_can_we_play, steal_the_distribution, what_changed, audit_unknowns.
Skills that ship with it
skills/ holds the procedures an agent needs to do this work without re-deriving it. Install them
with ./scripts/install-skills.sh (copies to ~/.hermes/skills/distribution/, --check reports
drift).
Skill | Use it when |
| planning distribution for a product, auditing communities, running RED |
| you do not know who the competitors are yet (build the set from the store, not from memory) |
| you need real Meta ads: formats, durations, hooks, CTAs, with per-ad permalinks |
| you need TikTok ads or organic and the endpoints refuse (they usually do) |
| you need Apple Search Ads: the EU repository returns creatives and the subtitle copy tests |
Repo conventions for agents live in AGENTS.md: the evidence contract, which sources work without keys, the two surfaces that only work through a real browser, and the rule that every finding ships with a clickable URL.
What it finds
Area | What RED pulls | Key? |
Communities | per subreddit: posts/day, link share, promo share, question share, medians, samples; rules classified into the four closing classes | free (rules pasted) |
Search | sitemaps, programmatic page families, comparison/alternative pages, freshness, locales, top results | free |
AI search (GEO) | llms.txt, which AI crawlers are blocked or allowed | free |
Short-form & social | TikTok, Instagram, YouTube, X, LinkedIn: followers, posts/week, median reach, top hooks | Scrape Creators |
Launches | Hacker News submissions with points and comments, Show HN, Product Hunt | free / SC |
Paid | Meta/Google/LinkedIn ad libraries, Apple Search Ads (EU), plus pixels incl. GTM | SC / free |
Founders | names from Wikidata, JSON-LD and the site, ranked by confidence, with audience | free / SC |
Store | App Store ratings, release age, update cadence, Play installs, listing copy | free |
Funnel & offer | positioning, CTAs, pricing model, free plan/trial, sales-led signals, affiliate program | free |
Positioning history | homepage title/H1/CTAs over time from the Wayback Machine | free |
Limits (honest)
Community rules cannot be fetched from a datacenter IP. RED measures; a human supplies the rules. Until then the verdict is unknown, by design.
One request per community, spaced 60s by default (
--delay), because Reddit's anonymous feed 429s immediately otherwise.Community data comes from the newest ~25 posts, not history: it describes the current format, not the subreddit's size.
Apple Search Ads are only visible for the EU. TikTok and X ads have no global public library. Reddit's ad library was shut down.
Founder matches from search can be wrong; weak matches are flagged and must not be used as fact.
RED reads public pages and public libraries only. It never logs in as anyone, never posts, never comments and never runs anything on the target.
Use it responsibly
Study the strategy, ship your own. Learn which angles, cadences, offers and page templates work; do not republish competitors' ads, footage, copy or brand assets. Respect each site's terms, each community's rules and your local law. A channel that only works if you lie about who you are is closed.
Develop
npm run typecheck # tsc --noEmit
npm test # 66 tests: parsers, communities, plan, harness, validator
npm run eval # validate the recorded example against its fixture
npm run buildAdding a source: write a collector in src/sources/ that adds observations or derivations (never conclusions) and records unknowns with a manual-check link, then teach src/analyze/scorecard.ts and src/analyze/plan.ts what it means. See CONTRIBUTING.md for the rules that must not regress.
The inherited web UI (red web, red demo) still opens a recorded run in the browser; it is not covered by the test suite and is not the surface this fork is maintained for.
License
MIT. The collector engine descends from REM by DansUGC (MIT, © 2026 Daniel Hangan); the analysis layer, the community audit, the plan and the harness are this repo's. See NOTICE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Web data for marketing agents: traffic, ads, social profiles, search, and any URL as markdown.
Track where your product is listed, score its AI search visibility, and audit a domain's SEO.
Public web tools for agents: product extraction, claim checks, webpage QA and ranked audits.
Lints + auto-fixes how AI coding agents discover any new product. 24 rules, 6 tools, score 0-100.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to investigate public URLs through evidence-first intelligence, including crawling, entity resolution, social discovery, SEO, technology detection, monitoring, reports, and optional AI reasoning.7MIT
- AlicenseBqualityBmaintenanceEnables AI agents to conduct local, auditable opportunity discovery by collecting public discussions, tracing claims to exact quotes and source provenance, testing claims with counterevidence, and exporting deterministic evidence packs.471MIT
- AlicenseNot gradedqualityCmaintenanceEnables auditing any URL for AEO and AI-search readiness, including direct-answer citability, JSON-LD validity, llms.txt compliance, E-E-A-T signals, agentic crawlability, citation simulation, and competitor score comparisons.68 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to reverse-engineer how an organization actually operates by ingesting documents, spreadsheets, chat exports, invoices and audio, then tracing every claim back to graded evidence. It supports process mining, stated-vs-enacted comparison, coverage and obligation tracking, and bilingual report generation while keeping unproven areas explicitly flagged as unknown.MIT