-
Notifications
You must be signed in to change notification settings - Fork 0
Tools Custom APIs
This page is generated from the code by scripts/gen_wiki_tools.py — do not edit by hand.
13 tools · category token customapis · enable with DATAVERSE_TOOLS=customapis (unset enables every category)
Write tools additionally require DATAVERSE_ALLOW_WRITE=true; delete tools require DATAVERSE_ALLOW_DELETE=true.
Write · non-idempotent · category customapis
Create a new Custom API record and return its GUID.
Required: uniquename (include publisher prefix, immutable after creation), name (display name). Optional: displayname, description, binding_type (0=Global, 1=Entity, 2=EntityCollection; default 0), is_function (bool, default false), is_private (bool, default false), allowed_custom_processing_step_type (0=None, 1=AsyncOnly, 2=SyncAndAsync; default 0), bound_entity_logical_name (required when binding_type is 1 or 2).
Note: uniquename, binding_type, is_function, allowed_custom_processing_step_type, and bound_entity_logical_name are immutable after creation — choose carefully. 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'). |
| uniquename | str |
yes | — | Unique name for the Custom API. Must include a publisher prefix (e.g., 'contoso_MyCustomAction'). This value is immutable after creation. (min_len=1) |
| name | str |
yes | — | Display name for the Custom API. (min_len=1) |
| displayname | str | None |
no | None |
Localizable display name for the Custom API. Defaults to name when omitted. |
| description | str | None |
no | None |
Description of the Custom API. |
| binding_type | int |
no | 0 |
Binding type for the Custom API (immutable after creation). 0=Global (default), 1=Entity, 2=EntityCollection. (ge=0, le=2) |
| is_function | bool |
no | False |
When True, the Custom API is a Function (GET-style, appears in $metadata). When False (default), it is an Action (POST-style). Immutable after creation. |
| is_private | bool |
no | False |
When True, the Custom API is hidden from $metadata and not discoverable by external callers. Defaults to False. |
| allowed_custom_processing_step_type | int |
no | 0 |
Controls which plug-in processing step types may be registered (immutable after creation). 0=None (default), 1=AsyncOnly, 2=SyncAndAsync. (ge=0, le=2) |
| bound_entity_logical_name | str | None |
no | None |
Logical name of the bound entity (e.g., 'account'). Required when binding_type is 1 (Entity) or 2 (EntityCollection). Immutable after creation. |
Returns {"created": ..., "id": ...}. Errors return {"error": true, "message": "..."}.
Write · non-idempotent · category customapis
Create a new request parameter for a Custom API and return its GUID.
Required: custom_api_id (GUID of the parent Custom API, immutable), uniquename (immutable after creation), type (int, immutable; 0=Boolean, 1=DateTime, 2=Decimal, 3=Entity, 4=EntityCollection, 5=EntityReference, 6=Float, 7=Integer, 8=Money, 9=Picklist, 10=String, 11=StringArray, 12=Guid), name (display name). Optional: displayname, description, is_optional (bool, default false). 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'). |
| custom_api_id | str |
yes | — | GUID of the parent Custom API. This value is immutable after creation. |
| uniquename | str |
yes | — | Unique name for the parameter within the Custom API (e.g., 'Target'). Immutable after creation. (min_len=1) |
| type | int |
yes | — | Data type for the parameter (immutable after creation). 0=Boolean, 1=DateTime, 2=Decimal, 3=Entity, 4=EntityCollection, 5=EntityReference, 6=Float, 7=Integer, 8=Money, 9=Picklist, 10=String, 11=StringArray, 12=Guid. (ge=0, le=12) |
| name | str |
yes | — | Display name for the request parameter. (min_len=1) |
| displayname | str | None |
no | None |
Localizable display name. Defaults to name when omitted. |
| description | str | None |
no | None |
Description of the request parameter. |
| is_optional | bool |
no | False |
When True, this parameter is optional for callers. Defaults to False. |
Returns {"created": ..., "id": ...}. Errors return {"error": true, "message": "..."}.
Write · non-idempotent · category customapis
Create a new response property for a Custom API and return its GUID.
Required: custom_api_id (GUID of the parent Custom API, immutable), uniquename (immutable after creation), type (int, immutable; 0=Boolean, 1=DateTime, 2=Decimal, 3=Entity, 4=EntityCollection, 5=EntityReference, 6=Float, 7=Integer, 8=Money, 9=Picklist, 10=String, 11=StringArray, 12=Guid), name (display name). Optional: displayname, description. 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'). |
| custom_api_id | str |
yes | — | GUID of the parent Custom API. This value is immutable after creation. |
| uniquename | str |
yes | — | Unique name for the response property within the Custom API (e.g., 'Result'). Immutable after creation. (min_len=1) |
| type | int |
yes | — | Data type for the response property (immutable after creation). 0=Boolean, 1=DateTime, 2=Decimal, 3=Entity, 4=EntityCollection, 5=EntityReference, 6=Float, 7=Integer, 8=Money, 9=Picklist, 10=String, 11=StringArray, 12=Guid. (ge=0, le=12) |
| name | str |
yes | — | Display name for the response property. (min_len=1) |
| displayname | str | None |
no | None |
Localizable display name. Defaults to name when omitted. |
| description | str | None |
no | None |
Description of the response property. |
Returns {"created": ..., "id": ...}. Errors return {"error": true, "message": "..."}.
Delete · idempotent · category customapis
Permanently delete a Custom API record by its GUID.
This is irreversible and also cascades to delete all associated request parameters and response properties. Managed Custom APIs cannot be deleted directly — uninstall via the parent solution. 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'). |
| custom_api_id | str |
yes | — | GUID of the Custom API record to delete (e.g., 'a1b2c3d4-1234-5678-abcd-ef0123456789'). |
Returns {"deleted": ..., "id": ...}. Errors return {"error": true, "message": "..."}.
Delete · idempotent · category customapis
Permanently delete a Custom API request parameter by its GUID.
This is irreversible. The parent Custom API is not affected. 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'). |
| request_parameter_id | str |
yes | — | GUID of the Custom API request parameter record to delete (e.g., 'a1b2c3d4-1234-5678-abcd-ef0123456789'). |
Returns {"deleted": ..., "id": ...}. Errors return {"error": true, "message": "..."}.
Delete · idempotent · category customapis
Permanently delete a Custom API response property by its GUID.
This is irreversible. The parent Custom API is not affected. 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'). |
| response_property_id | str |
yes | — | GUID of the Custom API response property record to delete (e.g., 'a1b2c3d4-1234-5678-abcd-ef0123456789'). |
Returns {"deleted": ..., "id": ...}. Errors return {"error": true, "message": "..."}.
Read · idempotent · category customapis
Retrieve a single Custom API record by its GUID, including expanded request parameters and response properties.
Returns all default columns plus:
- CustomAPIRequestParameters (customapirequestparameterid, uniquename, name, type, isoptional)
- CustomAPIResponseProperties (customapiresponsepropertyid, uniquename, name, type) The @odata.context key is stripped from the response.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| custom_api_id | str |
yes | — | GUID of the Custom API record to retrieve (e.g., 'a1b2c3d4-1234-5678-abcd-ef0123456789'). |
Returns {"custom_api": ...}. Errors return {"error": true, "message": "..."}.
Read · idempotent · category customapis
List request parameter records for a Custom API.
Filters by custom_api_id (GUID) to return only parameters belonging to that Custom API. Returns customapirequestparameterid, uniquename, name, displayname, type, isoptional for each record. Type enum: 0=Boolean, 1=DateTime, 2=Decimal, 3=Entity, 4=EntityCollection, 5=EntityReference, 6=Float, 7=Integer, 8=Money, 9=Picklist, 10=String, 11=StringArray, 12=Guid. An optional OData filter expression can further narrow results.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| custom_api_id | str |
yes | — | GUID of the parent Custom API whose request parameters to list. |
| filter | str | None |
no | None |
Additional OData $filter expression to narrow results (e.g., "isoptional eq true"). The parent Custom API filter is always applied automatically. |
| top | int |
no | 50 |
Maximum number of records to return (1–5000). (ge=1, le=5000) |
Returns {"request_parameters": ..., "count": ..., "has_more": ...}. Errors return {"error": true, "message": "..."}.
Read · idempotent · category customapis
List response property records for a Custom API.
Filters by custom_api_id (GUID) to return only properties belonging to that Custom API. Returns customapiresponsepropertyid, uniquename, name, displayname, type for each record. Type enum: 0=Boolean, 1=DateTime, 2=Decimal, 3=Entity, 4=EntityCollection, 5=EntityReference, 6=Float, 7=Integer, 8=Money, 9=Picklist, 10=String, 11=StringArray, 12=Guid. An optional OData filter expression can further narrow results.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| custom_api_id | str |
yes | — | GUID of the parent Custom API whose response properties to list. |
| filter | str | None |
no | None |
Additional OData $filter expression to narrow results (e.g., "type eq 10"). The parent Custom API filter is always applied automatically. |
| top | int |
no | 50 |
Maximum number of records to return (1–5000). (ge=1, le=5000) |
Returns {"response_properties": ..., "count": ..., "has_more": ...}. Errors return {"error": true, "message": "..."}.
Read · idempotent · category customapis
List Custom API records in the Dataverse environment.
Returns customapiid, uniquename, name, displayname, bindingtype, isfunction, isprivate, and allowedcustomprocessingsteptype for each record. Use the optional filter parameter to narrow results with an OData $filter expression (e.g., "isprivate eq false", "isfunction eq true"). bindingtype: 0=Global, 1=Entity, 2=EntityCollection. allowedcustomprocessingsteptype: 0=None, 1=AsyncOnly, 2=SyncAndAsync. Use dataverse_get_custom_api to fetch expanded request parameters and response properties for a specific Custom API.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| filter | str | None |
no | None |
OData $filter expression to narrow results. Use lowercase logical names (e.g., "isprivate eq false", "isfunction eq true", "bindingtype eq 0"). |
| top | int |
no | 50 |
Maximum number of Custom API records to return (1–5000). (ge=1, le=5000) |
Returns {"custom_apis": ..., "count": ..., "has_more": ...}. Errors return {"error": true, "message": "..."}.
Write · idempotent · category customapis
Partially update a Custom API record (PATCH) — only mutable fields.
Mutable fields: name, displayname, description, is_private, execute_privilege_name. Provide custom_api_id and at least one of the mutable fields. Immutable fields (uniquename, bindingtype, isfunction, allowedcustomprocessingsteptype, boundentitylogicalname) cannot be changed after creation. 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'). |
| custom_api_id | str |
yes | — | GUID of the Custom API record to update. |
| name | str | None |
no | None |
Updated display name. |
| displayname | str | None |
no | None |
Updated localizable display name. |
| description | str | None |
no | None |
Updated description. |
| is_private | bool | None |
no | None |
When provided, sets the isprivate flag. |
| execute_privilege_name | str | None |
no | None |
Privilege name required to execute the Custom API (e.g., 'prvMyPrivilege'). Set to an empty string to clear. |
Returns {"updated": ..., "id": ...}. Errors return {"error": true, "message": "..."}.
Write · idempotent · category customapis
Partially update a Custom API request parameter (PATCH) — mutable fields only.
Mutable fields: name, displayname, description, is_optional. Provide request_parameter_id and at least one mutable field. Immutable fields (uniquename, customapiid, type, logicalentityname) cannot be changed. 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'). |
| request_parameter_id | str |
yes | — | GUID of the Custom API request parameter record to update. |
| name | str | None |
no | None |
Updated display name. |
| displayname | str | None |
no | None |
Updated localizable display name. |
| description | str | None |
no | None |
Updated description. |
| is_optional | bool | None |
no | None |
When provided, updates the isoptional flag. |
Returns {"updated": ..., "id": ...}. Errors return {"error": true, "message": "..."}.
Write · idempotent · category customapis
Partially update a Custom API response property (PATCH) — mutable fields only.
Mutable fields: name, displayname, description. Provide response_property_id and at least one mutable field. Immutable fields (uniquename, customapiid, type, logicalentityname) cannot be changed. 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'). |
| response_property_id | str |
yes | — | GUID of the Custom API response property record to update. |
| name | str | None |
no | None |
Updated display name. |
| displayname | str | None |
no | None |
Updated localizable display name. |
| description | str | None |
no | None |
Updated description. |
Returns {"updated": ..., "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