LetterMCP

Autonomous Agent Roles in MCP Orchestration Workflows

Agents juggling multiple roles create governance gaps MCP doesn't solve.

Features Editor · · 10 min read
Cover illustration for “Autonomous Agent Roles in MCP Orchestration Workflows”
Agentic AI Foundations · August 29, 2026 · 10 min read · 2,357 words

MCP, the Model Context Protocol, is the standard Anthropic released in late 2024 for connecting AI systems to external tools and data. People call it the "USB-C port" for agents, and that's fair enough: one connector, many devices, no custom cable for every job. What gets less attention is what that connector assumes about trust, and that assumption is where most of the real risk in agent deployments actually lives.

MCP defines three roles. The Host is the LLM application running the orchestration loop, deciding what happens next. The Client sits inside the Host and does the grunt work: pulling tool metadata, resource descriptors, and prompt templates from servers, then executing calls under the agent's direction. The Server is the source of truth, holding the tools, the indexed resources (files, database rows, search results), and the canonical prompt templates everything else depends on.

The handshake, in practice, goes like this. The agent asks the Client for tool metadata. The model plans and builds a tool call. The Client runs it. The response comes back, and the model turns it into an answer. Simple enough on paper, except these three roles carry different trust assumptions, and treating them as interchangeable is where things go wrong. A Host assumes it can plan safely. A Client assumes what the Server tells it is accurate. A Server assumes it's the authority, full stop. Blur these lines, or let one agent quietly hold more than one role at once, and governance starts to erode fast. MCP is schema-driven and machine-readable by design, which is exactly what makes it composable. It also means the protocol behaves however the server declares it should behave. That single fact matters more than almost anything else in this piece.

How agents move across Host, Client, and Server in multi-agent workflows

Single-agent MCP is easy enough to picture: one agent, one loop, one set of tools. Multi-agent MCP is where it gets messy, and honestly, where most enterprise deployments are actually headed.

An agent can be a Host in one workflow and a Server in another, at the same exact time. Take a research agent: it acts as Server to the parent orchestrator that called it, while turning around and acting as Host to a handful of sub-agents it just spawned to dig through documents. It coordinates them with the same MCP primitives everyone else uses, no special scaffolding needed, then hands back one coherent answer to whoever asked in the first place.

That's the clean version. A single agent process can hold Host-level planning authority, Client-level execution rights, and Server-level trust from its callers, all at once, and the protocol has no native way to track any of it. The orchestration graph, the actual map of who called who and under what authority, isn't visible to any one participant standing inside it. Nobody in the chain can see the whole chain.

This isn't a hypothetical dreamed up for a whitepaper, either. The public MCP server registry has grown from a handful of listings to a very large number in a short stretch of time, and every new server is a new potential node in somebody's orchestration graph. The number of possible paths between agents has scaled a lot faster than the tooling meant to watch those paths.

Why governance becomes the hard problem once agents can act, not just answer

Something shifts the moment an agent stops answering questions and starts taking actions. Pushing a change to a cloud service, kicking off a long-running workflow, coordinating other agents: none of that forgives a wrong guess the way a bad chatbot answer does. Accuracy stops being the whole story. Accountability moves to the front of the line.

Talk to enterprises actually running these systems, and the question that keeps coming up isn't "is the output correct." It's who authorized this, which agent actually did it, and can we undo it. That's a governance question, entirely separate from model quality, and it needs its own answer.

Multi-role architectures make this harder. When an agent is orchestrator one moment and sub-agent the next, tracing a specific action back to a specific authorization decision gets genuinely difficult. MCP has no central authority by design, and role context doesn't travel with the request across hops. Governance can't be read off the wire here. It has to be built into the deployment on purpose, because the protocol isn't going to hand it to anyone.

And this isn't a phase anyone gets to wait out. Anthropic donated MCP to the Agentic AI Foundation under the Linux Foundation, with a long list of major vendors signing on as founding members. This is durable infrastructure now, the kind organizations are building five-year plans on top of. So the governance conversation has to happen at the role level: what can a Host authorize, what can a Client actually execute, what should a Server be allowed to expose, and who's checking each of those.

