The alpha, twice a week
That was 3 min.
Get the best new moments in your inbox every Wednesday and Saturday. It's free.
Check your inbox
We sent a link to your address. Click it to finish signing up. Not there in a minute? Look in spam.
or
The Pragmatic Engineer · 3 min · Jan 28, 2026
CLIs let agents filter and chain tool calls
Peter Steinberger argues MCPs load too much tool schema and can return more data than an agent needs.
In this episode
Full analysis- 57:20Agents work best when they can test and debug their own output6 min
- 1:03:37A single prompt is a poor test of AI coding4 min
- 1:34:18AI adoption requires redesigning teams and codebases4 min
- 42:58Codex trades speed for stronger context on complex apps6 min
- 1:21:43CLIs let agents filter and chain tool calls3 min
- 1:11:03AI makes upfront planning cheaper to revise, not unnecessary3 min
- 24:03A 50,000-page PDF forced a two-month redesign2 min
- 29:29Burnout came from lost belief and conflict, not just long hours4 min
“the best thing that came out of MCPs is that it made companies rethink to open up more apis but the whole concept is is silly”
Peter Steinbergerat 1:22:01 · The Pragmatic EngineerTakeaways
- MCPs can fill context with tool definitions and verbose results.
- CLI calls let agents filter output and chain steps.
- MacPorter exposes MCPs as CLIs when needed.
About this segment
Peter Steinberger argues MCPs load too much tool schema and can return more data than an agent needs. Shell commands let agents filter results and chain calls, while MacPorter can expose an MCP through a CLI.
Peter Steinberger is creator of OpenClaw and founder of PSPDFKit.
Created viral open-source personal agent OpenClaw and joined OpenAI to drive next-generation personal agents.

Gergely Orosz, Host · Host, The Pragmatic Engineer
Spent four years at Uber heading mobile, web and backend teams; shipped part of its payments system.
From “The creator of OpenClaw: "I ship code I don't read"”, Jan 28, 2026. Watch the full episode
Thanks. We'll look at and fix what's off.
Transcript
Transcribed by machine (Whisper) from the episode’s audio, so a word may be off here and there.
- 1:21:49
build up my army because to make this work you want everything to be a CLI. So I was just building CLIs for everything, like for Google for my bed for lamps, for music Why CLIs? Why not MCPs? And what do you think about MCPs anyway? It's a crutch I think that the best thing that came out of MCPs is that it made companies rethink to open up more apis but the whole concept is is silly you you have to pre export all the functions of all the tools and all the explanations when your session loads and then the model has to send a precise blob of json there and gets json back but surprise models are really good at using bash and like imagine imagine you have a better service so the model could ask for a list of available cities and then get like 500 cities back and then it has to pick one city out of five city but it cannot filter that list because that's not part
- 1:22:55
of how mcp works and then it's okay give me the weather for london and you would get like the weather temperature wind rain and like 50 other things that i'm not interested in because I just want to know, is it raining or not? Probably raining because London. But the model needs to digest everything and then you have like so much crap in your context. Whereas if it's a CLI, it could use GQ and just a filter for exactly what it needs.
- 1:23:19
But does it not seem like a limitation that everything is loaded around an MCP in the context? That seems a problem. It sounds like it could work if MCPs were not in the context and there was a way to discover or decide which one to use. Yeah, that's what companies are building now. but there's still the problem of that i cannot chain them i cannot i cannot easily build a script that says hey get me get me like all the all the cities that are over 25 degrees and then and then filter out only that part of information and like pack it in one command that's it's all individual mcp calls i cannot i cannot script it yeah but but i guess this is just a matter of time because if we think about like you know when you're when i'm building a weather app right now now.
- 1:24:00
I know that even without AI, I know I need to build up this thing. I need to fetch the data, so I will search what kind of APIs are available, which one do I like, what kind of trade-offs for pricing, for covering, etc. And then I choose that API, and I could chain APIs because I could get that result and look up, etc. So I guess this is, you know, like, it sounds pretty much, we've solved this so as pre-AI, we're going to solve it.
- 1:24:25
It'll just take some time, and who knows what the format for it will be. I mean, I built MacPorter, which is a small TypeScript thing that converts an MCP to a CLI. So you can just package it up. Basically, you're saying CLIs right now are a lot more efficient. Yeah, yeah. So in CloudBot, I don't have MCP support. But via MacPorter, you can use any MCP. You can literally be on your phone and say, hey, use the Vercel MCP to do this and this.
- 1:24:55
and it will go on the website, it will find the MCP, it will load it