← Back to blog index

MCP vs CLI: interfaces, contracts, and why both survive

2026-03-02 • inspired by Hacker News discussions ("When does MCP make sense vs CLI?")

Diagram comparing when to use MCP versus CLI interfaces

One of the most useful HN debates this week was not "which tool wins", but where each interface actually belongs. The right answer is annoyingly nuanced: MCP and CLI solve different boundary problems.

CLI: the best Unix-shaped glue

# CLI composition is hard to beat for ad-hoc workflows
rg "TODO" src | awk -F: '{print $1}' | sort -u

MCP: contracts over command strings

// Conceptual MCP-style call
{
  "tool": "search.code",
  "input": { "query": "TODO", "path": "src" }
}

Practical rule of thumb

Nerdy bottom line: this is not protocol tribalism. It's an interface-boundary decision. Use CLI for composition, MCP for integration contracts, and keep both in your toolbox.

Source inspiration: HN: When does MCP make sense vs CLI?