The window is spent before you type · Designshippers
The window is spent before you type
Connect a few MCP servers and half the context window is gone before anyone asks a question. Every guide says connect fewer tools. None of them say which ones.
View the coded design ↓
A session breakdown filed against Claude Code: tool definitions at 98.7k tokens, 49.3% of a 200,000 token window, next to 3.2k for the system prompt and 16.1k for the built in tools. Half the budget describing work that has not happened.
Cloudflare measured its own API surface, roughly 2,500 endpoints, at more than 1.17 million tokens if each endpoint is described as a tool. Perplexity's CTO said in March they were dropping MCP internally, citing the same per session cost. When the people shipping the tooling start routing around it, the overhead is not a rounding error.
The advice is unanimous (and useless)... connect fewer tools. Right. but which ones? A settings panel shows servers and switches. It never says this one costs 42,300 tokens and you have called two of its 48 tools this month. So everything stays on, and the problem persists.
What we built
A 'budgeting' window. A space that tells you what you can spend. Seven servers, 154 tools, and a meter. Open a server, keep the two tools you call, drop the rest, watch in real-time some headroom become available.
Click a band in the meter to kill a whole server. Open one to work at the tool level. Every number on the page moves together.
Open GitHub, drop list_workflow_runs and the 43 tools nobody has ever called. The readout goes from 8 turns of headroom to something you can work in.
Cut at the tool, not the server
Turning GitHub off saves 42,300 tokens and loses the two calls the agent makes forty times a day, so the switch goes back on inside the hour. Every panel we looked at stops at the server, because that is the unit the config file uses. It is the wrong unit.
The decision somebody actually wants to make is: keep create_pull_request and get_file_contents, drop the other 46. So the server row is a summary and a disclosure, its toggle carries a third state for partial.
A SMALL (BUT IMPORTANT) DESIGN DETAIL THAT TOOK RELATIVELY LONG
The meter animates its segment widths, and a segment at zero has to leave rather than sit there as a two pixel sliver with a gap either side. Widths are laid out in pixels against a measured track, the trailing gap is dropped when the free bar has no room left, and an empty segment comes out of the flow entirely. Four lines of layout code that upgraded this window (emotionally at least) from a chart, to an instrument.
const avail = Math.max(0, W - live.length * GAP);<br>const w = Math.round(cost / WINDOW * avail);<br>if (!cost) { seg.classList.add('gone'); seg.style.width = '0px'; }<br>if (live.length && W - used
Headroom, not usage
82% spent isn't enough data to help you decide. It tells you that you have been careless but gives you not enough to figure out your next move. 36,600 tokens left, about 8 turns of work does. It puts the number in the unit people reason in, which is how much conversation is left before this degrades.
The percentage is what makes the situation legible on arrival. The other helps the user act.
Sets, because the week repeats
Users perform the same set of workflows every week. Bug triage wants Postgres, Linear and code search. Shipping a fix wants pull requests, the file API and a browser.
So a set is nameable and recallable, the chip shows which one is live, and the moment you deviate it says custom instead of carrying on claiming you are in the saved one.
Closing words...
We wanted to design and engineer a solution where somebody with seven servers connected can see their 'budget' clearly enough to make the cut, fast (without a spreadsheet). Now they can, in about 4 seconds.
If something in your product is costing users more than it should... Let us know, we might be able to help.
Designshippers
Senior product designers who engineer. We design your feature, build it in your codebase and open the pull request. One active project at a time.
Request Availability →