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

Data tools, form tools or action tools — which does your ERP agent need?

6 min read
1,339 words
high priority
Ali Ahmed

Ali Ahmed

AI Solutions Engineer, Cognilium AI

Three separate stacks of white paper seen from above

TL;DR

Three tool families on the Dynamics 365 ERP MCP server, in the priority order Microsoft publishes: data tools for CRUD, form tools for what the app decides.

Most likely all three, and Microsoft publishes the order to try them in. The Dynamics 365 ERP MCP server exposes three families, and they are not alternatives — they are layers, with a documented preference between them.

Getting the order wrong is the most common way an agent ends up slow and expensive while still technically working.

What are the three families?

Microsoft names them plainly:

"Data tools: These tools enable the agent to perform standard data operations to create, read, update, and delete data in your finance and operations apps environment. Form tools: These tools enable the agent to perform operations that are available on pages in the application. Action tools: Enable the agent to find and directly invoke classes in finance and operations apps code."

The counts matter for scoping: seven data tools, thirteen form tools, two action tools. All twenty-two are published with names and descriptions, so you can read the whole surface before you build against it.

The important structural point is what they have in common. All three are generic primitives, not named business functions. Microsoft is explicit that this replaced the older approach: rather than "having static tools for specific actions, like Find approved vendors or Release purchase requisition lines, the agent uses the tools to open forms, set field values, and select actions available on the form."

That is why migrating from the static server is a rewrite rather than a port.

Which family should the agent reach for first?

Data tools — and this is not a preference we invented. It is in the instruction block Microsoft ships:

"For create/read/update/delete operations - you MUST prefer using data tools before using form tools." "When explicitly instructed, or if proved impossible to complete the task using data tools, use the form or API tools."

Microsoft explains the reason in engineering terms: working through data entities "is more efficient for standard CRUD operations. It provides better performance and requires fewer tool calls to perform the operations than using the form tools."

Fewer tool calls is not only a latency argument. Outside Copilot Studio each call is billed, so tool selection is a cost decision as much as a design one — which is the running-cost question in a different form.

Microsoft even names the failure and its fix: "If you find that your agent is using form tools for operations that the agent could perform more optimally through data tools, you can improve performance by adding guidance in your agent instructions on which tools the agent should use for your scenarios."

So a slow agent is often an instruction problem, not a platform problem.

What are data tools actually good for?

Reading and writing records where the record is the whole job. The seven cover entity discovery, metadata, and then create, read, update and delete over OData.

Two of them exist purely to make the others usable: data_find_entity_type finds the entity, and data_get_entity_metadata returns the schema "needed for calling the `data_find_entities`, `data_create_entities`, `data_update_entities`, and `data_delete_entities` tools."

Three constraints decide whether this path works for your operation, all published:

ConstraintMicrosoft's words
No nested creates"Deep inserts aren't supported for create."
Plural entity names"You MUST use plural entity name in the OData path… For V2+ entities, use plural before V. E.g. SalesOrderHeadersV2."
Enum filter syntax$filter=Style has Namespace.Pattern'Yellow'

And one change is coming that affects reads: data_find_entities_sql "replaces the `data_find_entities` tool that uses OData in version 10.0.48 of finance and operations apps." Microsoft documents the dependency; it does not publish a date for 10.0.48, so do not build a plan around that version yet.

What are form tools for, if data tools are faster?

Everything the application calculates or decides rather than stores. Microsoft draws the line precisely:

"Form tools are optimal for enabling agents to perform operations that are available in the application that aren't standard Create, Read, Update, Delete (CRUD) operations. For example, actions in the application performed by clicking buttons that execute business logic through code are available to agents through these tools, or retrieving record values that the application calculates at runtime."

"Calculates at runtime" is the phrase to hold on to. A price after discount rules, an availability figure, a promise date — these are not columns you can read. They exist because the application computed them, so reaching them means going where the computation happens.

And the mechanism is server-side, not screen-driven:

"Although form tools are conceptually similar to Computer Use Agents (CUA), the tools don't work directly with the application client. Rather than opening a client session for the agent interaction, the tools work through server APIs that provide the agent with the application view model as context."

Microsoft's comparison is to a Computer Use Agent, and the answer is no — which is the question that deserves its own article.

What are action tools for?

The residue: business logic that neither entities nor pages expose. Microsoft frames it as a genuine minority case — entities and forms make "millions of actions available to agents", but

"there might be scenarios where the action or business logic isn't available through the entities or application client, or the agent needs direct access to the logic through code."

