The Argument That Made Me Quit MCPs (Mostly)

July 6, 2026 · simon balfe

A few weeks ago I got into an argument in a Slack community. It started when I said something mildly spicy:

“So much nicer switching all the janky local MCP stuff to CLI. General rule: if an MCP makes you install or run something on your machine, it’s bad.”

Someone replied with the pill emoji. Someone else told me to “take the CLI pill.” And then someone made an actually good argument, which is the fun kind, because it gave me an excuse to build a demo and write this post.

If you’re in sales or GTM and you use Claude Code, this post is for you. No engineering degree required. I promise the one code block in here is readable.

First, what these words mean

Two ways to plug tools into Claude:

MCP is the shiny new thing. You “connect” an app to Claude (your CRM, an enrichment tool, whatever), and Claude can call it directly mid-conversation. Every AI vendor is pushing these right now. That push is what my group chat calls the MCP psyop.

CLI is the old thing. Command line interface. Little text commands you type into a terminal. git push. That world. It’s been around for fifty years, it looks like hacker-movie nonsense, and it turns out to be the thing Claude is best at, because Claude Code literally lives in a terminal.

My claim is not “MCP bad.” If a vendor hosts the MCP for you and connecting is just pasting a link, fine, lovely. My claim is narrower: when the job is moving data between tools, which is most of GTM work, the CLI way is faster, cheaper, and more reliable. And the difference is not small.

The argument

The good counter-argument came from Mat. He said MCPs shine because you get “AI checks between every step.” His example, and it’s a totally normal GTM workflow:

  1. One MCP pulls a list of companies
  2. Claude reads the list and filters out the ones that don’t fit your ICP
  3. A second MCP finds people at the surviving companies
  4. Claude reads again and filters out the wrong personas
  5. A third MCP enriches the keepers with emails

Five steps. Sounds great. Claude is your smart assistant checking the work between every stage. What’s not to like?

Here’s the thing I couldn’t let go. Look at steps 2 and 4. What is Claude actually checking?

“Filter out non-ICP companies” meant: keep the ones where industry is SaaS, headcount is 50 plus, and country is UK. That’s it. That’s not judgement. That’s not intelligence. That’s reading a spreadsheet column and deleting rows. And in the MCP version, you’re paying your most expensive, slowest, occasionally-daydreaming employee (the AI) to do it. Every row gets read by Claude, thought about by Claude, and retyped by Claude before the next tool can even see it.

Imagine hiring a brilliant consultant at £500 an hour and asking them to personally retype your lead list between every tool in your stack. Twice. Every time you run it.

So I built the receipt

To settle it, I built a fake little tool called leadgen with made-up companies and people inside it, and asked Claude Code to run Mat’s exact five-step workflow the CLI way. Here’s the entire pipeline:

leadgen companies \
  | jq 'select(.industry=="SaaS" and .employees >= 50 and .country=="UK")' \
  | leadgen people \
  | jq 'select(.role | test("Head|VP|CMO|Marketing"))' \
  | leadgen enrich

Don’t glaze over. Read it like a sentence, top to bottom:

  • Get the companies.
  • Keep only UK SaaS with 50+ people. (That jq thing is a free filtering tool. The | symbol is a pipe: it pours the output of one step into the next, like water.)
  • Find the people at those companies.
  • Keep only the marketing decision-makers.
  • Enrich them with emails.

Same five steps as Mat’s version. Same two “AI checks” in the middle, except now they’re filters instead of a model reading and retyping everything.

It ran. 8 companies went in. 2 survived the ICP filter. 5 people were found. 3 had the right titles. 3 enriched leads came out the other end, emails and LinkedIn URLs attached.

Total time: 6 milliseconds. Total AI cost: zero. A blink lasts about 100 milliseconds, so the whole pipeline ran roughly sixteen times before you could blink once.

The one idea to take away

Here’s the mental model that made it all click for me, and it’s the only thing in this post worth remembering:

In the MCP workflow, Claude is the pipe. In the CLI workflow, Claude is the plumber.

MCP version: the data physically cannot get from step 1 to step 2 without travelling through Claude. Claude reads every company, thinks about every company, and retypes every company. Then does it again for the people list. The AI is the plumbing your data flows through. And this plumbing charges by the token, takes seconds per step, and very occasionally drops a lead or invents one, because that’s what AI does when you make it retype lists.

CLI version: you ask Claude to build the pipeline. It writes that one command, once. After that, the data flows through the pipes on its own. No AI in the middle. You can run it tomorrow, run it on 50,000 companies instead of 8, stick it on a schedule, and it costs nothing and never gets tired.

You hired the smart expensive thing. Use it to design the system, not to be the system.

What this means for your actual GTM stack

This isn’t a toy distinction. Swap the fake tool for real ones and it’s your Tuesday:

  • Pull queries from Google Search Console where you’re getting seen but ranking badly
  • Filter to the ones worth chasing
  • Push them into Google Ads as keywords

I do exactly this with small command-line tools for the Google products (Ads, Search Console, Analytics, Tag Manager, Business Profile). One line, three Google products, no AI retyping anything in the middle. Claude wrote the line; the shell runs it.

And here’s the part sales people underestimate: you don’t need to learn to write any of this. You have Claude Code. You describe the workflow in English, Claude writes the command, you sanity-check the output, and now you own a reusable asset. The terminal stopped being a technical barrier the day you got an AI that speaks fluent terminal.

Where MCPs genuinely earn their keep

Being fair, because “everything about MCP is a psyop” would be its own psyop:

  • Real judgement calls. If the filter is “does this company’s website feel like they sell to ecommerce brands?”, that’s actual thinking, and an AI pass earns its cost. The trick is noticing that most GTM filters aren’t that. “50+ employees, UK, SaaS” is a spreadsheet filter wearing an AI costume.
  • Hosted connections. When a vendor runs the MCP on their servers and you just paste a link, with login handled for you, that’s a genuinely nice way to connect things. My rule survives: if it makes you install and run something on your laptop, walk away.
  • Doing things rather than moving data. Send the email, book the meeting, post the message. One-shot actions, no pipeline, MCP is fine.

The pill

The funny thing is none of this is new. Small tools, plain text, pipes: it’s how the entire infrastructure world has worked for decades. GTM is just now becoming technical enough to inherit it, and we happen to be inheriting it at the exact moment an AI showed up that can write it all for us.

So next time a vendor’s pitch is “connect our MCP and let the AI orchestrate your workflow,” ask one question: is the AI here making judgement calls, or is it retyping my lead list between tools?

If it’s retyping, take the pill.