Guidens

CLI vs MCP: Does Your AI Agent Really Need 50 Tools?

Guidens · · 4 min read

CLI vs MCP: Does Your AI Agent Really Need 50 Tools?

Your AI can talk. But can it do anything?

An LLM only outputs text. To create a GitHub issue, check a deployment, or update your database, it needs a way to turn that text into action.

There are two popular answers:

  • CLI: give the AI a terminal and let it type commands.

  • MCP (Model Context Protocol): give the AI a menu of ready-made, labeled tools.

Developers are arguing about which is better. The honest answer is that they win in different places. Let's see where.

CLI: "just a terminal" is secretly a superpower

To you, a terminal is a black window where you type commands. To an AI, it is a universal remote control.

Anything with a command-line tool becomes something the AI can operate: git, gh, vercel, docker, psql, curl, ffmpeg. The AI already learned these from training data, so there is nothing to set up. One tool ("run a command") unlocks thousands of abilities.

It is also open-ended. The AI can combine commands and invent new ones on the spot.

Example: "Find the 5 biggest PNGs in my project and compress them."

find . -name "*.png" -size +1M | head -5 | xargs -I{} convert {} -quality 70 {}

Nobody had to build a "compress images" tool first. The AI wrote that one-liner itself.

The catch: it runs with your permissions. A bad command like rm -rf is as real as a good one.

MCP: a remote with labeled buttons

MCP is a standard where a server announces: "Here are my tools, with names, typed inputs and descriptions." The AI sees that list and calls each tool as structured JSON.

Example: "Approve submission 42 on SoftRankings."

{
  "tool": "update_submission",
  "arguments": { "id": 42, "status": "approved" }
}

The AI can only press buttons you built. It cannot delete your database, because there is no button for that. It also works where there is no terminal at all: a chat app, your phone, a hosted agent. And it is the natural fit for apps with no CLI, like Notion, Slack or Google Drive.

The catch: someone has to build the server, and every tool's description gets loaded into the AI's context, which costs tokens. Connect a server with 50 tools and you pay for all 50 on every conversation.

Same task, both ways

Task: "Did my last deployment fail?"

With a CLI, the AI types a command it already knows and reads the text that comes back:

vercel ls

With MCP, the AI calls a tool from the server's menu and gets clean JSON back (simplified example):

{
  "tool": "list_deployments",
  "arguments": { "project": "softrankings" }
}

The result is the same. The path is different:

Pros and cons at a glance

CLI

Pros

  • Zero setup. The AI already knows git, gh, vercel and curl from training.

  • Cheap on tokens. One tool ("run a command") instead of dozens of descriptions.

  • Easy to chain. grep | sort | head in one go, or a quick script for bigger jobs.

  • Unlimited reach. If a CLI exists, the AI can use it, and it can write its own scripts.

Cons

  • Risky. It can run rm -rf or leak secrets with your full permissions.

  • Needs a real machine with a shell. It does not work in a plain chat app or on a phone.

  • Output is messy text, so the AI sometimes misreads it.

  • Many apps (Notion, Slack, Google Drive) have no good CLI.

  • Hard to restrict. "Read only, never write" is tough to enforce.

MCP

Pros

  • Safe by design. Only the actions you expose exist.

  • Structured inputs and outputs (JSON), so fewer mistakes.

  • Handles login for you, and permissions can be scoped per tool.

  • Works anywhere, including chat apps, phones and hosted agents.

  • Great for apps with no CLI.

Cons

  • Token-heavy. Every tool description loads into context.

  • Someone must build and maintain the server.

  • Rigid. If the action is not on the menu, the AI cannot do it.

  • Each call is separate, so chaining many steps is slow and clunky.

  • Too many tools can confuse the model into picking the wrong one.

So which one should you use?

Why is the CLI even compared to MCP? Because coding agents like Claude Code showed that a shell is often enough. Many developers found that gh plus a few commands beats loading a 50-tool MCP server that eats context. That started the "is MCP even needed?" debate.

The practical answer is to use both, each where it fits:

  • Local dev work (git, deploys, files, databases you control): use a CLI.

  • Letting an AI touch production data safely: use MCP and expose only the actions you trust.

  • Notion, Slack, Google Drive and other apps with no good CLI: use MCP.

  • Batch jobs and file processing: use a CLI.

The one-line rule: if a tool already has a CLI and you trust the machine, start with the shell. Reach for MCP when you need guardrails, scoped access, or a place with no terminal.

They are not rivals. They are two layers: one gives the AI freedom, the other gives you control.

Comments

?

No comments yet

Be the first to share what you think.