Skip to main content
Glama

Plan package.json upgrades

plan_upgrade
Read-only

Recommends version upgrades for a package.json: the newest versions that are old enough and within the allowed step size, kept aligned with each other (peer dependencies and the first-level dependencies of the packages). Deterministic, no AI. Returns the new package.json, a unified diff (apply with patch -p1) and a per-package table with the reasons. Every package has an explanation sentence and notes lists other changes to the file (the ripedeps entry): relay them to the user as the rationale for each change.

Send the file as packageJson (text) or as packageJsonUrl (https URL of a raw file), exactly one of them.

Recommended: minAgeDays 7 (versions younger than 7 days are not proposed). The default is 0, or the ripedeps entry of the file. maxBump defaults to minor. Use focus to restrict the upgrade to some packages (and their direct neighbours).

Try more than one level: a plan only suggests and writes nothing, so calling again is cheap. Start with minor; if a package is held with a level-limit reason (a newer major exists), call again with maxBump "major" (optionally with focus) and compare. A held result is a reasoned decision for that one package, not a ban on the level: its reason names what blocks it (a peer or dependency constraint). Apply a larger step only when the user approves it.

Privacy: We do not keep your package.json: every upload is processed from scratch and discarded, nothing about its content or your IP address is remembered. Only anonymous statistics (file size, number of dependencies, number of changes) are counted.

Input Schema

NameRequiredDescriptionDefault
focusNoExact names or * globs; a bare name like "trpc" also matches @trpc/*. Empty means global
maxBumpNoDefault minor, or the ripedeps entry of the file
minAgeDaysNoMinimum age of a version since its release (default 0, or the ripedeps entry of the file)
packageJsonNoThe full text of package.json (formatting is preserved in the diff)
packageJsonUrlNohttps URL of a package.json that the service downloads (use the raw file URL)
skipAdoptConfigNoDo not write the effective settings into the output package.json

Output Schema

NameRequiredDescriptionDefault
diffYesUnified diff (a/package.json, b/package.json) that `patch -p1` applies
metaYes
notesYesChanges to the output file that are not package upgrades (e.g. the ripedeps entry)
packagesYes
warningsYes
updatedPackageJsonYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare readOnlyHint and openWorldHint; the description adds that it is deterministic, that it returns the new package.json plus a unified diff applicable with `patch -p1` and a per-package table, and that the `notes` field must be relayed to the user. The privacy paragraph (uploads discarded, only anonymous stats kept) supplies trust context annotations cannot express.

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?

Input format and the escalation strategy are front-loaded, then defaults, then privacy – a sensible ordering with little waste. It runs long, and the privacy paragraph, while useful, is the one part that could be trimmed without losing invocation guidance.

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?

For a tool with six optional parameters and an output schema, the description covers the input contract, defaults, recommended values, the multi-call strategy and the special `held`/`level-limit` reason semantics. The only unmentioned parameter, skipAdoptConfig, is fully documented in 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 coverage is 100%, so the baseline is 3, but the description earns an extra point by stating that exactly one of packageJson/packageJsonUrl must be given and by explaining focus as also pulling in direct neighbours. skipAdoptConfig is never mentioned, which keeps it from a 5.

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 and resource ('Recommends version upgrades for a package.json') and pins down the exact selection rule (newest versions old enough and within the allowed step size, aligned with peer dependencies). An agent knows precisely what it gets back 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 Guidelines5/5

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

Explicitly names the two mutually exclusive input paths, a recommended minAgeDays value, the default for maxBump, and the escalation workflow: start with minor, re-call with major (optionally with focus) when a package is held for 'level-limit', and only apply a bigger step with user approval. Alternatives and when-not conditions are spelled out rather than implied.

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