Local vs remote MCP servers: the data says remote already won
If you're building a Model Context Protocol (MCP) server today, the first real decision is how people run it: a local package they install, or a remote endpoint they connect to. I had a hunch the answer had shifted, so I
If you're building a Model Context Protocol (MCP) server today, the first real decision is how people run it: a local package they install, or a remote endpoint they connect to. I had a hunch the answer had shifted, so I pulled the numbers across the whole official MCP registry — 61,855 servers. The shift is bigger than I expected.
Remote already won
- 60% of servers are remote-only: a hosted HTTP endpoint, nothing to install.
- Only ~32% ship as a local package alone.
-
streamable-httpis now the dominant transport, well ahead of local stdio.
A year ago, "an MCP server" meant an npm or PyPI package you ran on your machine. The median server today is a URL you point a client at. (Full breakdown with charts: the data report.)
Why it's happening
- Zero-install onboarding. "Paste this URL" beats "install this package, set these env vars, run this command." For non-developer users of Claude or Cursor, a local install is a wall.
- You control the runtime. Secrets, rate limits, API keys and updates live on your server, not on the user's machine. You ship a fix once.
- Monetization and auth. A hosted endpoint is where OAuth, usage metering and billing live. A local package can't easily do any of that.
- The transport caught up. streamable-HTTP made remote MCP practical, and it's now the default.
What it means if you're building one
- Default to remote unless you genuinely need local filesystem or OS access. Most servers that wrap an API should be a hosted endpoint.
- Local still wins for OS-level tools — file access, local dev tooling, anything that must touch the user's machine. That's the ~32% that stay packages.
- If you go remote, plan for auth and abuse early. A public no-auth endpoint is easy to ship and easy to get wrecked. streamable-HTTP plus a token is the common pattern.
- Hybrid is fine. ~8% of servers ship both a package and a remote endpoint. Give people the choice if it's cheap.
The uncomfortable part
Remote means you run infrastructure forever. A local package is "publish and forget"; a hosted server is uptime, costs and on-call. That's the real trade-off behind the 60% — convenience for users, operational weight for you.
If you want to see where your server sits versus the rest of the ecosystem, every server in the registry is indexed at Serverdex: category, transport, packages and GitHub signals per server.
Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.