Dataverse

A model context protocol server enabling Dataverse schema operations via the Web API, with solution-based context, security control, and code generation.
  • typescript

0

GitHub Stars

typescript

Language

4 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": {
    "wizspdemo-dataverse-mcp2": {
      "command": "cmd",
      "args": [
        "/c",
        "node",
        "C:\\\\DEV\\\\projects\\\\dataverse-mcp\\\\build\\\\index.js"
      ],
      "env": {
        "DATAVERSE_URL": "https://yourorg.crm.dynamics.com",
        "DATAVERSE_CLIENT_ID": "your-client-id",
        "DATAVERSE_TENANT_ID": "your-tenant-id",
        "DATAVERSE_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

You can manage Dataverse schema and generate ready-to-use WebAPI calls with a dedicated MCP server. This server automates creating and updating tables, columns, relationships, and option sets, handles solution-based context for consistent naming, and provides tooling to generate API calls and diagrams for your Dataverse model.

How to use

To use the Dataverse MCP Server, start the MCP runtime with the Dataverse configuration and then interact with it through your MCP client. You will create a solution context, define a publisher, and start creating tables, columns, relationships, and option sets. The server will automatically apply a publisher-based customization prefix, persist solution context, and generate ready-to-use WebAPI calls and PowerPages integrations as you work.

How to install

Prerequisites: Node.js and npm installed on your system.

  1. Install dependencies.

Configuration and runtime

The Dataverse MCP Server runs as an MCP process that you start locally. It can be configured either with environment variables or with a dedicated env file. Below is a typical stdio configuration that runs the server locally after building its package.

Configuration (example)

Available tools

create_dataverse_table

Create a new custom Dataverse table with specified configuration; requires a solution context

get_dataverse_table

Retrieve detailed information about a Dataverse table including metadata and configuration

update_dataverse_table

Update properties and configuration of an existing Dataverse table; changes are published automatically

delete_dataverse_table

Permanently delete a custom Dataverse table; data removal is irreversible

list_dataverse_tables

List tables in the Dataverse environment with filtering options

create_dataverse_column

Create a new column in a Dataverse table with a specified data type and settings

get_dataverse_column

Retrieve detailed column information including data type and configuration

update_dataverse_column

Update column properties and configuration; note that data type cannot be changed

delete_dataverse_column

Permanently delete a column from a Dataverse table

list_dataverse_columns

List columns for a specified table with filtering options

create_autonumber_column

Create an AutoNumber column with a defined format; supports sequences and placeholders

update_autonumber_format

Update the AutoNumber format of an existing AutoNumber column

set_autonumber_seed

Set the seed for sequential numbering of an AutoNumber column

get_autonumber_column

Retrieve detailed information about an AutoNumber column

list_autonumber_columns

List all AutoNumber columns in a table or across the environment

convert_to_autonumber

Convert an existing text column to an AutoNumber column by adding an AutoNumberFormat

create_dataverse_relationship

Create a relationship between two Dataverse tables (OneToMany or ManyToMany)

get_dataverse_relationship

Retrieve details of a specific relationship between tables

delete_dataverse_relationship

Delete a Dataverse relationship

list_dataverse_relationships

List relationships with filtering options

create_dataverse_optionset

Create a global option set with predefined options

get_dataverse_optionset

Retrieve details of a specific option set

update_dataverse_optionset

Update an option set and its options

delete_dataverse_optionset

Delete an option set if not in use

list_dataverse_optionsets

List option sets with filtering options

get_dataverse_optionset_options

Retrieve all options within a specific option set

create_dataverse_publisher

Create a new publisher to establish customization prefixes

get_dataverse_publisher

Retrieve details of a publisher

list_dataverse_publishers

List publishers in the environment

create_dataverse_solution

Create an unmanaged solution to containerize customizations

get_dataverse_solution

Retrieve details of a specific solution

list_dataverse_solutions

List solutions with filtering options

set_solution_context

Set the active solution context for subsequent operations

get_solution_context

Get the currently active solution context

clear_solution_context

Clear the current solution context

create_dataverse_role

Create a security role for permissions and access control

get_dataverse_role

Retrieve details of a security role

update_dataverse_role

Update a security role without changing privileges

delete_dataverse_role

Delete a security role

list_dataverse_roles

List security roles with filtering options

add_privileges_to_role

Add privileges to a security role

remove_privilege_from_role

Remove a privilege from a security role

replace_role_privileges

Replace all privileges in a security role

get_role_privileges

Get all privileges assigned to a security role

assign_role_to_user

Assign a security role to a user

remove_role_from_user

Remove a security role from a user

assign_role_to_team

Assign a security role to a team

remove_role_from_team

Remove a security role from a team

create_dataverse_team

Create a new Dataverse team and define ownership and access

get_dataverse_team

Retrieve details of a team

update_dataverse_team

Update team properties without changing membership

delete_dataverse_team

Delete a team; ensure no ownership conflicts

list_dataverse_teams

List teams with filtering options

add_members_to_team

Add users to a team

remove_members_from_team

Remove users from a team

get_team_members

List members of a team

convert_owner_team_to_access_team

Convert an owner team to an access team

create_dataverse_businessunit

Create a business unit with full configuration

get_dataverse_businessunit

Retrieve a business unit's details

update_dataverse_businessunit

Update a business unit's properties

delete_dataverse_businessunit

Delete a business unit

list_dataverse_businessunits

List business units with filtering and sorting

get_businessunit_hierarchy

Get the complete organizational hierarchy for a business unit

set_businessunit_parent

Set the parent of a business unit

get_businessunit_users

Retrieve users in a business unit

get_businessunit_teams

Retrieve teams in a business unit

export_solution_schema

Export a comprehensive JSON schema of Dataverse components

generate_mermaid_diagram

Generate Mermaid ERD diagrams from exported schemas

generate_webapi_call

Generate Dataverse WebAPI calls including HTTP requests and code examples

generate_powerpages_webapi_call

Generate PowerPages WebAPI calls with schema-aware metadata

manage_powerpages_webapi_config

Manage PowerPages WebAPI configurations and table permissions

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational
Dataverse MCP Server - wizspdemo/dataverse-mcp2 | VeilStrat