A risk register for Copilot Studio agents that consume MCP servers: twenty-four risks across supply chain, tool integrity, identity, data protection, governance, operations and compliance, each with its mitigating controls, the platform feature that delivers them, and the residual rating that survives. This is the implementation guide, in 11 steps.
Originally published at https://beyondtheprompt.dev/posts/mcp-copilot-studio-threat-model on 17 August 2026.
This document enumerates the security, privacy, governance and operational risks introduced by allowing Copilot Studio agents to consume MCP servers, and states the mitigating controls, the platform feature that delivers each control, and the residual risk after mitigation.
It is intended to be consumed alongside the existing Copilot Studio agent threat model, not to replace it. Risks that apply to any Copilot Studio agent (knowledge oversharing, channel exposure, authentication mode selection) are referenced but not restated in full.
Understanding the plumbing matters, because most mitigations are inherited rather than MCP-specific.
Key architectural fact: MCP servers reach Copilot Studio through the Power Platform connector infrastructure. An MCP server is, mechanically, a connector endpoint. This means MCP integrations inherit the Power Platform governance surface - data policies, advanced connector policies, virtual network integration, connection management, and the connection-sharing model - whether or not that surface was deliberately configured for MCP.
Runtime flow:
Trust boundaries:
| ID | Boundary | Primary threat classes |
|---|---|---|
| TB-1 | User ↔ agent | Direct prompt injection, impersonation, unauthorised agent access |
| TB-2 | Agent ↔ connector layer | Tool description injection, tool selection manipulation, DLP evasion |
| TB-3 | Connector ↔ MCP server | Transport attacks, rogue/compromised server, credential handling |
| TB-4 | MCP server ↔ downstream | Confused deputy, token passthrough, over-privileged service identity |
Critical property of TB-2: every tool description, parameter schema and tool result from every connected MCP server enters the same model context. A malicious or compromised server can therefore influence the agent’s handling of a different server’s data. Multi-server agents are not isolated from one another.
Out of scope: MCP clients outside Copilot Studio (VS Code, Foundry, Claude Desktop, etc.); the security of the LLM itself; physical and datacentre security.
Likelihood (L) and Impact (I) on a 1–5 scale. Rating = L × I.
| Rating | Band | Handling |
|---|---|---|
| 15–25 | Critical | Board decision required before production; compensating control mandatory |
| 8–14 | High | Mitigation must be implemented and evidenced before go-live |
| 4–7 | Medium | Mitigate or formally accept with named owner |
| 1–3 | Low | Accept and monitor |
| ID | Risk | Domain | STRIDE | Inherent | Residual |
|---|---|---|---|---|---|
| MCP-01 | Unvetted third-party MCP server introduced by a maker | Supply chain | S, I, E | 20 | 6 |
| MCP-02 | Tool poisoning via malicious tool descriptions | Tool integrity | T, E | 20 | 9 |
| MCP-03 | Rug pull / silent tool surface drift after approval | Tool integrity | T, E | 16 | 8 |
| MCP-04 | Indirect prompt injection via tool return values | Tool integrity | T, I, E | 20 | 10 |
| MCP-05 | Cross-server context contamination and tool shadowing | Tool integrity | S, T | 12 | 6 |
| MCP-06 | Token passthrough anti-pattern | Identity | S, E, R | 16 | 4 |
| MCP-07 | Confused deputy via over-privileged server identity | Identity | E | 20 | 8 |
| MCP-08 | Shared connection identity (all users act as connection owner) | Identity | S, E, R | 20 | 8 |
| MCP-09 | API key authentication as the only auth mode | Identity | S, I | 12 | 6 |
| MCP-10 | Over-scoped OAuth consent / dynamic client registration abuse | Identity | E | 12 | 6 |
| MCP-11 | Data exfiltration via tool arguments | Data | I | 16 | 8 |
| MCP-12 | DLP and sensitivity-label blind spots on tool responses | Data | I | 16 | 9 |
| MCP-13 | Data residency and cross-border transfer via external MCP endpoint | Data | I | 15 | 5 |
| MCP-14 | Secrets and PII leaked into telemetry, traces and transcripts | Data | I | 12 | 4 |
| MCP-15 | Shadow MCP servers outside governed environments | Governance | E, R | 20 | 6 |
| MCP-16 | No tenant-level per-tool policy (server-level blocking only) | Governance | E | 12 | 8 |
| MCP-17 | Custom connector MCP servers outside advanced connector policy scope | Governance | E | 12 | 6 |
| MCP-18 | Loss of attribution / insufficient audit trail for agent actions | Governance | R | 12 | 5 |
| MCP-19 | Destructive or irreversible write actions executed autonomously | Operations | T, D | 20 | 8 |
| MCP-20 | MCP server availability, latency and rate-limit failures | Operations | D | 9 | 4 |
| MCP-21 | Cost and quota abuse (Copilot Credits / message consumption) | Operations | D | 9 | 4 |
| MCP-22 | Abandoned or unmaintained MCP server (ownership decay) | Operations | D, T | 12 | 4 |
| MCP-23 | Terms of use, DPA and licensing exposure on third-party servers | Compliance | - | 12 | 4 |
| MCP-24 | Preview-feature dependency and breaking platform change | Compliance | D | 9 | 6 |
STRIDE: Spoofing, Information disclosure, Elevation of privilege · Inherent 4×5 = 20 · Residual 2×3 = 6
A maker adds an arbitrary HTTPS MCP endpoint through the onboarding wizard. Empirical analysis of open-source MCP servers has found a material proportion exhibiting tool-poisoning characteristics - altered descriptions, injected responses, or redirection of data to unauthorised endpoints. The server may be attacker-controlled, tunnelled from a developer laptop, or a legitimate service with poor security posture.
Mitigations
Onboarding gate: named service owner, security review, data classification declaration, hosting location, and responsible-AI assessment recorded before allowlisting.
Residual: A certified or first-party server could still be compromised upstream. Accepted, monitored via MCP-03 and MCP-22 controls.
STRIDE: Denial of service, Tampering · Inherent 3×4 = 12 · Residual 2×2 = 4
Internally built MCP servers outlive their owning team. Dependencies rot, certificates lapse, and nobody notices that a production agent depends on a server nobody maintains.
Mitigations
STRIDE: Tampering, Elevation of privilege · Inherent 4×5 = 20 · Residual 3×3 = 9
Tool names, descriptions and parameter schemas are loaded directly into the orchestrator’s context. The protocol treats them as benign metadata; in practice they are an injection vector. Instructions concealed there can direct the agent to invoke other tools, read data it should not, or exfiltrate context. Concealment techniques including Unicode tag-block sequences have been demonstrated to render payloads invisible in approval and review UIs while remaining fully legible to the model.
Mitigations
Residual is high by design. There is no reliable technical defence against prompt injection today. The board should treat containment (least privilege, no toxic combination of private data + untrusted content + egress) as the primary control, not detection.
STRIDE: Tampering, Elevation of privilege · Inherent 4×4 = 16 · Residual 2×4 = 8
MCP servers publish tools dynamically. A server approved as read-only can later add a write or delete tool, and Copilot Studio reflects the change. A maintainer who adds delete_user has effectively added it to every agent that mounted the server. Governance processes that gate connector addition but not tool surface change miss this entirely.
Mitigations
Allow all toggle and enable individual tools explicitly. When Allow all is off, tools newly added by the server are disabled by default. This is the single most effective control against rug pull and should be mandatory policy for every production agent.STRIDE: Tampering, Information disclosure, Elevation of privilege · Inherent 4×5 = 20 · Residual 2.5×4 = 10
The highest-severity pattern in production. The attacker never talks to the agent. They poison a data source the agent reads - a ticket body, a document, an email, a CRM note - and the malicious instruction arrives inside a legitimate tool’s return value. The agent, trusting its own tools, acts on it.
Mitigations
STRIDE: Spoofing, Tampering · Inherent 3×4 = 12 · Residual 2×3 = 6
With multiple servers mounted on one agent, a malicious server can register a tool whose name and description closely mirror a legitimate internal tool. If the orchestrator selects the shadowed tool, sensitive input parameters go straight to the attacker’s endpoint. A malicious server can also emit descriptions that alter how the agent uses a trusted server.
Mitigations
STRIDE: Spoofing, Elevation of privilege, Repudiation · Inherent 4×4 = 16 · Residual 2×2 = 4
An MCP server that accepts a token it was not the audience for, and forwards it to a downstream API, collapses two trust boundaries into one. Audience validation is bypassed, accountability is lost, and a credential minted for one service reaches systems it was never scoped to.
Mitigations
aud claim and reject any token not issued to them.Enable on-behalf-of login where the pattern supports it; prefer federated credentials (workload identity) over client secrets so no secret is persisted in the connector.Note: this is the same constraint identified in the Work IQ integration work - application-only auth being unsupported and delegated auth (Auth Code + PKCE, then OBO) being required. Treat that as the reference pattern.
STRIDE: Elevation of privilege · Inherent 4×5 = 20 · Residual 2×4 = 8
The MCP server holds ambient authority - a service principal or managed identity with broad downstream scopes - and is manipulated into using it on the attacker’s behalf. A single broad service credential is a “god token” with access to every user’s downstream data. Requests appear to originate from an authenticated agent, so network defences do not fire.
There is also a specific OAuth variant: an MCP proxy using a static client ID with a third-party authorisation server, combined with dynamic client registration, can allow an attacker to reuse an existing consent cookie and receive an authorisation code with no consent screen shown.
Mitigations
STRIDE: Spoofing, Elevation of privilege, Repudiation · Inherent 4×5 = 20 · Residual 2×4 = 8
This is the most commonly missed risk and it is a Power Platform inheritance, not an MCP flaw. Connections store a saved credential in the environment. Depending on how the agent is configured and shared, every end user may transit the MCP server under the connection owner’s identity. The result: users see data they have no entitlement to, and the audit trail attributes every action to one service account.
Mitigations
STRIDE: Spoofing, Information disclosure · Inherent 3×4 = 12 · Residual 2×3 = 6
The onboarding wizard offers None, API key (header or query), and OAuth 2.0. API keys are a shared secret with no user identity, no granular scope, and no expiry. Keys placed in a query parameter are additionally exposed in URLs, proxy logs and referrer headers.
Mitigations
None is prohibited in all environments. API key is prohibited in Production and permitted in Dev/Test only for non-sensitive, read-only servers, with a documented exception.STRIDE: Elevation of privilege · Inherent 3×4 = 12 · Residual 2×3 = 6
Servers that request all available permissions at initial authorisation, or scopes such as .default against a broad API surface, hand the agent far more capability than the tools need. Broad-scope tokens are then exposed to log leakage and interception.
Mitigations
STRIDE: Information disclosure · Inherent 4×4 = 16 · Residual 2×4 = 8
Exfiltration does not need a tool that returns data - a tool that accepts data is enough. A poisoned description can instruct the orchestrator to pass conversation context, retrieved documents or credentials into a benign-looking parameter such as a search query or a callback URL.
Mitigations
STRIDE: Information disclosure · Inherent 4×4 = 16 · Residual 3×3 = 9
Data policies operate at connector and server granularity, not on payload content. Streamable HTTP responses can be very large and DLP scanning of the response stream is best-effort. Purview sensitivity-label enforcement and encryption support in Copilot Studio is strongest for SharePoint knowledge sources - an arbitrary MCP tool result is not equivalently covered, and labels do not automatically propagate into or out of tool payloads.
Mitigations
Residual is High. This should be explicitly accepted by the data owner for each server handling confidential data.
STRIDE: Information disclosure · Inherent 3×5 = 15 · Residual 1×5 = 5
An external MCP endpoint may terminate anywhere. Copilot Studio’s own geographic data residency guarantees do not extend to a third party’s infrastructure. For EU-hosted operations this is a GDPR Chapter V question, not just a security one.
Mitigations
STRIDE: Information disclosure · Inherent 3×4 = 12 · Residual 2×2 = 4
Activity traces, Application Insights telemetry, conversation transcripts and MCP server logs capture tool arguments and results verbatim. Verbose server error handling can return stack traces and connection strings into the model context, and from there into a transcript.
Mitigations
STRIDE: Elevation of privilege, Repudiation · Inherent 4×5 = 20 · Residual 2×3 = 6
Makers create agents in the default environment, where tenant DLP is often looser and inventory is weakest. An MCP server added there is invisible to the architecture board.
Mitigations
STRIDE: Elevation of privilege · Inherent 3×4 = 12 · Residual 2×4 = 8
Advanced connector policies expose MCP servers alongside other connector types and support blocking an entire MCP server. Granular administrative control over individual MCP tools within a server is not currently available. Administratively, it is all-or-nothing at the server level.
Per-tool control does exist at the maker level inside the agent (the Allow all toggle plus individual tool toggles), but a maker can re-enable a tool. There is no admin enforcement of that choice.
Mitigations
Residual is High and is a known platform gap. Flag for re-review each release wave.
STRIDE: Elevation of privilege · Inherent 3×4 = 12 · Residual 2×3 = 6
ACP is built on the certified connector catalogue. Custom connectors and HTTP connectors are not yet supported by ACP. An MCP server onboarded as a custom connector therefore escapes the strongest governance rule available.
Mitigations
STRIDE: Repudiation · Inherent 3×4 = 12 · Residual 1.5×3 = 5
When a downstream system records only “the agent” or a shared service principal, incident reconstruction becomes guesswork. MCP telemetry is frequently thin, and logs that miss tool arguments cannot support a forensic timeline.
Mitigations
STRIDE: Tampering, Denial of service · Inherent 4×5 = 20 · Residual 2×4 = 8
Generative orchestration decides autonomously which tool to call. Combined with MCP-04, a single manipulated decision becomes a real operational incident - records deleted, payments issued, messages sent externally.
Mitigations
STRIDE: Denial of service · Inherent 3×3 = 9 · Residual 2×2 = 4
Agents inherit the availability of every mounted server. A slow or throttled MCP server degrades the whole conversation. Data policy changes also cause runtime failure by design: resources using a blocked connector or MCP server are suspended or quarantined and fail at runtime.
Mitigations
STRIDE: Denial of service · Inherent 3×3 = 9 · Residual 2×2 = 4
Tool-heavy agents consume messages or Copilot Credits depending on the harness, and building, testing and evaluating agents also consume them. A prompt-injection loop or a chatty tool chain can burn budget quickly.
Mitigations
Inherent 3×4 = 12 · Residual 1×4 = 4
Third-party MCP servers carry their own terms, which may assert rights over submitted content, prohibit certain uses, disclaim availability, or lack an adequate data processing agreement.
Mitigations
STRIDE: Denial of service · Inherent 3×3 = 9 · Residual 2×3 = 6
Several relevant capabilities are in preview or actively changing: MCP server certification, the Security Dashboard for AI, per-tool governance, ACP support for custom connectors, and the newer agent authoring experience and harness model. Preview features carry no SLA and can change without notice.
Mitigations
| Control | Platform feature | Mitigates |
|---|---|---|
| MCP server allowlist | Advanced connector policies (strict allowlist, environment groups) | MCP-01, MCP-15, MCP-16 |
| Connector-level blocking | Classic data policies (custom/HTTP connectors, mixed mode) | MCP-17 |
| Per-tool restriction | Agent MCP settings - Allow all off + individual toggles | MCP-03, MCP-19 |
| Endpoint restriction | Connector endpoint filtering | MCP-11, MCP-17 |
| Network isolation | Virtual Network integration | MCP-11, MCP-13 |
| Delegated identity | OAuth 2.0 + PKCE, OBO / RFC 8693 token exchange, federated credentials | MCP-06, MCP-07, MCP-08 |
| Agent identity | Entra Agent ID / agent identity blueprint | MCP-18 |
| Data protection | Purview DLP, sensitivity labels, Customer Lockbox, geo residency controls | MCP-12, MCP-13, MCP-14 |
| Visibility | Activity trace, Application Insights, Purview audit, Security Dashboard for AI (preview) | MCP-03, MCP-18, MCP-20 |
| Supplier assurance | Microsoft MCP server certification (preview), internal onboarding gate | MCP-01, MCP-23 |
| Environment separation | DTAP + environment routing + Managed Environments | MCP-01, MCP-15 |
| Change control | ALM pipeline (GitHub Actions), solution-based deployment | MCP-03, MCP-16, MCP-24 |
An MCP server is added to the allowlist only when all of the following are recorded in the register:
None prohibited; API key Production-prohibited)Allow all is off and only required tools are enabledProposed detections to add to the existing KQL cookbook:
| Detection | Signal | Priority |
|---|---|---|
| Tool manifest drift | Scheduled manifest enumeration vs approved hash | High |
| Unregistered MCP server appears in an environment | Inventory reconciliation | High |
| Write/destructive tool invoked without preceding user confirmation | Activity trace / governed endpoint logs | High |
| Egress tool invoked immediately after read of externally-writable source | Tool call sequence analysis | High |
| Tool arguments matching sensitive data patterns | Governed endpoint payload inspection | Medium |
| Anomalous tool invocation volume per user or session | Application Insights | Medium |
| MCP tool error-rate or latency breach | Application Insights availability | Medium |
| Connection owner is a personal account in Production | Power Platform API inventory | Medium |
| New scope granted to an MCP app registration | Entra audit log | Medium |
None and Production API key authentication as binding policy rather than guidance.Prepared for architecture board review. Risk ratings are initial assessments and require validation with the security and data protection functions.