Back to Blog
Published:
Last Updated:
Recently Updated
Copilot BoundaryChapter 6

Do I need a Dynamics 365 licence for an AI agent's identity?

8 min read
1,862 words
high priority
Mudassir Marwat

Mudassir Marwat

Founder & CEO, Cognilium AI

TL;DR

Currently not for the identity itself, when the agent is built in Copilot Studio or reaches the ERP through the Dynamics 365 ERP MCP server. A security role that grants nothing marks the identity as licence-exempt — and every human who chats with that agent still needs their own licence.

Do I need a Dynamics 365 licence for an AI agent's identity?

Not for the identity itself, under conditions that are worth stating precisely — and the mechanism is one of the more elegant things in this stack. It also sits directly beside an older pattern that works the opposite way and is still shipping, which is why the question keeps getting different answers.

The rule, stated precisely

Microsoft's sentence carries two qualifiers, and both move a budget line. Verbatim, from Use Model Context Protocol for finance and operations apps:

"Currently, you don't need Dynamics 365 finance and operations user licenses for your agent's identity. While users who interact with a chat-based agent need a user license for the Dynamics 365 application to access the data and business operations of the application, the agent identity doesn't need an additional license. This requirement also applies to autonomous agents without an interactive user, as long as the agent is either built in Microsoft Copilot Studio or accesses Dynamics 365 finance and operations through any of the Dynamics 365 ERP MCP servers."

Currently is Microsoft's word: stated policy today, not a permanent guarantee. And the exemption covers the identity only — every human who chats with that agent still needs their own Dynamics 365 user licence, and that is the headcount a budget actually feels.

The Dynamics 365 ERP MCP server — MCP is the Model Context Protocol, the open standard that connects AI agents to systems like your ERP (enterprise resource planning system) — reached general availability on 27 January 2026 per the release plan. That is [GA]: shipped, supported, safe to plan a go-live against.

What the rule removes is one specific objection — that every scheduled, unattended process would need its own paid seat. It removes nothing else. The interactive users still need licences, and orchestration and tool calls are a separate meter.

The mechanism is a role that deliberately grants nothing

The exemption is not a licensing setting. It is expressed inside the ERP as a security role.

You assign the agent identity the System agent role. That role exists by default, grants no permissions, has no duties and no privileges, and should never have app permissions added to it. Its entire job is to mark the identity as licence-exempt.

Then you assign the real security roles alongside it — the purpose-built ones that define what the agent can actually reach.

Two roles, two jobs. One says this identity is an agent; the other says and here is exactly what it may touch. Keeping them separate is what makes the design readable months later, and it is why adding permissions to the marker role is such a bad idea: it collapses the two statements into one and destroys the only clean signal you have about which identities are agents.

The older pattern, still shipping, works the other way

Set the Expense Agent beside it. Microsoft's setup article labels it plainly — "This is a production-ready preview feature", and "Production-ready previews are subject to supplemental terms of use" (Set up the Expense Agent). That is [PRP]: usable in production, still governed by prerelease terms, and not a thing to sign a go-live date against without reading them. Its agent identity carries a full licence stack.

  • Microsoft Entra ID — A dedicated user, Account enabled marked, usage location filled in
  • Licences — Dynamics 365 Teams Members, Microsoft 365 Business Basic (or any licence covering Teams and Outlook, e.g. Office 365 E5), Power Apps Premium
  • Dataverse roles — Expense AI Agent Role, Finance and operations Agent Configuration Manager, System Customizer
  • Finance and operations roles — ExpenseAgentRole — Microsoft's string, one word, no spaces — plus System user
  • Microsoft Graph — Mail.Read.Shared, consented in Graph Explorer while signed in as the agent user
  • Mailbox — A shared mailbox with the agent user added as a member

That is a non-human identity carrying three licences. Microsoft publishes this as the current setup procedure for the Expense Agent, so it is the documented way to stand this agent up today. Microsoft nowhere explains why the two licensing patterns differ. Our reading is that this one predates the MCP rule — ours, not a Microsoft statement.

Why both patterns exist at once

The mechanisms are documented; the causal story is ours. The Expense Agent runs on Power Automate flows and Power Platform connectors — Microsoft lists "Dataverse (Virtual Entities)" among them — so its identity is provisioned like a person's: Entra account, licences, mailbox membership.

The MCP server scopes differently. Microsoft states: "The security role of the authenticated user for the agent determines which objects are returned in the view model." Access comes from a role, not from a seat. Reading one pattern as the successor of the other is our inference.

We expect first-party agents to converge on the newer model. That is our call, not a roadmap — Microsoft has published no release-plan item saying it, and there is no 2026 release wave 2 plan yet to carry one. The design guidance holds either way: build new custom agents on the MCP pattern, not on the Expense Agent pattern. If you are copying an architecture from a Microsoft first-party agent, check which era it comes from before you inherit its licensing.

The identity design this implies

Microsoft states this once, in one place — the Expense Agent setup article, about the expense agent user. Verbatim: "Create a dedicated expense agent user to ensure that the agent runs independently of any employee's identity. This approach helps with security, manageability, and long-term maintainability. Although you can use an existing user account that has the required privileges, use a system-owned identity."

