
microsoft/dataverse-skills
8 skills344 installs1.5k starsGitHub
Install
npx skills add https://github.com/microsoft/dataverse-skillsSkills in this repo
1Dv ConnectThe dv-connect skill performs one-step Dataverse environment connection for a workspace. It idempotently installs Python, Node, PAC CLI, Dataverse CLI, .NET SDK, and Azure CLI, upgrades the PowerPlatform Dataverse Client SDK, and front-loads both dataverse auth and pac auth so later skills never prompt mid-flow. Step zero detects an existing setup via complete .env values, registered MCP server, matching auth profiles, and importable Python SDK, jumping straight to verification when all checks pass. Otherwise it discovers or creates environments, writes DATAVERSE_URL and TENANT_ID, registers the dataverse MCP proxy, and confirms connectivity with dataverse auth who and pac org who. The skill enforces environment-first metadata rules: create components in Dynamics via API, then pull into the repo, never hand-edit solution XML. It supports device code auth for headless sessions, admin consent links, and region-aware profile selection. Use when starting a new Dataverse project, switching environments, fixing authentication, or troubleshooting MCP connections that fail to start.64installs2Dv MetadataThe dv-metadata skill authors Dataverse schema through the Python SDK and Web API for tables, columns, relationships, forms, and views. Before the first metadata change agents confirm target environment and solution name, ask for publisher prefix because it is permanent, and pass solution in every SDK call. The environment-first workflow makes changes via MetadataService API or pac commands, then exports with pac solution export and unpack rather than hand-writing solution XML which causes fragile import failures. Table creation defaults to client.tables.create with typed column maps, falling back to Web API only for advanced OwnershipType or HasActivities properties. The skill covers idempotent table creation, alternate keys for upsert, metadata propagation delays, form and view editing on existing pulled artifacts, and boundaries pointing to dv-data, dv-query, and dv-solution for other tasks. Python only with scripts/auth.py get_client attribution context. Use when adding columns, creating tables, setting lookups, customizing forms, or building views in Dataverse solutions.59installs3Dv SolutionThe dv-solution skill manages Dataverse solution lifecycle including create, export, unpack, pack, import, and validate deployments across dev, test, and production environments. Publisher discovery queries existing non-Microsoft publishers via Python SDK before creating new ones because customization prefix is permanent on every component. Solution records are created with client.records.create rather than pac because no pac solution create command exists. PAC CLI handles export, unpack, pack, import, and add-solution-component operations while post-import validation uses the Python SDK. The skill forbids hardcoding the default new prefix, requires user confirmation for publisher choice, and enforces SDK over raw HTTP for publisher and solution record creation. Boundaries route schema work to dv-metadata, records to dv-data, queries to dv-query, and connection to dv-connect. Workflows cover version bumps, managed versus unmanaged exports, environment promotion, and validation scripts after import. Use when packaging customizations, deploying solutions to another environment, or promoting work between Dataverse environments.42installs4Dv OverviewThe dv-overview skill provides tool routing and cross-cutting rules for Microsoft Dataverse, Dynamics 365, and Power Platform work. Hard rules require checking init state for .env and scripts/auth.py before any code, running dv-connect automatically when missing, Python-only toolchain with no npm or Node.js, MCP then SDK then Web API precedence, documented auth via pac auth create and scripts/auth.py, and following skill instructions without SDK introspection. The SDK checklist maps record CRUD to dv-data, queries to dv-query, schema to dv-metadata, and solutions to dv-solution. Raw Web API is limited to forms, views, option sets, N:N associations, aggregation, and unbound actions. UX principle expects natural language intent where agents chain skills without user-facing slash commands. Specialist index covers dv-connect, dv-data, dv-metadata, dv-query, dv-solution, dv-admin, and dv-security. Publisher prefix must never be hardcoded. Use when user mentions Dataverse, Dynamics 365, Power Platform, or CRM and the correct specialist skill must be selected.41installs5Dv DataThe dv-data skill handles record-level CRUD and bulk operations in Microsoft Dataverse using the PowerPlatform-Dataverse-Client Python SDK exclusively. For ten or fewer records, prefer MCP create_record and update_record when available; write Python scripts for bulk work, CSV import, upsert, retry logic, or file uploads. Setup imports get_client from scripts/auth.py with plugin attribution on the User-Agent header. SDK-supported operations include create, update, delete, upsert with alternate keys, CreateMultiple, UpdateMultiple, UpsertMultiple, and chunked file column uploads over 128MB. Structural field keys use lowercase LogicalName while navigation properties keep case-sensitive @odata.bind keys matching metadata. The skill documents choice column integer values, metadata propagation delays after new lookup columns, and CSV import patterns. Raw Web API via get_token is reserved for forms, views, N:N association, and operations the SDK lacks. Boundaries point reads to dv-query and schema work to dv-metadata. Use when writing, seeding, importing, or bulk-modifying Dataverse table records from Python.35installs6Dv QueryThe dv-query skill answers Dataverse data questions by routing reads to the right API surface. Simple filters use MCP read_query or client.records.get with select and filter. Counts use count=True, single-table aggregation uses server-side $apply via raw Web API, and cross-table questions use client.dataframe.get with minimal select plus pandas merge. client.query.sql handles fast filtered reads under five thousand rows but lacks GROUP BY and JOINs. Multi-page iteration uses client.records.get page iterators with dict-like Record access, and QueryBuilder supports to_dataframe exports for notebooks. Field casing rules require lowercase structural columns and case-sensitive navigation names for $expand. The skill enforces querying live Dataverse as source of truth, never local caches. Setup uses get_client with plugin attribution from scripts/auth.py. Boundaries defer writes to dv-data and schema work to dv-metadata. Use when reading, listing, filtering, aggregating, joining, or exporting Dataverse records for analysis.35installs7Dv AdminThe dv-admin skill handles environment-level Dataverse administration including bulk delete, retention, organization settings, OrgDB XML, recycle bin, and audit configuration. Critical safety rules require explicit ALL confirmation before bulk delete, refuse settings outside the 37 PPAC allowlisted toggles, and use PATCH not DELETE for recycle bin disable. Four mechanisms route work: PAC CLI for organization entity columns, Python SDK OrgDB XML for keys like IsMCPEnabled and SearchAndCopilotIndexMode, recyclebinconfigs for org-level recycle bin, and settingdefinition plus organizationsettings for app-level security role toggles. Bulk delete via pac data bulk-delete schedule is irreversible and bypasses recycle bin, with extra warnings on system tables. Multi-environment reads run pac org list-settings in parallel with ampersand batching. Destructive actions require prose preview with placeholders before execution. Boundaries defer record CRUD to dv-data, schema to dv-metadata, reads to dv-query, and roles to dv-security. Use when configuring audit, org settings, bulk cleanup, or recycle bin in Dataverse environments.34installs8Dv SecurityThe dv-security skill manages security role assignment, user access, application users, and admin self-elevation in Dataverse environments using PAC CLI exclusively without Python scripts. Assign roles with pac admin assign-user specifying user email or object ID, role name, and environment URL, optionally as application user or business unit. Batch workflows list environments, filter targets, confirm with the user, then run all assignments in parallel with ampersand and wait in one bash call. Self-elevation via pac admin self-elevate is a stricter fallback when assign-user fails because the user has no roles, requiring explicit Purview-logged risk statement, captured reason, and post-preview confirmation. Always try assign-user first and never chain silently to self-elevate. Destructive role changes need prose preview with placeholders before execution. Prerequisites include PAC CLI authentication and System Administrator or tenant admin roles. Boundaries defer org settings to dv-admin, schema to dv-metadata, and reads to dv-query. Use when granting Dataverse access, assigning security roles, or elevating admin on environments.34installs