Armory
Source

Formula

One score from 5 public signals, each ranked within its own kind

01

Signals

5 exist today. A tool is scored on whichever ones it has: nothing is taken off for a missing signal or a recorded zero, though the last 20 points need a second signal (see Confidence). The strongest number a tool holds is always the one it leads with; the weight only decides which leads when two rank the same.

testedTie Weight ×1
Installed and run by Armory
Source: Armory
74 Components0.1%
mentionsTie Weight ×1.2
Cited in published sources
Source: articles and posts
147 Components0.2%
starsTie Weight ×1
GitHub stars
Source: GitHub
27,324 Components41.9%
forksTie Weight ×0.8
Repository forks
Source: GitHub
16,979 Components26.0%
usageTie Weight ×0.9
Registry install count
Source: Smithery, mcp.so
442 Components0.7%
02

Percentiles

Each number is swapped for its place among things measured the same way — a repo's stars against other repos' stars, a registry's installs against other registries'. A kind with fewer than 30 measured things is too small to rank within, so those are ranked against every kind. Listed twice on the same link? It counts once. On this page, p90 means the 90th percentile: higher than 90% of its kind.

1 starp28.2
4 starsp54.1the median repo — half of everything with stars sits below here
100 starsp92.3
5,098 starsp99.1
106,764 starsp99.9the top is compressed on purpose: 5,000 → 100,000 stars moves you about one point
03

Confidence

One signal can be luck, a launch, or marketing. Several sources agreeing is stronger evidence than one. So we take your strongest number as 0.8 of the score, and your second strongest adds the last 0.2. With one signal the most you can reach is 80. A third counts only when it beats one of those two, so earning more evidence is never punished.

stars
2,621
circle-mcp-server
1 Signal
78.9Unconfirmed
stars
388,568
openclaw-openclaw
3 Signals
100.0Corroborated
04

Worked Examples

0.8 × the best rank a tool holds, plus 0.2 × its second best, cut to one decimal at the end and never rounded up, so only a perfect row shows 100.0. Ranked tables print three decimals from the full score, or four when three would make two different scores look alike, and rows with the same full score share a rank. These sums use the same numbers as the score.

ComponentSignalsCalculationScore
openclaw-openclaw
3 Signals
Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞
167 mentions → p99.3151 (not used: weaker than both) 388,568 stars → p100 ← strongest 81,586 forks → p100 ← second0.8 × 100 + 0.2 × 100 = 80 + 20100.0
karpathy-coding-discipline
2 Signals
Drop into CLAUDE.md/AGENTS.md as the first behavior norm a coding agent ingrains — think…
209,417 stars → p99.9845 ← strongest 21,315 forks → p99.9501 ← second0.8 × 99.9845 + 0.2 × 99.9501 = 79.99 + 19.9999.9
circle-mcp-server
1 Signal · Most-Starred Single-Signal Row
Operate and audit your Circle.so community from Claude with tools for spaces, posts…
2,621 stars → p98.7409 ← strongest0.8 × 98.7409 + 0.2 × 0 (nothing else to corroborate) = 78.99 + 078.9
math-mcp
Registry Listing
Enable your LLMs to perform accurate numerical calculations with a simple API. Leverage…
2,058,825 installs → p100 ← strongest0.8 × 100 + 0.2 × 0 (nothing else to corroborate) = 80 + 080.0
falahgs-gemini-data-analysis-research
Median
Bridges to Google's Gemini model for data analysis, email communication, and reasoning…
4 stars → p54.094 ← strongest 3 forks → p53.55 ← second0.8 × 54.094 + 0.2 × 53.55 = 43.28 + 10.7153.9
anon
Tested · Failed
Delegated account access for agents — a user grants access without sharing credentials.
failed install test → p4.0541 ← strongest0.8 × 4.0541 + 0.2 × 0 (nothing else to corroborate) = 3.24 + 03.2
additional-directories
Unmeasured
Grant access to additional directories outside the current project. Useful for monorepo…
UnmeasuredNo Value—
05

Coverage

The 36,127 blank rows point at 27,740 different GitHub repositories, and we asked GitHub about every one; some repositories are listed in more than one row. Most have nothing to measure yet. The counts below are rows.

44.6%
55.4% Unmeasured
28,670Rows for a repository with zero stars: nothing to score yetNeeds a first star
3,547Files inside a repository: the parent's stars are not counted for the fileNeeds its own signal
3,910Listed on a registry that publishes its own install countsPending registry fetch
0Nowhere to look — nothing published anywhereNone

Separately: we record when a repo was last pushed to, and flag anything untouched for two years as Stale. It is a warning label, never a term in the score — being freshly pushed proves a tool is alive, not that anyone uses it, and a brand-new repo nobody has starred must not outrank a maintained one. It breaks ties. Rows are ordered by the full score, then by how many signals back it, then by the latest commit, then by stars, then by name, so among tools on the same score the ones still being worked on come first. We hold a push date for 54,694 rows; 8 of them are stale.

06

API

The same ranked JSON, three ways in.

REST
GET /api/rank?component=mcp&vertical=finance
GET /api/search?q=browser+automation
CLI
Not on npm yet · build from cli/ in the repository, then:
armory rank --domain payments
armory search "oauth"
MCP
rank_components · search_catalog

Weights are versioned in the repository (lib/rank.mjs) · Open Issue