MarkTechPost Article Separates Agent Harness, Framework and MCP as Distinct Layers
A MarkTechPost article published Sept. 14, 2026, says agent harnesses, agent frameworks and MCP are often conflated but own different parts of the execution loop, state, tools, permissions and recovery.
According to the article, an agent harness is the execution system that wraps a model and turns it into a working agent. It cites OpenAI's Codex platform post from Aug. 19, 2026, which defines the harness as managing conversation state, streaming execution and using tools. The harness also enforces sandbox and approval policies and carries work across turns. Anthropic's Claude Code documentation uses the term "agentic harness," and the Claude Agent SDK exposes "the same tools, agent loop, and context management that power Claude Code." The article describes a harness as opinionated: it ships a loop, a permission model, a sandbox and a context strategy as one unit.
A framework, by contrast, is a library of primitives for composing agents. It covers model clients, tool abstractions, graph orchestration, memory interfaces and observability hooks. Examples named in the article include LangGraph, the OpenAI Agents SDK and Microsoft Agent Framework, which reached 1.0 GA in April 2026. A framework supplies the parts and the loop skeleton, while the developer decides policy.
MCP is a wire protocol, not a runtime. It standardizes how an LLM application, or host, discovers and calls capabilities exposed by servers: tools, resources and prompts. MCP uses JSON-RPC 2.0 messages between hosts, clients and servers. Since December 2025, the article says, the Linux Foundation's Agentic AI Foundation has governed MCP alongside goose, AGENTS.md and now A2A. MCP owns no loop and no agent state; it owns the contract between the agent and its tools.
The article's ownership matrix distinguishes "owns" from "exposes." A harness owns the execution loop by default, with a fixed, product-grade loop that has turn limits and compaction. A framework owns the loop skeleton, letting users configure termination, handoffs and turn caps. MCP has no loop and handles request and response only.
For state and memory, the harness owns sessions, resume, fork and file checkpointing. The framework exposes checkpointers, session stores and thread IDs. MCP has no protocol-level state since the 2026-07-28 specification, according to the article. On tool transport, harnesses consume built-in tools and an MCP client; frameworks consume function tools and an MCP client; MCP owns JSON-RPC over stdio or Streamable HTTP.
Permissions and approvals are owned by the harness, which defines permission modes, hooks and sandbox behavior. Frameworks expose guardrails, interrupts and middleware. MCP delegates permissions to the host and cannot enforce them. Recovery is also a harness responsibility, including session resume, checkpoint rewind and compaction. Frameworks expose durable execution, replay and retries, while MCP provides only partial support through a tasks extension for long-running calls.
The article further says harnesses own isolation and sandboxing through OS sandboxes, worktrees and containers. Frameworks may offer hosted sandboxes or micro-VMs as an option, but MCP has none. For multi-agent orchestration, harnesses own patterns such as subagents and dynamic workflows; frameworks own primitives such as graphs, handoffs and fan-out; MCP does not cover it, with A2A addressing agent-to-agent communication.
The article also details loop differences. The Claude Agent SDK documents a five-step loop: receive prompt, evaluate and respond, execute tools, repeat, return result. A full cycle is one turn, and the loop ends when Claude produces a response with no tool calls. Hooks can intercept, modify or block tool calls before they run, but the loop itself is not user-rewritable. OpenAI's Codex harness exposes the loop through app-server, a documented client protocol; applications create threads, start turns, receive events and handle approval requests. In the OpenAI Agents SDK, the loop terminates on final output, re-runs on handoff or executes tool calls and continues; exceeding max_turns raises MaxTurnsExceeded, and a guardrail tripwire raises GuardrailTripwireTriggered. In LangGraph, the loop is the graph the developer draws, with nodes, edges and conditional routing defining control flow.
MCP's loop role is limited. Since the 2026-07-28 specification, the article says, MCP no longer has a handshake. The initialize/initialized exchange and Mcp-Session-Id header were retired. Every request travels alone, carrying its protocol version and client capabilities in _meta. The host's loop decides when to call tools/call, while MCP defines only what that call looks like on the wire.
Editor's Summary
A MarkTechPost article separates agent harness, agent framework and MCP by assigning default ownership of execution loops, state, tool transport, permissions, recovery, isolation and multi-agent orchestration. Harnesses ship product-grade execution and policy, frameworks provide composable primitives, and MCP standardizes the tool contract without owning a loop or agent state. The distinction matters as agent architectures increasingly overlap at the edges.