LetterMCP

Building Agentic AI with MCP Orchestration

Correspondent · · 13 min read
Cover illustration for “Building Agentic AI with MCP Orchestration”
Agentic AI Foundations · August 20, 2026 · 13 min read · 2,853 words

MCP orchestration is what happens when an AI agent stops calling one tool and starts chaining calls across a dozen systems to finish a job end to end. That's the technical shift, but the bigger shift is that MCP, the open standard Anthropic released in late 2024 for connecting AI assistants to outside tools and data, has gone from a clever way to plug a chatbot into a filesystem to the connective tissue for enterprise agent workflows. Anthropic donated it to the Agentic AI Foundation under the Linux Foundation in December 2025, and by then Anthropic, OpenAI, Google, and Microsoft were all building on it. That's not a niche protocol anymore; that's infrastructure, and infrastructure has to hold weight.

I've spent enough time inside MCP deployments to know where the weight cracks the foundation. The client-server model is elegant: hosts run MCP clients, servers expose tools and resources and prompts, and the agent just needs to know what it can call, not how the call works underneath. That decoupling is the whole point, and it's also exactly where governance gets left behind, because nobody budgets time for security review on something that feels like plumbing.

How MCP orchestration scales agentic AI from single tools to enterprise workflows

A single-tool agent looks up a record and returns an answer. An orchestrated one reads a CRM, drafts a contract, files it in a document system, and pings a Slack channel, all without a human touching any step in between. That's the difference between a tool and a workflow, and it's the difference enterprises are actually paying for.

The pattern underneath most of these systems is an orchestrator agent that breaks a task into pieces and hands each piece to a specialist. Each specialist might hold its own MCP connections, meaning a single user request can fan out across four, five, six different servers before it resolves. Gartner projects that a substantial share of enterprise applications will carry task-specific AI agents by the end of 2026, up from a small fraction in 2025. That's a curve bending sharply upward, and the agentic AI market has grown into a multibillion-dollar segment with, per MarketsandMarkets, dramatic growth forecast through the early 2030s.

The return is showing up too. Google Cloud's 2025 ROI Report found roughly three-quarters of executives running AI agents saw ROI within the first year, so the economic case is closed; nobody's debating whether orchestration is worth building.

Here's the part that gets glossed over in the excitement: every additional MCP server in that workflow is another trust relationship the enterprise has to manage. Scale isn't just a performance story, it's a governance story, and it compounds the same way the workflow does, one hop at a time.

Where the MCP trust model breaks down under adversarial conditions

MCP clients inherit trust from the servers they connect to, and that trust gets established once, at connection time, then assumed forever after, with nothing re-checking it. That's the design tension sitting underneath every incident I'm about to walk through.

Tool poisoning, cataloged as OWASP MCP03:2025, is the clearest example. An attacker embeds malicious instructions inside a tool's description field, the model reads that field as legitimate guidance, and the agent executes it, because there's no way for the model to tell a poisoned description from an honest one. Three variants matter here. Tool description poisoning is straightforward, since the attacker controls the metadata the model reads. Rug-pull attacks are sneakier: a server ships an innocent-looking description at install time, earns the user's approval, then quietly mutates the description on a later connection, and most client UIs only prompt once, at first approval, so nobody ever sees the change. Tool shadowing lets a malicious tool override a trusted tool already sitting in the session.

You'd think the smarter models would resist this better, but they don't. Research on the MCPTox benchmark, run across 45 live MCP servers and hundreds of real tools, found that models better at following instructions were often more susceptible to poisoned descriptions, not less. Their compliance is the attack surface, and that's a hard fact to sit with, because it means the industry's whole direction, building more capable, more obedient models, cuts against security rather than toward it.

Indirect prompt injection makes it worse. Every byte that lands in the context window, whether it's the user's prompt, the system message, or a tool description pulled from some third-party server, carries the same authority once it's in there. The model has no built-in way to rank trust, and a poisoned tool response looks exactly like a trusted instruction.

And this isn't theoretical. A 2026 arXiv study surveying more than 1,800 deployed MCP servers found over 30% carried at least one exploitable vulnerability. A separate analysis from BlueRock Security found 36.7% of public MCP servers vulnerable to server-side request forgery. CVE-2025-49596, rated critical on the CVSS scale, allowed arbitrary command execution through unauthenticated MCP Inspector instances; NSA's May 2026 MCP security guidance calls it out by name. The Postmark backdoor is the one that should worry every team running a "trusted" third-party integration: the official server's maintainer silently BCC'd every sent email to an attacker-controlled address, across multiple versions, before anyone caught it. And the LiteLLM supply-chain compromise backdoored tens of thousands of machines within roughly 40 minutes of a malicious package landing on PyPI, a window most security teams can't even monitor in real time.

The World Economic Forum's January 2026 report named what may be the first confirmed AI-orchestrated cyber-espionage campaign: a single attacker used Claude alongside MCP tools across the full intrusion lifecycle, breaching multiple government agencies. That's the trust model failing at nation-state scale, not lab-demo scale.

