Skip to main content
Glama
Lex6won
by Lex6won

scan_sbom

Scan a supplied SBOM to identify vulnerable components when only CycloneDX or SPDX JSON is available, such as from suppliers or build pipelines.

Instructions

건네받은 SBOM 의 컴포넌트를 검사합니다 — 소스 코드가 없어도 됩니다.

조달·협력사가 SBOM 만 제출하는 경우, 또는 빌드 파이프라인이 이미 SBOM 을 만들어 두는 경우에 씁니다. scan_dependencies 가 매니페스트/락파일을 받는 것과 짝입니다.

읽지 못한 컴포넌트는 버리지 않고 skipped 에 사유와 함께 돌려줍니다. purl 이 없거나 버전이 NOASSERTION 이면 취약점 판정이 불가능한데, 조용히 빼면 받는 쪽은 "그 컴포넌트는 안전하다"로 읽습니다 — 없는 것과 안 본 것은 다릅니다. truncated_count > 0 도 같은 뜻이니 limit 를 올려 재검사하세요.

반대 방향(우리 검사 결과를 SBOM 으로 내보내기)은 CLI 의 gvskb scan --check-deps --sbom <경로> 입니다.

Input Schema

NameRequiredDescriptionDefault
limitNo검사할 최대 컴포넌트 수(기본 2000). 초과분은 truncated_count 로 표시
callerNo호출 주체 자율 신고. 감사 구분용
sbom_textYesSBOM 파일 원문. CycloneDX JSON 또는 SPDX JSON (XML·tag-value 형식은 지원하지 않습니다)

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.5.4

TDQS

A4.7/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 behavioral burden and does so: unreadable components are not dropped but returned in `skipped` with a reason, purl-less or NOASSERTION-versioned components cannot be judged, and truncated_count > 0 signals incomplete coverage requiring a higher limit. This tells the agent exactly how results can be silently incomplete—context that is not derivable from the schema.

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?

Purpose and scope are front-loaded in the first sentence, followed by usage cases, then the important caveat block. It is slightly long for a 3-parameter tool, but every paragraph (usage, skip semantics, export alternative) adds information rather than restating the schema.

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

Completeness4/5

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

An output schema exists and the description still usefully explains the two fields that change how results must be interpreted (skipped, truncated_count). Authentication/permission requirements and the intent of the `caller` audit parameter are not mentioned, but for a read-style scan of caller-supplied text this is a minor gap.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3, but the description adds real meaning about `limit`: exceeding it surfaces as `truncated_count` and the remedy is to raise the limit and re-scan. It says nothing extra about `caller` or `sbom_text`, which the schema already documents well.

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 concrete verb+resource ('SBOM 컴포넌트를 검사합니다') and immediately clarifies the key scope condition ('소스 코드가 없어도 됩니다'). It explicitly distinguishes itself from the sibling scan_dependencies ('매니페스트/락파일을 받는 것과 짝'), so an agent can route correctly 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 Guidelines5/5

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

Gives two concrete triggering scenarios (procurement/supplier submits only an SBOM; build pipeline already emits an SBOM) and names the counterpart tool for the other input shape (scan_dependencies). It also rules out one wrong direction—exporting results to SBOM is a CLI operation, not this tool—which is an explicit when-not.

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