KitScout

Categories › Security › Code & dependency scanning

NPMScan

MCP serverGitHub-verified authorRemote● LiveFree to try

Detect malicious or vulnerable npm packages: registry search, OSV.dev and GitHub advisory lookups

Install

Remote server: your requests and data go to npmscan.com. Claude Code: claude mcp add --transport http npmscan https://npmscan.com/api/mcp · Claude app: Settings → Connectors → Add custom connector.

What it can do

The tools this server listed when we connected to it, in its own words.

  • search_packages — Search the npm registry by name or keywords. Each result includes its current weekly/monthly download counts, dependentsCount (how many othe
  • get_package — Fetch npm registry metadata for a package: latest version, install scripts (preinstall/postinstall are a key risk signal), maintainers, lice
  • get_package_version — Fetch registry metadata for one exact version of a package (dependencies, install scripts, tarball) AND check that exact version against OSV
  • get_maintainer_profile — Given an npm username, returns every package npm's own maintainer:<username> search index currently returns for that account (registry.npmjs
  • query_vulnerabilities — Query OSV.dev for known vulnerabilities affecting an npm package, optionally scoped to one exact version (e.g. to check whether a version pi
  • batch_query_vulnerabilities — Check a whole npm dependency inventory against OSV.dev in one call: pass `packages: [{name, version?}]`, or raw package.json / package-lock
  • get_latest_advisories — Browse recently published npm security advisories and known-malicious-package findings. Three disjoint sources, selected via type: "reviewed
  • get_cve — Look up authoritative NIST NVD data for one exact CVE ID (e.g. "CVE-2026-2950"), or browse/search NVD by keyword, CVSS severity, CWE, or a p
  • analyze_install_script — Statically scans a package's preinstall/install/postinstall/prepare lifecycle scripts AND the file(s) they reference — fetched directly from
  • analyze_transitive_dependencies — Walk one or more root packages' dependency trees (e.g. a package.json "dependencies" section) up to `maxDepth` levels (default 2, max 3) and
  • check_package_provenance — Checks whether a package version was published with npm's own Sigstore-backed publish provenance (`npm publish --provenance`), and cross-che
  • check_maintainer_changes — Reconstruct who has controlled an npm package and when, straight from the packument (each version records the maintainer list at publish tim
  • check_maintainer_blast_radius — Given an npm username, lists the packages npm's maintainer:<username> search index returns for that account and looks for a tight cluster of
  • check_license_compliance — Given a list of packages (name + optional exact version or semver range — e.g. straight from a package.json "dependencies" object) and an op
  • diff_dependencies — Compare two snapshots of a package.json, package-lock.json (v1-v3), yarn.lock (classic or Berry) or pnpm-lock.yaml (e.g. before/after a PR;
  • prioritize_remediation — Rank vulnerability findings other tools already returned (batch_query_vulnerabilities, query_vulnerabilities, analyze_transitive_dependencie
  • simulate_dependency_upgrade — Before running npm install, check whether upgrading a package from a current to a target version is safe. Pass `packageName` + `currentVersi
  • suggest_alternative — Given a package that looks deprecated, vulnerable, abandoned, or suspicious, suggest better-maintained alternatives in the same category. Th
  • compare_packages — Compare 2-5 candidate packages for the same job (e.g. "axios vs got vs node-fetch") side by side and get a deterministic pick. More than 5 n
  • audit_github_repository — Audit a GitHub repository's npm dependencies from its URL — no pasted files needed. Fetches package.json plus the first lockfile found (pnpm
  • get_remediation_playbook — Maps a finding's `rule` value from analyze_install_script, check_maintainer_changes, or check_package_provenance to the matching human-autho
  • generate_sbom — Given the same inputs batch_query_vulnerabilities accepts — either a flat {packages:[...]} list, or raw package.json / lockfile / CycloneDX
  • enrich_npm_audit — Given the raw output of `npm audit --json` (npm 7+'s `{vulnerabilities: {...}}` format, or legacy npm 6's `{advisories: {...}}`), parses it

KitScout test notes

Not tested by KitScout yet. When our harness runs it, pros, cons and the tasks we tried appear here, with the date and evidence.

Similar tools

  • ponytail-audit 190,451 ★
    Quality audit of the whole repo: bugs, security, real load, missing tests, speed, and what to delete. Most imp
  • ponytail-debt 190,451 ★
    Harvest every shortcut: comment into one debt ledger, so deferrals get tracked instead of forgotten. One-shot
  • security-and-hardening 117,221 ★
    Hardens code against vulnerabilities. Use when auditing an input handler for vulnerabilities, when handling us
  • deal-with-security-advisory 113,505 ★
    Handle confidential GitHub Security Advisory response for Paperclip. Use when coordinating advisory triage, pr
  • html-ppt-knowledge-arch-blueprint