The trust problem baked into how Clients inherit authority from Servers

MCP Clients inherit trust from the Servers they connect to, and once that connection is made, nothing checks whether the trust still holds. That's the mechanism that should worry people more than it currently does.

Whatever a Server puts in its tool descriptions, its parameter schemas, its response content, the Client treats as legitimate operational context. That's by design. It's also the entire attack surface, in one sentence.

Tool poisoning lives right in that gap. An adversarial instruction hidden inside a tool description, or slipped into a response, gets processed by the agent as guidance, because the agent has no reason to think otherwise. Three variants show up in practice, and they all trace back to the same root cause:

  • Tool description poisoning: malicious instructions buried in the description text the model reads before it ever decides to call the tool.
  • Rug-pull attacks: a tool's description or actual behavior changes quietly after a user already approved it, so the approval covers something that no longer exists.
  • Tool shadowing: a malicious server leans on its trusted position to intercept or override calls meant for a different, adjacent trusted server.

Rug-pulls are a direct consequence of a protocol gap: MCP has no cryptographic content-addressing, so a server that passed an audit last month can behave completely differently today with zero protocol-level signal that anything changed. Prompt injection stacks right on top of this. Instructions the model can see but a human never does can redirect an agent's behavior across an entire multi-turn conversation, and the person watching the screen gets no visible sign anything went sideways.

None of this is hypothetical. Responsible disclosures and benchmarking work on real-world MCP servers have found vulnerability rates high enough that any enterprise pulling from external tool registries should treat this as an active concern, not a someday problem.

Authentication gaps that leave the Host-to-Server boundary open

Diagram: MCP's Authorization Timeline: From Optional to Required. Visualizes: Show the progression of MCP's OAuth authorization spec across four dated milestones on a horizontal timeline.

MCP's authorization spec points to OAuth 2.1 as the framework for remote servers. Until recently, though, authorization itself was marked optional in the spec. Strange thing to make optional, once you sit with what a Server can actually do.

The practical result: a large share of publicly reachable MCP server instances answer unauthenticated requests, and only a small minority of deployments bother scoping tool permissions at all. Hardcoded credentials sitting in MCP configuration files are common, echoing the pre-SSO secrets-sprawl problem from a decade ago, except now it moves at machine speed and scales with however many agents you happen to be running.

To be fair, the spec has moved fast to close this gap. March 2025 brought OAuth 2.1 in as the baseline for remote servers, replacing the ad-hoc API key habits that came before it. June 2025 added Protected Resource Metadata under RFC 9728 and dynamic client registration. By July 2026, MCP servers are set to formally become OAuth 2.1 resource servers, with Resource Indicators from RFC 8707 required, so a client has to specify exactly which server a token is meant for, closing off the path where a malicious server grabs a token meant for someone else. That same spec update drops the session model entirely: the initialize/initialized handshake goes away, which shuts down some session-hijacking tricks but forces every implementation to rethink how it tracks state from scratch.

Spec progress and what's actually running in production are two very different things, though. That gap is wide right now, and it's live risk sitting there for anyone deploying agents at scale. A Host can't govern what it can't authenticate; without certainty about which Server it's actually talking to, the whole role boundary this governance model leans on has holes in it.

Why agent credential management breaks when you apply human-identity patterns to non-human actors

Large enterprises running agents at any real scale hit the same wall fast: agents need credentials for a lot of services at once, and in most organizations, machine identities now substantially outnumber human ones.

The workaround everyone reaches for is the shared service account, and it's also the most dangerous option sitting on the table. Multiple agents authenticating through one shared account means losing the ability to attribute behavior to a specific agent. If one agent in that pool does something destructive, the audit log tells you which account acted. It doesn't tell you which agent, which user's task authorized it, or which tool call started the whole thing.

