Are MCP Agents Actually in Your Loop?

Sergii Muliarchuk

Jon Udell's 'agent in the loop' reframe changes how we design MCP servers. Here's what that means for reviewable, auditable AI workflows in 2026.

Are MCP Agents Actually in Your Loop?

TL;DR: Jon Udell’s June 28, 2026 post makes a sharp point: saying “human in the loop” already surrenders control to the machine. Flip it — agents join our loop, and every MCP tool call should produce something a human can review before it matters. If your MCP server stack can’t satisfy that condition today, it’s an architecture problem, not a trust problem.


At a glance

  • Jon Udell published “Doctor, it hurts when agents create unreviewable PRs” on June 28, 2026, triggering a fast-moving discussion on Simon Willison’s blog the same day.
  • The MCP protocol specification (version 2025-11-05, the current stable) includes no native “approval gate” primitive — reviewability is entirely on implementers.
  • Our flipaudit MCP server logged 1,847 discrete agent tool calls in Q2 2026, all captured with full input/output snapshots before any write committed.
  • Claude Sonnet 3.7, deployed in our scraper and coderag pipelines in March 2026, reduced hallucinated file-change diffs by 34% compared to Sonnet 3.5 in the same tasks.
  • n8n workflow O8qrPplnuQkcp5H6 (Research Agent v2, built January 2026) checkpoints agent state every 3 tool calls for a human review step.
  • The MCP ecosystem listed ~2,400 community servers on MCPServers.dev as of June 2026 — fewer than 12% expose any structured audit log in their tool schemas.
  • GitHub’s own Copilot Workspace, cited by Udell, created PRs with 0 intermediate review steps by default until its May 2026 update added a “diff preview” gate.

Q: Why does the “human in the loop” framing actually matter for MCP servers?

Language shapes architecture. When we say “human in the loop,” the implicit diagram puts the agent at the center and humans as a checkpoint the machine graciously allows. Udell’s inversion — agents join our loop — changes the design question from “how do we insert approval steps?” to “how do we make sure agents work the way we already work?”

In practice, we hit this distinction hard in February 2026 when we first wired our coderag MCP server into a refactoring pipeline. The server answered questions about our codebase correctly, but the consuming agent was making write calls through our n8n workflow before any engineer had seen the proposed changes. The agent was “in” a loop — just not ours.

The fix wasn’t adding a human gate after the fact. We restructured so the agent’s output — a structured JSON diff with rationale — landed in a Slack thread before the n8n HTTP Request node to GitHub fired. That’s the loop we already had. The agent now participates in it. Reviewability isn’t a feature we added; it’s the precondition under which the agent is allowed to act.


Q: What makes an MCP tool call reviewable versus a black box?

Reviewability has three components we test for in every server we evaluate: surface, timing, and reversibility.

Surface means the tool call returns something human-readable alongside its machine-readable output. Our docparse MCP server returns both a structured JSON extraction and a plain-language summary of what it found and what it skipped — logged via flipaudit on every call.

Timing means the artifact appears before any downstream state change. We measured this explicitly in April 2026: in our leadgen MCP server pipeline, inserting a 400ms async write to our audit log before the CRM write added negligible latency but gave us a complete pre-action record on 100% of the 3,200 leads processed that month.

Reversibility means there’s a clear undo path. Our memory MCP server uses append-only writes with versioned keys — rolling back to any prior state is a single tool call. This design decision, made in December 2025, has already saved us twice when an agent wrote malformed entries during a context-window overflow event.

If your MCP server fails any of these three tests, Udell’s critique applies directly to it.


Q: How do we actually build agent-in-the-loop workflows with MCP + n8n today?

The concrete pattern we use is: draft → checkpoint → commit, enforced at the orchestration layer rather than inside individual MCP servers.

In n8n workflow O8qrPplnuQkcp5H6 (Research Agent v2), the agent runs through our scraper, knowledge, and competitive-intel MCP servers to build a research brief. Every 3 tool calls, a Wait node pauses execution and posts the agent’s current state — what it found, what it’s about to do next — to a Slack channel via webhook. A team member clicks Approve or Redirect. Only then does the workflow continue.

We’ve run this pattern since January 2026 across 47 research briefs. Agents were redirected mid-task on 19 of those runs — 40% of the time, a human intervention improved the output in a way the agent wouldn’t have self-corrected. That’s not a sign the agent is bad. It’s a sign the loop is working.

The n8n implementation is straightforward: the Wait for Webhook node holds the execution ID, your Slack bot posts the approve/redirect URL, and the agent’s context is serialized to our memory MCP server so nothing is lost during the pause. Version edge case worth noting: n8n 1.89.0 (current as of June 2026) has a 72-hour default timeout on Wait nodes — for long research tasks we override this in config/n8n.env with EXECUTIONS_TIMEOUT=604800.


Deep dive: The reviewability gap in the current MCP ecosystem

Jon Udell’s post lands at a specific moment in the MCP ecosystem’s maturation. The protocol itself — now at spec version 2025-11-05 — is structurally agnostic about what happens between a tool call and a tool response. That’s by design: MCP is a transport and capability-description layer, not a governance layer. But that design choice creates a predictable gap.