Table: MCP Vulnerability Patterns and Their Impact. Compares Attack Vector, Why It Works, Scale of Exposure and Primary Defense by Tool Poisoning, Credential Exposure and Auth Gap in Multi-Agent Chains.

What authentication looks like once MCP leaves the localhost

The original MCP release simply didn't have identity and access management built in, with no standardized authentication and no authorization mechanism. That was fine when MCP lived on someone's laptop, talking to a local filesystem, but it stopped being fine the moment enterprises wanted it talking to production systems.

The June 2025 spec update fixed the first half of that, formalizing OAuth 2.1 as the authentication standard for remote MCP servers, requiring PKCE, and specifying resource indicators. That's a real maturation from where the protocol started. Then the November 2025 revision added Cross-Application Authorization, or XAA, which lets enterprise identity providers actually see and govern agent-to-application connections instead of just user-to-application logins. That closes a shadow-IT gap that had been wide open.

Here's the non-negotiable part: MCP authentication has to flow through Okta, Azure AD, Google Workspace, or an equivalent identity provider, not around it. If security teams can't see the connection, they can't govern it, full stop. And machine-to-machine auth, the kind agents need for scheduled or triggered workflows with no human in the loop, is a genuinely different design problem than interactive user login, one that needs its own thought rather than a copy-paste of the user flow.

Microsoft folded MCP directly into Azure AI Agent Service back in May 2025, layering OAuth 2.1 and cloud-scale deployment right on top of the protocol. That's a decent picture of what enterprise-grade MCP auth looks like once someone builds the managed version properly.

But OAuth 2.1 authenticates the connection; it doesn't tell you anything about the delegation chain that led to the call. In a multi-hop workflow, OAuth confirms who made the final request; it has nothing to say about who authorized the three or four steps that got the request there in the first place.

The authorization gap OAuth leaves open in multi-agent workflows

Venn diagram: MCP Authentication vs. Authorization. Compares Authentication and Authorization; overlap: Both Required.

Authentication and authorization are not the same problem, and OAuth solves the first one. The privileges baked into a token at creation time are fixed, and they don't flex based on what the agent is actually doing in the moment, which is where multi-agent workflows get exposed.

Picture an orchestrator delegating to a specialist agent, which then calls an MCP tool. OAuth authenticates that final call, but it carries no trace of who authorized the chain of delegation that got there. Worse, scope attenuation doesn't happen by default: a token can't be narrowed as it moves from agent to agent, so the downstream agent inherits the upstream agent's full privileges even when it only needed a sliver of them.

Which agents can touch which data, in what context, using which tools: MCP the spec is silent on all of it, and no guardrails come from the protocol. The architecture has to supply them.

Least-privilege design, in practice, means a handful of concrete habits.

  • Scope permissions to the task at hand, not the widest access available.
  • Issue time-bound tokens that expire the moment the task finishes.
  • Write context-aware policies, so an agent triggered by a human interactively has different permissions than the same agent running an unattended overnight batch job.
  • Bind each agent to specific tools it's explicitly cleared for, not the entire server catalog by default.

The practical upshot: authorization policy can't live only inside the MCP server. It has to be enforced at the orchestration layer, because that's where the delegation decisions actually get made.

Why credential management is the most exploited gap in current MCP deployments

Walk into most early MCP deployments and you'll find the same pattern: a long-lived API key sitting in a.env file, or injected as an environment variable at startup, with no expiration, no scope limit, and no separation between environments. That key opens the same door whether the agent's doing a harmless read-only lookup or trying to overwrite a production table, and that's the whole problem in one sentence.

GitGuardian's 2026 State of Secrets Sprawl report found tens of thousands of unique secrets sitting in MCP configuration files within the protocol's first year of real adoption. AI-service credentials were the fastest-growing category of exposed secrets on public GitHub, which tells you this isn't a fringe mistake a few careless teams made; it's a pattern. And GitGuardian's longitudinal tracking shows a large share of confirmed leaked credentials stay active and exploitable years after they first leaked, with nobody rotating them and nobody even knowing to look.

The fix is a vault architecture, and it's not complicated once you see it laid out.

  • Credential storage moves to a separate service; the agent itself never touches a raw secret.
  • The MCP server becomes the boundary: the agent holds a scoped OAuth token to call the tool, while the actual downstream service credential gets pulled server-side from the vault and never reaches the model.
  • Every credential use lands in one audit trail, not scattered across a dozen agent logs nobody's correlating.
  • If the agent gets compromised, the attacker inherits the agent's scoped token, not the underlying service credential, and the blast radius shrinks considerably.

There's a second benefit that's easy to miss: a vault architecture also kills a whole class of prompt injection, since if the model never holds the token in the first place, a hidden instruction buried in some parsed document has nothing to steal.

