-
Notifications
You must be signed in to change notification settings - Fork 0
Tools Forms
This page is generated from the code by scripts/gen_wiki_tools.py — do not edit by hand.
6 tools · category token forms · enable with DATAVERSE_TOOLS=forms (unset enables every category)
Every tool returns JSON. Errors return {"error": true, "message": "..."}. Write tools require DATAVERSE_ALLOW_WRITE=true; delete tools require DATAVERSE_ALLOW_DELETE=true.
Write · non-idempotent · category forms
Add a column control to a Dataverse model-driven app form.
Note: Publishes automatically — no separate publish needed.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| form_id | str |
yes | — | GUID of the form to update. (min_len=36, max_len=36) |
| table_logical_name | str |
yes | — | Logical name of the table the form belongs to (e.g., 'cr123_myentity'). Used to look up column metadata to determine the correct control type. (min_len=1, pattern=^[a-zA-Z_][a-zA-Z0-9_]*$) |
| datafieldname | str |
yes | — | Logical name of the column to add (e.g., 'cr123_description'). (min_len=1) |
| label | str | None |
no | None |
Display label for the control. Defaults to the column's display name if omitted. |
| section_index | int |
no | 0 |
Zero-based index of the section (within the first tab) to add the control to. Use dataverse_get_form to see the current section layout. Defaults to 0. (ge=0) |
| row_index | int | None |
no | None |
Zero-based position within the section to insert the control. Omit to append at the end of the section. (ge=0) |
| rowspan | int | None |
no | None |
Number of rows the cell spans vertically (maps to 'rowspan' on <cell> per the FormXml XSD). Omit to use the automatic default: Memo and TextArea columns default to 3 for usable height; all other types default to 1 (no rowspan set). (ge=1) |
| disabled | bool |
no | False |
When True, renders the control as read-only on the form. Maps to the 'disabled' boolean attribute on <control> in the FormXml XSD. |
| isrequired | bool |
no | False |
When True, shows the required indicator on the form control. Maps to 'isrequired' on <control> in the FormXml XSD. Distinct from the column's RequiredLevel metadata. |
| solution_unique_name | str | None |
no | None |
If provided, adds the form to this solution after the update via AddSolutionComponent (component type 60 — System Form). (pattern=^[a-zA-Z_][a-zA-Z0-9_]*$) |
Returns {"added": ..., "form_id": ..., "datafieldname": ..., "label": ..., "classid": ..., "attribute_type": ..., "rowspan": ..., "disabled": ..., "isrequired": ..., "section_index": ..., "row_index": ..., "published": ..., "solution_unique_name": ..., "formxml_backup": ...}.
Read · idempotent · category forms
Get a single Dataverse form's layout parsed as a structured JSON object.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| form_id | str |
yes | — | GUID of the form to retrieve (e.g., 'd0e900e1-ddbf-434b-868a-fa48d45ea15f'). (min_len=36, max_len=36) |
Returns {"form_id": ..., "name": ..., "table": ..., "type": ..., "type_name": ..., "is_default": ..., "activation_state": ..., "layout": ..., "formxml_backup": ...}.
Read · idempotent · category forms
List model-driven app forms registered in the Dataverse environment.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| table_logical_name | str | None |
no | None |
Logical name of the table to filter forms by (e.g., 'account'). Omit to return forms for all tables. (pattern=^[a-zA-Z_][a-zA-Z0-9_]*$) |
| form_type | int | None |
no | None |
Filter by form type integer. Common values: 2 = Main, 4 = Quick View, 5 = Quick Create, 9 = Card. Omit to return all types. |
| top | int |
no | 50 |
Maximum number of records to return. (ge=1, le=5000) |
Returns {"forms": ..., "count": ..., "has_more": ...}.
Write · idempotent · category forms
Remove a column control from a Dataverse model-driven app form.
Note: Returns an error if the control is not found — no change is made.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| form_id | str |
yes | — | GUID of the form to update. (min_len=36, max_len=36) |
| datafieldname | str |
yes | — | Logical name of the column whose control should be removed. (min_len=1) |
| solution_unique_name | str | None |
no | None |
If provided, adds the form to this solution after the update via AddSolutionComponent (component type 60 — System Form). (pattern=^[a-zA-Z_][a-zA-Z0-9_]*$) |
Returns {"removed": ..., "form_id": ..., "datafieldname": ..., "published": ..., "solution_unique_name": ..., "formxml_backup": ...}.
Write · idempotent · category forms
Replace a Dataverse form's FormXml with a complete new XML string, then publish.
Note: Validates the XML before writing — returns errors without patching if invalid.
Note: Publishes automatically — no separate publish needed.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| form_id | str |
yes | — | GUID of the form to update. (min_len=36, max_len=36) |
| formxml | str |
yes | — | Complete replacement FormXml string. Must be well-formed XML with a <form> root. Use dataverse_get_form to retrieve the current FormXml as a starting point, and dataverse_validate_formxml with this string as a dry-run before committing. (min_len=1) |
| solution_unique_name | str | None |
no | None |
If provided, adds the form to this solution after the update via AddSolutionComponent (component type 60 — System Form). (pattern=^[a-zA-Z_][a-zA-Z0-9_]*$) |
Returns {"updated": ..., "published": ..., "form_id": ..., "table": ..., "solution_unique_name": ..., "formxml_backup": ...}.
Read · idempotent · category forms
Validate FormXml against structural rules derived from the FormXml XSD.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| form_id | str |
yes | — | GUID of the form to validate (e.g., 'd0e900e1-ddbf-434b-868a-fa48d45ea15f'). (min_len=36, max_len=36) |
| formxml | str | None |
no | None |
FormXml string to validate directly. When provided, validates this XML without fetching from Dataverse — use as a dry-run before calling dataverse_set_formxml. When omitted, fetches and validates the live form's current FormXml. (min_len=1) |
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