Then a developer writes it. The route is specific: a class "using the AI tool framework" that implements the `ICustomAPI` interface, with security defined for the associated menu action item, and correctly configured classes "appear in the list on the Synchronize Dataverse Custom APIs (CustomApiTable) form." The agent finds and calls them with api_find_actions and api_invoke_action.

Two tools, unlimited surface — which is why this family looks small and is not. Exposing your own X++ logic is the deep version of this.

How do you actually choose, per operation?

Ask what kind of thing the answer is. That routes it in one step:

The operationFamilyBecause
Read, create, update or delete a recordDataMicrosoft's instruction says you MUST prefer it for CRUD
Get a value the system computes — price after discounts, availability, a promise dateFormIt does not exist until the application calculates it
Press something that runs business logic — release, post, confirmFormMicrosoft names button-driven logic explicitly
Logic that exists only in your X++ActionNothing else reaches it
A nested create in one callNone of themDeep inserts are unsupported; split the operation

Write the routing into the agent's instructions rather than hoping orchestration finds it. That is Microsoft's own remedy for the wrong-family problem, and it is the cheapest lever in the whole build.

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/

Agentic ERP. We build turnkey AI optimization apps for Dynamics 365 — sidecar applications that run in your own Azure tenancy and solve the calculations a standard ERP is not built to compute. Built on Azure OpenAI, Microsoft Fabric and Copilot Studio. We build these on request, against your data and your environment.

More on the boundary between what Copilot does and what you build: Agentic ERP on Dynamics 365.

If you are mapping a specific operation to a tool family and the answer is not obvious, that is a 15-minute call. Bring the operation.

Sources

Sources and fact-check
#§ClaimTierSourceVerdict
11The three-family definitions, quoted wholeT1 — verbatimcopilot-mcp, Dynamic MCP toolsPASS
21Counts: 7 data, 13 form, 2 actionT1 — recounted from the three published tables on 2026-09-09Same page, three tool tablesPASS — load-bearing
31Generic primitives replaced named functionsT1 — verbatimSame page, Form toolsPASS
42"you MUST prefer using data tools before using form tools"T1 — verbatimbuild-agent-mcp, # Tool selection guidancePASS — load-bearing
52The fallback instructionT1 — verbatimSame blockPASS
62Efficiency rationale — fewer tool calls, better performanceT1 — verbatimcopilot-mcp, Data toolsPASS
72The wrong-family remedy is agent instructionsT1 — verbatimSame sectionPASS
83Metadata tool is a prerequisite for the CRUD toolsT1 — verbatimSame page, data-tool tablePASS
93Deep inserts unsupportedT1 — verbatimSame table, and build-agent-mcpPASS
103Plural entity names, V2+ ruleT1 — verbatimbuild-agent-mcp, # Data Tool Parameter Filling InstructionsPASS
113Enum filter syntaxT1 — verbatimSame blockPASS
123data_find_entities_sql replaces the OData tool in 10.0.48T1 — verbatimcopilot-mcp, data-tool tablePASS
133No date is published for 10.0.48T2 — ours, bounded to the three MCP pages opened 2026-09-09; stated as "Microsoft documents the dependency; it does not publish a date", not as a claim about all Microsoft documentationBounded in bodyPASS
144The form-tool purpose passage, including "calculates at runtime"T1 — verbatimcopilot-mcp, Form toolsPASS — load-bearing
154The CUA passageT1 — verbatimSame section. Microsoft's comparison is to Computer Use Agents, never RPAPASS — load-bearing
165The minority-case framing and "millions of actions"T1 — verbatimSame page, Action toolsPASS
175ICustomAPI, AI tool framework, Synchronize Dataverse Custom APIs (CustomApiTable)T1 — verbatim, names character-exactSame sectionPASS
186The routing tableT2 — ours, built from claims 4, 6, 14 and 16Reading of the quoted guidancePASS

Tier summary: 16 × T1 (15 verbatim, 1 a recount), 2 × T2 — 0 × T4.

One absence claim, bounded. Claim 13 says Microsoft does not publish a date for 10.0.48. It is bounded in the body to what the MCP pages document, and phrased as the contrast between a documented dependency and an undocumented date — not as an unbounded negative about Microsoft's documentation.

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.

Ali Ahmed

Ali Ahmed

AI Solutions Engineer, Cognilium AI

Ali Ahmed is an AI Solutions Engineer at Cognilium AI.

Applied AI AgentsAgentic SystemsRetrieval-Augmented Generation (RAG)LLM Product Engineering
In short

