Summary
metro-mcp v0.1.1 was classified as CRITICAL RISK with a risk score of 1653. Sigil detected 91 findings across 88 files, covering phases including install hooks, code patterns, network exfiltration. Review the findings below before installing this package.
v0.1.1
28 March 2026, 15:39 UTC
by Sigil Bot
Risk Score
1653
Findings
91
Files Scanned
88
Provenance
Findings by Phase
Phase Ordering
Phases are ordered by criticality, with the most dangerous at the top. Click any phase header to expand or collapse its findings. Critical phases are expanded by default.
install-pip-setup-exec
CRITICALsetup.py executes code at install time
package/dist/bin/metro-mcp.js:529
description: "Console log collection and filtering",
async setup(ctx) {
const buffer = new CircularBuffer(500);Why was this flagged?
This setup.py calls subprocess, os.system, exec, or eval during package installation. Legitimate packages rarely need to execute arbitrary commands at install time. This pattern is commonly used by malicious packages to download and run payloads, exfiltrate environment variables, or establish persistence. Rated CRITICAL because it runs with the installer's full permissions.
install-pip-setup-exec
CRITICALsetup.py executes code at install time
package/dist/bin/metro-mcp.js:1732
description: "Cross-platform deep link testing",
async setup(ctx) {
async function detectPlatform() {Why was this flagged?
This setup.py calls subprocess, os.system, exec, or eval during package installation. Legitimate packages rarely need to execute arbitrary commands at install time. This pattern is commonly used by malicious packages to download and run payloads, exfiltrate environment variables, or establish persistence. Rated CRITICAL because it runs with the installer's full permissions.
install-pip-setup-exec
CRITICALsetup.py executes code at install time
package/dist/bin/metro-mcp.js:1877
description: "UI automation via fiber tree, simctl, adb, and IDB",
async setup(ctx) {
async function detectPlatform() {Why was this flagged?
This setup.py calls subprocess, os.system, exec, or eval during package installation. Legitimate packages rarely need to execute arbitrary commands at install time. This pattern is commonly used by malicious packages to download and run payloads, exfiltrate environment variables, or establish persistence. Rated CRITICAL because it runs with the installer's full permissions.
install-pip-setup-exec
CRITICALsetup.py executes code at install time
package/dist/bin/metro-mcp.js:2369
description: "React Navigation / Expo Router state inspection",
async setup(ctx) {
const GET_NAV_STATE_EXPR = `Why was this flagged?
This setup.py calls subprocess, os.system, exec, or eval during package installation. Legitimate packages rarely need to execute arbitrary commands at install time. This pattern is commonly used by malicious packages to download and run payloads, exfiltrate environment variables, or establish persistence. Rated CRITICAL because it runs with the installer's full permissions.
install-pip-setup-exec
CRITICALsetup.py executes code at install time
package/dist/index.js:534
description: "Console log collection and filtering",
async setup(ctx) {
const buffer = new CircularBuffer(500);Why was this flagged?
This setup.py calls subprocess, os.system, exec, or eval during package installation. Legitimate packages rarely need to execute arbitrary commands at install time. This pattern is commonly used by malicious packages to download and run payloads, exfiltrate environment variables, or establish persistence. Rated CRITICAL because it runs with the installer's full permissions.
install-pip-setup-exec
CRITICALsetup.py executes code at install time
package/dist/index.js:1737
description: "Cross-platform deep link testing",
async setup(ctx) {
async function detectPlatform() {Why was this flagged?
This setup.py calls subprocess, os.system, exec, or eval during package installation. Legitimate packages rarely need to execute arbitrary commands at install time. This pattern is commonly used by malicious packages to download and run payloads, exfiltrate environment variables, or establish persistence. Rated CRITICAL because it runs with the installer's full permissions.
install-pip-setup-exec
CRITICALsetup.py executes code at install time
package/dist/index.js:1882
description: "UI automation via fiber tree, simctl, adb, and IDB",
async setup(ctx) {
async function detectPlatform() {Why was this flagged?
This setup.py calls subprocess, os.system, exec, or eval during package installation. Legitimate packages rarely need to execute arbitrary commands at install time. This pattern is commonly used by malicious packages to download and run payloads, exfiltrate environment variables, or establish persistence. Rated CRITICAL because it runs with the installer's full permissions.
install-pip-setup-exec
CRITICALsetup.py executes code at install time
package/dist/index.js:2374
description: "React Navigation / Expo Router state inspection",
async setup(ctx) {
const GET_NAV_STATE_EXPR = `Why was this flagged?
This setup.py calls subprocess, os.system, exec, or eval during package installation. Legitimate packages rarely need to execute arbitrary commands at install time. This pattern is commonly used by malicious packages to download and run payloads, exfiltrate environment variables, or establish persistence. Rated CRITICAL because it runs with the installer's full permissions.
Badge
Markdown
[](https://sigilsec.ai/scans/AC64A7DD-3CE1-47E9-9937-72EEE6FD24D1)HTML
<a href="https://sigilsec.ai/scans/AC64A7DD-3CE1-47E9-9937-72EEE6FD24D1"><img src="https://sigilsec.ai/badge/npm/metro-mcp" alt="Sigil Scan"></a>Run This Scan Yourself
Scan your own packages
Run Sigil locally to audit any package before it touches your codebase.
Early Access
Get cloud scanning, threat intel, and CI/CD integration.
Join 150+ developers on the waitlist.
Get threat intelligence and product updates
Security research, new threat signatures, and product updates. No spam.
Other npm scans
Believe this result is incorrect? Request a review or see our Terms of Service and Methodology.