From MCP Tax to Self-Verifying Agents: Why CLI + Custom Skills Close the Loop
I didn't start by trying to save tokens.
I started by trying to get an agent to finish work like a developer: change code, run it, check what happened, fix what's broken, repeat until correct.
That "repeat until correct" step is the difference between a demo and something you can rely on. The bottleneck isn't usually the model—it's the tool layer.
When integration consumes your context
MCP is quickly becoming the standard for tool integration. It's flexible and well-supported.
It can also be expensive: it front-loads context with tool definitions and ships back verbose, schema-shaped responses.
Three minutes into a team demo, my agent forgot what we were building. With full MCP tool definitions loaded, it drifted—confidently solving the wrong problem while ignoring the ticket I'd just referenced.
The issue wasn't the model. Jira via MCP cost ~30K tokens in tool definitions alone—20% of a 150K window, before I typed anything. Then responses piled on nested metadata the agent had to reason over. That overhead compounds fast.
Agents that ship are agents that verify. If checking work is expensive, it gets done less. If it's cheap, it becomes the default.
So I optimized for one thing: make verification cheap enough to run constantly.
That led me through: MCP → CLI → custom skills.
CLI: the token-efficient middle ground
MCP shines for broad coverage. But most agent workflows are loops: fetch state, act, re-check, decide. In those loops, verbosity is poison.
So instead of "How do I integrate Jira?" I asked: How do I get the minimum signals needed for the next correct step?
CLIs don't ship large tool schemas. They output compact, human-readable structure without the API-shaped tax.
Microsoft's Playwright benchmarks: MCP costs ~114K tokens per browser task. CLI costs ~27K. That's a different operating regime—the agent can afford to check itself.
Still—CLI output is designed for humans in general, not your agent in your workflow.
Custom skills: outputs shaped to decisions
A custom skill returns exactly what you need to decide the next step—nothing else.
For Jira, my agent only ever used: owner, title, description, status, last 5 comments, last updated. So I built a skill returning only that. No relationship trees. No metadata hierarchies. No fields that never affect the next action.
This is where token efficiency becomes thinking efficiency. Less noise means the agent focuses on what matters.
The workflow: run it, watch what you actually use, delete the rest, repeat.
Don't start with "what tools can I connect?" Start with: What does the agent need to verify, and how often?
Pick the narrowest interface that keeps verification cheap:
- MCP when you truly need broad capability
- CLI when you need efficiency and predictable outputs
- Custom skills when you know the exact signals that drive decisions
As a good manager, you equip your team with tools to unstuck themselves.