Loading languages...
MI

Microsoft.PowerPlatform.Dataverse.MCP

@Microsoft

The Model Context Protocol (MCP) is an open protocol that enables seamless integration between LLM applications and external data sources and tools. Microsoft Dataverse can act as an MCP server, providing intelligent access to tables and records to various MCP clients like Copilot Studio agents, VS Code GitHub Copilot, Claude desktop, and many others. This integration standardizes and streamlines the interaction between AI models and Dataverse data, making it more efficient and effective for developers to apply Dataverse's rich data capabilities within their AI-driven applications.

Dataverse
Power Apps
Microsoft
LLM
AI
Copilot
CRM
ERP

The Microsoft Dataverse MCP Server allows Large Language Model (LLM) applications to seamlessly integrate with Microsoft Dataverse, providing intelligent access to its tables, records, and knowledge sources. This standardizes and streamlines the interaction between AI models and Dataverse data, making it more efficient for developers to leverage Dataverse's rich data capabilities within their AI-driven applications.

What it does

It enables LLMs to interact with Dataverse by exposing Dataverse functionalities as MCP tools. This allows natural language queries to be translated into actions like listing tables, describing schemas, reading, creating, or updating records, and executing predefined prompts or retrieving knowledge from Dataverse.

How to use it

1. For Microsoft Copilot Studio:

  • Go to Power Apps, select your environment, and create a new agent.
  • In the 'Tools' section, add 'Model Context Protocol' and select 'Dataverse MCP Server'.
  • No local proxy installation is required for Copilot Studio.

2. For Claude Desktop or VS Code GitHub Copilot:

  • Prerequisites:
    • Create a Dataverse connection in Power Automate and copy its URL.
    • Install the Dataverse MCP server local proxy: dotnet tool install --global --add-source https://api.nuget.org/v3/index.json Microsoft.PowerPlatform.Dataverse.MCP
    • Obtain your Dataverse environment's Tenant ID from Power Apps session details.
  • Configuration:
    • For Claude Desktop: Open claude_desktop_config.json and add the mcpServers configuration snippet, replacing placeholders for connection URL, tenant ID, and a friendly name.
    • For VS Code GitHub Copilot: Open settings.json and add the same mcpServers configuration under the mcp.servers setting.
  • The command for the MCP server is Microsoft.PowerPlatform.Dataverse.MCP with arguments including --ConnectionUrl, --MCPServerName, --TenantId, etc.

Available Tools

The Dataverse MCP Server provides tools such as:

  • create_record: Inserts a row into a Dataverse table.
  • describe_table: Gets the schema of a requested table.
  • execute_prompt: Executes a predefined prompt.
  • list_knowledge_sources: Lists available knowledge sources.
  • list_prompts: Lists predefined prompts.
  • list_tables: Lists tables in the environment.
  • read_query: Reads data from Dataverse tables.
  • retrieve_knowledge: Uses a preconfigured knowledge source to answer questions.
  • update_record: Updates a row in a Dataverse table.

Implementation Notes

The Dataverse MCP Server operates via a local proxy (Microsoft.PowerPlatform.Dataverse.MCP) which acts as a stdio transport, connecting to your Dataverse environment and exposing its capabilities to MCP clients.

# mcpServer Config

{
  "mcpServers": {
    "<friendly name>": {
      "command": "Microsoft.PowerPlatform.Dataverse.MCP",
      "args": [
        "--ConnectionUrl",
        "<URL for Dataverse connection>",
        "--MCPServerName",
        "DataverseMCPServer",
        "--TenantId",
        "<Tenant Id GUID>",
        "--EnableHttpLogging",
        "true",
        "--EnableMsalLogging",
        "false",
        "--Debug",
        "false",
        "--BackendProtocol",
        "HTTP"
      ]
    }
  }
}

# stdio

Microsoft.PowerPlatform.Dataverse.MCP --ConnectionUrl <URL for Dataverse connection> --MCPServerName DataverseMCPServer --TenantId <Tenant Id GUID> --EnableHttpLogging true --EnableMsalLogging false --Debug false --BackendProtocol HTTP
Transport:
stdio
Language:
csharp
Updated: 7/31/2025