Static secrets should be on their way out entirely. OAuth 2.1 with scoped, delegated access covers SaaS integrations, while workload identity federation or managed identities cover cloud workloads. API keys should be the last resort, and even then, vault-backed, scoped per agent, with expiration enforced, not optional.

Audit logs and observability as the missing layer in most agentic architectures

Ask most teams what their agent was supposed to do, and they'll tell you confidently. Ask what it actually did, which tool it called, with which credential, on whose behalf, in response to which input, and the confidence disappears fast. That gap is the most common blind spot I see in agentic architecture, and it's the one that turns a bad incident into an unsolvable one.

A single user action can fan out into dozens of tool calls across several MCP servers in one orchestrated run. Tracing responsibility through that chain requires structured logging at every hop, not just a log line at the entry point where the user made the request. A useful audit record needs to capture the identity that started the chain, every delegation step between agents, the exact tool invoked, the inputs passed to it, the credential used, and the output returned, and none of it means anything if it can be edited after the fact.

OpenTelemetry, OTEL, is the instrumentation standard that actually fits this problem. Distributed tracing built on OTEL can follow a request across agent hops and MCP servers, stitching every span into one coherent trace. It's the same tooling most enterprises already run for microservices, so this isn't new infrastructure, it's an extension of infrastructure teams already trust.

Regulators are catching up to this fast. Expect audit trails for automated decisions to get the same scrutiny human decisions get, especially in workflows touching financial records, healthcare data, or customer PII. A log that can't survive a regulatory inquiry isn't a log, it's a liability with extra steps.

The detection side matters just as much as the compliance side. Anomaly detection over these logs, an agent invoking a tool it's never called before, reading data outside its normal scope, or running an unusual volume of reads right before data starts leaving the system, only works if the log captures tool-call-level detail. Session-level logging misses all of it.

And the log itself has to sit outside the agent's reach, since logs an agent can write to are logs an attacker who's compromised that agent can also write to. Write-once, held outside the trust boundary; anything less isn't really an audit trail.

How governance policy turns MCP permissions from a checklist into a runtime control

A policy document sitting in a wiki does nothing for an agent mid-workflow. It has to get enforced at the tool-call level, right where the action actually happens, or it's not really a policy at all, just a nice intention.

Real governance policy has to answer a handful of specific questions: which agents can use which MCP servers, which tools on those servers each agent is allowed to invoke, and under what conditions those permissions actually stay active, time of day, trigger type, data classification. It also has to decide what needs a human's sign-off before it runs versus what's allowed to proceed on its own.

That human-in-the-loop decision isn't a fallback setting; it's a deliberate design choice. For anything high-stakes, deleting records, sending an email outside the company, changing access controls, the approval checkpoint belongs in the workflow itself, built in from the start, not bolted on after something goes wrong.

SSO and SCIM give this a foundation to stand on. Tying every agent action to a human identity through SSO, and provisioning agent access through SCIM-managed groups, lets security teams treat their agent population roughly the way they treat their human workforce: onboarded, scoped, and offboarded on a schedule they control.

Just-in-time credential issuance is where least privilege actually becomes operational instead of aspirational. Credentials get provisioned for the exact duration of a specific task, scoped to exactly what that task needs, and revoked automatically the second it's done, with no lingering access and no forgotten grant sitting around for a year.

Watch out for shadow MCP. Without a central policy layer, teams will spin up their own server connections outside IT's view, the same shadow-IT pattern that plagued SaaS adoption a decade ago, except this time it's carrying agent-level access straight into production systems. Security teams that want to actually stop this need to make the secure path the easy path: pre-approved server catalogs, self-service agent setup with the controls already wired in. Make the safe route faster than the risky one, and most people will take it without being told to.

What a production-ready MCP architecture looks like when governance is built in from the start

Governance built into the foundation costs less than governance bolted on afterward, and it fails less often too. That's not a hedge; it's the pattern across every deployment I've watched succeed versus stall out mid-rollout.

A production-ready setup ties every agent to an identity through the enterprise IdP, using OAuth 2.1 and XAA so security teams see every agent-to-application connection the moment it's made, not months later during an audit. It scopes authorization at the orchestration layer, not just the server, so delegation chains carry real, narrowing permissions instead of a single token's full privileges riding along unchanged from hop to hop. Credentials live in a vault, never in the model's context, and rotate on a schedule short enough that a leaked secret is useless by the time anyone finds it. Every tool call writes to a tamper-evident, OTEL-based trace that a compliance team can hand to a regulator without flinching. And policy runs as a live, enforced layer at the point of each tool call, not a document someone wrote six months ago and forgot to update.

None of this is exotic. Every piece already exists in some form across identity, security, and observability tooling enterprises already run. The only real decision left is whether it gets designed in before the first agent touches production, or discovered the hard way after.

Sources

  1. nsa.gov
  2. authzed.com
  3. arxiv.org
  4. arxiv.org

More in Agentic AI Foundations