SML Risk Firewall
Pre-trade risk checks for agent trades: orders vs your limits, signed receipts.
Description from the maker (original English)
Pre-install security scans for npm packages, MCP servers, and AI agents with cited verdict evidence.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"pkgxray": {
"command": "npx",
"args": [
"-y",
"pkgxray",
"mcp-server"
]
}
}
}Run this in your terminal
claude mcp add pkgxray -- npx -y pkgxray mcp-serverPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"pkgxray": {
"command": "npx",
"args": [
"-y",
"pkgxray",
"mcp-server"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"pkgxray": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"pkgxray",
"mcp-server"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account adamsjack711-ux, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (1.0.5) reached the registry 3 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: SML Risk Firewall, ipdata MCP by usefulapi, MaxMind minFraud MCP by usefulapi
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Pre-trade risk checks for agent trades: orders vs your limits, signed receipts.
Look up location, network, company and threat data for IP addresses and ASNs in ipdata.
MCP server for MaxMind minFraud — score transactions for fraud risk from your AI assistant.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Inspect an npm package or MCP server before you install it or connect to it. You get a SAFE, REVIEW, or BLOCK verdict, decided by fixed rules and backed by cited evidence. The analysis is static and runs on your machine without installing npm dependencies. A pinned MIT-licensed Acorn parser is bundled. Normal scans never execute package code.
Website · Documentation · Calibration · Report a bug
Real runs: guard clears express@4.21.0 , then blocks a sample modeled on the 2024 @solana/web3.js compromise.
pkgxray install scans the npm lockfile, installs held archives offline with scripts disabled, and verifies the resulting files.[1. Quick start](#quick-start) · 2. What it scans & detects · 3. Verdicts · 4. Usage · 5. Integrations · 6. How it compares · 7. Documentation
AI coding assistants install packages and connect to MCP servers quickly, and often no person reads the code first. Sonatype counted more than 454,600 new malicious open-source packages across monitored ecosystems in 2025, over 99% of them on npm (Sonatype). npm audit asks whether a package has a known CVE. pkgxray also asks what the code does, before anything installs.
1. Scan a known-benign package (no install of pkgxray needed):
npx --yes pkgxray@1.0.5 guard npm:express@4.21.0
It stages the tarball in quarantine and runs the static and supply-chain checks. There is no npm install, no lifecycle script, and no package code executed.
Sample output
Decision: SAFE Grade: A+ (99/100)
No high- or medium-risk indicators were found in the provided evidence.
Notes:
2. Read the verdict:
| Verdict | Exit | Meaning |
|---|---|---|
SAFE | 0 | No high- or medium-risk indicators; default policy permits promotion. |
REVIEW | 3 | Evidence is incomplete or a privileged capability needs human review. |
BLOCK | 2 | High-severity cited evidence — reject or investigate. |
SAFE is not a proof that a package is harmless; static analysis cannot see a payload downloaded only at runtime. See the threat model.
3. See a BLOCK on the supplied inert fixture:
npx --yes pkgxray@1.0.5 --file examples/onboarding-malicious.json --format markdown
The fixture is inert source text that models a split-string SSH-key read and exfiltration. It is never executed. It returns BLOCK (exit 2) with the cited file and evidence.
4. Add it to your workflow — rechecks & CI, MCP, Hookshot install gate.
Two execution models. Default
guardandauditscans are static, so
package code is never executed. Three surfaces are different: listing an MCP
server's tools may spawn it,
mcp-proxyruns it behind a gate, and the opt-in
canary*executes* the package in a sandbox to
confirm what it does. The canary can confirm that a package is malicious, but it
can never prove one is safe. Full boundary: SECURITY.md.
Scans — pkgxray guard npm:name@version or pypi:name@version, github:owner/repo, a local directory, whole lockfiles across two ecosystems (npm: package-lock.json, yarn.lock, pnpm-lock.yaml, package.json; PyPI: requirements.txt, poetry.lock, Pipfile.lock, pyproject.toml), MCP servers, and AI-agent extensions.
Detects — credential theft (incl. split-fragment paths), cloud instance-metadata and secret-store harvesting, prompt injection, Unicode smuggling, base64 payloads and stage-2 loaders, exfiltration, persistence (shell profile, OS scheduler, and injected CI/CD workflows), self-deleting droppers, registry worm replication (install-time npm publish), npm install-hook and PyPI setup.py install-time execution, obfuscated computed-arg execution, hallucinated / slopsquat names (a lockfile pin the registry never published), known CVEs (via OSV, before download), npm↔GitHub artifact divergence, trojaned updates (recheck), and MCP capability-surface abuse.
The full coverage matrix is in the threat model, along with the known blind spot: a package that downloads its payload later. A side-by-side comparison table is on the website.
| Verdict | You should |
|---|---|
SAFE | No blocking findings within the reported checks. Review coverage before installing. |
REVIEW | Inspect the quarantined copy before promoting. |
BLOCK | Do not install. Every finding names the file and evidence. |
Exit codes are stable and CI-friendly: `0` safe/allow · `2` block · `3` review.
pkgxray guard npm:some-package@1.2.3 [--format json] # vet a package before install
pkgxray guard pypi:some-package@1.2.3 # same, for a PyPI package (sdist staged + scanned) pkgxray mcp --package npm:some-mcp-server@1.4.2 npx some-mcp-server # vet an MCP server; --recheck catches the rug-pull pkgxray audit package-lock.json [--deep-all] # also: yarn.lock, pnpm-lock.yaml, package.json pkgxray audit requirements.txt [--deep] # PyPI: also poetry.lock, Pipfile.lock, pyproject.toml pkgxray recheck package-lock.json # scheduled: non-zero only on a regression
audit checks resolved dependencies against OSV. --deep adds source scans for blocked dependencies; --deep-all requests source scans for all resolved dependencies. Failed deep scans and incomplete source collection return REVIEW unless already BLOCK. guard --deps includes direct-dependency findings in its decision; only exact pins are checked, with ranges and other unresolved sources left at REVIEW. Guard output lists completed, partial, disabled and failed checks so a passing verdict does not imply checks that never ran. PyPI scans cover source-distribution manifests, vulnerability metadata, and text-level injection checks; they do not provide full Python module behavioral analysis or wheel inspection. Python source adds an unsupported-behavior REVIEW finding. Behavioral coverage gaps cannot be muted or promoted with allow-review; a pinned artifact approval remains an explicit operator override. Archives containing links or special files are rejected.
One optional .pkgxray.json tunes policy on the Node-based surfaces. The browser extension scans supplied evidence using engine defaults and cannot read project configuration. No config means the strictest settings. Config can never allow a CVE away, every loosening is printed, and a scan that errors fails closed to review. Schema and rules: configuration.md · .pkgxray.example.json.
One engine behind every entry point. "Works with" means a documented setup guide, not a vendor-endorsed integration.
| Where | What it does | Guide |
|---|---|---|
| Coding agents — Codex, Claude Code, Cursor, Windsurf | Gate installs and expose the audit tools to the agent | coding-agents.md |
| MCP clients | Vet a server before connect; run pkgxray itself as an MCP server | mcp.md |
| GitHub Actions / CI | Fail a build when a dependency crosses policy | github-actions.md |
| Install gate — Hookshot | Run guard on every package an agent tries to install | examples/hookshot/ |
| Runtime MCP gate | Proxy a live MCP server and gate every tool call | mcp-proxy |
| Dependency monitoring | Re-vet installed deps and pre-vet upgrades on a schedule | recheck |
npm audit and OSV-Scanner check for published CVEs, and pkgxray does not replace them. Run it alongside them. The tools in the same lane are Socket.dev, OpenSSF Package Analysis, and Cisco MCP Scanner, which also analyze what package code does. The full capability comparison is in docs/comparison.md and on the website.
Historical top-1000 runs and their scope and methodology remain available at pkgxray.ca/stats. Those results predate the parser-based flow engine and have not been rerun for this change. The current engine passes all 270 internal synthetic calibration/challenge fixtures without a malicious SAFE or benign BLOCK; many malicious cases produce REVIEW. This is regression evidence, not a real-world detection-rate estimate.
| Doc | What it covers |
|---|---|
| architecture.md · design.md | Pipeline, surfaces, principles |
| threat-model.md | Scope, blind spots, prompt-injection stance |
| mcp.md · mcp-registry.md | MCP vetting, runtime proxy, registry entry |
| canary-threat-model.md | The opt-in behavioral canary |
| configuration.md · reference.md | .pkgxray.json, severity policy, recheck, cache server |
| benchmark.md · comparison.md | Calibration and how it compares |
| compatibility.md · [json-schema.md]
Only the beginning is shown; read the rest in the repo