Read the last sentence twice. Microsoft permits an existing user account and recommends against it. The MCP documentation says nothing either way about employee accounts. So carrying the rule across both patterns is our position, and Microsoft's stated reasons are the three above: security, manageability and long-term maintainability.

Our reasons are narrower and they compound. An employee account carries permissions accumulated over a career, so the agent inherits reach nobody audited. Actions in the log are attributed to a person who did not perform them, which is a problem the first time anyone asks who approved something.

And when that person changes role or leaves, the agent's access changes or dies with an offboarding process that had no idea it was load-bearing.

A dedicated identity fixes all three, and it costs nothing extra under the exemption.

The counter-argument

"A licence-exempt identity that still holds real security roles sounds like a compliance gap. You have created a user that does work and is not counted anywhere."

The premise is right, and the answer splits by which agent you built — a distinction the objection does not make.

For a Copilot Studio agent there is a register. Power Platform inventory covers "All agents created in Copilot Studio, and all agents created in Microsoft 365 Copilot Agent Builder", queryable from the admin center, the Power Platform API and Azure Resource Graph (Power Platform inventory).

For a Foundry, Visual Studio Code or third-party agent reaching the ERP through the MCP server, that register does not apply. Microsoft is explicit: it "shows only agents that were built on Power Platform… It doesn't include first-party Microsoft agents, ISV agents, or agents created on other Microsoft surfaces."

What holds that agent is the Allowed MCP clients form in finance and operations. A platform outside Microsoft's default list reaches the server only after you register the application in Microsoft Entra ID and add its client ID to that form with the Allowed property set to true. That form, plus the security roles on the identity, is the whole register — and it is not the one an auditor thinks to ask for.

Inside the ERP there is a viewing surface. Microsoft: "The View activity button opens a holistic tracing list of all agent activities" (Immersive Home overview) — though the same page scopes that area to agents activated in the environment. Read it as an operations view.

What the identity does not do is consume a seat. Microsoft's stated purpose for the marker role is narrow: it "is intended only to exempt the agent from licensing requirements where applicable." Whether an MCP tool call lands in the finance and operations audit trail as its own entry is a question the MCP documentation does not answer and we have not tested. If a control depends on that answer, get it in writing before go-live — not from this article.

The genuine risk sits one step away and is worth naming: because the identity is cheap, nothing stops proliferation. Ten agents, ten identities, ten role assignments nobody reviews as a set. The control is a periodic review of agent identities and their roles, treated exactly like a joiners-movers-leavers process. The licence never enforced that discipline anyway — it just made you notice the cost.

What to do this week

  1. List every agent identity in your tenant and check whether each holds the System agent role plus a purpose-built role, or something improvised. Improvised is the finding.
  2. Check that no agent runs under a named employee's account. If one does, that is your first remediation and it is not a large one.
  3. If you are copying an architecture from a first-party agent, identify which licensing era it comes from before you inherit it.

Where we would draw the line

We would never run an agent under an employee account, for the attribution reason before the security one — a log that names a person who did not act is a problem you cannot fix retrospectively. We would never add permissions to the System agent role; it is a marker, and the moment it grants something it stops being readable as one. And we would not design a new custom agent on the older identity pattern, because it costs more and carries more moving parts: three licences, a shared mailbox and a consented Graph permission, against one exempt marker role plus the roles that do the work.

About Cognilium Cognilium builds AI optimization apps for Microsoft Dynamics 365 — companion apps that optimize the pricing, inventory, warehouse and planning decisions your ERP manages but can't optimize. Dynamics is your system of record. Cognilium is your system of intelligence. https://cognilium.ai · https://www.linkedin.com/company/37180269/

The identity that optimizes the price, the pick path or the safety-stock level is scoped exactly like the ones above — a marker role, then the roles that do the work. If you are standing these up now, we will review the role split with you on a call before it becomes ten of them. https://cognilium.ai

Sources

Sources

Share this article

The work behind this series

What Microsoft ships, what it does not, and the layer we build where a general assistant runs out.

Mudassir Marwat

Mudassir Marwat

Founder & CEO, Cognilium AI

Mudassir Marwat's argument is that ERP systems record decisions they never optimise.

Founder & CEO of Cognilium AI; 37 AI agents in production across four products; 4 production AI products built and operated; three clouds in production (AWSGCPAzure)
Agentic AIRAG → GraphRAG retrievalVoice AIMulti-Agent Orchestration
In short

Key takeaways

  • Microsoft's wording is "Currently, you don't need Dynamics 365 finance and operations user licenses for your agent's identity" — when the agent is built in Copilot Studio or reaches the ERP through the ERP MCP server, autonomous agents included. "Currently" is Microsoft's word, and users who interact with a chat-based agent still need their own user licence.
  • The mechanism is the System agent security role: it grants nothing, carries no duties or privileges, and exists purely to mark the identity as licence-exempt.
  • Real access comes from purpose-built roles assigned alongside the marker. Two roles, two jobs, and never permissions on the marker.
  • An older first-party pattern is still shipping in which the agent identity carries a full licence stack. Check which era an architecture comes from before copying it.
  • Give an agent a dedicated, system-owned identity rather than an employee's account. Microsoft recommends this for the Expense Agent user while permitting an existing account; we treat it as a rule, because attribution, inherited permissions and offboarding all break otherwise.
