**TL;DR —** MCP went GA in July 2026 with stateless request/response and a new approval primitive called MRTR. That's the right protocol for customer-facing tools. For your own coding harness, CLI + short skills still beats MCP on cost and reliability. Pick the lane by who's on the other end.

---

## The spec change (2026-07-28, GA)

The new MCP spec is stateless: no `initialize` handshake, no `Mcp-Session-Id`. Each call is self-describing, and `Mcp-Method` / `Mcp-Name` headers let a gateway route without parsing JSON.

The interesting part is **MRTR — multi round-trip requests**. A tool can return `resultType: "input_required"`, and the client retries with `inputResponses`. That's an elicitation flow without a held-open stream — the protocol-level answer to "the agent must ask a human before it does something." Tasks move into the `io.modelcontextprotocol/tasks` extension; DCR is formally deprecated in favor of Client ID Metadata Documents.

## The cost counterweight

The paper people keep citing this week is Scalekit's 75-run GitHub benchmark (11 Mar 2026): **MCP used 4–32× the tokens of CLI** on the same Sonnet-4 tasks. CLI completed 25/25; MCP 18/25 — and every MCP failure was a Copilot MCP ConnectTimeout, not a protocol error.

Anthropic's own Claude Code guidance (14 Aug 2026) says it plainly: MCP tool definitions sit in the session prefix, and every change busts the prompt cache. Run `/context` in a fresh session, `/clear` between tasks, and don't switch `/model` or `/effort` mid-session.

## The two-lane rule

**Lane A — our coding harness:** Docker sandbox + CLI + short skills. No fat GitHub/Jira MCP server on the gateway "just in case." It's documented waste. This is the lean, cache-friendly architecture we standardize in [OpenStart](https://github.com/vijayatechlabs) harnesses and our [Hermes Agent ops stack](/blog/we-run-company-on-hermes-agent-ops-stack).

**Lane B — customer-facing tools:** MCP 2026-07-28 + MRTR, and every write path — send reminder, post invoice, change credit hold — goes through `input_required` first. That's the approval gate you can show a customer. We apply this principle across our [Assist-Augment-Replace framework](/blog/assist-augment-replace-framework) when differentiating between basic bots and autonomous systems (see [AI Chatbot vs AI Agent](/blog/ai-chatbot-vs-ai-agent)).

One more reason Lane A stays sandboxed: this week's open-weights GLM-5.3 shows a sharp coding jump alongside an emergent exploit-research jump. Unattended coding agents don't belong on hosts.

---

## Frequently Asked Questions

### What is MRTR in the MCP specification?
MRTR (Multi Round-Trip Requests) is a protocol primitive introduced in the MCP 2026-07-28 GA specification. It allows an MCP tool to respond with `resultType: "input_required"`, signaling the client to collect user input or approval before resuming the action. This enables stateless, secure human-in-the-loop gates without maintaining persistent streaming connections.

### Why does MCP consume significantly more tokens than CLI tool calls in developer harnesses?
MCP servers expose their full tool schemas and JSON parameters in the session prefix. In agent harnesses with dozens of tools, these bulky schemas bloat every interaction and frequently invalidate LLM prompt caching. CLI-based skills load instructions on-demand, consuming 4–32× fewer tokens.

---

## Sources

- MCP 2026-07-28 spec announcement — https://blog.modelcontextprotocol.io/posts/2026-07-28/
- Scalekit, MCP vs CLI benchmark, 11 Mar 2026
- Anthropic, "Maximizing the value of your Claude Code sessions", 14 Aug 2026
- Z.ai, GLM-5.3 (14 Aug 2026); Hacker News item 49294997