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.

1. 1. Purpose

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.


2. 2. Architecture context and trust boundaries

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:

texttrue

Trust boundaries:

IDBoundaryPrimary threat classes
TB-1User ↔ agentDirect prompt injection, impersonation, unauthorised agent access
TB-2Agent ↔ connector layerTool description injection, tool selection manipulation, DLP evasion
TB-3Connector ↔ MCP serverTransport attacks, rogue/compromised server, credential handling
TB-4MCP server ↔ downstreamConfused 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.


3. 3. Assumptions

  1. Agents are built and published through governed DTAP environments; the default environment is treated as untrusted for MCP.
  2. All MCP endpoints are HTTPS with TLS 1.2+.
  3. Generative orchestration is enabled (required for MCP tool selection).
  4. Tenant has Power Platform Managed Environments and Purview licensing available.
  5. Entra Agent ID / Agent 365 capabilities are assumed partially available; risks that depend on them are flagged as roadmap-dependent.

Out of scope: MCP clients outside Copilot Studio (VS Code, Foundry, Claude Desktop, etc.); the security of the LLM itself; physical and datacentre security.


4. 4. Risk scoring

Likelihood (L) and Impact (I) on a 1–5 scale. Rating = L × I.

RatingBandHandling
15–25CriticalBoard decision required before production; compensating control mandatory
8–14HighMitigation must be implemented and evidenced before go-live
4–7MediumMitigate or formally accept with named owner
1–3LowAccept and monitor

5. 5. Risk summary

IDRiskDomainSTRIDEInherentResidual
MCP-01Unvetted third-party MCP server introduced by a makerSupply chainS, I, E206
MCP-02Tool poisoning via malicious tool descriptionsTool integrityT, E209
MCP-03Rug pull / silent tool surface drift after approvalTool integrityT, E168
MCP-04Indirect prompt injection via tool return valuesTool integrityT, I, E2010
MCP-05Cross-server context contamination and tool shadowingTool integrityS, T126
MCP-06Token passthrough anti-patternIdentityS, E, R164
MCP-07Confused deputy via over-privileged server identityIdentityE208
MCP-08Shared connection identity (all users act as connection owner)IdentityS, E, R208
MCP-09API key authentication as the only auth modeIdentityS, I126
MCP-10Over-scoped OAuth consent / dynamic client registration abuseIdentityE126
MCP-11Data exfiltration via tool argumentsDataI168
MCP-12DLP and sensitivity-label blind spots on tool responsesDataI169
MCP-13Data residency and cross-border transfer via external MCP endpointDataI155
MCP-14Secrets and PII leaked into telemetry, traces and transcriptsDataI124
MCP-15Shadow MCP servers outside governed environmentsGovernanceE, R206
MCP-16No tenant-level per-tool policy (server-level blocking only)GovernanceE128
MCP-17Custom connector MCP servers outside advanced connector policy scopeGovernanceE126
MCP-18Loss of attribution / insufficient audit trail for agent actionsGovernanceR125
MCP-19Destructive or irreversible write actions executed autonomouslyOperationsT, D208
MCP-20MCP server availability, latency and rate-limit failuresOperationsD94
MCP-21Cost and quota abuse (Copilot Credits / message consumption)OperationsD94
MCP-22Abandoned or unmaintained MCP server (ownership decay)OperationsD, T124
MCP-23Terms of use, DPA and licensing exposure on third-party serversCompliance-124
MCP-24Preview-feature dependency and breaking platform changeComplianceD96

6. 6. Risk detail and mitigations

Domain A - Supply chain and server trust

MCP-01 · Unvetted third-party MCP server introduced by a maker

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.


MCP-22 · Abandoned or unmaintained MCP server

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


Domain B - Tool integrity and orchestration

MCP-02 · Tool poisoning via malicious tool descriptions

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.


MCP-03 · Rug pull / silent tool surface drift

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


MCP-04 · Indirect prompt injection via tool return values

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


MCP-05 · Cross-server context contamination and tool shadowing

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


Domain C - Identity, authentication and authorisation

MCP-06 · Token passthrough anti-pattern

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

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.


MCP-07 · Confused deputy via over-privileged server identity

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


MCP-08 · Shared connection identity

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


MCP-09 · API key authentication as the only auth mode

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


MCP-10 · Over-scoped OAuth consent

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


Domain D - Data protection and exfiltration

MCP-11 · Data exfiltration via tool arguments

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


MCP-12 · DLP and sensitivity-label blind spots on tool responses

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.


MCP-13 · Data residency and cross-border transfer

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


