Carol Monroe
← Field Notes

CLI vs MCP: The Barista Analogy

Jan 24, 2026 · 3 min · Learning 158 views

This week I was in the Supabase voice channel, and while we were chatting someone asked: "What's the difference between a CLI and an MCP?"

Someone answered something super practical: "CLI is for humans. MCP is for agents." That distinction alone helped me understand so much better how it all works. So I started digging deeper, and the analogy we landed on is the simplest way I can explain it.

The barista analogy

You walk into a coffee shop. You have two ways to order:

Option A: The counter (CLI)

You tell the barista: "Can I get a medium oat milk latte with an extra shot?"

The barista interprets your words. Maybe asks "what size again?" Maybe hears "oat" as "whole." It works — humans understand humans — but there's always a layer of translation happening.

That's a CLI. You type commands in human-readable text. The system reads your words, interprets them, gives you text back. It works great for humans.

Option B: The app (MCP)

You open the coffee app. You see every drink, every size, every milk option. You tap: Latte → Medium → Oat → +1 shot. Done.

No ambiguity. The app knows exactly what's available, and the system receives a perfectly structured order.

That's MCP. The AI agent sees a structured menu of every available action — what it can do, what parameters each action needs, what it returns. No guessing.

CLI vs MCP: Barista counter vs coffee app

So which is better?

Neither. They solve different problems.

  • CLI is designed for humans. You read the output, you interpret, you decide what to type next.
  • MCP is designed for AI agents. They get a structured menu of tools and can use them without parsing human text.

Now, an AI agent can use a CLI (Claude Code does this all the time — running git status, supabase db list, etc.). It's like the agent going to the counter and talking to the barista.

But with MCP, the agent doesn't have to interpret the barista's response. It gets clean, structured data back. Every time.

The practical difference

CLI (human-first):
$ supabase db list
→ "Here are your tables: users, posts, comments..."
→ Agent has to parse this text to understand it

MCP (agent-first):
list_tables({ schemas: ["public"] })
→ [{ name: "users", columns: [...] }, ...]
→ Agent gets structured data it can use directly

Same information. Different format. Different audience.

When does this matter?

If you're using AI agents (Claude Code, Cursor, etc.) to build things, MCP connections give them superpowers. Instead of typing commands and reading output like a human would, they can directly interact with your database, storage, auth — all through structured tools designed for them.

It's the difference between your agent struggling to read the barista's handwriting on the cup vs. getting a perfectly formatted order receipt.


What do you think about this analogy? What other analogy would you use to explain it? I'm still learning too, and honestly these conversations in the voice channel are where the best explanations come from.


Related skill: Vibe Coding Setup — includes MCP configs for Supabase, Netlify, and more.

mcp · supabase

XLinkedIn

Reader margin

What stayed with you?

0 notes

Leave one small mark in the margin.

Notes from readers

The margin is open. You can leave the first note.

Stuck with something like this? I fix it daily → Services

© 2026 Carol Monroe · Services delivered through Moonshot Labs LLCPrivacy · Terms · RSS · X · LinkedIn ·
Carol Monroe · visitor ledgerThe logbook

Leave a little note before you go.

Notes left hereopen since 2026

The page is ready for its first note.

Your page280 characters

Glad you found your way here.

Tell me what brought you in, what stayed with you, or simply say hello.

0/280 · your note will be public