-
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)
Write tools additionally 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.
Each component specifies a type and either an id (GUID) or logical_name (for tables). Table components are resolved to their MetadataId automatically. Publishes automatically — no separate publish needed. Use dataverse_get_app first to check the current component list. 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'). |
| 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": ...}. Errors return {"error": true, "message": "..."}.
Delete · idempotent · category apps
Associate or disassociate a Dataverse security role with a model-driven app.
action='add' grants users in the role access to the app; action='remove' revokes it. Use dataverse_query_table against the 'roles' entity set to find role IDs. Requires DATAVERSE_ALLOW_WRITE=true. 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": ...}. Errors return {"error": true, "message": "..."}.
Write · non-idempotent · category apps
Create a new model-driven app (AppModule) in a Dataverse environment.
When tables is provided, auto-generates a sitemap and adds the entity components. Validates and publishes automatically by default — pass validate=false or publish=false to skip. Always provide tables: an app without a sitemap fails validation and cannot be published. 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 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": ...}. Errors return {"error": true, "message": "..."}.
Read · idempotent · category apps
Get a model-driven app's properties and its current component list.
Returns app metadata and components grouped by type (Entity, View, Form, Sitemap, etc.) via RetrieveAppComponents. Use dataverse_list_apps to find app IDs. Call this before any write to confirm current component state.
| 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": ...}. Errors return {"error": true, "message": "..."}.
Read · idempotent · category apps
List model-driven apps (AppModule records) in a Dataverse environment.
Returns appmoduleid, name, uniquename, description, publish state, and statecode. Set include_unpublished=true to also return draft apps not yet visible to users. Use dataverse_get_app to inspect a single app's components.
| 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": ...}. Errors return {"error": true, "message": "..."}.
Write · idempotent · category apps
Publish a model-driven app to make it visible to users.
Unpublished changes remain invisible until this is called. Use dataverse_validate_app first to catch errors before publishing. 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'). |
| app_id | str |
yes | — | GUID of the app to publish. (min_len=36, max_len=36) |
Returns {"published": ..., "app_id": ...}. Errors return {"error": true, "message": "..."}.
Write · idempotent · category apps
Remove components from a model-driven app.
Uses the same component spec format as dataverse_add_app_components. Use object_id values from dataverse_get_app to identify components to remove. Publishes automatically — no separate publish needed. 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'). |
| 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": ...}. Errors return {"error": true, "message": "..."}.
Write · idempotent · category apps
Create or replace the navigation sitemap for a model-driven app.
Provide tables (flat list — auto-generates Area/Group) or areas (structured). Validates the generated XML before writing. Publishes automatically — no separate publish needed. Returns sitemapxml_backup (prior XML or null) for rollback. 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'). |
| 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": ...}. Errors return {"error": true, "message": "..."}.
Write · idempotent · category apps
Update a model-driven app's name or description.
To add or remove components use dataverse_add_app_components / dataverse_remove_app_components. To replace navigation use dataverse_set_app_sitemap. 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'). |
| 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. |
Returns JSON. Errors return {"error": true, "message": "..."}.
Read · idempotent · category apps
Validate a model-driven app and return all errors and warnings.
Uses the ValidateApp function to check for missing required components (sitemap, etc.). An app with validation errors cannot be published. Run this before calling dataverse_publish_app to catch errors early.
| 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) |
Returns JSON. 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