Pkgverdict

io.github.CloudCorpRecords由 GitHub 帳號 CloudCorpRecords 發布v0.1.1更新於 Oct 30, 2026

Pre-install verdicts for npm packages: GO, RISKY, FAKE, or MISSING. Built for humans and AI agents.

已驗證STDIO僅桌面開發者工具安全與監控

概覽

AI 產生的概覽

在安裝前檢查 npm 套件,給出 GO、RISKY、FAKE 或 MISSING 結論,讓助理先審查相依套件再安裝。

可以做什麼
  • 依名稱或 name@version 檢查單一 npm 套件,回傳白話結論及其依據訊號
  • 掃描專案的 package.json,依風險由高到低列出各相依套件的結論,可選擇略過開發相依套件
  • 辨識幻覺或拼錯的名稱、仿冒名稱、過新或冷門套件、安裝腳本、已棄用、缺少儲存庫或授權,以及 OSV 公告
  • 提供便於腳本與 CI 使用的 JSON 輸出與結束碼
適用情境
當 AI 程式助理建議安裝某個套件時,或需要對新的、不熟悉的 npm 相依套件做安裝前安全檢查,以及在 CI 中攔截可疑套件時使用。
執行需求
透過 Docker 以本機 stdio 程序執行,映像檔從 GHCR 拉取;沒有 npm 套件,npx 無法使用。需要能連線 npm registry 與 OSV 資料庫的網路。未宣告任何帳號、API 金鑰或環境變數。scan 指令需要掛載專案目錄。
安裝前請注意
scan 指令會讀取專案的 package.json,請只掛載要檢查的目錄。結論是根據 registry 中繼資料、下載量與 OSV 公告的啟發式判斷,並非保證;RISKY 套件未必有問題,仍應人工複核。結果會快取在本機快取目錄中最多六小時,未清除前可能得到過期結論。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Pkgverdict,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

pkgverdict

Check an npm package before you install it. One command, one verdict: GO, RISKY, FAKE, or MISSING — in plain words your AI coding agent can read too.

pkgverdict ships as a container image on GHCR (there is no npm package named pkgverdict, so npx pkgverdict will 404 — use Docker):

bash
docker run --rm ghcr.io/cloudcorprecords/pkgverdict check react-markdown# [GO] [email protected]#   - 5y old, 38.4M/wk, no install scripts, no advisories, no lookalike name.
docker run --rm ghcr.io/cloudcorprecords/pkgverdict check unused-imports# [FAKE] [email protected]#   - Flagged malicious: MAL-2025-48781. Do not install.#   - Name rides on eslint-plugin-unused-imports (suffix of popular name) and the#     package is barely downloaded — the classic typosquat shape.
docker run --rm ghcr.io/cloudcorprecords/pkgverdict check react-super-hooks-plus# [MISSING] react-super-hooks-plus#   - react-super-hooks-plus is not on the npm registry. If an AI assistant#     suggested it, the name was hallucinated.

Why

AI assistants now pick half the packages developers install — and they hallucinate names attackers have already registered (slopsquatting), while typosquats and hijacked releases keep shipping postinstall malware. npm audit only sees published advisories, after the fact. pkgverdict checks before the install: existence, lookalike names, package age, install scripts, maintainers, downloads, and OSV advisories.

Use it inside your AI coding tool

One command sets it up. In your project directory, run:

bash
docker run --rm -v "$PWD":/work -w /work ghcr.io/cloudcorprecords/pkgverdict init --agent claude-code

That installs the MCP server config plus the instruction snippet teaching your agent the one behavior rule: check pkgverdict before installing. Supported tools: claude-code, cursor, copilot (VS Code), windsurf, cline, and generic (init --list shows them all; --all sets up everything; --dry-run previews without writing). Restart your tool, verify with a "list your MCP tools" prompt, and the pkgverdict server should appear with 2 tools (check_package, scan_dependencies). The underlying pack lives in integrations/ if you prefer to install by hand.

