Imagine you need to build a set of Dataverse tables, relate them, configure views, add subgrids to forms, and load some sample data. Now what if I told you that all of it can be done from a single prompt?

In this post we will use the Dataverse Skills Plugin, connect it to an environment, then create tables, relationships, views, and sample data.

What is the Dataverse Skills Plugin?

  • A set of skills for AI coding agents like GitHub Copilot CLI, Cursor, and Claude Code.
  • Wraps the Dataverse MCP server, PAC CLI, and the Python SDK behind plain English prompts.
  • Comes with focused skills: dv-connect, dv-metadata, dv-data, dv-query, dv-solution, dv-admin, dv-security.

Lets get started. I will be using GitHub Copilot CLI and you can use your preferred coding agent.

Prerequisites

Install the Dataverse Plugin

Lets start by installing the plugin from the awesome-copilot marketplace inside Copilot CLI.

  • Run following command inside a Copilot CLI session.
/plugin install dataverse@awesome-copilot
  • Once installed, exit and start a new Copilot CLI session.
  • Verify the skills are registered with :
/skills list

Now we have the plugin installed with all the skills registered. Next we connect the plugin to a Dataverse environment.

Connect to a Dataverse Environment:

The dv-connect skill runs the one-time setup. It installs any missing tooling, authenticates against Dataverse, creates a local project scaffold, and registers the Dataverse MCP server with Copilot CLI.

  • Trigger the connect flow with a prompt like:
Connect to Dataverse
  • or simply use /dv-connect
  • Next the skill asks which environment to target. Pick your Dataverse environment from the list.
  • Then pick or create a solution name. The plugin uses this solution for every future metadata change by storing details in .env file.
  • The skill scaffolds a small project folder with scripts/solutions/, and a .env file.
  • The environment and solution details you provided stored in .env file
  • Next it asks where to register the Dataverse MCP server. I picked local for a per-project setup.
  • The skill writes the MCP server entry into mcp.json
  • Exit and start a new GitHub Copilot CLI session. After the restart the MCP server will be connected.

Now we have the plugin connected to the environment and the MCP server ready. Lets create some tables.

Create Tables:

The dv-metadata skill authors tables, columns, relationships, forms, and views. We describe the schema in plain English and it does the rest.

For this walkthrough we build a simple Customer, Car, and Offer model with prefix raj_.

  • Customer: primary column “Full Name”, plus Email, Phone, City.
  • Car: primary column “Car Name”, plus Make, Model, Year (int), VIN.
  • Offer: primary column “Offer Title”, plus Description (multiline), Discount Percent (decimal), Valid Until (date).

Send a single prompt describing all three tables:

create three tables. Prefix should be raj_:
- Customer — primary name "Full Name"; columns: Email, Phone, City
- Car — primary name "Car Name"; columns: Make, Model, Year (int), VIN
- Offer — primary name "Offer Title"; columns: Description (multiline),
Discount Percent (decimal), Valid Until (date only)
Use sensible column types and lengths. Add everything to the solution.
  • The skill first confirms the target environment, solution, and publisher prefix.
  • Once confirmed the skill generates a Python script, runs it against Dataverse, and reports the results.

Now we have the three tables. Next we add relationships between them.

Configure Table Relationships:

  • I prompted the skill as follows:
    • Notice, I even asked to add subgrids on the form.
Create a one-to-many relationship from Customer to Car. Relationship behavior is Referential, restrict delete.
Add the Cars subgrid to the Customer main form.
create a many-to-many relationship between Customer and Offer. Show "Offers" navigation on the Customer form and "Customers" navigation on the Offer form.
  • The skill creates the 1:N lookup on Car, wires up the cascade behavior, then creates the N:N intersect entity. It also modifies the Customer main form to add a new tab with the Cars subgrid, then publishes the changes.

Now we have the tables related. Lets fix the default views next.

Configure Table Views:

  • The auto-generated default view only shows the primary column and Created On. That is not useful for end users. We ask the skill to add the columns that matter.
  • The skill updates the Active CustomersActive Cars, and Active Offers views.

Now the tables have real views. Next we seed some sample data so we can actually test the model.

Create Sample Data:

The dv-data skill handles record CRUD, bulk import, upsert, and CSV loads. Skill uses the Python SDK to send a CreateMultiple batch.

  • Send following prompt with all the records and the associations:
Create sample records:
Customers: Alice Johnson (Seattle), Bob Smith (Redmond), Carol Davis (Bellevue)
Cars (assign Owner lookup):
- Alice: Tesla Model 3 2023, Ford F-150 2021
- Bob: Honda Civic 2022, Toyota Camry 2020
- Carol: BMW X5 2024
Offers: "Summer Service 20% Off" (20%, valid 2026-09-30),
"Free Tire Rotation" (0%, valid 2026-12-31),
"Winter Bundle 15% Off" (15%, valid 2027-01-31)
Associations (N:N):
- Alice ↔ Summer Service, Free Tire Rotation
- Bob ↔ Free Tire Rotation, Winter Bundle
- Carol ↔ Summer Service, Winter Bundle
  • The skill runs the create calls in dependency order. Customers first, then Cars, then Offers, and finally the N:N associations using the $ref endpoint.

Now we have three tables, two relationships, updated views, and a set of sample records. Lets see it in Power Platform.

Verify in Power Platform:

  • Head to make.powerapps.com, pick the environment, and open the solution.
  • All three tables show up with the correct columns and relationships.
  • To check the data end to end, lets create a quick model-driven app (MDA).
  • Add the three tables as pages, publish, and play the app. The Customer form shows the Cars subgrid and the Offers navigation, exactly as we asked for.

Key Details

Now that we have seen the plugin in action, lets talk about what powers it.

In my previous post Dataverse CLI (preview) I’ve shown how to configure and trigger commands directly. The Dataverse CLI lets us list environments, export solutions, and even create records against a table.

The Dataverse Skills Plugin uses the Dataverse CLI along with the Dataverse MCP server, PAC CLI, and the Python SDK. Based on the prompt the agent picks the right tool for the job. Simple reads and small writes go through the MCP server. Bulk data and metadata changes go through the Python SDK. Solution export, import, and unpack go through PAC CLI. We do not need to know which tool ran. We just get the result.

Summary

We installed the Dataverse Skills plugin, connected it to an environment, then built a small data model end to end. Tables, relationships, forms, views, and sample data. All from natural language prompts inside Copilot CLI.

🙂

Leave a Reply

Visitors

2,193,739 hits

Top Posts

Discover more from Rajeev Pentyala – Technical Blog on Power Platform, Azure and AI

Subscribe now to keep reading and get access to the full archive.

Continue reading