Skip to main content
Glama
Lex6won
by Lex6won

scan_installed_packages

Scan installed Python and Node packages for vulnerabilities and licenses by reading .venv, wheel, and node_modules metadata, exposing transitive risks missed by dependency manifests.

Instructions

실제로 설치된 패키지까지 훑어 취약점·라이선스를 검사합니다.

scan_dependencies 는 requirements.txt·package.json 에 적힌 것만 봅니다. 그런데 취약점은 대개 그 파일에 없는 전이 의존성에 있습니다. 이 도구는 폴더 안의 설치 흔적을 직접 읽어 그 격차를 메웁니다:

  • .venv/site-packages 의 *.dist-info/METADATA (이름·버전·라이선스)

  • 오프라인 반입용 *.whl 파일명

  • node_modules/*/package.json

패키지를 임포트·실행하지 않고 메타데이터 텍스트만 읽습니다. 네트워크는 취약점 조회에만 쓰이며 패키지명·버전만 전송합니다(GVSKB_MODE=offline 이면 로컬 인텔 캐시 사용). 라이선스 정보는 설치 메타데이터에서만 얻을 수 있어 이 도구에서만 함께 반환됩니다.

Input Schema

NameRequiredDescriptionDefault
pathYes프로젝트 폴더 경로. 하위의 .venv·*.whl·node_modules 설치 흔적을 훑습니다
limitNo검사할 최대 패키지 수 (기본 100)
env_gradeNo실행환경 등급 — 신규 버전 쿨다운 기준일만 정합니다(취약점·악성 판정에는 영향 없음): E0(개인PC 일회성, 3일) | E1(개인PC 반복도구, 7일, 기본) | E2(내부서버 공용, 14일). **사용자가 배포 환경을 명시하지 않으면 비워 두세요** — 도구가 자동 판별하지 않으며, 넘긴 값이 보고서에 '검사 실행 시 지정'으로 그대로 기록됩니다.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.5.4

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so richly: it enumerates exactly which files are read (.dist-info/METADATA, *.whl names, node_modules package.json), states that packages are never imported or executed, discloses that the network is used only for vulnerability lookup and only package names/versions are transmitted, mentions offline mode (GVSKB_MODE=offline), and notes licenses are returned only here.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core distinction and well organized into a bulleted list of installation traces. It is somewhat long, with some detail that overlaps the schema's enum documentation, but nearly every sentence carries useful disambiguation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description covers behavior, side effects, network/privacy posture, and sibling differentiation. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents path, limit, and env_grade (including the E0/E1/E2 meanings and cooldown semantics). The description adds little parameter-level detail beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (scan) and resource (actually-installed packages, including transitive dependencies), and explicitly contrasts with the sibling scan_dependencies, which only reads manifest files. An agent can distinguish the two without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the alternative (scan_dependencies) and the gap it covers (transitive dependencies missing from requirements.txt/package.json), which is clear routing guidance. It does not spell out explicit exclusions or when this tool would be the wrong choice, so it stops short of a full when/when-not statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.