-
Notifications
You must be signed in to change notification settings - Fork 0
Tools Apps
This page is generated from the code by scripts/gen_wiki_tools.py — do not edit by hand.
10 tools · category token apps · enable with DATAVERSE_TOOLS=apps (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 apps
Add components (tables, forms, views, charts, BPFs) to a model-driven app.
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'). |
| app_id | str |
yes | — | GUID of the app to add components to. (min_len=36, max_len=36) |
| components | list[AppComponentSpec] |
yes | — | Components to add. Each has type and either id (GUID) or logical_name (for tables). Use dataverse_get_app to see current components before adding. (min_len=1) |
Returns {"added": ..., "app_id": ..., "component_count": ..., "published": ...}.
Delete · idempotent · category apps
Associate or disassociate a Dataverse security role with a model-driven app.
Note: The remove path (action='remove') issues a DELETE and additionally 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'). |
| app_id | str |
yes | — | GUID of the app. (min_len=36, max_len=36) |
| role_id | str |
yes | — | GUID of the security role to associate or disassociate. (min_len=36, max_len=36) |
| action | str |
yes | — | 'add' to grant the role access to the app; 'remove' to revoke it. |
Returns {"action": ..., "app_id": ..., "role_id": ..., "success": ...}.
Write · non-idempotent · category apps
Create a new model-driven app (AppModule) in a Dataverse environment.
Note: Always provide tables: an app without a sitemap fails validation and cannot be published.
| 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 of the app (e.g. 'My Operations App'). (min_len=1, max_len=100) |
| unique_name | str |
yes | — | Unique name for the app. Dataverse auto-prepends the publisher prefix (e.g. 'new_'). Use only English letters, digits, and underscores. (min_len=1, max_len=100) |
| description | str | None |
no | None |
Optional description for the app. |
| tables | list[str] | None |
no | None |
Logical names of tables to add as entity components and include in the auto-generated sitemap (e.g. ['account', 'contact']). Strongly recommended — apps without a sitemap fail validation and cannot be published. |
| run_validate | bool |
no | True |
Run ValidateApp after creating. If validation errors exist, publish is skipped unless publish_anyway=true. |
| publish | bool |
no | True |
Publish the app after creation (and successful validation). |
| publish_anyway | bool |
no | False |
Publish even when validation errors are present. Use with caution. |
Returns {"created": ..., "app_id": ..., "name": ..., "sitemap_id": ..., "components_added": ..., "failed_tables": ..., "validation": ..., "published": ...} or {"created": ..., "app_id": ..., "name": ..., "sitemap_id": ..., "components_added": ..., "failed_tables": ..., "validation": ..., "published": ..., "message": ...}.
Read · idempotent · category apps
Get a model-driven app's properties and its current component list.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| app_id | str |
yes | — | GUID of the app (appmoduleid) to retrieve. (min_len=36, max_len=36) |
Returns {"app_id": ..., "app_id_unique": ..., "name": ..., "unique_name": ..., "description": ..., "is_published": ..., "state": ..., "client_type": ..., "components": ..., "component_count": ...}.
Read · idempotent · category apps
List model-driven apps (AppModule records) in a 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'). |
| include_unpublished | bool |
no | False |
When true, uses RetrieveUnpublishedMultiple to include apps that have not yet been published. Defaults to false (published apps only). |
| top | int |
no | 50 |
Maximum number of records to return. (ge=1, le=5000) |
Returns {"apps": ..., "count": ..., "has_more": ...}.
Write · idempotent · category apps
Publish a model-driven app to make it visible to users.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| app_id | str |
yes | — | GUID of the app to publish. (min_len=36, max_len=36) |
Returns {"published": ..., "app_id": ...}.
Write · idempotent · category apps
Remove components from a model-driven app.
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'). |
| app_id | str |
yes | — | GUID of the app to remove components from. (min_len=36, max_len=36) |
| components | list[AppComponentSpec] |
yes | — | Components to remove. Use object_id values from dataverse_get_app. Each has type and either id (GUID) or logical_name (for tables). (min_len=1) |
Returns {"removed": ..., "app_id": ..., "component_count": ..., "published": ...}.
Write · idempotent · category apps
Create or replace the navigation sitemap for a model-driven app.
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'). |
| app_id | str |
yes | — | GUID of the app whose sitemap to create or update. (min_len=36, max_len=36) |
| tables | list[str] | None |
no | None |
Flat list of table logical names — auto-generates one Area with one Group. Mutually exclusive with areas. Example: ['account', 'contact', 'opportunity']. |
| areas | list[dict] | None |
no | None |
Structured sitemap as a list of area dicts. Each area: {title: str, id?: str, groups: [{title: str, id?: str, subareas: [{entity?: str, url?: str, title?: str, id?: str}]}]}. Mutually exclusive with tables. |
| area_title | str |
no | 'Main' |
Title for the auto-generated area (only used when tables is provided). |
| group_title | str |
no | 'Workspace' |
Title for the auto-generated group (only used when tables is provided). |
Returns {"updated": ..., "app_id": ..., "sitemap_id": ..., "sitemap_created": ..., "published": ..., "sitemapxml_backup": ...}.
Write · idempotent · category apps
Update a model-driven app's name or description.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| app_id | str |
yes | — | GUID of the app to update. (min_len=36, max_len=36) |
| name | str | None |
no | None |
New display name for the app. (min_len=1, max_len=100) |
| description | str | None |
no | None |
New description for the app. |
Read · idempotent · category apps
Validate a model-driven app and return all errors and warnings.
Note: An app with validation errors cannot be published.
| Param | Type | Req | Default | Notes |
|---|---|---|---|---|
| dataverse_url | str |
yes | — | Required Dataverse organization URL for this request (e.g., 'https://yourorg.crm.dynamics.com'). |
| app_id | str |
yes | — | GUID of the app to validate. (min_len=36, max_len=36) |
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