MCP Server record and table operations
Generally available Dataverse MCP tools (organisation endpoint /api/mcp) that let outside AI/MCP clients create, update and delete Dataverse rows and create, modify and delete Dataverse table structure, within the authenticated user's Dataverse security roles. The MCP server is an operation interface, not the reasoning agent. Preview tools on /api/mcp_preview are outside this record.
Recorded characteristics
- Function
- Microsoft documents that "Microsoft Dataverse can act as an MCP server". Chain: outside AI/MCP client (supplies its own reasoning) → Dataverse MCP endpoint for the organisation/environment (https://{org}.crm.dynamics.com/api/mcp; no single shared endpoint) → fixed Dataverse MCP tool → Dataverse record or table operation. Tool design: a Microsoft-defined, general-purpose tool set that takes table, column and schema context at run time (the agent looks up logical names with describe); administrators control client access rather than generating a per-page tool surface (unlike Business Central's configuration-generated MCP tools). Credited persistent actions on the generally available endpoint — record operations: create_record ("Inserts a new row into a Dataverse table and returns the GUID"), update_record ("Updates an existing row in a Dataverse table"), delete_record ("Delete a row, only after explicit user approval."); table (structural) operations: create_table ("Creates a new table with a specified schema"), update_table ("Modifies schema or metadata of an existing table"), delete_table ("Deletes a table from Dataverse, only after explicit user approval."). Table operations change Dataverse structure, not only data. Contextual GA tools: search_data, search (metadata), read_query (Dataverse SQL SELECT), describe, upsert_skill, delete_skill, init_file_upload, commit_file_upload, file_download (the file tools generate temporary SAS upload/download URLs). Historical: describe_table, list_tables and fetch were removed (replaced by describe) and the former data search tool was renamed search_data. Connection methods include Copilot Studio, GitHub Copilot in VS Code and Copilot CLI, and non-Microsoft clients directly or through the Dataverse CLI local relay (npx @microsoft/dataverse mcp).
- Data access
- Reads and changes Dataverse rows and tables in the connected environment. The FAQ states the server "respects Dataverse security roles and row-level security. Users can only access tables and records that their security role permits." search_data appears only when Dataverse search is enabled for the environment. Each environment has its own MCP endpoint.
- Actions
- Can take actions
- External actions
- No
- Human confirmation
- Not established
- Permission basis
- User permissions
- Administrative control
- Two separate control layers. (1) Client governance — decides whether an MCP client may connect: Power Platform administrators control the environment setting "Allow MCP clients to interact with Dataverse MCP server" (Settings > Product > Features); it is on by default for the Copilot Studio client; each other client must be enabled (client record Is Enabled = Yes) or a custom Entra app client ID added to the allowed-clients list; admins can disable the setting, which "stops all tools and agents that rely on it"; Advanced connector policies apply for Managed Environments; the allow list applies only to the /api/mcp entrypoint (MCP-named custom APIs are regular Dataverse APIs and are not restricted by it). (2) Data authority — Dataverse security roles and row-level security determine what the authenticated user may access or change; Microsoft states no additional MCP-specific access controls are needed. Authentication for non-Microsoft clients: a custom Microsoft Entra app with the Dynamics CRM mcp.tools delegated permission, or Microsoft's Dataverse CLI app after one-time tenant admin consent. Neither consent, client allow-listing, admin enablement nor security roles are runtime human confirmation. Generic Dataverse auditing exists as platform functionality, but Microsoft does not establish that MCP operations are captured or attributed by it.
- Default state
- Conditional
- Availability
- Generally available: the FAQ states the /api/mcp endpoint "provides the generally available set of Dataverse MCP tools". A separate /api/mcp_preview endpoint (separate admin setting and separate "Microsoft Dataverse MCP Server (Preview)" Copilot Studio connector) carries preview tools that are not credited here. No exact GA date is recorded. Conditions before an operation: environment MCP setting on (default on for Copilot Studio); non-Microsoft client enabled/allow-listed with its documented Entra authentication path; user sign-in; Dataverse security-role authority and row-level security; tool-specific prerequisites such as Dataverse search for search_data.
- Licensing
- From 15 December 2025 Dataverse MCP tools are charged in Copilot credits when accessed by agents created outside Copilot Studio; qualifying Dynamics 365 Premium licences or a Microsoft 365 Copilot user licence are not charged for Dynamics 365 data access.
- External model or provider
- None fixed. The Dataverse MCP server is an operation/tool interface; the connecting MCP client supplies the reasoning model. Copilot credit billing does not establish a model.
- Limitations and uncertainty
- Human confirmation tension: Microsoft's tool descriptions say delete_record and delete_table run "only after explicit user approval", but the same Microsoft documentation's sample agent instructions tell the agent "do not ask confirmation for delete table or delete record operation, you can delete." The evidence therefore does not establish a Microsoft-enforced runtime approval at the Dataverse MCP layer, nor that deletes universally occur without confirmation; create/update/table create and modify carry no approval wording. Unresolved: whether Microsoft enforces delete approval anywhere beyond model-facing tool text; delete recovery/undo; specific privileges for table creation, modification and deletion; transaction/rollback behaviour; MCP-specific logging, auditing and attribution; Copilot Studio agent execution identity (user versus maker connection); detailed tool input formats and limits; exact GA date; excluded table types, if any; exact behaviour of upsert_skill and delete_skill. Downstream automation triggered by Dataverse changes is not credited as outside action.
Evidence
- Connect to Dataverse with model context protocol (MCP) - Power Apps
Supports: Function · Actions · Human confirmation · Licensing · General · Primary source
"Microsoft Dataverse can act as an MCP server"; organisation endpoint https://{org}.crm.dynamics.com/api/mcp; fixed tool list.
create_record, update_record, delete_record; create_table, update_table, delete_table.
delete_record and delete_table descriptions: "only after explicit user approval" (model-facing tool text).
Tools charged for agents built outside Copilot Studio from 15 Dec 2025, with licence exemptions.
Removed/renamed tools: describe_table, list_tables, fetch → describe; old search → search_data.
- Configure the Dataverse model context protocol (MCP) server - Power Apps
Supports: Admin controls · Default state · Human confirmation · Primary source
Power Platform admin role; environment setting "Allow MCP clients to interact with Dataverse MCP server"; per-client Is Enabled; disabling stops dependent agents; allow list applies only to /api/mcp.
Setting on by default for the Copilot Studio client; other clients must be enabled.
Microsoft sample agent instructions: "do not ask confirmation for delete table or delete record operation, you can delete."
- Connect to Dataverse with model context protocol FAQ - Power Apps
Supports: Permission basis · Availability · Data access · Primary source
Server "respects Dataverse security roles and row-level security"; users access only tables and records their role permits.
/api/mcp provides the generally available tool set; /api/mcp_preview holds preview tools.
search_data only appears when Dataverse search is enabled; each environment has its own endpoint.
- Connect to Dataverse with model context protocol in non-Microsoft clients - Power Apps
Supports: Permission basis · Admin controls · Primary source
Custom Entra app with Dynamics CRM mcp.tools permission, or Dataverse CLI app after tenant admin consent.
Custom Entra app client ID must be added to the environment's allowed MCP clients.
- Connect Dataverse MCP with GitHub Copilot in Visual Studio Code and Copilot CLI - Power Apps
Supports: Availability · Primary source
GitHub Copilot in VS Code and Copilot CLI documented as clients.
- Connect to Dataverse with model context protocol in Microsoft Copilot Studio - Power Apps
Supports: Availability · Primary source
Copilot Studio documented as a client.
- Use preview tools and upcoming features in Dataverse MCP server - Power Apps
Supports: Limitations · Primary source
Preview tools are on a separate /api/mcp_preview endpoint with its own admin setting and connector; not part of this record.
- Connect AI agents and assistants to Dynamics 365 Sales MCP Server
Supports: General · Primary source
Sales docs: to perform CRUD operations on Dataverse records, connect to the Dataverse MCP server.
- Examples of using Sales MCP Server with AI agents and assistants
Supports: Actions · Primary source
Sales example converts a lead and creates quotes/orders through Dataverse MCP create_record and update_record.