How many tools should an MCP server have?
If you maintain an MCP server, at some point you ask this. You've got twenty tools, you're about to add five more, and something feels wrong about it — but you can't say what, and there's no guidance anywhere. I read the tool schemas of 4,951 public MCP servers to answer it. 87,146 tools, 270,487 parameters. The short answer: around thirty. Past that, the thing that breaks isn't your server. It's…
MCP servers often have a large number of tools, with the source analysis revealing that around thirty tools is the ideal number. Past thirty, the issue isn't the server itself, but whether a model can differentiate between the tools. The distinctive share is the percentage of content words in a tool's description that don't appear in any other tool's description on the same server.
If this number is zero, the model has no basis to distinguish the tools. As the number of tools increases, the percentage of tools with no distinctive share also increases, reaching nearly one-third on servers with more than sixty tools. A key factor in this is authorship - more tools mean more chances for collisions, but around thirty tools, authors start using templates to create similar-sounding tools.
A server with forty tools all performing different functions may be fine, but one with twelve tools where some are variations of search may not. To determine if a server needs splitting, one should read the tool list as a model would, asking which tool to use for a request that could plausibly go to two of them. If the answer is "I can't tell," rewrite for contrast rather than clarity.
If tools are too similar, collapsing them into one with a mode parameter may be helpful. Splitting the server is an option when tools belong to different domains, but may not be worth it if the split is arbitrary. The analysis shows that while splitting a server can reduce description collisions, it doesn't help with parameters that lack descriptions.
The data suggests that around thirty tools is the sweet spot, but this can vary depending on the specific servers and tools involved.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.