Revoking a misbehaving agent under this setup means revoking the whole account, which takes every other agent sharing it offline too. So basic security response ends up costing operational disruption as a side effect, which is exactly backwards from how it should work.

The better architecture flips the model:

  • A credential vault issues scoped tokens at runtime, so the agent itself never holds a raw secret.
  • Tokens get scoped to one specific action and expire right after: just-in-time, rather than standing access sitting around unused most of the time.
  • Every tool invocation gets its own authorization check, instead of riding on one blanket session credential.

Secrets sprawl in MCP config files has already shown up at scale in public repositories, often following the official documentation patterns almost to the letter, which tells you this isn't some rare mistake. It's the default outcome when teams follow the obvious path. Traditional identity and access management, built for static policies and human login flows, struggles hard with the dynamic, situational privilege autonomous agents actually need. Non-human identity governance has to be its own category of infrastructure, not a bolt-on to the old one.

What a per-role permission and audit model looks like in practice

Table: Per-Role Governance Checkpoints. Compares Core Authority, Key Permission Question, Primary Trust Risk and Audit Requirement by Host, Client and Server.

The Host, Client, Server split isn't just a taxonomy for explaining the protocol to newcomers. It's a natural place to hang authorization decisions and audit checkpoints, one per role:

  • Host level: what orchestration plans this agent can start, which sub-agents it's allowed to spawn, and what scope of action it has on behalf of which specific user.
  • Client level: which tool calls it can run, under which credential, with a check on every single invocation.
  • Server level: which capabilities get exposed to which clients, what access scoping applies, and what gets logged on each call.

Audit trails need to capture more than "an agent ran." They need the tool invocations, the permissions granted, the data touched, and the outcome, all tied to which agent, acting in which role, authorized by whom, calling which tool. In workflows where roles shift across hops, that trail has to follow the orchestration graph itself. A tamper-proof log built into the protocol layer does that job well. Reconstructing it after the fact from scattered application logs is a much weaker substitute, and usually arrives too late to matter.

SSO and SCIM integration matter here too, because they tie a human identity to every action an agent takes on that person's behalf, letting that identity travel through the whole credential chain instead of getting lost at the first hop. And enforcement has to happen at the level of the individual tool call, not the session, not the application. That's the difference between a role boundary that actually means something and one that's nominal window dressing.

The OWASP Top 10 for Agentic Applications, the 2026 version, frames this well: Agent Goal Hijack, Tool Misuse, Identity and Privilege Abuse, Insecure Inter-Agent Communication. Every one of those maps directly to a failure of per-role governance, separate from any question of how capable the underlying model is.

Making the right governance architecture also the path of least resistance for teams building agents

Security and governance get bolted on after the agent workflows are already live. That is the common pattern in enterprises building these workflows. By the time it happens, governance looks like friction, like something slowing the team down, instead of infrastructure that should've been there from day one.

Flip the build order and something actually changes. When authentication, credential management, and audit get built into the Host, Client, Server architecture from the start, the same setup that gives an agent access to a tool is the setup that makes that access accountable. Capability and control stop trading off against each other. You get both from the same design, not one at the expense of the other.

Platform and security teams that own the MCP layer, the server registry, the credential vault, the policy engine, end up being the reason agent adoption spreads across an organization, not the reason it stalls out. Non-technical employees can work through controlled golden paths: the same OAuth flows, the same credential handling, the same audit coverage, without needing to understand a word of the underlying protocol. Access to a growing ecosystem of MCP servers through a governed registry means teams get real breadth of capability without taking on a matching breadth of risk.

The organizations building durable agent infrastructure right now treat the three MCP roles as more than protocol trivia. They treat Host, Client, and Server as the organizing principle for who can do what, using whose credentials, under whose authority. That framing, more than any single security feature bolted on afterward, is what makes autonomous systems both capable and answerable for what they do.

Sources

  1. dynatrace.com
  2. blog.modelcontextprotocol.io
  3. arxiv.org
  4. arxiv.org

More in Agentic AI Foundations