registry / @extenshi/mcp / 0.5.2
@extenshi/mcp@0.5.2
Extenshi MCP server — bring the extension catalog (search, security, market research) and pre-publish scanning into your AI tools
AI Security Review
scanned 3mo ago · by lpm-firewall-aiThe lifecycle hook is a transparent, positive-consent telemetry ping and only maintains its own vendor config. Other sensitive actions require explicit MCP tool calls and align with the package's extension-development purpose.
Static reason
One or more suspicious static signals were detected.
Trigger
npm install with prior telemetry consent, or explicit MCP tool invocation
Impact
No unconsented credential exfiltration, remote payload execution, persistence, or AI-agent control-surface mutation found.
Mechanism
consent-gated telemetry and user-invoked extension tooling
AI rationale
The lifecycle hook is a transparent, positive-consent telemetry ping and only maintains its own vendor config. Other sensitive actions require explicit MCP tool calls and align with the package's extension-development purpose.
Evidence
package.jsonscripts/postinstall.cjsdist/config.jsdist/scan.jsdist/telemetry.jsdist/tools.jsdist/update-check.js~/.extenshi/config.json.env
Network endpoints5
eu.i.posthog.combff.extenshi.ioscan.extenshi.iodocs.extenshi.ioregistry.npmjs.org/@extenshi/mcp/latest
Decision evidence
public snapshotAI called this Clean at 91.0% confidence as Benign with low false-positive risk.
Evidence for AI clean decision
- postinstall runs during npm installation and can send telemetry after a recorded consent check.
- The MCP exposes user-invoked artifact scanning and extension publishing capabilities.
Evidence against
- Install telemetry exits unless ~/.extenshi/config.json has telemetry set to true.
- Postinstall payload is limited to anonymous install metadata; no credential or arbitrary file collection is shown.
- Runtime backend URLs are compiled-in Extenshi endpoints.
- No child-process execution, eval, dynamic remote loading, destructive operation, or AI-client configuration mutation was found.
Behavioral surface
ChildProcessCryptoDynamicRequireEnvironmentVarsFilesystemNetwork
HighEntropyStringsTelemetryUrlStrings
Source & flagged code
3 flaggedpackage.jsonView file
•scripts.postinstall = node scripts/postinstall.cjs
High
Install Time Lifecycle Scripts
Package defines install-time lifecycle scripts.
package.jsonView on unpkg•scripts.postinstall = node scripts/postinstall.cjs
Medium
Ambiguous Install Lifecycle Script
Install-time lifecycle script is not statically allowlisted and needs review.
package.jsonView on unpkgdist/index.jsView file
29import { checkForUpdate } from './update-check.js';
L30: const require = createRequire(import.meta.url);
L31: const pkg = require('../package.json');
Medium
Dynamic Require
Package source references dynamic require/import behavior.
dist/index.jsView on unpkg · L29Findings
1 High5 Medium6 Low
HighInstall Time Lifecycle Scriptspackage.json
MediumAmbiguous Install Lifecycle Scriptpackage.json
MediumDynamic Requiredist/index.js
MediumNetwork
MediumEnvironment Vars
MediumStructural Risk Force Deep Review
LowNon Install Lifecycle Scripts
LowScripts Present
LowFilesystem
LowHigh Entropy Strings
LowTelemetry
LowUrl Strings
Affected versions and remediation
This report applies to @extenshi/mcp@0.5.2.
See all versions of @extenshi/mcp for other recorded verdicts.
- Review the evidence and your use of @extenshi/mcp@0.5.2 before allowing it. Restrict the permissions described in this report.
- Choose an independently verified alternative or release. This report does not establish that other versions are safe.
Evidence last updated: .
Think this verdict is wrong? Dispute it on GitHub or read how reports are produced.