Setup Guide
There is a faster way
Everything on this page can be done for you. The Power Portals Pro MCP server knows this framework, reads your Dataverse environment and your Azure subscription, and can create the app registrations, the application user, the App Service and the email sender itself — asking you before each change and telling you what it costs. The manual steps are below it, and stay accurate whether or not you use it. For the whole journey — from an empty folder to a secured page of your own data — follow the AI Quickstart.
Let an AI agent do the setup
The setup is the part of this framework that no amount of component documentation helps with: it spans dotnet new, two Entra app registrations, a Dataverse application user, a managed solution, an email sender and an App Service, and every one of them produces a value that has to land in the right configuration key. The MCP server exists because that sequence is knowable, and it is the kind of thing an agent with the right tools does well.
1. Install it
Install it at user scope, so it is available in any folder — including an empty one you are about to scaffold a project into, which is exactly where it can tell you which template to use and what the options mean:
claude mcp add --scope user powerportalspro -- dnx PowerPortalsPro.Mcp --yes
Visual Studio and Cursor read their own .mcp.json; the MCP Server page has the block for each. Projects created from the templates are already wired up, with the version pinned to the packages that project uses. dnx ships with the .NET 10 SDK, which you already have.
2. Sign in, in your project folder
Two sign-ins, because they are two different things: one for the Dataverse environment and one for the Azure subscription. Run both in the folder your project lives in — each binding belongs to that folder alone, so a consultant with several customers open has each one pointed at its own environment and subscription at the same time:
cd C:\Code\MyPortal
dnx PowerPortalsPro.Mcp login --environment https://yourorg.crm.dynamics.com
dnx PowerPortalsPro.Mcp azure login
Both use a device code by default, so they work over SSH, in a container and in WSL, and you can finish them on your phone. Nothing machine-wide changes — the server never reads or alters what az or pac are logged in to, which is what lets two projects target two customers without one stepping on the other. The Azure sign-in is only needed for the deployment tools; skip it if you are only setting up locally.
3. Ask it to begin
There is no single command that does everything, deliberately — see the note below. Point your agent at the plan instead, and it will work through it with you:
Use the PowerPortalsPro MCP server to set this portal up.
Start with get_setup_plan, then check_setup, and tell me what is still missing.
get_setup_plan is the ordered list of what has to exist and what each step produces; check_setup reports what this folder is still missing; get_setup_script writes a reviewable script for the steps you would rather run yourself. For deploying, get_deployment_plan and check_deployment do the same job for Azure — see the Azure deployment page.
Note
Why there is no single “do everything” command. Each tool that creates something asks you first and states the cost, and that per-step approval is the reason these tools are allowed to create app registrations and App Services at all. One command that did the lot would either ask ten times, which is worse than an agent walking you through it, or ask once — which would mean approving tenant-wide directory objects, a monthly bill and Dataverse writes on a single yes. The sequence is knowable and the agent can read it; the approvals are yours.
Setting it up by hand
The same sequence, done yourself. Worth reading even if you use the agent: it is what the tools are doing, and knowing it is the difference between diagnosing a failed setup and guessing at one.
1. Install the .NET Core Template
The easiest way to get started is by using the pre-built template for Visual Studio 2022 and 2026. See the Project Templates page for detailed instructions on installing the template, what it includes, and how to configure it. Run the following command to install the template:
dotnet new install PowerPortalsPro.AspNetCore.Templates
2. Create Your Project and Solution
The pack installs two templates, and the Power Portals Pro feature set is identical across both — grids, editors, security, localization and the identity pages behave the same way either way. Pick the front end your team wants to work in:
- Power Portals Pro React Web App (
powerportalspro-react) — an ASP.NET Core host paired with a React + Vite + TypeScript single-page app built on Fluent UI React. Recommended for new portals, for the modern front-end tooling and the fast hot-reload dev loop. - Power Portals Pro Web App (
powerportalspro) — a Blazor web app built on Fluent UI Blazor, all C# end to end. The right choice for a team that would rather not take on a JavaScript toolchain, and the only one of the two that takes an--interactivityoption (Server,WebAssemblyorAuto) to pick its render mode.
Once the template is installed, you can select it in Visual Studio:
Either can be created from the command line instead, which is also how you would script it. The Project Templates page covers every option and its default:
dotnet new powerportalspro-react -o MyPortal
dotnet new powerportalspro -o MyPortal --interactivity Server
3. Configure Dataverse Connection Settings
As shown in the Program.cs file, the connection information is retrieved from the application configuration:
For security best practices, store your credentials in the User Secrets file. Right-click on the project file and select 'Manage User Secrets':
Copy the following JSON and replace the placeholder values with your own credentials:
{
"D365":
{
"Url": "https://yoururl.crm.dynamics.com",
"ClientId": "",
"ClientSecret": ""
}
}
4. Install the Managed Solution
Download and install the latest managed solution into your Dataverse environment from the Releases page.
Navigate to the 'Power Portals Pro' app in your environment:
Go to the 'Portal Website' navigation item and create a new record with your license key.
Note
If you don't have a license key, you can request a trial license here. See the Licensing page for full details on obtaining and registering a license key.
5. Microsoft Authentication (Optional)
To enable user authentication with Azure Entra ID, uncomment the following code in the Program.cs file:
You'll need to register an application in Entra ID to obtain your ClientId and Secret. See: Register an app in Entra ID
6. Run the Application
You're now ready to run the application and start customizing your portal!
The solution also includes a <YourProject>.Tests.Integration project with bases for endpoint, permission and service-layer tests. See Integration Testing.
