powerplatform-mcp
npm
v2.4.1
Source verified
Published by michsob — publish provenance cryptographically ties this package to that repository. That is proof of origin, not an official vendor package.
PowerPlatform Model Context Protocol server
The grade answers one question — how safe is this server for you to adopt — so it is computed in two auditable stages. Nothing below is an opinion or an LLM's guess; every line is a real term the deterministic engine applied, and the same input always yields the same number.
1. Threat score — 100 − 6.3 = 94. What the published surface and source actually contain:
| Points | What was found | Category |
|---|---|---|
| −6.3 | Untrusted input concatenated into a command sink MTC-SRC-009 | injection |
2. Client adoption risk — 94 − 10 = 84. Three small, subtract-only factors that reflect your risk in adopting it — a clean scan proves less on a powerful, unverified or barely-inspectable package, so the grade says so plainly:
| Points | Adoption-risk factor |
|---|---|
| −10 | capability blast radius (critical) — client exposure if the model is manipulated |
Capability observations and info notes are shown under Findings but never scored.
Open any row's finding below for the file, line and evidence behind a deduction.
In the server's implementation (`build/cli/commands/pac-commands.js:1`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: { execSync } from 'node:child_process'; import { existsSync } from 'node:fs'; import { join, dirname } from 'node:path';
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server build/cli/commands/pac-commands.js
In the server's implementation (`build/cli/commands/pac-commands.js:27`): A shell/process command assembled from concatenated or interpolated values is command injection when any part is attacker-influenced — the OWASP canonical RCE flow. Verify what reaches the interpolated value. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: execSync(`pac auth select --index ${match[1]}`, { stdio: 'inherit' }); r
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server build/cli/commands/pac-commands.js
Each tool and what it can reach — statically extracted from the published source.
get-environment-variablesreads sensitive dataget-flow-inventoryingests untrusted inputadd-security-role-privilegesno sensitive capabilityadd-solution-componentno sensitive capabilitycancel-flow-runno sensitive capabilitycheck-component-dependenciesno sensitive capabilitycheck-delete-eligibilityno sensitive capabilityclone-security-roleno sensitive capabilitycreate-custom-apino sensitive capabilitycreate-custom-api-request-parameterno sensitive capabilitycreate-custom-api-response-propertyno sensitive capabilitycreate-entity-alternate-keyno sensitive capabilitycreate-entity-string-attributeno sensitive capabilitycreate-environment-variableno sensitive capabilitycreate-plugin-stepno sensitive capabilitycreate-security-roleno sensitive capabilitycreate-web-resourceno sensitive capabilitydelete-security-roleno sensitive capabilityexport-solutionno sensitive capabilityget-all-plugin-stepsno sensitive capabilityget-business-ruleno sensitive capabilityget-business-rulesno sensitive capabilityget-connection-referencesno sensitive capabilityget-custom-apino sensitive capabilityget-custom-api-request-parametersno sensitive capabilityget-custom-api-response-propertiesno sensitive capabilityget-custom-apisno sensitive capabilityget-entity-attributeno sensitive capabilityget-entity-attributesno sensitive capabilityget-entity-keysno sensitive capabilityget-entity-metadatano sensitive capabilityget-entity-plugin-pipelineno sensitive capabilityget-entity-relationshipsno sensitive capabilityget-flow-definitionno sensitive capabilityget-flow-run-detailsno sensitive capabilityget-flow-runsno sensitive capabilityget-flowsno sensitive capabilityget-global-option-setno sensitive capabilityget-ootb-workflowsno sensitive capabilityget-plugin-assembliesno sensitive capabilityget-plugin-assembly-completeno sensitive capabilityget-plugin-trace-logsno sensitive capabilityget-plugin-typeno sensitive capabilityget-publishersno sensitive capabilityget-recordno sensitive capabilityget-sdk-messageno sensitive capabilityget-security-role-privilegesno sensitive capabilityget-security-rolesno sensitive capabilityget-service-endpointsno sensitive capabilityget-solutionno sensitive capabilityget-solution-componentsno sensitive capabilityget-solutionsno sensitive capabilityget-web-resourceno sensitive capabilityget-web-resourcesno sensitive capabilityget-workflow-definitionno sensitive capabilityget-workflowsno sensitive capabilitylist-privilegesno sensitive capabilitypublish-customizationsno sensitive capabilityquery-recordsno sensitive capabilityremove-security-role-privilegesno sensitive capabilityreplace-security-role-privilegesno sensitive capabilityresubmit-flow-runno sensitive capabilityscan-flow-healthno sensitive capabilitysearch-workflowsno sensitive capabilityset-environment-variable-valueno sensitive capabilityupdate-security-roleno sensitive capabilityScan history per published version. The engine is deterministic — the same version always yields the same score, so a changed score means the package itself changed.
| Version | Score | Findings | Engine | Scanned |
|---|---|---|---|---|
v2.4.1 latest |
B 84/100 | 2 | 1.13.0 | 2026-09-07 |
v2.4.0 |
B 84/100 | 2 | 1.13.0 | 2026-08-30 |
Show this server's live Trust Score in your README, docs or website. The badge is served straight from the registry and updates automatically after every rescan — no API key needed. It links back to this page, so anyone who sees the grade can also read the findings behind it instead of taking a number on faith.
The score above is reproducible: the same package version always yields the same result. Run it locally or over the free API — no account, no LLM, fully deterministic.
npx mcptrustchecker scan powerplatform-mcp --online
Independent packages implementing the same tool, scanned with the same engine. Compare all 2 side by side →
Free public tax reference data — GST/VAT, income, company and capital-gains tax rules for 50+ countries.
The approval gate for unattended UCP buying agents — a policy/approval MCP proxy in front of a merchant's UCP checkout endpoint.
Autotask PSA MCP server. Generic entity query/get/create/update across the full REST API plus convenience tools for tickets, companies, contacts, projects, tasks and time entries. AI-safe with readonly mode and destructive-action confirmation. stdio + opt
MCP server for B2C Commerce developer experience tools
Search, compare and contact real-world companies through a public MCP business directory.
Norwegian business register (Brønnøysundregistrene) as an MCP server — companies, roles, subunits and annual accounts, with the register's silent traps encoded as guards.