AI · Authorisation
MCP and the new authorisation surface nobody is reviewing
Model Context Protocol turns every internal API into a tool an agent can call on a user's behalf. The authorisation model most teams ship with is naïve, and the audit log usually proves it.
Model Context Protocol has done in eighteen months what enterprise integration vendors spent a decade trying to do — given language models a stable, ergonomic way to call internal APIs. The cost is that almost every team adopting MCP has also quietly stood up a new authorisation plane that their IAM and security teams have not seen.
The reasoning goes like this. The agent framework needs tools. Tools are functions. Functions read and write to systems. Someone wires up an MCP server in a few hundred lines, points it at the corporate ticketing system or the CRM, and the agent can now create tickets and update opportunities. The team ships. Then the audit question arrives — when the agent updated this opportunity, on whose authority did it act, and where is the record? — and the answer is uncomfortable.
The pattern we keep seeing in reviews is that the MCP server runs as a single service identity with broad scopes, and individual user identities are passed as parameters in tool calls. The downstream system records the service identity as the actor. The agent platform records the user prompt as the trigger. Neither end has the linkage. If the agent does something the user did not ask for — because of prompt injection, hallucination, or instruction conflict — the only forensic artefact is a service account doing routine work.
The fix is unglamorous and well understood from older identity work, just newly applicable. Three things, in order.
Bind the user identity into the call chain. OAuth on-behalf-of, SAML actor tokens, or signed user assertions; pick whichever your platform supports. The user’s identity must propagate through the agent runtime to the MCP server to the downstream API. The downstream audit record should show the user as actor and the agent as the means. This is the same pattern Microsoft Graph, Salesforce, and Okta have shipped for years for delegated access. The new surface needs the old discipline.
Scope the tools to the operation, not to the system. “Read CRM” is not a scope. “Read opportunity by ID” is. MCP’s tool definition surface lets you express each callable as a discrete capability. Use that. The agent should be issued only the tools it needs for a session, ideally short-lived. The “give the agent everything and trust the model not to misuse it” position is not defensible under any framework we operate against. ISO 42001’s Annex A.6 (operational planning and control) reads almost like an MCP scoping checklist.
Log the prompt, the tool call, and the response in the same record. Most MCP server implementations log the call but not the prompt that triggered it; most agent platforms log the prompt but not the resulting tool calls. Reconstruction requires both, joined by a correlation ID. Add the correlation ID to your standard log schema and require it across the agent runtime, the MCP server, and the downstream system. Without it, the answer to “why did the agent do this?” is forever speculation.
The deployment we reviewed last month had a fourth issue worth mentioning. The MCP server was internet-exposed for convenience during pilots, with a single static API key for authentication, the kind of thing that would never pass a security review for any other internal API. Internal MCP servers should sit behind the same identity-aware proxy or service mesh as everything else, and external MCP integrations (vendor-supplied, or community-maintained) should be treated as third-party connectors with full vendor risk review including data residency and revocation. Treat them as part of your supply chain, because they are.
The good news is that none of this is novel. The OAuth 2.0 token exchange RFC, the actor token spec, and standard SIEM correlation patterns all exist and are battle-tested. The bad news is that the speed of MCP adoption inside engineering teams is outpacing the security review cycle by about six months. If your organisation has agent pilots running, the practical step is a one-page architecture review of where MCP servers are deployed, what scopes they hold, what identity flows through them, and whether the audit record can answer “who authorised this action” in plain English. That is the question regulators will ask in the first incident, and it is much cheaper to answer it before there is one.
Tagged
Continue reading
Related pieces
Digital employees
Digital employees, with the governance attached
Why most digital employee deployments fail their first audit, and what a governance-first build looks like — identity, data access, supervision, and the accountability question almost no-one is answering well.
22 April 2026
Zero trust
Zero trust without vendor capture
Most zero-trust programs we review are vendor roadmaps in disguise — a sequence of product purchases dressed up as architecture. The actual zero-trust shift is a procedural one, and it doesn't need a million-dollar identity overhaul to start.
28 January 2026
Microsoft 365
Identity-first security for hybrid Microsoft 365 environments
If you run M365 with on-prem AD synchronised via Entra Connect, your security perimeter is the identity. Most mid-market environments have an Entra tenant configured in 2018 that hasn't been seriously revisited since. Here's the catch-up.
8 January 2026