We dropped 44 packages that were not MCP servers

Searching npm for 'claude mcp' returns Playwright, Clerk, and Cline. Here is the evidence rule we added, and the 11% of our own data it removed.

2026-11-03 2 min read The avbbc desk mcpmethodologynpm

For two weeks our package table had a defect we did not notice: it was sorted by downloads, and the top entry was Playwright — 1.58 million downloads a week and not an MCP server.

It arrived honestly. We search npm for terms like `mcp` and `claude mcp`, and npm returns anything whose text matches, including packages that merely mention the protocol in a changelog. Our filter required the package to declare an executable, which Playwright does. Nothing else stopped it.

Why this mattered more than it looks

The table is labelled 'compiled from npm, install command and version verified'. If 11% of it is unrelated, that label is a lie, and the reviewed tier inherits the doubt.

A directory's only real asset is that a claim on the page is true. Volume is easy; the claim is not.

The rule we added

A listed package must contain the word **mcp** or **model context protocol** in its name or its published description. Not in a keyword array, not in a README we scrape — in the two fields a user reads before installing.

That is deliberately narrow. It drops packages that mention MCP once in passing, including a few that probably do expose a server. We would rather miss them than publish a table where a third of the rows need a caveat.

What went, and what it says

The 44 removed packages included Playwright, Clerk, Cline, and a handful of agent harnesses, CSS tools, and contest trackers. Their common feature: they appear in MCP-adjacent search results because their READMEs discuss MCP, not because they speak it.

This is the general failure mode of keyword-driven discovery. The keyword is a claim, the claim is unverified, and the only reliable check is reading the description the publisher wrote.

The cost

44 packages no longer appear anywhere on this site. If one of them was a real server, it is a real loss — the long tail is not worthless, it is just unverified.

The fix is not to loosen the rule. It is to check entries by hand and promote them, which is what the reviewed tier is for: 127 of 470 entries have had that treatment.

The lesson we are keeping

Every filter is a claim about what you excluded. Ours now says: if a package does not call itself an MCP server, we do not call it one either.

Keep reading

All notes