get-entity-metadataLABSCO SUMMARY
Dataverse metadata and plugin internals, on demand.
The lookups that normally mean clicking through the maker portal — what attributes an entity has, what fires on its events, what the trace log said — answered in the conversation, against whichever environment you name.
What it is
A PowerPlatform and Dataverse server with a matching CLI. It reads entity metadata, records, plugins, solutions and security roles, and writes too — creating attributes and keys for automated environment setup. Every tool takes an optional environment parameter that picks which one it runs against.
What you get
- get-entity-metadata, get-entity-attributes and get-entity-attribute read an entity's definition at whatever depth you need
- get-entity-relationships and get-entity-keys cover how entities connect and what identifies them
- get-record and query-records read the data itself
- get-plugin-assemblies, get-plugin-assembly-complete and get-entity-plugin-pipeline map what runs on an entity's events, by assemblyName or entityName
- get-plugin-trace-logs reads the trace logs when something misbehaves
- create-entity-string-attribute and create-entity-alternate-key write configuration rather than only reading it
- The CLI writes the same results to a file-system cache instead of inline, which keeps a large environment out of the context window
Requirements
A supported Node.js release, or the ghcr.io/michsob/powerplatform-mcp Docker image. Each environment needs a URL, client ID, client secret and tenant ID set as environment variables.
Setup effort
One command plus credentials — npm install -g powerplatform-mcp, then supply credentials
USE CASES
Finding out what an entity actually looks like
The full metadata and its attribute list come back in one place, instead of paging through the portal's designer.
Working out why a plugin fired
The registered pipeline for an entity's events, and the trace logs from the run, read together.
Reading records without building a query in the portal
query-records and get-record answer a data question directly, which is usually faster than an advanced find.
Tracing how two entities connect
Relationships and alternate keys say how records are joined and what identifies them, which is the part that breaks integrations.
Adding a field as part of an environment setup
String attributes and alternate keys are created from the same session that inspected the environment, so setup is scripted rather than clicked.
Comparing the same entity across environments
Every call names its environment, so the same metadata read against DEV and PROD shows the drift between them.
66 tools
Listed in project docs. Your client may show a different list.
get-entity-attributesget-entity-attributeget-entity-relationshipscreate-entity-string-attributeget-entity-keyscreate-entity-alternate-keyget-recordquery-recordsget-plugin-assembliesget-plugin-assembly-completeget-entity-plugin-pipelineget-plugin-trace-logsget-all-plugin-stepsget-plugin-typeget-sdk-messagecreate-plugin-stepget-flowssearch-workflowsget-flow-definitionget-flow-runsget-flow-run-detailscancel-flow-runresubmit-flow-runscan-flow-healthget-flow-inventoryget-publishersget-solutionsget-solutionget-solution-componentsexport-solutionadd-solution-componentpublish-customizationsget-workflowsget-workflow-definitionget-ootb-workflowsget-business-rulesget-business-ruleget-global-option-setget-connection-referencesget-environment-variablescreate-environment-variableset-environment-variable-valueget-custom-apisget-custom-apicreate-custom-apiget-custom-api-response-propertiescreate-custom-api-response-propertyget-custom-api-request-parameterscreate-custom-api-request-parameterget-web-resourcesget-web-resourcecreate-web-resourceget-security-rolesget-security-role-privilegeslist-privilegescreate-security-roleclone-security-roleupdate-security-roledelete-security-roleadd-security-role-privilegesremove-security-role-privilegesreplace-security-role-privilegescheck-component-dependenciescheck-delete-eligibilityget-service-endpointsBEFORE YOU INSTALL
What to know first
Tools you get
66 tools named in the project's documentation.
Requires
- npm on PATH
- Node.js 22 or later (below 25)
- POWERPLATFORM_DEV_CLIENT_ID in your environment
- POWERPLATFORM_DEV_CLIENT_SECRET in your environment
- POWERPLATFORM_DEV_TENANT_ID in your environment
- POWERPLATFORM_ENVIRONMENTS in your environment
- POWERPLATFORM_DEV_URL in your environment
INSTALLATION
Connect your client
This project publishes no client configuration, so the entry for your client is yours to write.
Server setup
npm install -g powerplatform-mcpAfter the global install the server starts as powerplatform-mcp, and npx powerplatform-mcp runs it without installing. POWERPLATFORM_ENVIRONMENTS lists the environment names you choose, comma-separated (for example DEV,UAT,PROD), and each name needs four variables — for DEV these are POWERPLATFORM_DEV_URL, POWERPLATFORM_DEV_CLIENT_ID, POWERPLATFORM_DEV_CLIENT_SECRET and POWERPLATFORM_DEV_TENANT_ID. Set them as environment variables where your client starts the server.