Skip to main content
Glama

Security Audit Sbom License Policy

security_audit_sbom_license_policy
Read-onlyIdempotent

Audit a CycloneDX or SPDX SBOM against an SPDX licence policy and return a PASS/WARN/BLOCK verdict. sbom: Full SBOM as a JSON string — CycloneDX or SPDX format. Required. 500 KB max. policy: Optional dict with block/warn/allow arrays of exact SPDX licence identifiers (e.g. GPL-3.0, MIT). Defaults to block GPL-3.0 and AGPL-3.0, warn LGPL-2.1/MPL-2.0/BSD-4-Clause, allow MIT/Apache-2.0/BSD-2-Clause/BSD-3-Clause. No glob patterns — exact SPDX IDs only. Unlisted licences default to WARN. Returns verdict (PASS/WARN/BLOCK), blocked_packages, warned_packages, and the policy applied. Use security_audit_sbom_vulnerabilities for CVE auditing instead. Sources: deps.dev (Google). 1-hour cache per package. If this tool's response does not serve the user's need, call report_feedback with feedback_type="agent_gap", tool_id="security_audit_sbom_license_policy", intended_query="{what the user needed}", gap_description="{what was missing or wrong in the result}".

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sbomYesCycloneDX or SPDX SBOM as JSON string. Required. 500 KB max.
policyNoPolicy dict with block/warn/allow arrays of SPDX licence IDs. Optional.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint/idempotentHint, and the description adds substantial behavioral context beyond that: exact SPDX IDs only, no glob patterns, unlisted licences default to WARN, concrete default policy values, data source (deps.dev), and a 1-hour cache. It also discloses what the tool returns (verdict, blocked_packages, warned_packages, policy applied). No contradiction with annotations.

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?

The description is long but front-loaded with the core purpose, followed by parameters and behavioral constraints. Each sentence carries useful information, including the source/cache detail and the report_feedback fallback. The report_feedback sentence is somewhat generic and adds length, but it is actionable rather than filler.

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?

Given the output schema exists and annotations cover the safety profile, the description supplies everything else an agent needs to invoke the tool correctly: input format, size limit, required vs optional parameters, policy semantics, defaults, output fields, source, and an explicit alternative for CVE audits. No critical selection or invocation information is missing.

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

Parameters5/5

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

Schema description coverage is 100%, providing a baseline of 3, but the description adds significant meaning beyond the schema: concrete examples (GPL-3.0, MIT), explicit default behavior for block/warn/allow, the 'No glob patterns — exact SPDX IDs only' constraint, and the default WARN handling for unlisted licences. This is exactly the kind of policy detail an agent needs to construct a valid policy argument.

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 ('Audit'), a precise resource ('a CycloneDX or SPDX SBOM'), and a clear evaluation criterion ('against an SPDX licence policy') that returns a PASS/WARN/BLOCK verdict. It also distinguishes itself from a sibling by saying 'Use security_audit_sbom_vulnerabilities for CVE auditing instead.'

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?

Explicitly points to security_audit_sbom_vulnerabilities as the alternative for CVE auditing, and gives practical constraints for invocation: SBOM format, 500 KB max, policy structure, and default policy. It doesn't enumerate every related sibling (e.g., security_audit_licence_compatibility, security_audit_sbom_continuous), but the key routing guidance is present and unambiguous.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources