Skip to main content

dataverse

Microsoft Dataverse / Power Platform for coding agents -- connect to an environment, then record CRUD, bulk data, queries & analytics (pandas DataFrames, Jupyter notebooks), schema & metadata, solution ALM, administration, security, plug-in / custom-API / .NET (IOrganizationService) and Python-SDK / Web-API development, and Finance & Operations X++. Use whenever the user mentions Dataverse, Dynamics 365, Power Platform, or CRM, or asks to connect to, read, query, analyze, write, build an app / notebook / plugin / custom API against, register components on, or explore data, records, tables, entities, or an environment in any of them -- even if they do not say "Dataverse" or ask to connect first.

Quellinformationen

Repository
JetBrains/skills
Letzte Quellaktivität
9. Oktober 2026 um 23:03
Erkannte Sprache von SKILL.md
Englisch
Sterne
385
Forks
33

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
3 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
dataverse
description
Microsoft Dataverse / Power Platform for coding agents -- connect to an environment, then record CRUD, bulk data, queries & analytics (pandas DataFrames, Jupyter notebooks), schema & metadata, solution ALM, administration, security, plug-in / custom-API / .NET (IOrganizationService) and Python-SDK / Web-API development, and Finance & Operations X++. Use whenever the user mentions Dataverse, Dynamics 365, Power Platform, or CRM, or asks to connect to, read, query, analyze, write, build an app / notebook / plugin / custom API against, register components on, or explore data, records, tables, entities, or an environment in any of them -- even if they do not say "Dataverse" or ask to connect first.
license
Complete terms in LICENSE.txt
compatibility
Requires network/internet access to reach the Dataverse Web API and Microsoft Entra ID for authentication.
metadata
{"short-description":"Connect to Dataverse and unpack the full dv-* skill set","author":"Microsoft","source":"https://github.com/microsoft/Dataverse-skills/tree/main/.github/plugins/dataverse"}
# Microsoft Dataverse Entry point for working with Microsoft Dataverse (Power Platform / Dynamics 365) from a coding agent. It installs the specialist Dataverse skills, connects the environment, and routes each request to the right skill. | Need | Skill | | --- | --- | | Connect, authenticate, configure MCP, verify / troubleshoot | `dv-connect` | | Record CRUD, bulk create/update/upsert, CSV / FK-ordered import | `dv-data` | | Reads & analytics -- OData, QueryBuilder, FetchXML, DataFrames | `dv-query` | | Schema -- tables, columns, relationships, forms, views | `dv-metadata` | | Solution ALM -- create, export, import, pack/unpack | `dv-solution` | | Environment administration -- bulk delete, retention, org settings | `dv-admin` | | Security & access -- roles, users, business units | `dv-security` | | Finance & Operations X++ -- author, build, deploy | `erp-xpp` | ## How to use this skill (read first -- act, do not stall) When the user asks to **connect / set up / authenticate / switch** an environment, or to **read / query / write** Dataverse data: 1. **Act now, in this turn.** Work through the steps below immediately. Do **not** stop or report a blocker because the specialist skills, the Dataverse CLI, Python, or MCP tools are missing -- **installing and authenticating them IS the task**, not a reason to stop. 2. **Do not re-ask for what you were given.** If the request already contains the environment URL, use it. 3. **A Dataverse CLI profile is enough** to authenticate AND answer data queries. The MCP server and Python SDK are **optional** -- never require them for a connect or a simple read. 4. If a cached or stale skill path fails to resolve, find the active `dataverse` skill and continue from it. ## Step 1: Install the specialist skills (run now) If `dv-overview` / `dv-connect` / the needed `dv-*` skill is not already installed, run this immediately -- do not ask first, and do not report the missing skill as a blocker: ``` npx skills add microsoft/Dataverse-skills -s "*" -g ``` The `-g` flag installs the skills **globally for every agent and project** (under your global skills dir, e.g. `~/.agents/skills` and `~/.codex/skills`), so they persist across sessions and projects. **Read `dv-overview` and `dv-connect` in the same turn** and continue. If network policy blocks the command, request network escalation and retry before reporting it blocked. ## Step 2: Install the Dataverse CLI | Tool | Check | Install | | --- | --- | --- | | Node.js | `node --version` | prerequisite for the CLI | | Dataverse CLI | `npm list -g @microsoft/dataverse` | `npm install -g @microsoft/dataverse@latest` (only if missing) | **Python is optional.** It is needed only for the Python SDK paths (`dv-data` / `dv-query` bulk + analytics) and `scripts/auth.py`. If Python is absent, continue with the CLI, note that the SDK path was skipped, and do not install an interpreter unless the task needs it. ## Step 3: Authenticate (CLI) ``` dataverse auth create --environment <your-environment-url> ``` If interactive auth produces no prompt (a restricted or headless host), stop it and retry with `--deviceCode`, then share the device code with the user. Record `DATAVERSE_URL` and `TENANT_ID` in a project `.env`. If an admin-consent error appears, share the exact consent URL the CLI prints -- never synthesize one. ## Step 4: Verify, then serve the request ``` dataverse auth who # confirms the profile + environment dataverse org who # confirms the data plane ``` Once the profile targets the right environment, **you are connected for CLI data work** -- route to the specialist skill and answer the request now. Example read: ``` dataverse data query --sql "SELECT TOP 10 firstname, lastname FROM contact WHERE lastname LIKE 'A%' ORDER BY lastname, firstname" --json ``` When the user says "top N" without giving a ranking, pick a sensible sort (e.g. alphabetical) and state which you used. ## Step 5 (optional): MCP server + Python SDK Do this only when the user wants in-agent Dataverse **tools** (MCP) or **bulk / analytics** via the Python SDK. Neither is required for CLI reads. - **MCP:** set `MCP_CLIENT_ID` in `.env` (Copilot `aebc6443-996d-45c2-90f0-388ff96faa56`; Claude / Cursor / Codex `0c412cc3-0dd6-449b-987f-05b053db9457`), register `npx @microsoft/dataverse mcp <url>` in the agent's MCP config (`.mcp.json` for Copilot, `claude mcp add` for Claude, `~/.cursor/mcp.json` for Cursor, `~/.codex/config.toml` for Codex), then allowlist with `dataverse mcp allow <MCP_CLIENT_ID>` (or `python scripts/enable-mcp-client.py` if `dv-connect` fetched it). The agent must restart before MCP tools load. Tenant admin consent gates **MCP registration only** -- CLI reads may proceed from the authenticated profile while consent is pending. - **Python SDK:** `pip install --upgrade PowerPlatform-Dataverse-Client python-dotenv azure-identity msal msal-extensions requests pandas`. ## Connection states (report precisely -- do not conflate) - **CLI authenticated** -- `dataverse auth who` shows the intended URL + user. - **Data-plane reachable** -- a real read succeeds (e.g. a small `dataverse data query`). - **MCP configured** -- client allowlisted, GA validation passes, host config points at the URL (a Preview `403` is expected when GA is valid). - **MCP loaded** -- the agent was restarted and now exposes the Dataverse tools. Never claim MCP is connected just because CLI auth succeeded. ## Telemetry attribution (JetBrains) When `dv-connect` runs under a JetBrains IDE it detects the surface and appends a `/jetbrains` suffix to the agent, writing `DATAVERSE_PLUGIN_AGENT=<agent>/jetbrains` (e.g. `codex/jetbrains`) to `.env`; `scripts/auth.py` then stamps `agent=<agent>/jetbrains` into the operation-context so Dataverse telemetry attributes the traffic to JetBrains. If the suffix is missing after connect, append `/jetbrains` to the `DATAVERSE_PLUGIN_AGENT` value yourself. Use the **verified** plugin version in any attribution context (read it from the plugin manifest) -- never guess it. ## Helper scripts `scripts/auth.py` (auth + attribution) and `scripts/enable-mcp-client.py` (MCP allowlist) are **not bundled with this tile** -- the `dv-connect` skill fetches them from canonical (`microsoft/Dataverse-skills`) into the project `scripts/` directory at connect-time. Only the Python SDK path and the script-based MCP allowlist need them; CLI reads do not. If a task needs `scripts/auth.py` and it is absent, run `dv-connect` first. Do not imply `auth.py` ran if Python is absent.
Auf GitHub ansehen