What goes wrong

Common mistakes to avoid

  • Adding permissions to the System agent role because it is already assigned. It is a marker; the moment it grants access you have lost the only clean signal of which identities are agents.
  • Running an agent under a real person's account for convenience during a pilot, then leaving it there.
  • Copying a first-party agent's identity design without checking which of the two licensing patterns it follows.
  • Treating a licence-exempt identity as an unmanaged one. Power Platform inventory covers Copilot Studio agents; an agent reaching the ERP from any other platform is held only by the Allowed MCP clients form and the security roles on its identity.

Terms in this article

Definitions in the Cognilium glossary.

Still have a question this did not answer?

The person who wrote this article answers these. Describe your setup and what you are stuck on — you will get a straight answer, including where we think the approach is wrong.

Related Articles

Continue exploring related topics and insights from our content library.

9 min
1
Mudassir Marwat
July 30, 2026

Why can't I see my ERP agent's permissions in Entra?

Microsoft's documentation says that today, custom connectors, MCP servers and REST API tools added to an agent do not add API permissions to the Entra Agent ID. Control of an MCP-based ERP agent lives in three places, and none of them is the Entra connector-permission view.

words
Read Article
10 min
2
Mudassir Marwat
July 30, 2026

How do I expose my own X++ business logic as an agent tool?

Write an X++ class implementing ICustomAPI with the right attributes, wire an action menu item into a security role, and flush the cache. The descriptions you write are not comments — they are the interface the model reasons over.

words
Read Article
8 min
3
Mudassir Marwat
July 30, 2026

What happens to my ERP agent on 1 October 2026?

Microsoft retires the original static Dynamics 365 ERP MCP server on 1 October 2026. Moving to the dynamic server is a rewrite rather than a port, because named business functions are replaced by generic primitives plus instructions.

words
Read Article

Explore More Insights

Discover more expert articles on AI, engineering, and technology trends.

Personalized for You

Curated content recommendations based on your current reading and interests.

Trending
117%

Can an AI agent in Dynamics 365 give itself more permissions?

Same topic cluster: Copilot Boundary
Same author: Mudassir Marwat

No — not through the administration forms. The Dynamics 365 ERP MCP server (generally available 27 January 2026) excludes the security, user, Microsoft Entra application and feature-management forms by name. The role you assign is still yours to scope.

Mudassir Marwat
8 min read
Copilot Boundary
Read Article
Trending
29%

Why do received goods sit uninvoiced, and what can an agent actually do about it?

High priority content
Similar reading time

Dynamics 365 already matches product receipts to invoices hourly or daily. The balance that will not clear is the residue the automation cannot resolve.

Ali Ahmed
7 min read
Procure-to-Pay Agent Operations
Read Article
Trending
117%

In-app Copilot sidecar or a Copilot Studio MCP agent — which one, for what?

Same topic cluster: Copilot Boundary
Same author: Mudassir Marwat

Two surfaces, two jobs — and one combination that is explicitly unsupported. Adding the ERP MCP server as a tool inside the in-app finance and operations sidecar is not supported today, which decides more architectures than it should.

Mudassir Marwat
9 min read
Copilot Boundary
Read Article
Trending
117%

Why can't I see my ERP agent's permissions in Entra?

Same topic cluster: Copilot Boundary
Same author: Mudassir Marwat

Microsoft's documentation says that today, custom connectors, MCP servers and REST API tools added to an agent do not add API permissions to the Entra Agent ID. Control of an MCP-based ERP agent lives in three places, and none of them is the Entra connector-permission view.

Mudassir Marwat
9 min read
Copilot Boundary
Read Article
Trending
117%

Why is my ERP agent answering with yesterday's numbers?

Same topic cluster: Copilot Boundary
Same author: Mudassir Marwat

Because it is reading the analytics surface, where Business performance analytics pre-transforms currently run twice daily and the pipeline behind them takes hours more. The rule — if the answer changes within 12 hours, it does not belong on the analytics server, and 12 hours is the floor.

Mudassir Marwat
7 min read
Copilot Boundary
Read Article
Trending
117%

Are Dynamics 365 ERP form tools just RPA with a new name?

Same topic cluster: Copilot Boundary
Same author: Mudassir Marwat

Form tools in the Dynamics 365 ERP MCP server look like screen automation and are not. They drive the application through server APIs against its view model, with no browser, no screenshots and no pixel coordinates.

Mudassir Marwat
7 min read
Copilot Boundary
Read Article

Smart Recommendations

Our AI analyzes topic clusters, author expertise, and content relationships to surface the most relevant articles for you.

Topic Matching
Author Expertise
Content Quality
Personal Interests

Questions on this?

Talk to an engineer

Schedule a call