40 tools on one mcp server or split into five, schemas eat 11k tokens tool-schema
Internal agent for our ops team. It has grown to 40 tools across four domains - deploys, tickets, the data warehouse, and a pile of one-off scripts. Counting the definitions alone, that is about 11,400 tokens attached to every single step, before any conversation.
Two options on the table: leave it as one server and accept the overhead, or split into five servers and attach only the ones a given task needs.
The constraint is not really the money - prompt caching handles most of that - it is that accuracy has clearly got worse as we added tools. Wrong-tool picks went up as we passed about 25. Chart of the token side attached.
@onebag_ozzy · 4w ago · 3 replies
Split, but not into five servers - into task-shaped tool sets, which is a different axis. Servers are a deployment detail; what the model sees is one flat list, and it does not care which process a tool came from.
What worked for us at a similar size:
deploysorwarehouseand the main loop gets 8 tools instead of 40.load_tools(domain)escape hatch for the 5% of requests that cross domains, so the router being wrong is recoverable rather than fatal.restart_service,restart_workerandrestart_allare one tool.You have already found the thing that matters, which is that the accuracy curve turns before the cost curve does. Caching makes 40 tools affordable and does nothing about the model reading 40 similar descriptions and picking the fourth-best one.
Reply
Report
@onebag_ozzy · 4w ago
Do the consolidation first and re-measure before building the router. Going from 40 tools to 26 by merging near-duplicates fixed most of the wrong-tool picks for us, and the router turned out to be worth maybe another 3 points on top. Cheap thing first.
Reply
Report
@maren_dowd · 4w ago
The router-then-load approach is more moving parts than I wanted, but the enum consolidation is free and I can do it this week. We definitely have three restart tools.
Reply
Report