Absolutely, but it occupies them later and only when needed. This is what I think they're driving at here.
but why can't I do the same with mcp? I just create a help() function that returns the help info?
That hypothetical might be fine, but MCPs do much more than that and their catalogs can be enormous. Here are some popular MCPs and the amount of context they eat before you've done anything with them:
• Linear: 23 tools (~12,935 tokens)
• JetBrains: 20 tools (~12,252 tokens)
• Playwright: 21 tools (~9,804 tokens)
Most people still don't understand MCP properly and think it's about adding 50 tools to every call. Proper MCP servers and clients implement tools/listChanged
I do not understand this. cli-tool --help outputs still occupies tokens right?