-
Notifications
You must be signed in to change notification settings - Fork 0
Tools Plugins
This page is generated from the code by scripts/gen_wiki_tools.py — do not edit by hand.
33 tools · category token plugins · enable with DATAVERSE_TOOLS=plugins (unset enables every category)
Write tools additionally require DATAVERSE_ALLOW_WRITE=true; delete tools require DATAVERSE_ALLOW_DELETE=true.
Write · non-idempotent · category plugins
Upload a new plug-in assembly from base64-encoded DLL bytes.
First step of the prerequisite chain: assembly (or package) → plug-in type → processing step → step image. The assembly must be strong-name signed. isolation_mode=2 (Sandbox) is required for Dataverse online. Requires DATAVERSE_ALLOW_WRITE=true.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| name | str |
yes | — | Assembly name, typically the DLL base name e.g. 'MyOrg.Plugins' (min_len=1) |
| content | str |
yes | — | Base64-encoded bytes of the strong-name-signed assembly DLL (min_len=1) |
| isolation_mode | int |
no | 2 |
1=None (full trust; not supported online), 2=Sandbox (default/recommended), 3=External |
| version | str | None |
no | None |
Assembly version e.g. '1.0.0.0'. Derived from content if omitted. |
| culture | str | None |
no | None |
Culture e.g. 'neutral' |
| public_key_token | str | None |
no | None |
Public key token from the strong-name key |
| description | str | None |
no | None |
Optional description for the assembly |
Returns {"created": ..., "name": ..., "isolation_mode": ..., "location": ...}. Errors return {"error": true, "message": "..."}.
Write · non-idempotent · category plugins
Upload a new NuGet-based plug-in package from base64-encoded .nupkg bytes.
Dataverse extracts the contained plug-in assemblies automatically on create. Use as an alternative first step to dataverse_create_plugin_assembly when deploying NuGet-packaged plug-ins. Requires DATAVERSE_ALLOW_WRITE=true.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| name | str |
yes | — | Display name for the plug-in package (min_len=1) |
| unique_name | str |
yes | — | Publisher-prefixed unique name e.g. 'yourprefix_MyPackage' (min_len=1) |
| content | str |
yes | — | Base64-encoded bytes of the .nupkg file (min_len=1) |
| version | str |
yes | — | Package version e.g. '1.0.0' (min_len=1) |
Returns {"created": ..., "unique_name": ..., "location": ...}. Errors return {"error": true, "message": "..."}.
Write · non-idempotent · category plugins
Register a processing step that runs a plug-in type on an SDK message.
Prerequisite chain: create assembly (or package) → plug-in type → this step → step image. Resolve message_id with dataverse_get_sdk_message and the optional entity-scoping filter_id with dataverse_get_sdk_message_filter. See the stage and mode fields for valid values. Requires DATAVERSE_ALLOW_WRITE=true.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| name | str |
yes | — | Step name e.g. 'MyOrg.Plugins.ContactPlugin: Create of contact' (min_len=1) |
| plugin_type_id | str |
yes | — | GUID of the plugintype handling this step |
| message_id | str |
yes | — | GUID of the sdkmessage; resolve via dataverse_get_sdk_message |
| filter_id | str | None |
no | None |
GUID of the sdkmessagefilter to scope to one entity; omit to register against all entities |
| stage | int |
yes | — | Pipeline stage: 10 = pre-validation (outside the DB transaction), 20 = pre-operation (inside the DB transaction, before the main op), 40 = post-operation (after the main op). Not mutable after registration. |
| mode | int |
yes | — | Execution mode: 0 = synchronous (runs in the caller's transaction), 1 = asynchronous (runs in a background System Job). Not mutable after registration. |
| rank | int |
no | 1 |
Execution order within the stage (lower runs first) (ge=1) |
| filtering_attributes | str | None |
no | None |
Comma-separated logical names; step fires only when one of these attributes changes. Use for Update steps only. |
| supported_deployment | int |
no | 0 |
0=Server Only, 1=Outlook Client Only, 2=Both |
| async_auto_delete | bool |
no | False |
When True, automatically deletes completed async operations. Only relevant for asynchronous steps (mode=1). |
| configuration | str | None |
no | None |
Unsecure configuration string passed to the plug-in constructor |
| description | str | None |
no | None |
Optional step description |
Returns {"created": ..., "name": ..., "stage": ..., "mode": ..., "location": ...}. Errors return {"error": true, "message": "..."}.
Write · non-idempotent · category plugins
Register a pre/post entity image on a processing step.
Final step in the chain: assembly → type → step → image. PostImage (image_type=1) is only valid for post-operation (stage=40) steps. entity_alias is the property-bag key used in plug-in code (e.g. 'PreImage'). Requires DATAVERSE_ALLOW_WRITE=true.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| step_id | str |
yes | — | GUID of the parent sdkmessageprocessingstep record |
| image_type | int |
yes | — | 0=PreImage, 1=PostImage, 2=Both |
| entity_alias | str |
yes | — | Key used to access the image in the plug-in property bag e.g. 'PreImage' (min_len=1) |
| message_property_name | str |
yes | — | Request message property the image is taken from, e.g. 'Target' for Create/Update (min_len=1) |
| name | str | None |
no | None |
Image name; defaults to entity_alias if omitted |
| attributes | str | None |
no | None |
Comma-separated logical names to include in the image; omit for all attributes |
| description | str | None |
no | None |
Optional image description |
Returns {"created": ..., "entity_alias": ..., "image_type": ..., "location": ...}. Errors return {"error": true, "message": "..."}.
Write · non-idempotent · category plugins
Register a plug-in type (a .NET class) against an existing assembly.
Second step of the prerequisite chain: assembly → type → step → image. Supply the fully-qualified .NET class name as typename (e.g. 'MyOrg.Plugins.ContactPlugin'). Requires DATAVERSE_ALLOW_WRITE=true.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| assembly_id | str |
yes | — | GUID of the parent pluginassembly record |
| typename | str |
yes | — | Fully-qualified .NET type name e.g. 'MyOrg.Plugins.ContactPlugin' (min_len=1) |
| friendly_name | str | None |
no | None |
User-friendly name; defaults to typename if omitted |
| name | str | None |
no | None |
Display name; defaults to typename if omitted |
| is_workflow_activity | bool |
no | False |
Whether this type is a custom workflow activity |
| workflow_activity_group_name | str | None |
no | None |
Group name; only relevant for custom workflow activities |
Returns {"created": ..., "typename": ..., "location": ...}. Errors return {"error": true, "message": "..."}.
Delete · non-idempotent · category plugins
Permanently delete a plug-in assembly record — this action cannot be undone.
Fails while dependent plug-in types or steps exist. Delete in leaf-to-root order: step images → steps → types → assembly. Requires DATAVERSE_ALLOW_DELETE=true.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| assembly_id | str |
yes | — | GUID of the pluginassembly record to delete |
Returns {"deleted": ..., "assembly_id": ...}. Errors return {"error": true, "message": "..."}.
Delete · non-idempotent · category plugins
Permanently delete a plug-in package and its extracted assemblies, types, and steps.
This action cannot be undone and cascades to all dependent records. Requires DATAVERSE_ALLOW_DELETE=true.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| package_id | str |
yes | — | GUID of the pluginpackage record to delete |
Returns {"deleted": ..., "package_id": ...}. Errors return {"error": true, "message": "..."}.
Delete · non-idempotent · category plugins
Permanently delete an SDK message processing step — this action cannot be undone.
Delete step images first. To temporarily deactivate a step without deleting it, use dataverse_update_plugin_step with state='disabled'. Requires DATAVERSE_ALLOW_DELETE=true.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| step_id | str |
yes | — | GUID of the sdkmessageprocessingstep record to delete |
Returns {"deleted": ..., "step_id": ...}. Errors return {"error": true, "message": "..."}.
Delete · non-idempotent · category plugins
Permanently delete a plug-in step image — this action cannot be undone.
Requires DATAVERSE_ALLOW_DELETE=true.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| image_id | str |
yes | — | GUID of the sdkmessageprocessingstepimage record to delete |
Returns {"deleted": ..., "image_id": ...}. Errors return {"error": true, "message": "..."}.
Delete · non-idempotent · category plugins
Permanently delete a plug-in type record — this action cannot be undone.
Fails while dependent processing steps exist. Delete step images and steps first. Requires DATAVERSE_ALLOW_DELETE=true.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| plugin_type_id | str |
yes | — | GUID of the plugintype record to delete |
Returns {"deleted": ..., "plugin_type_id": ...}. Errors return {"error": true, "message": "..."}.
Read · idempotent · category plugins
Retrieve a single plug-in assembly record by its GUID.
The 'content' column contains the base64-encoded DLL and is very large — exclude it from select unless you specifically need it.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| assembly_id | str |
yes | — | GUID of the pluginassembly record to retrieve |
| select | list[str] | None |
no | None |
Columns to return. Defaults to pluginassemblyid, name, version, culture, publickeytoken, isolationmode, sourcetype, description, _packageid_value. Omit 'content' (base64 DLL) unless needed — it is large. |
Returns {"record": ...}. Errors return {"error": true, "message": "..."}.
Read · idempotent · category plugins
Retrieve a single plug-in package record by its GUID.
Packages are an alternative to raw assemblies — Dataverse extracts the contained assemblies automatically on upload.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| package_id | str |
yes | — | GUID of the pluginpackage record to retrieve |
| select | list[str] | None |
no | None |
Columns to return. Defaults to pluginpackageid, name, uniquename, version. Omit 'content' unless needed. |
Returns {"record": ...}. Errors return {"error": true, "message": "..."}.
Read · idempotent · category plugins
Retrieve a single SDK message processing step record by its GUID.
Steps are the third node in the prerequisite chain: assembly → type → step → image.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| step_id | str |
yes | — | GUID of the sdkmessageprocessingstep record to retrieve |
| select | list[str] | None |
no | None |
Columns to return. Defaults to sdkmessageprocessingstepid, name, stage, mode, rank, filteringattributes, statecode, _sdkmessageid_value, _sdkmessagefilterid_value, _eventhandler_value, description. |
Returns {"record": ...}. Errors return {"error": true, "message": "..."}.
Read · idempotent · category plugins
Retrieve a single plug-in step image record by its GUID.
Step images are pre/post entity snapshots passed to the plug-in context. They are the leaf node in the chain: assembly → type → step → image.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| image_id | str |
yes | — | GUID of the sdkmessageprocessingstepimage record to retrieve |
| select | list[str] | None |
no | None |
Columns to return. Defaults to sdkmessageprocessingstepimageid, name, imagetype, entityalias, messagepropertyname, attributes, _sdkmessageprocessingstepid_value. |
Returns {"record": ...}. Errors return {"error": true, "message": "..."}.
Read · idempotent · category plugins
Get the current plug-in trace log setting for the Dataverse organization.
Returns the verbosity level: off (0), exception (1), or all (2).
This setting controls whether Dataverse records plug-in execution traces in the plugintracelog entity. Use dataverse_set_plugin_trace_log_setting to change the setting, and dataverse_list_plugin_trace_logs to read the logs.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
Returns {"organization_id": ..., "plugin_trace_log_setting": ..., "plugin_trace_log_setting_label": ...}. Errors return {"error": true, "message": "..."}.
Read · idempotent · category plugins
Retrieve a single plug-in type record by its GUID.
Plug-in types represent individual .NET classes within an assembly. Use dataverse_list_plugin_types to browse types in a given assembly.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| plugin_type_id | str |
yes | — | GUID of the plugintype record to retrieve |
| select | list[str] | None |
no | None |
Columns to return. Defaults to plugintypeid, typename, friendlyname, name, assemblyname, isworkflowactivity, _pluginassemblyid_value. |
Returns {"record": ...}. Errors return {"error": true, "message": "..."}.
Read · idempotent · category plugins
Resolve an SDK message (e.g. 'Create', 'Update', 'Delete') to its sdkmessageid.
Call this to get the message_id required by dataverse_create_plugin_step. Provide message_name OR message_id — exactly one required.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| message_name | str | None |
no | None |
Message name e.g. 'Create', 'Update', 'Delete'. Provide this OR message_id. |
| message_id | str | None |
no | None |
GUID of the sdkmessage record. Provide this OR message_name. |
Returns {"record": ...}. Errors return {"error": true, "message": "..."}.
Read · idempotent · category plugins
Resolve the filter that scopes an SDK message to one entity — returns the sdkmessagefilterid.
Call this to get the filter_id required by dataverse_create_plugin_step when you want to scope a step to a specific entity (e.g. 'contact'). Provide filter_id alone, or message_id + primary_entity together.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| filter_id | str | None |
no | None |
GUID of the sdkmessagefilter record. Provide this alone OR provide message_id + primary_entity. |
| message_id | str | None |
no | None |
GUID of the sdkmessage to scope the lookup. Required when using message+entity mode. |
| primary_entity | str | None |
no | None |
Lowercase logical name of the primary entity e.g. 'contact'. Required when using message+entity mode. |
Returns {"record": ...}. Errors return {"error": true, "message": "..."}.
Read · idempotent · category plugins
List plug-in assemblies registered in the environment, optionally filtered.
Results ordered newest-modified first. Use package_id to scope to one plug-in package. The prerequisite chain is: assembly (or package) → plug-in type → processing step → step image.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| name_contains | str | None |
no | None |
Substring filter on assembly name (OData contains) |
| package_id | str | None |
no | None |
GUID of a pluginpackage; return only assemblies in that package |
| filter | str | None |
no | None |
Raw OData $filter expression (escape hatch) |
| select | list[str] | None |
no | None |
Columns to return. Defaults to the standard assembly projection. |
| top | int |
no | 50 |
Maximum number of records to return (ge=1, le=5000) |
Returns {"records": ..., "count": ..., "has_more": ...}. Errors return {"error": true, "message": "..."}.
Read · idempotent · category plugins
List NuGet-based plug-in packages registered in the environment.
Results ordered newest-modified first. Packages are an alternative to raw assemblies as the first step in the prerequisite chain.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| name_contains | str | None |
no | None |
Substring filter on package name |
| filter | str | None |
no | None |
Raw OData $filter expression |
| select | list[str] | None |
no | None |
Columns to return. Defaults to the standard package projection. |
| top | int |
no | 50 |
Maximum number of records to return (ge=1, le=5000) |
Returns {"records": ..., "count": ..., "has_more": ...}. Errors return {"error": true, "message": "..."}.
Read · idempotent · category plugins
List plug-in step images (pre/post entity snapshots) registered against steps.
Use step_id to scope to one processing step.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| step_id | str | None |
no | None |
GUID of a sdkmessageprocessingstep; return images for that step only |
| filter | str | None |
no | None |
Raw OData $filter expression |
| select | list[str] | None |
no | None |
Columns to return. Defaults to the standard image projection. |
| top | int |
no | 50 |
Maximum number of records to return (ge=1, le=5000) |
Returns {"records": ..., "count": ..., "has_more": ...}. Errors return {"error": true, "message": "..."}.
Read · idempotent · category plugins
List SDK message processing steps registered in the environment.
Use plugin_type_id to scope to one plug-in type, or message_id to scope to one message. Results ordered by name ascending.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| plugin_type_id | str | None |
no | None |
GUID of a plugintype; return only steps handled by that type |
| message_id | str | None |
no | None |
GUID of a sdkmessage; return only steps for that message |
| filter | str | None |
no | None |
Raw OData $filter expression |
| select | list[str] | None |
no | None |
Columns to return. Defaults to the standard step projection. |
| top | int |
no | 50 |
Maximum number of records to return (ge=1, le=5000) |
Returns {"records": ..., "count": ..., "has_more": ...}. Errors return {"error": true, "message": "..."}.
Read · idempotent · category plugins
List plug-in trace log records with optional filters.
Returns trace and exception information generated by plug-ins and custom workflow activities. Records are ordered newest-first.
Useful filters:
- type_name: partial match on the plug-in class name (typename)
- exceptions_only: true to show only failed executions
- hours_ago: narrow to recent logs (e.g. 1 for the last hour)
- message_name: filter by triggering message (e.g. 'Create', 'Update')
- primary_entity: filter by entity the plug-in ran against
Plug-in trace logging must be enabled via dataverse_set_plugin_trace_log_setting before logs will be generated. Use dataverse_get_plugin_trace_log_setting to check the current setting.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| type_name | str | None |
no | None |
Filter by plug-in class name (typename). Supports partial match; e.g. 'MyPlugin' matches 'Acme.MyPlugin'. (max_len=1024) |
| message_name | str | None |
no | None |
Filter by the Dataverse message that triggered the plug-in (e.g., 'Create', 'Update', 'Delete'). (max_len=1024) |
| primary_entity | str | None |
no | None |
Filter by the primary entity logical name the plug-in ran against (e.g., 'account', 'contact'). (max_len=1000) |
| operation_type | int | None |
no | None |
Filter by operation type: 0 = Unknown, 1 = Plug-in, 2 = Workflow Activity. Omit to include all types. (ge=0, le=2) |
| exceptions_only | bool |
no | False |
When true, return only records where exceptiondetails is populated. |
| hours_ago | int | None |
no | None |
Limit results to logs created within the last N hours. Omit to return logs regardless of age. (ge=1, le=720) |
| top | int |
no | 50 |
Maximum number of records to return. (ge=1, le=5000) |
Returns {"records": ..., "count": ..., "has_more": ...}. Errors return {"error": true, "message": "..."}.
Read · idempotent · category plugins
List runtime performance statistics for Dataverse plug-in types.
Returns execution counts, failure rates, crash metrics, and worker-process termination contribution percentages per plug-in type. Records are populated by Dataverse within 30–60 minutes of plug-in execution; all fields are read-only.
Filter to a specific plug-in type with plugin_type_id, or omit to return statistics for all plug-in types. Set include_plugin_type_details=true to expand each row with the plug-in type name, typename, and assemblyname.
Use this to identify slow, high-failure, or crash-prone plug-ins before investigating further with the Power Platform Admin Center analytics dashboard.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| plugin_type_id | str | None |
no | None |
GUID of the plug-in type to filter by (e.g. 'a1b2c3d4-0000-0000-0000-000000000000'). Omit to return statistics for all plug-in types. (min_len=36, max_len=36) |
| top | int |
no | 50 |
Maximum number of records to return. (ge=1, le=5000) |
| include_plugin_type_details | bool |
no | False |
When true, expands the plugintypeid lookup to include the plug-in type name, typename, and assemblyname. |
Returns {"records": ..., "count": ..., "has_more": ...}. Errors return {"error": true, "message": "..."}.
Read · idempotent · category plugins
List plug-in types (.NET classes) registered in the environment.
Use assembly_id to scope to one assembly. Results ordered by typename ascending. Types are the second step in the prerequisite chain: assembly → type → step → image.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| assembly_id | str | None |
no | None |
GUID of a pluginassembly; return only types in that assembly |
| typename_contains | str | None |
no | None |
Substring filter on typename (fully-qualified .NET class name) |
| is_workflow_activity | bool | None |
no | None |
When True/False, filter to custom workflow activities only or exclude them |
| filter | str | None |
no | None |
Raw OData $filter expression |
| select | list[str] | None |
no | None |
Columns to return. Defaults to the standard type projection. |
| top | int |
no | 50 |
Maximum number of records to return (ge=1, le=5000) |
Returns {"records": ..., "count": ..., "has_more": ...}. Errors return {"error": true, "message": "..."}.
Read · idempotent · category plugins
List SDK message filters showing which entities support each message.
Use message_id to scope to one message, or primary_entity to see all messages supported by one table. Use dataverse_get_sdk_message_filter to resolve a specific filter_id for dataverse_create_plugin_step.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| message_id | str | None |
no | None |
GUID of the sdkmessage; return filters for one message only |
| primary_entity | str | None |
no | None |
Lowercase logical name of the primary entity e.g. 'contact' |
| filter | str | None |
no | None |
Raw OData $filter expression |
| select | list[str] | None |
no | None |
Columns to return. Defaults to sdkmessagefilterid, primaryobjecttypecode, _sdkmessageid_value. |
| top | int |
no | 50 |
Maximum number of records to return (ge=1, le=5000) |
Returns {"records": ..., "count": ..., "has_more": ...}. Errors return {"error": true, "message": "..."}.
Read · idempotent · category plugins
List SDK messages — the catalog of operations plug-in steps can intercept.
Use to discover valid message names (e.g. 'Create', 'Update', 'Assign') before calling dataverse_get_sdk_message to resolve message_id for a step.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| name_contains | str | None |
no | None |
Substring filter on message name |
| filter | str | None |
no | None |
Raw OData $filter expression |
| select | list[str] | None |
no | None |
Columns to return. Defaults to sdkmessageid, name. |
| top | int |
no | 50 |
Maximum number of records to return (ge=1, le=5000) |
Returns {"records": ..., "count": ..., "has_more": ...}. Errors return {"error": true, "message": "..."}.
Write · idempotent · category plugins
Enable or disable plug-in trace logging for the Dataverse organization.
Sets the organization-wide PluginTraceLogSetting:
- 'off' (0): No plug-in trace logs are written.
- 'exception' (1): Logs written only when a plug-in throws an exception.
- 'all' (2): Logs written for every plug-in execution.
Requires DATAVERSE_ALLOW_WRITE=true on the server.
WARNING: Setting 'all' generates high log volume. Disable logging once debugging is complete to avoid excessive storage usage.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| setting | str |
yes | — | Trace log verbosity level: 'off' (disabled), 'exception' (log only on plug-in exceptions), or 'all' (log every plug-in execution). |
Returns {"success": ..., "organization_id": ..., "plugin_trace_log_setting": ..., "plugin_trace_log_setting_label": ...}. Errors return {"error": true, "message": "..."}.
Write · idempotent · category plugins
Update an existing plug-in assembly — most often to re-deploy new DLL bytes.
Re-uploading content updates the registered code in-place without changing the assembly's GUID or breaking dependent types and steps. Requires DATAVERSE_ALLOW_WRITE=true.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| assembly_id | str |
yes | — | GUID of the pluginassembly record to update |
| content | str | None |
no | None |
New base64-encoded DLL bytes (re-deploys the assembly code) |
| isolation_mode | int | None |
no | None |
Updated isolation mode: 1=None, 2=Sandbox, 3=External |
| version | str | None |
no | None |
Updated assembly version string |
| description | str | None |
no | None |
Updated description |
Returns {"updated": ..., "assembly_id": ...}. Errors return {"error": true, "message": "..."}.
Write · idempotent · category plugins
Update a plug-in package — re-upload new .nupkg content or bump the version.
Requires DATAVERSE_ALLOW_WRITE=true.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| package_id | str |
yes | — | GUID of the pluginpackage record to update |
| content | str | None |
no | None |
New base64-encoded .nupkg bytes |
| version | str | None |
no | None |
Updated package version string |
Returns {"updated": ..., "package_id": ...}. Errors return {"error": true, "message": "..."}.
Write · idempotent · category plugins
Update an SDK message processing step, including enabling or disabling it.
Use state='enabled' or state='disabled' to toggle without deleting. stage, mode, and message are not mutable after registration — re-create the step to change those. Requires DATAVERSE_ALLOW_WRITE=true.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| step_id | str |
yes | — | GUID of the sdkmessageprocessingstep record to update |
| name | str | None |
no | None |
Updated step name |
| rank | int | None |
no | None |
Updated execution order within the stage (ge=1) |
| filtering_attributes | str | None |
no | None |
Updated comma-separated attribute filter |
| state | str | None |
no | None |
'enabled' or 'disabled' — use to enable/disable the step without deleting |
| configuration | str | None |
no | None |
Updated unsecure configuration string |
| description | str | None |
no | None |
Updated step description |
Returns {"updated": ..., "step_id": ...}. Errors return {"error": true, "message": "..."}.
Write · idempotent · category plugins
Update a plug-in step image's alias, property name, or attribute filter.
Requires DATAVERSE_ALLOW_WRITE=true.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| image_id | str |
yes | — | GUID of the sdkmessageprocessingstepimage record to update |
| entity_alias | str | None |
no | None |
Updated property bag key |
| message_property_name | str | None |
no | None |
Updated request message property name |
| attributes | str | None |
no | None |
Updated comma-separated attribute list |
| name | str | None |
no | None |
Updated image name |
Returns {"updated": ..., "image_id": ...}. Errors return {"error": true, "message": "..."}.
Write · idempotent · category plugins
Update mutable display fields on a plug-in type record.
typename and assembly are not safely mutable after registration — re-create the type instead. Requires DATAVERSE_ALLOW_WRITE=true.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| plugin_type_id | str |
yes | — | GUID of the plugintype record to update |
| friendly_name | str | None |
no | None |
Updated user-friendly name |
| name | str | None |
no | None |
Updated display name |
| workflow_activity_group_name | str | None |
no | None |
Updated workflow activity group name |
Returns {"updated": ..., "plugin_type_id": ...}. Errors return {"error": true, "message": "..."}.
dataverse-mcp 3.9.1 — Repository · PyPI · Issues · Changelog · MIT
Get started
Configure
Tools
- Tool-Index
- Tools-Core
- Tools-Schema
- Tools-Solutions
- Tools-Plugins
- Tools-Security
- Tools-Custom-APIs
- Tools-Apps
- Tools-Variables
- Tools-Flows
- Tools-Views
- Tools-Forms
- Tools-Connections
- Tools-Web-Resources
- Tools-Jobs
Understand