Dataverse DevTools MCP Server
An MCP server providing ready-to-use Dataverse tools for user and security administration, data operations, metadata exploration, and troubleshooting for Dynamics 365/Dataverse developers.
Get this MCP server
An MCP server providing ready-to-use Dataverse tools for user and security administration, data operations, metadata exploration, and troubleshooting for Dynamics 365/Dataverse developers.
Installation
Global .NET Tool
dotnet tool install --global vignaesh01.dataversedevtoolsmcpserver
Configuration
VS Code (Global Tool)
{
"servers": {
"dvmcp": {
"type": "stdio",
"command": "dataversedevtoolsmcpserver",
"args": [
"--environmentUrl",
"https://yourorg.crm.dynamics.com"
]
}
}
}
VS Code (Client Credentials)
{
"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"
]
}
}
}
Claude Desktop
{
"mcpServers": {
"dvmcp": {
"type": "stdio",
"command": "dataversedevtoolsmcpserver",
"args": [
"--environmentUrl",
"https://yourorg.crm.dynamics.com"
]
}
}
}
Corporate Proxy
{
"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"
}
}
}
}
Available Tools
| Tool | Description |
|---|---|
GetCurrentUser |
Get data for the currently authenticated user |
GetUserById |
Get user data by ID |
SearchUsersByKeyword |
Search users where full name contains a keyword (with pagination) |
GetUserQueues |
List queues for a user (with pagination) |
GetUserTeams |
List teams for a user (with pagination) |
GetUserRoles |
List security roles for a user |
AssignRoleToUser |
Assign a role to a user |
RemoveRoleFromUser |
Remove a role from a user |
ChangeUserBU |
Change a user's business unit |
AddUserToTeam |
Add a user to a team |
RemoveUserFromTeam |
Remove a user from a team |
GetEntityPrivByRoleId |
Get role privileges for a specific entity |
GetAllPrivByRoleId |
Get all privileges for a role |
ListRolesByPrivId |
Get roles that have a specific privilege by ID |
ExecuteFetchXml |
Execute a FetchXML query (supports paging-cookie) |
Capabilities
- User and security administration tools
- Data operations through FetchXML and Web API execution
- Entity metadata exploration with pagination
- Custom Actions and Custom APIs discovery
- Plugin trace log troubleshooting
- Support for interactive authentication or client credentials
- Corporate proxy support
- Integration with VS Code, Visual Studio, and Claude Desktop
Environment Variables
Optional
HTTP_PROXY- HTTP proxy server for corporate networksHTTPS_PROXY- HTTPS proxy server for corporate networks
Usage Examples
What is my current Dataverse user and business unit?
Find the user 'Jane Doe' and show her queues and teams.
List security roles for the user Jane Doe.
Assign Basic User security role to the user Jane Doe.
Execute this FetchXML query: <paste FetchXML>.
Notes
Requires .NET 8.0 SDK or newer, a Dataverse environment URL, and appropriate Dataverse permissions. Plugin trace logs require Plugin Trace Log to be enabled in the environment. Supports both interactive authentication and Azure AD service principal authentication. Many search operations support pagination. Update using 'dotnet tool update -g vignaesh01.dataversedevtoolsmcpserver' and uninstall using 'dotnet tool uninstall -g vignaesh01.dataversedevtoolsmcpserver'.
