Part III · The build · 8 min

An environment to build in

Choose the surface — a Dynamics 365 Sales trial as the base, MDX as the employee path — and wire VS Code to it so an agent can describe a table from the editor.

Objectives

  • Choose a demo surface honestly, without pretending quotas are public
  • Enable the Dataverse MCP server with its per-environment gates
  • Prove the loop by describing a table from inside the editor

THE ENGAGEMENT

You need somewhere to build. The pragmatic base is a Dynamics 365 Sales 30-day trial: it ships with sample data and a guided tour and signs up against a work account. If you are a Microsoft employee or an enrolled partner, the demo-experiences path — CDX, renamed MDX — offers longer- lived environments, with access gated to employees, partners, and MVPs. State the gates plainly and do not pretend the per-role quotas are public; they are behind a login, and guessing at them is exactly the kind of invented fact this manual refuses.

THE HARNESS

Wiring the editor to the environment is the fourth socket you left as a placeholder in Part I. Enable the Dataverse MCP server — it is in public preview, reached at your org’s /api/mcp endpoint, and it requires two things a chat tab never asks for: per-environment enablement and an allowed-clients list that names VS Code’s Copilot as a permitted caller. Replace the placeholder org URL in the config with your real one:

contoso-financial/.vscode/mcp.json
// The Demo Harness — drewbreyer.com/harness — starter file, as of 2026-07-06
{
  "servers": {
    "microsoft-learn": { "type": "http", "url": "https://learn.microsoft.com/api/mcp" },
    "github":          { "type": "http", "url": "https://api.githubcopilot.com/mcp/" },
    "playwright":      { "type": "stdio", "command": "npx", "args": ["@playwright/mcp@latest"] },
    "dataverse":       { "type": "http", "url": "https://yourorg.crm.dynamics.com/api/mcp" }
  }
}

Then prove the loop. Ask the dataverse-operator to describe a standard table — Account will do — and read the schema back inside the editor. When that returns, the harness is plugged into a live environment, and the build can start.

Why prove the loop first

It is tempting to model tables and fabricate data before you have confirmed the editor can even see the environment. Do not. A ten-second describe that succeeds tells you the enablement, the allowlist, and the auth all work — before you have invested an afternoon in artifacts that assume they do. The cheapest possible round-trip, run first, is a habit that saves demo weeks.

In the field

Sign up for a Sales trial, enable the Dataverse server against it, and update your mcp.json. Ask an agent to describe the Account table. If the enablement or the allowlist is not set, you will find out now.

In the repo after this lesson

  • A Dynamics 365 environment wired to the editor via the Dataverse server
  • A successful describe of a standard table from an agent