Tool design is a core part of the agentic product experience. In a lot of products, it basically is the product.
The tools you expose are the entire action space of your agents. The model can only be as good as that surface. Good surface, capable agent. Bad surface, and no model upgrade is going to help you with the degraded experience.
You have an API with fifty endpoints, so the first approach you see often is to convert each end point into a tool call. You're giving the model the full range of what it can do. It is also a famous generalization “MCP is just a wrapper on backend APIs”, well, yes if you approach it this way. But agents don’t need and want all that overload at once.
The problem is that more options make the model worse, not better. Somewhere past 30 to 50 tools it starts reaching for the wrong one. It is burning tokens, thinking on which tool to call instead of the work you actually wanted done. That is just “you” making things harder for the agent.
To be honest MCP protocol took the burn for a long time, until folks realized we need to think from an agentic world view. Folks would watch the agent fumble the tool choice over and over, concluding the protocol is broken. The teams who pushed past that found the protocol was never the issue. The design was. The fix was a change in approach. To stop writing tools like traditional APIs, and start designing them like you're building an interface for a very literal user who happens to be a model.
Block’s Layered Approach: One approach I like breaks the interaction into functional layers that walk the model through a process. The Square MCP server collapses 200 endpoints into just three tools: one to discover what services exist, one to learn how to call a given method, and one to actually make the call. The agent moves through them in order, so it navigates the API instead of being overwhelmed by a giant list of available tools.
More surface area isn't more capability. The agents that feel good to use are almost always the restrained ones, where someone shaped the tools around how the agent actually works instead of how the backend happens to be organized.