MCP-14 · Secrets and PII in telemetry, traces and transcripts

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


Domain E - Governance and administrative control

MCP-15 · Shadow MCP servers outside governed environments

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


MCP-16 · No tenant-level per-tool policy

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.


MCP-17 · Custom connector MCP servers outside ACP scope

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


MCP-18 · Loss of attribution and insufficient audit trail

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


Domain F - Operations, resilience and cost

MCP-19 · Destructive or irreversible actions executed autonomously

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


MCP-20 · Availability, latency and rate limits

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


MCP-21 · Cost and quota abuse

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


Domain G - Compliance and legal

MCP-23 · Terms of use, DPA and licensing exposure

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


MCP-24 · Preview-feature dependency and breaking change

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


7. 7. Control summary - what delivers what

ControlPlatform featureMitigates
MCP server allowlistAdvanced connector policies (strict allowlist, environment groups)MCP-01, MCP-15, MCP-16
Connector-level blockingClassic data policies (custom/HTTP connectors, mixed mode)MCP-17
Per-tool restrictionAgent MCP settings - Allow all off + individual togglesMCP-03, MCP-19
Endpoint restrictionConnector endpoint filteringMCP-11, MCP-17
Network isolationVirtual Network integrationMCP-11, MCP-13
Delegated identityOAuth 2.0 + PKCE, OBO / RFC 8693 token exchange, federated credentialsMCP-06, MCP-07, MCP-08
Agent identityEntra Agent ID / agent identity blueprintMCP-18
Data protectionPurview DLP, sensitivity labels, Customer Lockbox, geo residency controlsMCP-12, MCP-13, MCP-14
VisibilityActivity trace, Application Insights, Purview audit, Security Dashboard for AI (preview)MCP-03, MCP-18, MCP-20
Supplier assuranceMicrosoft MCP server certification (preview), internal onboarding gateMCP-01, MCP-23
Environment separationDTAP + environment routing + Managed EnvironmentsMCP-01, MCP-15
Change controlALM pipeline (GitHub Actions), solution-based deploymentMCP-03, MCP-16, MCP-24

8. 8. MCP server onboarding gate - checklist

An MCP server is added to the allowlist only when all of the following are recorded in the register:

  1. Named service owner and business sponsor
  2. Purpose and the specific agents intended to consume it
  3. Hosting location and hosting party; transfer mechanism if outside the EU
  4. Authentication mode (None prohibited; API key Production-prohibited)
  5. Downstream systems reached and the scopes requested, reviewed against the tool list
  6. Full tool inventory with each tool classified read / write / destructive / financial
  7. Tool manifest hash captured; raw description bytes reviewed for concealed content
  8. Data classification of request and response payloads
  9. Terms of use and DPA reviewed (external servers)
  10. Responsible AI assessment where the server influences user-facing decisions
  11. Confirmation that Allow all is off and only required tools are enabled
  12. Correlation ID and logging contract confirmed
  13. Adversarial/prompt-injection test evidence for any write-capable tool
  14. Recertification date set (max 12 months)

9. 9. Detection and monitoring backlog

Proposed detections to add to the existing KQL cookbook:

DetectionSignalPriority
Tool manifest driftScheduled manifest enumeration vs approved hashHigh
Unregistered MCP server appears in an environmentInventory reconciliationHigh
Write/destructive tool invoked without preceding user confirmationActivity trace / governed endpoint logsHigh
Egress tool invoked immediately after read of externally-writable sourceTool call sequence analysisHigh
Tool arguments matching sensitive data patternsGoverned endpoint payload inspectionMedium
Anomalous tool invocation volume per user or sessionApplication InsightsMedium
MCP tool error-rate or latency breachApplication Insights availabilityMedium
Connection owner is a personal account in ProductionPower Platform API inventoryMedium
New scope granted to an MCP app registrationEntra audit logMedium

10. 10. Open items for the board

  1. Accept or reject the residual on MCP-12 and MCP-16. Both remain High. MCP-16 is a platform gap with no published Microsoft roadmap date for per-tool administrative governance; MCP-12 is inherent to how DLP interacts with streamed tool responses.
  2. Confirm the prohibition on None and Production API key authentication as binding policy rather than guidance.
  3. Decide whether external (non-first-party, non-certified) MCP servers are permitted in Production at all, or whether the initial posture is first-party plus internally built only.
  4. Confirm ownership of the MCP register, the manifest-drift detection, and the recertification cycle.
  5. Agree the adversarial testing standard for write-capable agents and who performs it.

11. 11. References


Prepared for architecture board review. Risk ratings are initial assessments and require validation with the security and data protection functions.