Key takeaways

  • The three tool families are layers, not alternatives, and Microsoft publishes a priority order — data tools first for anything CRUD-shaped.
  • Microsoft's instruction block says you MUST prefer data tools for create, read, update and delete, because they need fewer tool calls and perform better.
  • Form tools exist for what the application calculates at runtime or decides through code — values that are not columns and buttons that are not records.
  • Form tools are not screen automation. Microsoft compares them to Computer Use Agents and says they work through server APIs against the application view model.
  • Action tools are two tools over an unlimited surface — any X++ class implementing ICustomAPI with security on its menu item.
  • An agent using the wrong family is usually an instructions problem, and Microsoft names adding guidance as the fix.
What goes wrong

Common mistakes to avoid

  • Letting orchestration pick the family. Microsoft documents agents over-using form tools for work data tools do better, and the remedy is explicit instructions.
  • Reaching for a data tool to get a calculated value. If the application computes it at runtime, it is not in the entity.
  • Planning a nested create. Deep inserts are unsupported — split it.
  • Treating action tools as the default extension point. They are the residue after entities and forms, not the starting position.
  • Building against the OData read tool without noting its successor. A SQL-based replacement is documented for a version whose date Microsoft has not published.

Terms in this article

Definitions in the Cognilium glossary.

Frequently Asked Questions

Find answers to common questions about the topics covered in this article.

The counts matter for scoping: seven data tools, thirteen form tools, two action tools. All twenty-two are published with names and descriptions, so you can read the whole surface before you build against it.
Data tools — and this is not a preference we invented. It is in the instruction block Microsoft ships:
Reading and writing records where the record is the whole job. The seven cover entity discovery, metadata, and then create, read, update and delete over OData.
Everything the application calculates or decides rather than stores. Microsoft draws the line precisely:
The residue: business logic that neither entities nor pages expose. Microsoft frames it as a genuine minority case — entities and forms make "millions of actions available to agents", but
Ask what kind of thing the answer is. That routes it in one step:

Still have questions?

Get in touch with our team for personalized assistance.

Contact Us

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.

Which environments can run the Dynamics 365 ERP MCP server?
5 min
1
Ali Ahmed
September 9, 2026

Which environments can run the Dynamics 365 ERP MCP server?

Tier 2 or above, or a Unified Developer Environment, and not a Cloud Hosted Environment. Plus three minimum versions and an allow-list your platform needs.

words
Read Article
Does the Dynamics 365 ERP MCP server truncate results?
5 min
2
Ali Ahmed
September 9, 2026

Does the Dynamics 365 ERP MCP server truncate results?

Form state carries at most twenty-five rows, and the warning is an instruction a builder can delete. The cap is on the form path, not the data path.

words
Read Article
Which model should a Dynamics 365 ERP agent run on?
5 min
3
Ali Ahmed
September 9, 2026

Which model should a Dynamics 365 ERP agent run on?

Microsoft names one recommended model for ERP MCP agents, one fallback and one to avoid. The recommended one is external, so an admin must approve it first.

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.

For You
115%

What can Agent Designer build in Business Central, and what still needs a developer?

Same topic cluster: Copilot Boundary
Same author: Ali Ahmed

Agent Designer prototypes custom agents without a developer, up to a point. What it covers, and where an AL developer is still required.

Ali Ahmed
6 min read
Copilot Boundary
Read Article
Trending
39%

What a Dynamics 365 F&O database refresh does not copy, and what breaks after it

High priority content
Similar reading time

A refresh copies production into a sandbox, then disables every user, withholds every batch job, clears every secret and drops every endpoint. The checklist.

Mudassir Marwat
5 min read
D365 Platform Decisions
Read Article
For You
115%

What does a Business Central agent consume in Copilot Credits?

Same topic cluster: Copilot Boundary
Same author: Ali Ahmed

Copilot is included with the licence; custom agents consume Copilot Credits as they run their steps. What Microsoft publishes about the consumption units.

Ali Ahmed
6 min read
Copilot Boundary
Read Article
For You
115%

How does a Business Central agent interact with pages instead of an API?

Same topic cluster: Copilot Boundary
Same author: Ali Ahmed

A Business Central agent works through the same pages a person uses rather than through an API. Why Microsoft built it that way, and what follows from it.

Ali Ahmed
6 min read
Copilot Boundary
Read Article
For You
115%

Where do the built-in Business Central agents stop?

Same topic cluster: Copilot Boundary
Same author: Ali Ahmed

The shipped agents cover defined ground and no more. Where the documented boundary falls, and what has to be built on the other side of it.

Ali Ahmed
5 min read
Copilot Boundary
Read Article
For You
115%

Which Business Central version do you need for agents and MCP?

Same topic cluster: Copilot Boundary
Same author: Ali Ahmed

Agents and the MCP server carry version and environment requirements. Which release you need, and which deployment types are excluded outright.

Ali Ahmed
6 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