Pre-install package security

Look inside.
Then install.

Inspect npm packages and MCP servers before they enter your stack. Get a SAFE, REVIEW, or BLOCK verdict, with the evidence behind it.

Open source. Runs locally. No account required.

npx --yes [email protected] guard npm:[email protected]
PACKAGE INSPECTION01 / 03
pkgxray guard npm:[email protected]
  1. Tarball staged in quarantine
  2. Static & supply-chain checks complete
  3. Package code was not executed
VERDICTSAFE
exit 0

NO HIGH- OR MEDIUM-RISK FINDINGS

The default policy permits promotion from quarantine.

npm:[email protected]
Illustrative output · no live browser scan

SAFE means no high- or medium-risk indicators were found. It is not proof that a package is harmless.

01 Static by default02 Evidence you can inspect03 Zero runtime dependencies04 MIT licensed

A checkpoint before install

Know what you’re
bringing into your project.

Packages and agent tools get real permissions. Add a deliberate check before you give them access.

  1. 01 /

    Quarantine the package

    Stage the package in an isolated directory. Normal scans read its files without installing it or running its code.

    guard npm:package@version
  2. 02 /

    Inspect the evidence

    Check package behavior, known vulnerabilities, metadata, and provenance. Fixed rules decide the verdict.

    Every finding cites its source.
  3. 03 /

    Make the next call

    Proceed with SAFE, investigate REVIEW, or stop at BLOCK. Only SAFE promotes from quarantine by default.

    The same policy in your CLI and CI.

What’s under the lens

Packages. Servers.
The tools your
agents trust.

One local engine, with coverage that depends on what you’re inspecting.

Read the threat model

npm packages

Behavior + supply chain

Signals of credential theft, suspicious execution, persistence, and prompt injection. Plus known CVEs and npm-to-GitHub artifact checks.

PyPI packages

Focused coverage

Install manifests, known CVEs, metadata, prompt injection, and hidden Unicode. General Python behavioral analysis is not implemented.

MCP servers

Before & during connection

Audit packages and declared capabilities. The runtime proxy gates calls, checks results, and detects manifest drift; it does not track dataflow across calls.

Whole projects

Lockfiles + monitoring

Check npm and Python dependency manifests. Recheck a stored baseline to spot changes in versions and verdicts.

A clear boundary. Static analysis cannot clear a payload that only arrives at runtime. Listing MCP tools may launch a server; mcp-proxy runs it, and opt-in canary executes package code in a sandbox. Execution boundaries ↗

Fits where you already work

One check.
More places to use it.

Start in your terminal, then put the same decisions into your team’s workflow.

Evidence, including the limits

Measured.
Not assumed.

The July 19, 2026 npm validation recorded zero heuristic false blocks after retuning. It also sent 661 packages to review. Both numbers matter.

Read the July npm report
HISTORICAL NPM VALIDATION
Packages in the target set
1,000
Heuristic false blocks after retuning
0
Sent to human review
661

A historical result, not a guarantee for the current engine. Routine CI checks committed fixtures; live registry validation is separate. Review resolution time was not measured.

Results & review count ↗ Methodology ↗

Alongside your existing tools

Go beyond the advisory.

npm audit and OSV check for known vulnerabilities. pkgxray also inspects package code and capabilities, so suspicious behavior can surface before an advisory exists. Use them together.

Read the full tool comparison

Your first checkpoint

Start with
one package.

No global install required. Choose a command and run it in your terminal.

Node.js ≥ 18 / pkgxray 1.1.0 / MIT

npx --yes [email protected] guard npm:[email protected]

Downloads the package into quarantine and inspects it. The package’s install scripts and code are not executed.

SAFE 0REVIEW 3BLOCK 2
Quick start & inert BLOCK example ↗