DataverseDevTools

Exposes ready-to-use Dataverse tools for user, security, data, metadata, and troubleshooting tasks via MCP clients.
  • other

1

GitHub Stars

other

Language

6 months ago

First Indexed

2 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "vignaesh01-dataversedevtoolsmcpserver": {
      "command": "dataversedevtoolsmcpserver",
      "args": [
        "--environmentUrl",
        "https://yourorg.crm.dynamics.com"
      ],
      "env": {
        "HTTP_PROXY": "http://<username@domain.com>:<password>@<proxy.domain.com>:8080",
        "HTTPS_PROXY": "http://<username@domain.com>:<password>@<proxy.domain.com>:8080"
      }
    }
  }
}

DataverseDevTools MCP Server is a Model Context Protocol (MCP) server that exposes ready-to-use Dataverse tools for user and security administration, data operations, metadata exploration, and troubleshooting. You stay in your workflow by running these tools directly from MCP-enabled clients inside your development environment, such as Visual Studio or VS Code, without switching to separate admin consoles.

How to use

You access the server through an MCP-enabled client. Start the server locally or run it from your development environment, then connect your client by configuring an MCP server entry. Once connected, you can perform common Dataverse tasks via natural prompts. The client will map your prompts to the appropriate tool calls, enabling actions like managing users, roles, data records, and metadata without leaving your IDE.

How to install

Prerequisites you need before installing the MCP server are a modern .NET environment and access to a Dataverse instance. Make sure you have the .NET 8.0 SDK or later installed on your machine.

Install the MCP server as a global .NET tool.

dotnet tool install --global vignaesh01.dataversedevtoolsmcpserver

Additional configuration and usage notes

Configure your MCP client to connect to the local or remote MCP server. You can start simple with the global tool and the environment URL of your Dataverse organization. If you work behind a corporate proxy or require service principals, you can supply additional authentication and proxy-related arguments in your client configuration.

Example configurations for popular MCP clients are shown in the following code snippets. Use the exact command and arguments as shown.

Examples of MCP client configurations

{
  "servers": {
    "dvmcp": {
      "type": "stdio",
      "command": "dataversedevtoolsmcpserver",
      "args": [
        "--environmentUrl",
        "https://yourorg.crm.dynamics.com"
      ]
    }
  }
}
{
  "servers": {
    "dvmcp": {
      "type": "stdio",
      "command": "dataversedevtoolsmcpserver",
      "args": [
        "--environmentUrl",
        "https://yourorg.crm.dynamics.com",
        "--tenantId",
        "your-tenant-id",
        "--clientId",
        "your-client-id",
        "--clientSecret",
        "your-client-secret"
      ]
    }
  }
}
{
  "servers": {
    "dvmcp": {
      "type": "stdio",
      "command": "dataversedevtoolsmcpserver",
      "args": [
        "--environmentUrl",
        "https://yourorg.crm.dynamics.com"
      ],
      "env":{
          "HTTP_PROXY": "http://<username@domain.com>:<password>@<proxy.domain.com>:8080",
          "HTTPS_PROXY": "http://<username@domain.com>:<password>@<proxy.domain.com>:8080"
        }
    }
  }
}

More examples for Explorers and cloned repos

{
  "servers": {
    "dvmcp": {
      "type": "stdio",
      "command": "dotnet",
      "args": [
        "run",
        "--project",
        "C:/Projects/DataverseDevToolsMcpServer/DataverseDevToolsMcpServer/DataverseDevToolsMcpServer.csproj",
        "--environmentUrl",
        "https://yourorg.crm.dynamics.com"
      ]
    }
  }
}
{
  "servers": {
    "dvmcp": {
      "type": "stdio",
      "command": "dotnet",
      "args": [
        "run",
        "--project",
        "C:/Projects/DataverseDevToolsMcpServer/DataverseDevToolsMcpServer/DataverseDevToolsMcpServer.csproj",
        "--environmentUrl",
        "https://yourorg.crm.dynamics.com",
        "--tenantId",
        "your-tenant-id",
        "--clientId",
        "your-client-id",
        "--clientSecret",
        "your-client-secret"
      ]
    }
  }
}

