We built the largest MCP server marketplace in the world — and made it pay you back
Tal — Founder at Lulu
August 2, 2026
As of today, Lulu MCPs indexes 75,430 unique Model Context Protocol servers — aggregated and deduplicated from the official MCP Registry (19,656), Glama (67,020), PulseMCP (2,347) and Smithery (3,657). That deduped total is larger than any single registry alone, including Glama by itself. Not a slogan — every number above is live and re-verifiable on the page right now.
Here's how it actually works, and the uglier parts we found and fixed while building it.
Aggregation, not another registry
We didn't build a fifth place to submit your server. We built the index that reads the other four, merges duplicate listings of the same server (matched by repo, then remote endpoint, then name), and gives every entry one canonical page with a linkback to where it actually came from. Search once, get everything, credit the source.
The parts that were quietly broken
Aggregating four registries with four different data shapes means inheriting four different sets of gaps. Three we found and fixed this week:
Names. The official registry's naming convention is reverse-DNS style — io.github.user/repo — and its title field is null on 5,515 listings. Rendered raw, a server's name repeated six times down its own page as an unreadable technical string. We derive a clean display name at render time (title first, then a formatted last path segment) — never written back as fake data, just computed for display.
License. Glama's license field is an object ({name, url}), not a string. One un-extracted field meant 32,831 listings — 43% of the marketplace — rendered raw JSON where a license badge should be. Fixed at the source and backfilled.
Categories. Zero of 75,430 listings had a category. Not "mostly empty" — zero, on every row, because no registry source actually populates the field. We ported the same weighted-keyword heuristic already trusted client-side for "same category" match badges into the sync pipeline, and backfilled the rest. 56,063 servers now have a real category; the remainder honestly don't match any of the eight buckets we score against, and we're not going to force one to make the number look better.
Real installs, not "read the README"
82% of the marketplace is stdio-only — no hosted URL, so no simple "click here to connect." Historically that meant a dead end: install per the repository README. We built honest one-click installs for that 82% instead, using the package data PulseMCP and Smithery actually capture (npm, PyPI, or Smithery's own CLI runner) — never an invented package name.
Every server page now shows every real install path in one tab bar, all visible at once: Claude Code, Cursor, VS Code, Claude Desktop, Claude.ai, and ChatGPT as a connector. Cursor and VS Code get a real one-click deep link; the rest get the exact command or connector steps, copyable.
Liveness, checked weekly
A listing is only useful if the thing behind it still answers. We probe every remote endpoint with a real MCP initialize call, and every stdio-only listing's underlying npm/PyPI package or Smithery entry for existence — 15,909 probed on the last full run, 14,307 alive, 1,602 dead. Dead listings sink in trust score automatically; nothing gets manually curated out.
The marketplace that actually pays you
None of the above is the actual point. The point is: every one of these 75,430 servers can claim its listing and turn on Lulu Ads — one disclosed, labeled sponsored line added to its own tool responses, 70% revenue share on every conversion, opt-in, fail-open, never changing what the server itself does. The index lists every server whether or not it monetizes. But it's the only one where flipping that switch is one click away from the same page you're already on.
We'll keep it honest as it grows — including the parts that are still broken. If you find one, tell us.
Your tools already have the traffic.
One line of code makes them earn — 70% goes to you.
Join the publisher beta ->