CLI

bash
# Verdict on one package (name or name@version)docker run --rm ghcr.io/cloudcorprecords/pkgverdict check lodash
# Check every dependency in package.json, worst firstdocker run --rm -v "$PWD":/work -w /work ghcr.io/cloudcorprecords/pkgverdict scandocker run --rm -v "$PWD":/work -w /work ghcr.io/cloudcorprecords/pkgverdict scan ./my-app --no-dev
# Check your setup (Node version, registry + OSV reachability, cache)docker run --rm ghcr.io/cloudcorprecords/pkgverdict doctor
# JSON output for scripting and CIdocker run --rm ghcr.io/cloudcorprecords/pkgverdict check left-pad --json

Exit codes: 0 when everything is GO (or RISKY without --strict), 1 when a FAKE or MISSING package is found, 2 on usage errors. For CI gates that should fail on anything suspicious: pkgverdict scan --strict.

Verdicts

VerdictMeaning
GOEstablished package, no red flags. Install away.
RISKYCaution: install scripts, very young, obscure, deprecated, no repo/license, known advisories, or a lookalike name on an otherwise fine package. Read before installing.
FAKELooks actively bad: typosquat-shaped name on a new/obscure package, hostile install script, or a malicious advisory (MAL- id, a MAL- alias, or an OSV record whose details mark the package itself malicious/backdoored — e.g. the [email protected] compromise, carried under a GHSA id). Do not install.
MISSINGNot on the registry at all — a typo or a hallucinated name, with a "did you mean" suggestion when one fits.

Signals come from the npm registry (metadata, downloads), the OSV database (advisories), and a bundled list of well-known packages for lookalike detection. Responses cache under ~/.cache/pkgverdict (6h metadata, 1h advisories); delete that directory to force fresh checks.

Distribution

pkgverdict has exactly two distribution channels, and both are intentional:

  1. GHCR: the container image ghcr.io/cloudcorprecords/pkgverdict, built and pushed by the Publish container workflow on each release.
  2. The MCP Registry: the listing io.github.CloudCorpRecords/pkgverdict, whose server.json carries an OCI package only, pointing at that same GHCR image.

There is no npm package, and that is the model, not a missing step. npx pkgverdict returning 404 is expected. The unscoped name in package.json exists to build the image and version the CLI; the package is marked private so a stray npm publish from a checkout fails fast instead of claiming the name, and the old template workflow that ran npm publish on every release now sits disabled at .github/workflows/publish.yml, printing this model instead of publishing. Publishing to npm later would be a maintainer decision needing a scoped name and a token with rights to it. These facts are pinned by test/distribution.test.ts, so the residue cannot quietly come back.

Run it with Docker

The GHCR image is the primary distribution: ghcr.io/cloudcorprecords/pkgverdict.

Use it as a stdio MCP server:

bash
docker run --rm -i ghcr.io/cloudcorprecords/pkgverdict

Any CLI command can be passed after the image name instead of the default mcp argument:

bash
docker run --rm ghcr.io/cloudcorprecords/pkgverdict <command> [args]

MCP server

Point your MCP client at Docker (stdio):

json
{  "mcpServers": {    "pkgverdict": {      "command": "docker",      "args": ["run", "--rm", "-i", "ghcr.io/cloudcorprecords/pkgverdict", "mcp"]    }  }}

Two tools: check_package (verdict on one package) and scan_dependencies (worst-first verdicts for a project's package.json).

Development

bash
npm installnpm run buildnpm test        # offline fixture corpus: every verdict rule pinned to a case

License

MIT.

來源:README.md,提交 79181b0

工具

0
SourceWeft 曾在隔離沙箱中以無憑證方式啟動該軟體包一次,以列出其工具,但未能完成:該軟體包類型無法在沙箱中執行。

版本歷史

2
  1. v0.1.1最新Oct 23, 2026
  2. v0.1.0Oct 18, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分