Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
---
title: "MCP in 2026: Durable Standard or Transitional Layer?"
subtitle: "The Model Context Protocol tripled in adoption last year. The hard questions are just starting."
date: 2026-04-14 10:00:00 -0500
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The date value is an unquoted YAML datetime with a timezone offset. Some frontmatter parsers handle these inconsistently (string vs Date coercion). To avoid build-time parsing differences and keep consistent with common Gatsby/MDX conventions, wrap the date value in quotes.

Suggested change
date: 2026-04-14 10:00:00 -0500
date: "2026-04-14 10:00:00 -0500"

Copilot uses AI. Check for mistakes.
author: Lee Calcote
thumbnail: ./hero-image.svg
darkthumbnail: ./hero-image.svg
description: "MCP adoption exploded in 2025-2026, but benchmarks show CLIs outperforming MCP for agent tasks. We examine where MCP wins, where it stumbles, and whether the protocol is here to stay."
type: Blog
category: AI
tags:
- ai
- mesheryctl
- Meshery
- Engineering
- Platform Engineering
resource: true
published: true
---

import { BlogWrapper } from "../../Blog.style.js";
import { Link } from "gatsby";
import Blockquote from "../../../../reusecore/Blockquote";
import Callout from "../../../../reusecore/Callout";
import CTA_FullWidth from "../../../../components/Call-To-Actions/CTA_FullWidth";
import CTAImg from "../../../../assets/images/meshery/icon-only/meshery-logo-shadow.webp";

<BlogWrapper>

<div className="intro">
<p>
In the <Link to="/blog/2026/04-07-design-for-the-human-enable-the-agent">first post of this series</Link>, I argued that CLIs are not APIs - they're human interfaces that, when designed well, enable agents as a natural consequence. That post ended with a question: where does the Model Context Protocol fit? MCP adoption has been explosive. The number of MCP servers tripled in six months. OpenAI, Google DeepMind, and the major framework vendors all adopted it. But adoption and durability are different things. The hard questions about MCP are just now arriving.
</p>
</div>

## The Rise: What Happened

Anthropic launched MCP in November 2024 as an open standard for AI-to-tool integration. The premise was clean: instead of writing custom integration code every time you want an AI agent to interact with an external service, standardize the communication layer. One protocol. Universal tool discovery. Structured input/output contracts.

The industry responded fast. By early 2025, OpenAI adopted MCP across the Agents SDK, Responses API, and ChatGPT desktop. Hugging Face, LangChain, and Deepset integrated it into their frameworks. By August 2025, there were 425 registered MCP servers. By February 2026, that number hit 1,412 - a 232% increase in six months. Industry analysts project 75% of API gateway vendors will add MCP features by end of 2026.

This is not a niche protocol. This is a standard with real momentum.

<Callout type="note" title="The Numbers">
<p>MCP servers grew from 425 (August 2025) to 1,412 (February 2026). But only 27% of servers were updated in the last 30 days, and 29% haven't been touched in six months or more. Growth is real. So is abandonment.</p>
</Callout>

## Where MCP Wins - and CLI Can't Touch It

MCP solves problems that CLIs were never designed to solve. Recognizing this matters, because the "MCP vs CLI" framing that dominates the current discourse obscures the fact that they address fundamentally different concerns.

**Enterprise governance.** MCP provides OAuth-based authentication, per-user permissions, and structured audit trails out of the box. When an agent uses an MCP server to create a Jira ticket, the action is authenticated against a specific user identity, scoped to their permissions, and logged. A CLI invocation in a shell has none of this natively. You can bolt it on - service accounts, API keys passed as environment variables, wrapper scripts that log to an audit system - but you're rebuilding what MCP provides as a first-class primitive.
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These two sections read as contradictory: one states MCP provides OAuth/authz/audit trails 'out of the box', while the warning says to implement your own auth/audit and not assume the protocol handles it. Consider clarifying the distinction (e.g., protocol vs specific implementations, optional/implementation-defined security features, or 'out of the box' only in certain MCP hosts) so readers don’t get conflicting guidance.

Suggested change
**Enterprise governance.** MCP provides OAuth-based authentication, per-user permissions, and structured audit trails out of the box. When an agent uses an MCP server to create a Jira ticket, the action is authenticated against a specific user identity, scoped to their permissions, and logged. A CLI invocation in a shell has none of this natively. You can bolt it on - service accounts, API keys passed as environment variables, wrapper scripts that log to an audit system - but you're rebuilding what MCP provides as a first-class primitive.
**Enterprise governance.** In practice, many MCP hosts and enterprise deployments integrate with OAuth-based authentication, per-user permissions, and structured audit trails out of the box, even though those controls are implementation capabilities rather than guarantees of the MCP protocol itself. When an agent uses an MCP server to create a Jira ticket, the action can be authenticated against a specific user identity, scoped to that user's permissions, and logged. A CLI invocation in a shell has none of this natively. You can bolt it on - service accounts, API keys passed as environment variables, wrapper scripts that log to an audit system - but in many enterprise MCP environments these controls are exposed as first-class capabilities instead of being rebuilt around each tool.

