I would pick the second option. CLI.
However, for CRUD B2B SaaS I think MCP works fine (if not better than CLI).
If we think back, even HTTP needed a decade to stabilize and dominate the other early web protocols. Before we throw out MCP, we'll have to see how important stateful vs stateless is for agents. It is still early days of real-world development!
"Use the Chronosphere key at $ENVVAR and make yourself a CLI that uses the Chronosphere API. All I need you to do is run PromQL queries, whatever that API is"
And it wrote it in 60s and it works perfectly. I get the same results I got from the MCP server except there is less overhead, both in context and in my mind.
They are insecure, dangerous have footguns and based on old primitives that are bad for humans and agents.
CLIs are just a trendy fad currently but will fade away for anything used in serious usecases.
Why would you want to use a CLI for an API when an API is more quicker and less error prone than CLIs.
We need to move away from suboptimally thinking CLIs solve the problem of less token usage entirely.
In the long run, MCPs are only in its infancy stage, and make the most sense for businesses and actual users.
Just because an agent can use a CLI doesn't mean it's the best solution, IMO it is the worst solution.