Skip to main content
Glama
rededis

dataverse-mcp-server

by rededis

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DATAVERSE_CLIENT_IDYesYour app registration client ID
DATAVERSE_TENANT_IDYesYour Azure tenant ID
DATAVERSE_ALLOW_DELETENoOptional flag to enable delete operations (set to 'true' to enable)
DATAVERSE_RESOURCE_URLYesYour Dataverse environment URL (e.g., https://your-org.crm.dynamics.com)
DATAVERSE_CLIENT_SECRETYesYour client secret
DATAVERSE_ENTITY_PREFIXNoOptional default prefix filter for list_entities
DATAVERSE_SOLUTION_NAMENoOptional default solution unique name for list_entities

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_entitiesA

List Dataverse tables (entities) with optional prefix and solution filters

list_solutionsB

List Dataverse solutions (uniquename is used to filter list_entities)

get_entity_schemaB

Get attributes (columns) of a specific Dataverse table

query_recordsB

Query records from a Dataverse table with OData filters

get_recordA

Get a single record by ID from a Dataverse table

create_recordB

Create a new record in a Dataverse table

update_recordC

Update an existing record in a Dataverse table

delete_recordB

Delete a record from a Dataverse table (currently disabled)

create_entityC

Create a new Dataverse table (entity) with specified attributes

add_attributeB

Add a column (attribute) to an existing Dataverse table

create_relationshipC

Create a relationship between two Dataverse tables

update_attributeA

Update metadata of an existing column (display name, description, required level, max length, min/max value, precision). The column's type and logical name CANNOT be changed by Dataverse — for those, create a new column, migrate data, then delete the old one.

delete_attributeA

Delete a column from a Dataverse table (currently disabled for safety)

get_attribute_dependenciesA

List CRM components (forms, views, workflows, business rules, calculated columns, plugins, …) that reference a given attribute. Use this when delete_attribute fails with error 0x8004f01f, or proactively before any destructive change. Returns a flat array of { component_type, component_type_name, object_id, name }; name is best-effort (resolved for common types — SystemForm, SavedQuery, Workflow, Report, WebResource, FieldSecurityProfile, AppModule, SDKMessageProcessingStep — null otherwise). Backed by the Dataverse RetrieveDependenciesForDelete function.

list_entity_keysA

List alternate keys defined on a Dataverse table. Returns a flat array of { logical_name, schema_name, display_name, key_attributes, entity_key_index_status, metadata_id }. entity_key_index_status reflects the background index build (Pending → Active, or Failed) — alt keys are not usable for keyed-PATCH upserts until Active.

add_entity_keyA

Create an alternate key on a Dataverse table (composite supported via key_attributes). Use for race-safe upserts via keyed-PATCH or to enforce a uniqueness constraint that the primary key doesn't cover. NOTE: Dataverse builds the supporting unique index asynchronously — the key is not usable for keyed lookups until its EntityKeyIndexStatus becomes 'Active'. Poll with list_entity_keys.

delete_entity_keyA

Delete an alternate key from a Dataverse table (currently disabled for safety)

add_picklist_optionA

Add an option to an existing Local or Global OptionSet (Dataverse InsertOptionValue action). Requires Customizer or System Administrator role; HTTP 403 otherwise.

update_picklist_optionA

Update an existing option's label/description on a Local or Global OptionSet (Dataverse UpdateOptionValue action). Requires Customizer or System Administrator role.

delete_picklist_optionA

Remove an option from a Local or Global OptionSet (currently disabled for safety)

get_picklist_optionsA

Read options of a Local or Global OptionSet as a flat [{ value, label }] list.

invoke_actionA

Invoke a Dataverse Web API action (POST) — bound or unbound. Use for operations that are not plain CRUD, e.g. PublishDuplicateRule (bound to a duplicaterule) or QualifyLead (bound to a lead), or UnpublishDuplicateRule (unbound, takes DuplicateRuleId). Whether an action is bound is defined in the Web API $metadata. Pass entity_set+id for bound actions, neither for unbound. parameters becomes the JSON request body.

invoke_functionA

Invoke a Dataverse Web API function (GET) — bound or unbound. Use for read-only operations exposed as functions, e.g. WhoAmI (unbound) or RetrieveDuplicates. Pass entity_set+id for bound functions, neither for unbound. parameters are inlined into the URL as OData function arguments.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rededis/dataverse-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server