Notes on usage and capabilities

  • You can prompt the MCP client with natural language to perform actions across User Management, Security Management, Data Management, Entity Metadata, Custom Actions & Custom APIs, and Troubleshooting. The client maps your prompts to the corresponding tools under the hood.

  • The MCP server supports paging for long lists and returns paging tokens when more results are available. For Web API based tools, use the appropriate entity set names and follow standard Web API conventions for lookups and relationships.

Troubleshooting

If you encounter connection or authentication issues, verify that the environment URL is correct, any Azure AD app registrations are properly configured, and the client has the required permissions in Dataverse. If you are behind a proxy, ensure the proxy settings are correctly applied in your MCP client configuration.

Security and prerequisites

Ensure you have appropriate Dataverse permissions for the requested operations. If you plan to use plugin tracing, enable Plugin Trace Log in the environment to capture detailed logs for troubleshooting.

Tools overview

The server exposes a comprehensive set of tools across categories: User/Team/Queue Management, Security Management, Data Management, Entity Metadata, Custom Actions & Custom APIs, and Troubleshooting. Each tool is designed to perform a specific action against Dataverse data or metadata and can be invoked via natural-language prompts in an MCP-enabled client.

Manage .Net Tool

Update the MCP server tool, if needed, with: dotnet tool update -g vignaesh01.dataversedevtoolsmcpserver. To remove it, run: dotnet tool uninstall -g vignaesh01.dataversedevtoolsmcpserver. You can verify installed tools with: dotnet tool list -g.

Notes

  • Many search operations support paging via Page Number, Number of records per page, and Paging Cookie. When more records are available, the tool returns the next page token. - For Web API tools, use entity set names (plural schema names) and use proper lookup bindings with odata conventions.

Available tools

GetCurrentUser

Get details of the current logged-in user

GetUserById

Get user details by user ID

SearchUsersByKeyword

Search users where fullname contains a keyword (with paging)

GetUserQueues

List queues for a user (with paging)

GetUserTeams

List teams for a user (with paging)

GetUserRoles

List security roles for a user

SearchBUByKeyword

Search BUs by keyword (with paging)

GetRootBU

Get the root BU

SearchRolesByKeywordAndBU

Search roles by keyword in a BU (with paging)

AssignRoleToUser

Assign role to user

RemoveRoleFromUser

Remove role from user

ChangeUserBU

Change user’s BU

SearchQueuesByKeyword

Search queues by keyword (with paging)

AddUserToQueue

Add user to queue

RemoveUserFromQueue

Remove user from queue

SearchTeamsByKeyword

Search teams by keyword (with paging)

AddUserToTeam

Add user to team

RemoveUserFromTeam

Remove user from team

AssignRoleToTeam

Assign role to team

RemoveRoleFromTeam

Remove role from team

ChangeTeamBU

Change team’s BU

GetRolesByTeamId

List roles assigned to a team

GetEntityPrivByRoleId

Privileges a role has on a specific entity

GetAllPrivByRoleId

All privileges for a role

ListRolesByPrivId

Roles having a specific privilege ID

ExecuteFetchXml

Run a FetchXML query (supports paging-cookie)

ExecuteWebApi

Execute raw Dataverse Web API requests

CreateRecord

Create a record (Web API)

UpdateRecord

Update by ID (Web API)

UpsertRecord

Upsert using alternate keys (Web API)

DeleteRecord

Delete by ID (Web API)

FindEntityLogicalNameUsingKeyword

Find entities by keyword

ListAllEntities

List all entities

GetEntityMetadata

Entity metadata information only

GetFields

Attributes/fields metadata with pagination

GetRelationships

Relationships metadata with pagination

GetOptionSetValuesForEntityField

OptionSet values for a field

FindGlobalOptionSet

Find global OptionSets

GetGlobalOptionSetValues

Values of a global OptionSet

ListAllGlobalOptionSets

List all global OptionSets

GetEntityPrivileges

Privileges defined on an entity

FindCustomActionUsingKeyword

Find custom actions by keyword

GetCustomActionMetadata

Get custom action metadata with Web API usage info

FindCustomApiUsingKeyword

Find custom APIs by keyword

GetCustomApiMetadata

Get metadata for custom APIs with request/response parameters

GetPluginTracesByName

Plugin trace logs by type name (with paging)

GetPluginTracesByCorrId

Plugin trace logs by correlation ID (with paging)

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational
DataverseDevTools MCP Server - vignaesh01/dataversedevtoolsmcpserver | VeilStrat