Dataverse logo

Dataverse

Organization
JetBrains
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.

Overview

PublisherJetBrains
Repositoryskills
Skill namedataverse
Stars
377
Forks
32
Bundled files
1
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 1 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by JetBrains on GitHub. Read the source before you install it.

Installation

Install the Dataverse AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/JetBrains/skills/tree/main/dataverse
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/JetBrains/skills.git /tmp/skills
mkdir -p .claude/skills
cp -r /tmp/skills/dataverse .claude/skills/dataverse
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Dataverse in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Dataverse on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Dataverse is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

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.

NeedSkill
Connect, authenticate, configure MCP, verify / troubleshootdv-connect
Record CRUD, bulk create/update/upsert, CSV / FK-ordered importdv-data
Reads & analytics -- OData, QueryBuilder, FetchXML, DataFramesdv-query
Schema -- tables, columns, relationships, forms, viewsdv-metadata
Solution ALM -- create, export, import, pack/unpackdv-solution
Environment administration -- bulk delete, retention, org settingsdv-admin
Security & access -- roles, users, business unitsdv-security
Finance & Operations X++ -- author, build, deployerp-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

ToolCheckInstall
Node.jsnode --versionprerequisite for the CLI
Dataverse CLInpm list -g @microsoft/dataversenpm 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.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Dataverse AI skill do?

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,...

Why use Dataverse on TypingMind?

Because you install it once and use it with any model. Dataverse is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Dataverse in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/JetBrains/skills/tree/main/dataverse. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Dataverse?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Dataverse?

As many as you like. As long as a model supports skills, you can use Dataverse with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Dataverse AI skill free?

It is published on GitHub by JetBrains. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