What 2,000 real AI agent setups actually use
Draft · September 20, 2026 · Favz
Directories list what exists. This report looks at what people actually set up. We took a random sample of 2,039 public GitHub repos that contain AI agent configuration, read the git history of those config files, and counted tool names. Nothing else was kept.
Most of these repos have no stars at all (1,292 of 2,039; the median is zero). This is what ordinary builders run, not what famous repos show off.
Six findings
1. Two MCP servers lead, and both serve the same job
| MCP server | Repos that ever set it up | Still there |
|---|---|---|
Playwright (@playwright/mcp) |
151 | 138 |
| Context7 | 138 | 113 |
| shadcn | 72 | 70 |
| Chrome DevTools | 69 | 62 |
| Supabase | 68 | 63 |
| GitHub (hosted) | 60 | 51 |
| sequential-thinking | 43 | 32 |
| filesystem | 41 | 34 |
| GitHub (npm reference server) | 39 | 31 |
| Next.js DevTools | 39 | 35 |
Context7, Supabase and hosted GitHub each appear under two names (a package and a hosted URL). We merged those. The rest are counted as written.
Four of the top ten (Playwright, shadcn, Chrome DevTools, Next.js DevTools) are for building web front ends: drive a browser, inspect a page, fetch components. The most common agent setup in public is a web developer's.
2. The tools people run together tell the same story
| Pair | Repos with both today |
|---|---|
| Playwright + Context7 | 33 |
| Playwright + shadcn | 24 |
| Playwright + Chrome DevTools | 22 |
| Chrome DevTools + shadcn | 20 |
| Next.js DevTools + shadcn | 14 |
| Context7 + shadcn | 13 |
| Context7 + Chrome DevTools | 12 |
One in four Playwright repos also runs Context7. Browser control plus current docs is the closest thing to a standard stack in this sample.
3. Hosted MCP servers are replacing local packages
Share of newly added MCP servers, by how they are launched:
| Quarter | New servers | npm package | Hosted URL | Local command | PyPI |
|---|---|---|---|---|---|
| 2025 Q3 | 175 | 63% | 13% | 11% | 6% |
| 2025 Q4 | 243 | 61% | 27% | 6% | 4% |
| 2026 Q1 | 578 | 54% | 27% | 12% | 5% |
| 2026 Q2 | 729 | 44% | 33% | 12% | 7% |
| 2026 Q3 (to Sept 20) | 600 | 40% | 36% | 15% | 4% |
A year ago about one new server in eight was a hosted URL. Now it is more than one in three. Docker is rare throughout (24 of 1,976 servers configured today).
4. Skills are about design, and they travel in packs
The most common skills are frontend-design (73 repos), ui-ux-pro-max (72), and the seven
skills of the taste-skill pack (37 to 54 each). The top skill pairs are all members of one pack
installed together. Few people pick skills one at a time. They copy a folder.
This matters for anyone counting skills: a skill's number is often its pack's number.
5. The long tail is nearly everything
We saw 24,207 distinct tool names. 18,496 of them, 76%, appear in exactly one repo. Most skills, agents, commands and hooks are things people wrote for themselves. Only 2,994 names appear in three or more repos. Shared, named products are the small visible tip.
6. Once set up, tools stay
Of 29,205 adoptions we could follow for 60 days, 90% were still configured at day 60. "Still configured" is not "still used": a line in a file says nothing about use.
We set out to report which tools people drop. We could not do it honestly. We checked 50 random removals by hand, and only 9 were real drops. The other 41 were renames, files moved, or whole folders cleaned up. Two thirds of all removals happen in commits that remove ten or more tools at once. So this report gives no "most dropped" list. One lead for later: removals of MCP servers looked deliberate more often (5 of 8) than removals of skills (2 of 21). Eight is too few to say more.
A fading generation
The early reference servers are losing ground. sequential-thinking was newly added in 17 repos in
2026 Q1, 10 in Q2, and 2 in Q3. memory is still present in only 21 of the 32 repos that ever had
it, the lowest share among common servers. Treat this as a hint. The counts are small.
Method
We searched GitHub code search for agent config files: .mcp.json, .cursor/mcp.json,
.vscode/mcp.json, .claude/settings.json, .claude/skills, .claude/agents, .claude/commands,
and openclaw.json. Search was split into random file-size windows so results are not GitHub's
"best match". That found 5,708 repos. We cut forks, templates, tool collections and repos that are the tool
itself, then drew 2,300 with a fixed random seed, with a fixed quota per file type (35% .mcp.json,
25% Claude settings, 20% skills, 10% VS Code, 7% Cursor, 3% OpenClaw). After cutting repos
with fewer than five commits and copies of the same project, 2,039 remained.
For each repo we walked the history of its config files and turned each version into tool names. An MCP server is named by its package, image, or URL host. Environment values, headers, arguments and file contents are dropped as the file is read and are never stored. Every name passes a secret check (known token shapes plus a randomness test) before storage and again before publication.
All thresholds were fixed in writing before any history was pulled.
What this cannot tell you
- Personal configs are invisible. Many people configure MCP servers in a file in their home folder that is never committed. Real MCP use is higher than shown here, by an unknown amount.
- Public repos only. Company work is absent.
- The sample is stratified, not proportional. We drew a fixed quota per file type, so "881 repos use MCP, 860 use skills" reflects our draw, not the world. Compare tools within a type, not types.
- Time trends lean recent. We sampled repos that exist today. Older repos that were deleted are missing, and more repos are created every month. Shares within a quarter (finding 3) are safer than raw counts over time.
- Small numbers. A tool in 40 repos of 2,039 has a wide margin. Differences of a few repos mean nothing.
- Names, not products.
agent:code-reviewer(82 repos) is a name many people chose on their own, not one product. We left such generic names out of the rankings. - One labeler. The 50 hand-checked removals were labeled by one AI model under written rules, with no second opinion.
Data
Three CSV files, tool names and counts only, no repo names:
tools.csv: every tool seen in three or more repos, with repos ever and repos now.pairs.csv: tool pairs present together in five or more repos.adoption_by_month.csv: first adoptions by month for tools in 20 or more repos.
Names seen in fewer than three repos are left out, because a rare name can point at one repo.
Want a tool checked, or think a number is wrong? Tell us.