PowerPlatform MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| POWERPLATFORM_DEV_URL | Yes | PowerPlatform/Dataverse environment URL (e.g., https://yourenvironment.crm.dynamics.com) | |
| POWERPLATFORM_ENVIRONMENTS | Yes | Environments | |
| POWERPLATFORM_DEV_CLIENT_ID | Yes | Your Azure app client ID | |
| POWERPLATFORM_DEV_TENANT_ID | Yes | Your Azure tenant ID | |
| POWERPLATFORM_DEV_CLIENT_SECRET | Yes | Your Azure app client secret |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get-entity-metadataC | Get metadata about a PowerPlatform entity |
| get-entity-attributesC | Get attributes/fields of a PowerPlatform entity |
| get-entity-attributeC | Get a specific attribute/field of a PowerPlatform entity |
| get-entity-relationshipsB | Get relationships (one-to-many and many-to-many) for a PowerPlatform entity |
| get-recordC | Get a specific record by entity name (plural) and ID |
| query-recordsC | Query records using an OData filter expression |
| get-global-option-setC | Get a global option set definition by name |
| get-plugin-assembliesC | Get all plugin assemblies in the environment |
| get-plugin-assembly-completeB | Get a plugin assembly by name with all related plugin types, steps, and images |
| get-entity-plugin-pipelineA | Get all plugins that execute on a specific entity, organized by message and stage |
| get-plugin-trace-logsC | Get plugin trace logs with filtering options |
| get-all-plugin-stepsC | Get all plugin SDK message processing steps across all assemblies in the environment |
| check-component-dependenciesA | Check dependencies for a PowerPlatform component before deletion. Returns all components that depend on the specified component. |
| check-delete-eligibilityA | Check if a PowerPlatform component can be safely deleted. Returns whether deletion is allowed and lists blocking dependencies. |
| get-business-rulesC | Get all business rules in the environment |
| get-business-ruleB | Get a specific business rule with its complete XAML definition |
| get-flowsB | Get Power Automate cloud flows with smart filtering (excludes system, Copilot Sales, and Customer Insights flows by default) |
| search-workflowsB | Search workflows (both classic workflows and Power Automate flows) by name, entity, description, category, or state |
| get-flow-definitionB | Get a Power Automate flow with its complete definition or a parsed summary of triggers, actions, and connectors |
| get-flow-runsC | Get flow run history for a specific Power Automate flow |
| get-flow-run-detailsA | Get detailed flow run information including action-level outputs and errors. For failed actions, fetches detailed error messages. |
| cancel-flow-runA | Cancel a running or waiting flow run. Cannot cancel flows already in a terminal state (Succeeded, Failed, Cancelled). |
| resubmit-flow-runB | Resubmit/retry a failed flow run using the original trigger inputs |
| scan-flow-healthA | Batch-scan all Power Automate cloud flows for health metrics. Fetches run history for each flow and computes success rates, failure counts. WARNING: batch operation that may take several minutes. |
| get-flow-inventoryA | Get complete inventory of all cloud flows (name, state, modified date). Lighter than scan-flow-health as it does not fetch run history. |
| get-publishersA | Get all non-readonly publishers in the PowerPlatform environment |
| get-solutionsA | Get all visible solutions in the PowerPlatform environment, ordered by creation date |
| get-solutionC | Get a specific solution by its unique name |
| get-solution-componentsB | Get all components in a solution, ordered by component type |
| export-solutionA | Export a solution as a base64-encoded package. This is a read-only operation that serializes the solution. |
| get-workflowsC | Get all classic Dynamics workflows in the environment |
| get-workflow-definitionB | Get a specific classic workflow with its complete XAML definition or a structured summary |
| get-ootb-workflowsA | Get all non-cloud-flow workflows: background workflows, business rules, actions, BPFs, on-demand workflows |
| get-connection-referencesB | Get connection references in the PowerPlatform environment with optional filtering by managed status, connection presence, and active state |
| get-environment-variablesB | Get environment variable definitions and their current values from the PowerPlatform environment |
| get-security-rolesA | Get security roles in the PowerPlatform environment, filtered to unmanaged or customizable roles. Supports solution scoping and optional privilege details. |
| get-security-role-privilegesC | Get privileges assigned to a specific security role, optionally filtered by entity or access right |
| get-service-endpointsC | Get all service endpoints (Service Bus, webhooks, Event Hub, Event Grid) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| entity-overview | Get an overview of a Power Platform entity |
| attribute-details | Get detailed information about a specific entity attribute/field |
| query-template | Get a template for querying a Power Platform entity |
| relationship-map | Get a list of relationships for a Power Platform entity |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 38 tools
Most tools have distinct purposes targeting specific PowerPlatform components like flows, solutions, entities, plugins, and workflows, with clear naming that minimizes overlap. However, some tools like 'get-flows', 'get-flow-inventory', and 'scan-flow-health' could cause minor confusion as they all retrieve flow information but with different scopes or detail levels, requiring careful reading of descriptions.
Tool names follow a highly consistent verb_noun pattern throughout, such as 'get-flow-runs', 'export-solution', and 'query-records'. All tools use snake_case without deviation, and verbs like 'get', 'export', 'cancel', and 'scan' are applied predictably across the set, making the naming scheme easy to understand and navigate.
With 38 tools, the count is borderline high for a single server, suggesting potential over-scoping or fragmentation. While PowerPlatform is a broad domain, this many tools might overwhelm agents and indicate that some could be consolidated (e.g., multiple 'get' tools for similar entities). A more focused set of 15-25 tools would likely improve usability without losing functionality.
The tool set provides comprehensive coverage for PowerPlatform operations, including CRUD-like actions (e.g., 'export-solution', 'query-records'), monitoring ('scan-flow-health', 'get-flow-run-details'), and management tasks ('cancel-flow-run', 'check-delete-eligibility'). It spans key areas like flows, solutions, entities, plugins, and workflows with no obvious gaps, enabling agents to handle most common scenarios in this domain.