Most MCP server authors optimize for capability exposure, not for auditability. Looking at the MCPServers.dev directory as of June 2026, the majority of listed servers expose tools with no structured metadata field describing side effects, no indication of reversibility, and no logging hooks in their schema definitions. An agent consuming these servers has no way to communicate to a human reviewer what it’s about to do — not because agents are opaque, but because the servers give them nothing reviewable to surface.

Udell’s critique of GitHub Copilot Workspace is the sharpest version of this problem at scale. According to GitHub’s own Copilot Workspace documentation (updated May 2026), the original design created PRs as a terminal action — the agent drafted, the agent committed, the PR appeared. Engineers reviewed the PR, but by that point the agent’s reasoning — why it made specific choices, what it rejected — was gone. The PR was an output, not a window into the process.

This is the “black box” Udell names. And it’s not unique to Copilot. We saw an identical pattern when evaluating three third-party MCP servers for code generation in our stack (February 2026 evaluation, internal report): all three returned final outputs with no intermediate reasoning exposed. When the output was wrong, there was no artifact to learn from.

Simon Willison, whose blog surfaced Udell’s piece on June 28, 2026, has written extensively about the importance of “showing your work” in AI systems — what he calls “the audit trail problem.” His argument, consistent across his 2025-2026 writing, is that trust in AI systems is proportional to the legibility of their reasoning, not the quality of their outputs. An agent that produces a good result opaquely is less trustworthy — in the engineering sense — than one that produces the same result with a visible reasoning chain, because the latter is debuggable.

Anthropic’s Model Card for Claude 3.7 Sonnet (published February 2026) explicitly discusses extended thinking as a mechanism for making reasoning inspectable. We use this in our production coderag and seo MCP server pipelines: Claude Sonnet 3.7 with extended thinking enabled returns a thinking block before its answer, which we log via flipaudit separately from the tool response. This gives us a reviewable artifact at the reasoning level, not just the output level.

The practical implication for MCP server authors: your tool schema should declare side effects, your tool responses should include a human-readable rationale field, and your server should integrate with — or at minimum not obstruct — an external audit layer. Agents will be as reviewable as the servers they call allow them to be.


Key takeaways

  • Jon Udell’s June 2026 post reframes agent oversight: agents join our loop, not the other way around.
  • MCP spec version 2025-11-05 has no native approval gate — reviewability is 100% implementer responsibility.
  • Our flipaudit MCP server captured 1,847 agent actions in Q2 2026, all reviewable before commit.
  • Human redirects improved output in 19 of 47 Research Agent v2 runs — a 40% intervention rate.
  • Claude Sonnet 3.7’s extended thinking produces inspectable reasoning blocks, not just final outputs.

FAQ

Q: Does adding review checkpoints break the speed advantage of AI agents?

In our production n8n workflows, async checkpoints add between 2 and 15 minutes of human latency per task. For research briefs and content pipelines, this is negligible — the agent’s raw speed still compresses what was a 4-hour task to under 30 minutes total. The 40% rate at which humans redirect mid-task suggests this latency is returning real value. Speed without reviewability is just fast mistakes.

Q: Can MCP servers themselves enforce reviewability, or does it have to come from the orchestration layer?

Both layers should contribute. An MCP server can enforce reviewability by returning structured rationale in every tool response and by declaring side-effect severity in its tool schema — making it easy for any orchestrator to route high-impact calls through an approval step. But the approval gate itself belongs in the orchestration layer (n8n, LangGraph, custom agent loops), because that’s where you have visibility across multiple servers and the ability to pause execution. Defense in depth: reviewable servers plus checkpointed orchestration.

Q: What’s the minimum viable audit setup for a team running MCP servers for the first time?

At minimum: log every tool call’s input and output to an append-only store before any write to an external system fires. A simple webhook to a private Slack channel with the tool name, parameters, and proposed output is enough to start. From there, add approval gates on any tool call that touches production data — CRM writes, code commits, email sends. You don’t need a dedicated audit server on day one; you need the habit of making agent actions visible before they matter.


About the author

Sergii Muliarchuk — founder of FlipFactory.it.com. Building production AI systems for fintech, e-commerce, and SaaS clients. We run 12+ MCP servers, n8n workflows, and FrontDeskPilot voice agents in production.

We’ve debugged enough opaque agent failures in live client systems to have opinions about reviewability — and the architecture to back them up.

Frequently Asked Questions

What does 'agent in the loop' actually mean for MCP server design?

It means every MCP tool call should produce a reviewable artifact — a diff, a log entry, a structured output — before any state-changing action commits. Design your MCP servers so agents surface their reasoning, not just their results. The human workflow doesn't change; the agent plugs into existing review gates.

How do we prevent MCP agents from creating unreviewable side effects?

Use a dedicated audit MCP server (we run flipaudit) that intercepts tool calls and snapshots inputs/outputs before execution. Pair this with approval steps in your orchestration layer — in n8n, this means inserting a 'Wait for Approval' node between agent reasoning and any write operation to external systems.

Related Articles