Copilot uses AI. Check for mistakes.

**Stateful multi-step workflows.** Some agent tasks require persistent state across multiple tool invocations. Browser automation is the canonical example - you need a persistent browser session, page context, element references that survive between calls. MCP servers maintain this state. A CLI invocation is stateless by design: it runs, it exits, its process dies. Piping state between CLI calls is possible but brittle. MCP handles it natively.

**Sandboxed environments.** Not every agent has a terminal. Browser-based agents, chatbots, mobile assistants, sandboxed enterprise environments where shell access is locked down - MCP is the only interface available. CLI simply doesn't apply.

**Multi-agent orchestration.** When ten agents from different teams need to coordinate across shared services - each with distinct permissions, each producing audit logs, each respecting rate limits - MCP's governance model is the right abstraction. A shared shell with ten agents writing to stdout is a disaster.

## Where CLI Wins - and MCP Stumbles

The benchmarks tell a clear story for developer-facing workflows.

Comparative studies of identical tasks run through both MCP and CLI interfaces show CLI achieving significantly higher task completion rates with roughly equivalent token budgets. The tokens aren't saved - they're spent more effectively. Instead of parsing tool descriptions and navigating protocol overhead, the agent spends tokens on reasoning.

The reasons are structural.

**Context window cost.** MCP tool descriptions are expensive. GitHub's MCP server exposes over 40,000 tokens of tool definitions. Every MCP server an agent connects to adds to this cost. Claude Code's Tool Search feature mitigates this with lazy loading - reducing context usage by up to 95% in some cases - but that's a patch over a fundamental scaling problem. The original abstraction doesn't handle large tool surfaces gracefully.

**Agents already know terminals.** Language models were trained on billions of lines of shell transcripts, man pages, and CLI documentation. They know how to construct `git commit -m "message"` and `kubectl get pods -n production -o json`. They don't have the same depth of training data for MCP tool invocation patterns. CLI fluency is baked into the weights. MCP fluency has to be taught.

**Unix composition.** CLI output pipes to `jq`, `grep`, `awk`, `sort`. Decades of operational tooling snaps into place. An agent that runs `mesheryctl model list --output ndjson | jq '.name'` is leveraging an ecosystem that MCP can't replicate. MCP responses live inside the protocol boundary - they don't compose with the broader environment.

**Debuggability.** When a CLI command fails, you see stderr. You see the exit code. You can rerun it with `--verbose`. When an MCP interaction fails, you're inside an abstraction layer that obscures the underlying cause. For developer workflows, this opacity is a real cost.

<Blockquote
quote="CLI wins on speed, proven reliability, and LLM familiarity. MCP wins on governance, state management, and access control. The question isn't which one replaces the other. It's knowing when to use each."
/>

## The Security Problem No One Solved Yet

MCP prioritized simplicity and interoperability over security. The protocol's architects made this tradeoff deliberately - get adoption first, harden later. The consequences are arriving on schedule.

In Q3 2025, researchers spotted the first malicious MCP server in the wild. The attack vectors are documented and growing: tool poisoning (malicious descriptions that manipulate agent behavior), silent tool redefinition (a server changing its tool schemas between calls), cross-server tool shadowing (a malicious server intercepting calls meant for a trusted one), and prompt injection through tool responses.

CLI tools aren't immune to security issues. But they benefit from decades of hardening - sandboxed execution, well-understood permission models, process isolation, established patterns for credential management. MCP's security model is still being written. For enterprise teams evaluating MCP for production workloads, this gap is not academic.

<Callout type="warning" title="Security Reality">
<p>MCP's security model is evolving. If you're deploying MCP servers in production, implement your own authentication layer, audit logging, and input validation. Don't assume the protocol handles it.</p>
</Callout>
Comment on lines +88 to +90
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These two sections read as contradictory: one states MCP provides OAuth/authz/audit trails 'out of the box', while the warning says to implement your own auth/audit and not assume the protocol handles it. Consider clarifying the distinction (e.g., protocol vs specific implementations, optional/implementation-defined security features, or 'out of the box' only in certain MCP hosts) so readers don’t get conflicting guidance.

Copilot uses AI. Check for mistakes.

## The Consolidation Phase

Every technology adoption curve hits a consolidation phase. MCP is entering it now.

The raw numbers look impressive - 1,412 servers and counting. But dig into the data and a different picture emerges. Only 27% of registered MCP servers were updated in the last 30 days. 29% haven't been touched in six months. The initial gold rush produced hundreds of quick integrations, many of which are already abandonware.

