Skip to main content
Glama

plan_packages

Preview what installing pip requirements would change before anything downloads, and refuse plans that would swap out your CUDA torch build.

Instructions

Say what installing these requirements would change - and refuse if it is unsafe.

Nothing is written and nothing is downloaded. This is the tool that answers the question that caused all of this to exist, and the answer is worth reading in full before any install: on the install this was built against, asking for torchvision==0.25.0 - an ordinary pin out of a node pack's requirements.txt - plans to replace torch 2.11.0+cu130 with torch 2.10.0, the build with no CUDA. Nothing in that request mentions torch and nothing in the output is an error.

refused is set when the plan touches a package whose version belongs to the CUDA build rather than to any requirement. That is a refusal rather than a warning because the cost of being wrong is a gigabytes-long download and a machine whose GPU has stopped being used, and because there is a right way to do it anyway: pin the requirement so it accepts the torch that is already here.

Args: requirements: pip requirement strings, e.g. ["insightface", "onnxruntime>=1.17"]. upgrade: also move packages that are already satisfied. Off by default, which is what makes installing a node pack's requirements leave the rest alone.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
upgradeNo
requirementsYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.1.10

TDQS

A4.1/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 well: 'Nothing is written and nothing is downloaded' establishes a read-only, side-effect-free profile, and it discloses the refusal condition, the reason it is a refusal rather than a warning, and the workaround (pin the requirement). This is exactly the behavioral context an agent cannot get from structured fields.

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

Conciseness3/5

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

The opening sentence is front-loaded and effective, but the torchvision anecdote and rhetorical framing ('the question that caused all of this to exist') pad the definition well beyond what an agent needs to call the tool. The refusal explanation earns its place; the narrative around it does not fully.

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, so return values need not be described, and the description still surfaces the key `refused` field meaning. Behavior, parameters, and refusal semantics are all covered; what the plan itself looks like when not refused is left to the schema.

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 0%, so the description must compensate, and the Args block does: it gives a concrete example for `requirements` and explains that `upgrade` moves already-satisfied packages and defaults off, which is the semantic that makes node-pack installs non-destructive. Only the exact accepted string syntax is left implicit.

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

Purpose4/5

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

States a specific verb and resource ('plan_packages' → say what installing requirements would change) plus a distinguishing behavior ('refuse if it is unsafe'). An agent can tell it is a dry-run planner, but the description never names the neighboring tools (audit_packages, install_extension) to sharpen the boundary.

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?

Places the tool clearly in a workflow ('the answer is worth reading in full before any install'), which tells the agent when to reach for it. It offers no explicit when-not condition and does not point at audit_packages or install_extension as alternatives.

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