GitHub의 「Pkgxray – inspect what gets installed, not what executes」는 npm 패키지와 MCP 서버를 설치나 연결 전에 점검합니다.
예시 실행에서 [email protected]은 SAFE, A+, 99/100을 받았고, npm 타르볼의 15/16 파일이 GitHub 저장소와 맞았습니다.
실무에서는 실행 전에 차단하고, SAFE도 무해성 증명으로 오해하지 않아야 합니다.
pkgxray는 설치 전에 패키지와 MCP 서버를 어떻게 봅니까
GitHub의 「Pkgxray – inspect what gets installed, not what executes」는 설치 전 보안을 전면에 둡니다. pkgxray는 npm 패키지와 Model Context Protocol 서버를 연결하거나 설치하기 전에 로컬 정적 분석을 수행합니다. 추가 의존 라이브러리 없이 검사하며, 정상 스캔에서는 패키지 코드를 실행하지 않습니다.
이 도구는 판정 근거를 SAFE, REVIEW, BLOCK으로 돌려줍니다.
guard는 패키지를 격리 구역에 올린 뒤 저장된 사본만 검사하고, 정책이 허용할 때만 승격합니다.
정상 경로에서는 npm install, 생명주기 스크립트, 빌드 단계, 패키지 코드 실행을 모두 피합니다.
pkgxray는 MCP Registry에도 io.github.adamsjack711-ux/pkgxray로 게시됩니다.
즉, 이 도구는 패키지 파일만 보는 검사기가 아니라, MCP 연결 전 점검 도구이기도 합니다.

예시 실행의 99/100과 15/16은 무엇을 뜻합니까
아래 표는 원문에서 확인된 값만 정리한 것입니다.
| 값 | 무엇을 재는가 | 원문 인용 |
|---|---|---|
| SAFE | 예시 guard가 내린 판정 | Decision: **SAFE** |
| A+ | 예시 guard의 등급 | Grade: **A+** (99/100) |
| 99/100 | 예시 guard의 점수 | Grade: **A+** (99/100) |
| 15/16 | npm 타르볼과 GitHub 저장소가 일치한 파일 수 | (15/16 files match GitHub @4.21.0) |
| 454,648 | Sonatype가 2025년에 새로 식별한 악성 오픈소스 패키지 수 | Sonatype reported 454,648 newly identified malicious open-source packages across monitored ecosystems in 2025 . |
| 394,877 | Sonatype의 Q4 악성 패키지 수 | Its Q4 report counted 394,877 in that quarter |
| 99.8% | Q4 악성코드 중 npm에서 온 비율 | 99.8% of Q4 malware originated from npm |
| top-1000 | 무오탐 보정의 범위 | the zero-heuristic-false-block calibration on the top-1000 most-downloaded packages |
| ~25 ms | 로컬 정적 분석 시간 | Local static analysis: ~25 ms |
| ~1.3–1.5 s | cold-cache 전체 guard 시간 | a full guard of express is ~1.3–1.5 s cold-cache |
원문은 [email protected] 예시에서 SAFE, A+, 99/100을 제시합니다.
같은 예시에서 npm 타르볼의 15/16 파일이 GitHub 저장소와 일치한다고 밝힙니다.
이 수치는 단순 홍보 문구가 아니라, 검사가 실제로 어떤 증거를 잡아내는지 보여줍니다.
Sonatype 수치는 배경 위험도를 보여줍니다. 2025년의 454,648개와 Q4의 394,877개는 악성 패키지 규모가 작지 않다는 뜻입니다. 99.8%가 npm에서 왔다는 값은, 이 문제가 패키지 설치 경로와 강하게 맞물린다는 점을 보여줍니다.
기존 보안 도구와 pkgxray는 어디서 갈립니까
pkgxray는 npm audit와 OSV-Scanner가 푸는 질문도 함께 봅니다. 다만 이 도구의 핵심은 알려진 CVE만 찾는 데 멈추지 않는다는 점입니다. 원문은 새로 트로이 목마가 된 패키지에는 아직 CVE가 없을 수 있다고 설명합니다.
그래서 pkgxray는 신뢰를 함께 봅니다.
여기서 신뢰는 여러 층으로 나뉩니다. 패키지 코드가 실제로 무엇을 하는지 봅니다. 게시된 npm 타르볼이 태그된 GitHub 소스와 맞는지도 봅니다.
출처 증명이 주장한 저장소와 일치하는지도 봅니다. 문서가 에이전트를 겨냥한 프롬프트 주입을 품었는지도 봅니다.
판정 경로에 LLM이 없다는 점도 중요합니다. 원문은 주입된 텍스트가 판정을 흔들 수 없다고 밝힙니다. 또한 무오탐 보정은 top-1000 most-downloaded packages 범위로 한정됩니다.
즉, 전체 패키지에서 오탐 0개를 약속하는 도구는 아닙니다.
안티바이러스와의 차이도 분명합니다. 전통적인 백신은 실행되는 것을 더 잘 봅니다. pkgxray는 설치되는 것을 먼저 봅니다.
이 차이는 에이전트가 코드를 읽기 전에, 또는 실행 전에 멈출 수 있느냐로 이어집니다.

실무에서는 어디에 먼저 넣어야 합니까
가장 먼저 할 일은 설치 앞단을 하나 더 만드는 것입니다.
새 의존성을 받는 PR에는 설치 전 검사를 걸어두는 편이 좋습니다.
schedule dependency rechecks처럼 버전이 바뀔 때 다시 검사하는 흐름도 함께 둡니다.
MCP 서버를 다루는 조직이라면 연결 전 점검이 더 중요합니다.
에이전트가 서버와 바로 붙기 전에, manifest와 도구 표면을 먼저 확인해야 합니다.
원문이 제시한 mcp-proxy 계열의 재검사 흐름도 이 맥락에서 읽을 수 있습니다.
실행 예시는 간단합니다.
npx --yes [email protected] guard npm:[email protected]처럼 먼저 판정을 받고, 그다음에 설치 여부를 정합니다.
핵심은 도구를 더 많이 쓰는 것이 아니라, 판단 시점을 더 앞당기는 데 있습니다.
다만 SAFE를 무해성 증명으로 읽으면 안 됩니다. 원문은 실행 뒤에만 내려받는 페이로드는 정적 분석으로 보이지 않을 수 있다고 밝힙니다. 따라서 표면이 깨끗해 보여도, 실행 시 네트워크로 실체를 가져오는 패키지는 별도 점검이 필요합니다.
자주 묻는 질문
pkgxray의 SAFE는 안전하다는 뜻입니까?
아닙니다. 원문은 SAFE가 무해성의 증명이 아니라고 밝힙니다. 정적 분석은 실행 시점에만 내려오는 페이로드를 볼 수 없습니다. 그래서 SAFE는 현재 증거 기준의 통과로 읽어야 합니다.
pkgxray는 모든 패키지에서 오탐 0개를 보장합니까?
아닙니다. 원문은 무오탐 보정이 top-1000 most-downloaded packages 범위에 한정된다고 말합니다. 즉, 전체 패키지에 대한 절대 보장은 아닙니다. 실무에서는 이 범위를 알고 써야 합니다.
pkgxray는 어디서 특히 유용합니까?
npm 패키지나 MCP 서버를 자동으로 설치하고 연결하는 흐름에서 특히 유용합니다. 코딩 에이전트가 사람보다 먼저 실행 경로를 열 수 있기 때문입니다. 그래서 설치와 연결 전에 먼저 보는 장치가 필요합니다.
원문: 「Pkgxray – inspect what gets installed, not what executes」
