How we rank
No paid placement: price, products, partner status and revenue never enter the score. A verified provider is an identity check open to every provider. Nothing a publisher writes about itself is a signal.
Signals
- Usage on connect0 — weight 30%
- Accounts with successful calls through the integration in the last week, and the share of accounts that connected four to eight weeks ago and still use it. Distinct accounts across every way to connect: an account connected through the API and an MCP server counts once.
- External userbase — weight 20%
- GitHub stars, npm weekly downloads and the number of directories that list it, log-scaled. The official method’s figures when it has any; otherwise the community method with the highest. Never a sum.
- Quality from our checks — weight 30%
- Whether we could introspect it, how completely its tools are described, and the share of our calls through it that succeed. The recommended method’s, or the official method’s when a community one is recommended; other methods do not change it.
- Curation — weight 12%
- A verified provider, a curated record, skills by connect0 and documentation attached. The integration’s own.
- Freshness — weight 8%
- The last release or push of the method we rank by. The recommended method’s.
Formula
score = H × Σ W × ( c × ŝ + (1 − c) × RANK_NEUTRAL ) c = n / ( n + RANK_PRIOR_N ) H = RANK_STALE_FACTOR when the method we rank by is archived or has had no release for RANK_STALE_DAYS, else 1
Each signal is turned into a percentile among the integrations listed under the same job, so a value is compared with its neighbours, not with every integration.
Each signal carries a confidence that grows with the evidence behind it. A signal we have no data for counts at the neutral value, so a new integration starts mid-pack, not last.
Only evidence lowers a score: an archived method, or one with no release for a long time. Missing data never does.
Within a job, integrations are ordered by score, then by name. The same order is shown to everyone.
Anti-gaming
Usage counts only accounts older than a minimum age that used the integration on several days, never our own accounts, and accounts that share a billing customer once. A sudden jump in an outside figure is frozen at its previous value until a person reviews it, and a large daily move is flagged for review.
The values
Config version 1 (provisional).
Weights
- RANK_W_USAGE
- 30%
- RANK_W_QUALITY
- 30%
- RANK_W_EXTERNAL
- 20%
- RANK_W_CURATION
- 12%
- RANK_W_FRESHNESS
- 8%
Confidence priors
- RANK_PRIOR_N_USAGE
- 10
- RANK_PRIOR_N_EXTERNAL
- 1
- RANK_PRIOR_N_QUALITY
- 20
- RANK_PRIOR_N_CURATION
- 0
- RANK_PRIOR_N_FRESHNESS
- 1
Neutral value and staleness
- RANK_NEUTRAL
- 0.5
- RANK_STALE_FACTOR
- 0.5
- RANK_STALE_DAYS
- 365
Anti-gaming
- RANK_MIN_ACCOUNT_AGE_DAYS
- 14
- RANK_MIN_ACTIVE_DAYS
- 2
- RANK_SPIKE_FACTOR
- 5
- RANK_MAX_DAILY_MOVE
- 5
The ranking is recomputed once a day.