This is normal and healthy. The signal-to-noise ratio improves as the ecosystem matures. The winners - Chrome DevTools MCP (15,000 GitHub stars in three months), Playwright, Supabase, the major cloud provider integrations - are pulling away from the pack.

But consolidation also means the early promise of "one protocol to connect everything" is meeting reality. The MCP servers that survive will be the ones backed by organizations with the resources to maintain them, keep security patches current, and evolve their tool schemas alongside their products.

## A Decision Framework

The "MCP vs CLI" framing is a false binary. Here's how to think about it instead.

**Use CLI when** the agent operates in a developer environment with terminal access, the task is stateless or can be composed from stateless steps, token efficiency matters, you need Unix-style composition with existing tools, and the target audience is engineers who debug in the terminal.

**Use MCP when** the agent operates in a sandboxed or browser-based environment, the task requires persistent state across multiple invocations, enterprise governance is a hard requirement (per-user auth, audit trails, rate limiting), multiple agents need coordinated access to shared services, and the target audience is non-technical users interacting through a chat interface.

**Use both when** you need the execution efficiency of CLI with the governance properties of MCP. This is Meshery's approach: the CLI handles the work, and an MCP surface (`mesheryctl mcp`) provides the governance wrapper for enterprise and multi-agent scenarios.

## What This Means for How You Build

If you maintain a CLI tool - any CLI tool - the lesson from the MCP discourse is not "go build an MCP server." The lesson is: make sure your CLI is designed for scriptability first. Non-interactive flags for every prompt. Machine-readable output. Schema introspection. Strict input validation. Deterministic exit codes.

If you do that, your CLI serves both humans and agents. And if you later need an MCP layer for governance, you build it on top of a solid CLI foundation. The MCP server calls the CLI under the hood. The protocol provides auth, audit, and orchestration. The CLI provides speed, reliability, and composability.

If you skip the CLI and go straight to MCP, you get a governance layer with nothing efficient underneath it. Your agents spend tokens on protocol overhead instead of reasoning. Your developers can't debug with a terminal. Your automation doesn't compose with the Unix ecosystem.

<Blockquote
quote="Start with a great CLI. Add MCP when governance demands it. Never build MCP as a substitute for good CLI design."
person="Lee Calcote"
title="Founder, Layer5"
/>

## The Honest Forecast

MCP is not going away. The adoption is too broad, the backing too strong, the enterprise need too real. Google, OpenAI, Anthropic, and the major framework vendors are committed. The protocol will mature, the security model will harden, and the consolidation will produce a smaller set of high-quality, well-maintained servers.

But MCP is also not the universal interface that the initial hype suggested. The "MCP for everything" era is already ending. Teams are learning - sometimes painfully - that CLI is faster, cheaper, and more debuggable for the majority of developer-facing agent workflows. MCP earns its place in enterprise governance, multi-agent coordination, and sandboxed environments. Outside those contexts, it's overhead.

The tools that will define the next phase of agentic infrastructure are the ones that get this layering right. CLI for execution. MCP for governance. Both designed with the same first principle: build for the human, enable the agent.

<CTA_FullWidth
image={CTAImg}
heading="Explore Meshery's Agent-Native CLI"
alt="Meshery - Cloud Native Manager"
content="Meshery is the open source, cloud native management plane for Kubernetes and cloud native infrastructure. See how mesheryctl is being designed for both humans and agents."
button_text="Get Meshery"
url="/cloud-native-management/meshery"
external_link={false}
/>

<div className="outro">
<p>
The mesheryctl functional design spec is open for community input, including the MCP surface proposal. Join the conversation in the <a href="https://slack.meshery.io" target="_blank" rel="noopener noreferrer">Meshery Slack</a> or explore the <Link to="/cloud-native-management/meshery">Meshery playground</Link> to see agent-native CLI design in practice.
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The link text says 'Meshery playground' but the URL points to /cloud-native-management/meshery (which reads like a product/overview page). If the intention is to link to an actual playground, update the to target; otherwise, rename the anchor text to match the destination.

Suggested change
The mesheryctl functional design spec is open for community input, including the MCP surface proposal. Join the conversation in the <a href="https://slack.meshery.io" target="_blank" rel="noopener noreferrer">Meshery Slack</a> or explore the <Link to="/cloud-native-management/meshery">Meshery playground</Link> to see agent-native CLI design in practice.
The mesheryctl functional design spec is open for community input, including the MCP surface proposal. Join the conversation in the <a href="https://slack.meshery.io" target="_blank" rel="noopener noreferrer">Meshery Slack</a> or explore <Link to="/cloud-native-management/meshery">Meshery</Link> to see agent-native CLI design in practice.

Copilot uses AI. Check for mistakes.
</p>
</div>

</BlogWrapper>
Loading