Skip to main content
Glama

compare_upgrade_closure

Read-only

Preview the impact of a direct dependency upgrade by comparing its dependency closure before and after the candidate version using Gradle or deps.dev.

Instructions

Compare a direct upgrade's closure before and after the candidate version. graphSource defaults to auto: Gradle when the project has a Gradle build and gradlew (two sequential resolves, up to 20 substitutions); otherwise deps.dev for exactly one upgrade. Gradle does not fall back to deps.dev after a failure. deps.dev is an isolated public graph, not a project resolve. advisory is not a safety verdict; none and unknown do not mean the coordinate is safe.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
disallowNoSPDX ids and/or category names. Replaces the default disallow set.
upgradesYesCoordinates to preview. Gradle accepts up to 20. deps.dev accepts exactly one. More than 20 is rejected, not truncated.
graphSourceNoauto (default) uses Gradle when gradlew exists, otherwise deps.dev. gradle never falls back to deps.dev. deps.dev rejects more than one upgrade.
projectPathNoProject root used to choose and run Gradle. Defaults to the current working directory.
substitutionNoGradle only, default exact. exact rewrites fromVersion and versionless requests. module rewrites every request for that coordinate. Ignored on deps.dev. exact is not retried as module.
projectLicenseNoSPDX id or name. Same posture rules as check_license_compliance.
includeLicensesNoLicense the changed coordinates. Default true. Targets are not licensed.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNo
notesYes
licenseNo
partialYes
summaryYes
targetsYes
advisoryYes
requestsNo
upgradesYes
truncatedNo
graphSourceYes
dependenciesYes
diffReliableYes
inputTruncatedNo
fixesIncompleteNo
vulnerabilitiesYes
capabilityUnavailableNo
dependenciesTruncatedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.0

TDQS

A3.9/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true and openWorldHint=true, so safety profile is known. The description adds valuable non-obvious behavior: two sequential Gradle resolves with up to 20 substitutions, Gradle does not fall back to deps.dev, deps.dev is an isolated public graph not a project resolve, and advisory is not a safety verdict. These are strong additions beyond 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?

Front-loaded with the core action, then dense behavioral caveats. Every sentence conveys a distinct constraint (graphSource defaults, Gradle vs deps.dev, advisory caveat). No wasted words, though the advisory caveat could be slightly clearer in placement.

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?

With an output schema present, return values need not be explained. The description covers the key behavioral quirks an agent needs: graph source selection, fallback rules, upgrade limits, and advisory interpretation. Missing explicit when-to-use guidance against siblings, but otherwise sufficient for a moderately complex 7-parameter tool.

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 all seven parameters including the graphSource auto behavior, substitution modes, and upgrades limits. The description reinforces but does not add new syntax or format details beyond what the schema provides. Baseline 3 is appropriate when the schema carries the load.

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?

Specific verb and resource: compares a direct upgrade's closure before/after a candidate version. Distinguishes itself from siblings like compare_dependency_versions or get_transitive_graph by focusing on before/after closure of a single upgrade. An agent can tell what it does without opening the schema.

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

Usage Guidelines3/5

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

The description explains the graphSource selection logic and limits, which implicitly tells when each mode is used, but it never says when to use this tool versus siblings like compare_dependency_versions or get_transitive_graph. Usage context is implied by the compare-before-after framing, not explicitly stated.

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