MCP vs Platform-Vendor CLI — Task-Class Split for Agent-Native Interfaces
The question
MCP vs platform-vendor CLI — which agent-native interface wins for which task class? (Source: curiosity, High priority. Founder direct question 2026-04-29; Meta Ads CLI launch 2026-04-29 was the trigger signal.)
What we already know (from the vault)
- Meta shipped the Ads CLI 2026-04-29 explicitly framing it as agent-native ("works unattended in CI/CD pipelines"), not as an MCP server. First-party Big Tech platform answering the question with a CLI. See [[2026-04-30-meta-ads-cli-agent-native-launch]].
- Stripe's Link CLI same week solved per-charge approval with the same architecture. Auth gating via local credentials, per-call approval gate. See [[2026-04-29-link-cli-agent-wallet-setup]].
- IndyDevDan's "ditching MCP servers" video (Nov 2025) is the structured tradeoff framework the vault already endorses. Quantified context-budget claim: a "small" MCP server burns ~10K tokens before the agent does anything. RDCO runs 17+ MCP servers; per-server context cost has never been measured. Dan's recommendation: 80% MCP for external tools you don't own, 15% CLI, 5% scripts/skills; for tools you build, 80% CLI first. See [[2026-04-19-indydevdan-ditching-mcp-servers]].
- "Skills are Claude-ecosystem lock-in" is a known portability cost. RDCO has 60+ skills, all Claude Code-bound. CLIs port across runtimes. See [[2026-04-19-indydevdan-ditching-mcp-servers]] and [[2026-04-11-garry-tan-thin-harness-fat-skills]].
- The "prime prompt + CLI" pattern is documented and works. 25-line prime prompt reads a readme + CLI source, learns tools by reading
--help, forbids reading any other code. ~80% of MCP's value at ~5-10% the context cost. See [[2026-04-19-indydevdan-ditching-mcp-servers]]. - Build CLI first, wrap in MCP later is the RDCO operating default. Confirmed by the Printing Press install pattern ([[2026-05-07-printing-press-install]]) and the Squarely-API integration heuristic. CLI-first preserves the option to wrap in MCP only when multi-agent scaling demands it.
- MCP IP-restriction failure mode is a known operational hazard. Stripe API calls return HTTP 403 when MCP server starts cleanly but individual tool calls fail on IP drift. Production-grade auth wrappers need IP-flexibility. See [[2026-04-30-ip-restricted-policies-tracker]].
What the web says
- CLI wins on token cost, reliability, and composability for deterministic local operations. Benchmark data (MindStudio Feb 2026): "35x more tokens" for MCP than CLI on identical tasks. Reliability: CLI 100% across complexity levels; MCP starts at 100% on simple tasks and degrades to 72% on complex ones. Monthly cost at 10K operations: CLI ~$3.20, MCP ~$55.20 (Scalekit, Tyk).
- CLI's structural advantages are deterministic outputs and zero context overhead. Binary outputs (pass/fail, JSON/TSV/table), no schema dump into agent context, no parameter-description bloat. CLIs run identically in CI/CD with no human in the chat loop (Jannik Reinhard, Firecrawl).
- MCP's structural advantages are governance and live external data access. Per-user OAuth, explicit tool boundaries, structured audit trails. Wins for cross-service live-data access (Salesforce contacts, GitHub status, Slack threads, analytics dashboards) where protocol overhead is justified (Smithery, Descope).
- "MCP vs CLI is the wrong fight" — production agents use both. Claude Code, Cursor, Gemini CLI all compose CLI + MCP. Recommended hybrid pattern: use MCP once to fetch live data, write results to a local file, then execute all subsequent operations via CLI (MindStudio, Smithery).
- The compounding failure cost matters more than the per-call cost. In ReAct loops, a failed MCP call triggers recovery reasoning + retries, multiplying token waste 3-5x beyond the initial call. MCP's reliability degradation curve is worse than the per-call cost suggests (MindStudio).
- Enterprise governance is shifting to the "MCP gateway" pattern. Single MCP gateway with centralized auth, rate limiting, and audit logging eliminates most drawbacks of both approaches. The CLI then runs behind the gateway, not as a replacement for it (Tyk enterprise comparison).
Convergences and contradictions
Convergence: vault and web agree the CLI wins for unattended, deterministic, high-frequency operations (ad ops, payments, deployments, file ops). The Meta Ads CLI launch copy ("works unattended in CI/CD") and the MindStudio 35x token-overhead benchmark both point at the same task class: high-frequency operational tasks where the agent runs without a chat loop.
Convergence: both vault and web frame MCP as winning for governance + live external data access. RDCO's current MCP-heavy posture is correct for the cross-service-discovery surface (Notion, Gmail, Calendar, Discord). The wrong-fight framing is that RDCO shouldn't try to replace MCP — it should complement MCP with CLIs for the operational surface.
Contradiction (sharper than expected): Dan's framework recommends "80% MCP for external tools you don't own." Web benchmarks suggest this is the wrong split — even external tools that have MCP available may be cheaper and more reliable accessed via the vendor's CLI when one exists. The arrival of Stripe Link CLI and Meta Ads CLI (2026 wave) means the "external tools you don't own" category is shifting toward CLI availability. Dan's Nov 2025 framework was correct for the world of Nov 2025; the 2026 platform-vendor-CLI wave inverts it.
Contradiction (mild): vault's "skills are Claude-ecosystem lock-in" framing implies CLIs are the portable answer. Web sources actually frame skills + MCP gateway as the enterprise-portable pattern. The disagreement is what "portable" means: across LLM runtimes (vault's frame) vs across enterprise environments (web's frame). Both true on their own terms; RDCO should care more about the first since it's a single-operator harness, not a multi-tenant enterprise stack.
Synthesis for RDCO
The task-class split clarifies into a four-quadrant decision matrix:
| Low frequency (advisory, chat-loop) | High frequency (operational, unattended) | |
|---|---|---|
| External tool, vendor-provided | MCP if available, CLI as fallback | CLI when available (the 2026 wave); MCP otherwise |
| Internal tool, RDCO-authored | Skill (chat-loop ergonomics) | CLI under ~/.claude/scripts/, prime-prompt pattern |
Implication 1: RDCO's operational skills should migrate toward CLI-first. The paid-ads skill, squarely-deploy skill, process-newsletter skill, and process-youtube skill all sit in the high-frequency operational quadrant. Their underlying logic is already CLI-driven (yt-dlp, vtt-to-text.py, wrangler, gh). The skill is the chat-loop ergonomics wrapper; the work happens at the CLI layer. This is correct architecture and should be the documented RDCO pattern. The migration cost is mostly documentation, not refactoring.
Implication 2: The Meta Ads CLI (and the coming Shopify, Google Ads, LinkedIn CLI wave) changes the agent-deployer wedge. When platform vendors ship CLIs explicitly named for AI agents, the friction of "agent connects to ad ops" drops to near-zero. RDCO's agent-deployer positioning needs to assume CLI-first surfaces are the default integration path within 12-18 months. Concretely: future RDCO client engagements will see "we already have the Meta Ads CLI, we just need someone to operate it inside our workflow" rather than "we need help wiring an MCP server." The deployer skill set shifts toward CLI orchestration + prompt engineering + workflow design.
Implication 3: The per-MCP context-cost ledger is overdue. Dan's framework names it; vault notes the open follow-up; the founder authorized it Apr 19. With 17+ MCP servers and 2026 Sanity Check content potential ("Your MCP servers are eating your context budget"), this is a 30-minute high-signal task. The blocker is the founder's queue, not analysis — should auto-execute on the next maintenance window.
Implication 4: For RDCO's mid-market clients, the recommended architecture is "MCP gateway for governance, CLI for operations." Per Tyk's enterprise framing, single MCP gateway with centralized auth + audit logging + rate limiting, with CLIs running behind it for the high-frequency operational work. This is the recommendation RDCO should give clients when asked "MCP or CLI?" — the right answer is "both, here's how they compose." It also defends the RDCO consulting wedge: the architecture work is the deliverable, not the tool choice.
Implication 5: The Sanity Check editorial angle is "the agent-native interface war has split, and CLI just won the operational surface." Non-derivative reframe (per the no-derivative-SC memory): not a recap of Meta's launch, but a structural read on what the launch tells us about where the agent-native surface war is heading. Pairs the Meta Ads CLI signal with the IndyDevDan tradeoff framework and the 35x token-overhead benchmark. Reader takeaway: rethink your tool surface, the default is changing.
Recommended skill-architecture rule for the RDCO codebase going forward:
When building a new RDCO tool surface, ask in order: (a) does the platform vendor ship a CLI for this? Use it. (b) Does it ship an MCP server? Use it when the task is chat-loop-anchored, low-frequency, or governance-sensitive. (c) Building it ourselves? Build the CLI first, with a
--helpthat an agent can parse, and only wrap it in a skill when the chat-loop ergonomics earn the lock-in cost.
Open follow-ups
- Run the per-MCP context-cost ledger (Dan's recommendation, vault open follow-up). 30-minute task; output to
~/rdco-vault/06-reference/2026-05-21-rdco-mcp-context-cost-ledger.md. Should auto-execute on next maintenance window. - Inventory all 60+ RDCO skills against the four-quadrant matrix. Demote skills in the "high-frequency operational, internal" quadrant that are really just one-off CLI invocations dressed up. 3-hour audit.
- Track the platform-vendor CLI wave: Shopify, LinkedIn, Google Ads, GitHub (already has gh), Salesforce. Which is next to ship an agent-named CLI? Update the agent-native-surfaces concept doc.
- What's the MCP gateway product landscape (Tyk, Smithery, others)? Is this a category RDCO mid-market clients are buying yet, or still bleeding-edge enterprise?
- Does the "build CLI first, wrap in MCP later" reflex need to be hard-coded into
skill-creator? Currently relies on operator discipline. Could be a hook. - The "Your MCP servers are eating your context budget" Sanity Check piece — needs the ledger measurement first, then the editorial fits in one draft sitting.
Sources
Vault:
- [[~/rdco-vault/06-reference/2026-04-30-meta-ads-cli-agent-native-launch.md]]
- [[~/rdco-vault/06-reference/2026-04-19-indydevdan-ditching-mcp-servers.md]]
- [[~/rdco-vault/08-tooling/2026-04-29-link-cli-agent-wallet-setup.md]]
- [[~/rdco-vault/08-tooling/2026-04-30-ip-restricted-policies-tracker.md]]
- [[~/rdco-vault/08-tooling/2026-05-07-printing-press-install.md]]
- [[~/rdco-vault/06-reference/2026-04-11-garry-tan-thin-harness-fat-skills.md]]
- [[~/rdco-vault/06-reference/2026-02-17-every-build-agent-native.md]]
Web:
- MindStudio — 35x token overhead, 72% vs 100% reliability benchmark: https://www.mindstudio.ai/blog/mcp-vs-cli-agentic-workflows-token-overhead-reliability
- Jannik Reinhard — Why CLI tools are beating MCP for AI agents: https://jannikreinhard.com/2026/02/22/why-cli-tools-are-beating-mcp-for-ai-agents/
- Firecrawl — MCP vs CLI for AI Agents 2026: https://www.firecrawl.dev/blog/mcp-vs-cli
- Scalekit — Benchmarking AI Agent Cost & Reliability: https://www.scalekit.com/blog/mcp-vs-cli-use
- Smithery — MCP vs CLI Is the Wrong Fight: https://smithery.ai/blog/mcp-vs-cli-is-the-wrong-fight
- Tyk — MCP vs CLI for AI agents Enterprise comparison: https://tyk.io/learning-center/mcp-vs-cli-for-ai-agents-enterprise-comparison-guide/
- Descope — MCP vs CLI When to Use Them and Why: https://www.descope.com/blog/post/mcp-vs-cli