How momentum is scored
Cresting ranks tools by how fast they are rising, not how big they already are. The formula below is the whole story — the same math for every tool, recomputed hourly, with no manual edits and no way to buy a better number.
The formula
velocity = weighted mean of normalized signals
(0.5·stars_7d + 0.2·stars_24h + …, weights renormalize
over the signals a tool actually has)
recency = exp(−age_days / 14) # brand-new gets a lift
decay = exp(−days_since_signal / 30) # goes cold if traction stalls
corrob = 1 + 0.15·(sources − 1) # capped at +45%
quality = 0 or 1 # spam/dead/NSFW never rank
momentum = 100 · velocity · (0.6 + 0.4·recency) · decay · corrob · qualityEach raw signal is log-compressed, then percentile-ranked within its own source cohort over a trailing 30-day window — so a 500-star week from a small project and a 100k-star week from a giant both max out at the top of their cohorts. Velocity beats size, by construction.
Signals we read today
- GitHub star velocity (24h and 7d windows)
- Official MCP Registry presence and freshness
- More sources (Product Hunt, Hugging Face) are being wired in; each one strengthens corroboration.
Resisting hype
Sudden bursts wildly out of line with a tool's own history get their contribution capped (the score shows a "clamped" marker in its breakdown). Percentile normalization means no single whale can distort the scale, and decay means yesterday's spike doesn't coast.
Organic rank is never for sale
Sponsored placements exist — clearly labeled, in a physically separate strip, with no rank and no score. The ranking pipeline cannot read the sponsorship table. Paid buys visibility, never position.