CLIs are hands, skills are knowledge, MCP is reach

Graham Daw5 min read
AI EngineeringEngineering
CLIs are hands, skills are knowledge, MCP is reach

Short answer: Give an agent a CLI when it needs to do something on the machine. Write a skill when it needs to know how to do it well. Use MCP when the target is a system the agent cannot reach from the shell.

The question that started this

I was talking with Esa Nuurtamo the other day about command-line tools, skills, and how they are used with coding agents — in that case Claude Code. The question that came up: when you have a CLI, should you wrap it in a skill, or let the agent call the CLI directly?

Wrapping everything is overhead, yet wrapping nothing means the agent relearns the same lessons every session, not to mention the wasted context and tokens. Neither of us came up with a clean pattern other than the classic "it depends". What I kept thinking about afterwards was how to conceptualise these constructs, and a little sparring with an agent revealed quite a nice analogy.

What are CLIs, skills, and MCP in agent tooling?

Starting with a quick overview of what we are discussing here:

A skill is a package of information for the agent — instructions, examples, and scripts that guide the agent on how to behave or why to use a tool. The best example of the format is Anthropic's Agent Skills.

A CLI is a command-line program the agent can run directly, such as git, gh, psql, or even our own kaiku CLI tool. It is a capability that already exists on the machine where the agent is running.

MCP (Model Context Protocol) is an open standard that connects an agent to external systems such as Linear, Slack, a CRM, or an internal API, with clear tools and permissions. It has sometimes been called the USB-C of agent connections.

Thinking about these through the lens of a person led to the following model, which helps decipher when each should be used: CLIs are hands, skills are knowledge, MCP is reach.

When should an agent use a CLI directly?

When the CLI is well known or the objective is very simple, the model will generally provide good defaults. Most models already know git status and ls. A skill here adds nothing — the agent can probably achieve the objective pretty well on its own.

To start with our analogy: you don't need instructions on how to throw a ball, or even how to hold a pen.

When should you wrap a CLI in a skill?

Now we get to the key topic. In short, a skill is needed when you keep repeating yourself. If you tell the agent the same three things about a CLI every session — use this flag, run this check first, never do that — that should be a skill. You are telling the agent how to use the tools at its disposal to achieve the desired result.

To continue with our analogy, these would be the instructions on how to play cricket or tennis, or how to write a story.

Skills also pay off when a CLI is internal or unusual, as the model probably has no training data to lean on. They are extremely beneficial for chaining tools in a house style the agent should follow every time.

When should you use MCP instead of a CLI?

Finally we reach a debate that was raging around the end of 2025: whether to use MCP servers or CLIs plus skills. The topic is nuanced, but generally MCP shines when the target is not on the same system as the agent and yet the agent still needs to decide to use it. If the agent needs to read an issue, post a message, or query a service behind authentication, a CLI is often complicated or simply isn't available. MCP gives the agent a typed and controlled way in.

In the analogy, MCP servers are checking for places to play cricket, finding tennis courts, or looking up words in a dictionary and thesaurus.

A quick test

Ask whether the gap is doing or knowing. If the agent can do the task but does it badly, add knowledge (a skill). If the agent cannot do the task at all, add hands (a CLI) or reach (MCP).

The common mistake

The mistake we see most often is mixing the roles. Teams build an MCP server around a CLI when a short skill would have done. Or they write a long skill around common CLI tools. All of this is token-inefficient and leads to wasting the capacity of AI tooling.

Key takeaways

  • CLIs give an agent the ability to act on the local machine.
  • Skills encode knowledge an agent would otherwise relearn each session.
  • MCP extends an agent to systems it cannot touch from the local machine.
  • Keep the three roles separate and your tooling stays lean.

FAQ

Do I need a skill for every CLI?

No. Only wrap tools the agent uses badly, uses often, or has never seen.

Can a skill and an MCP server cover the same tool?

Yes. MCP provides access; a skill can still teach the agent how to use that access well.

Is MCP a replacement for CLIs?

No. MCP is for systems outside the machine. For local work, a CLI is usually simpler and faster.


Interested in how we get agent tooling right across the SDLC? Get in touch.

The technology partner for forward-looking, AI-powered engineers and companies.

Kaiku Crew Oy / 3520495-1

Yliopistonkatu 4, 00100 Helsinki