Skip to main content
Glama

Check a package version's age

check_package
Read-onlyIdempotent

Check when a package version was published and whether it meets a minimum age, or retrieve the newest version old enough to add or upgrade a dependency.

Instructions

Say when a package version was published and whether it is old enough under the project's minimum age. Leave version out to list recent releases and get the newest version that is old enough: use that version when adding or upgrading a dependency. A version that is too new comes with the newest older version that passes.

Input Schema

NameRequiredDescriptionDefault
nameYesThe package name, exactly as the registry knows it, like left-pad, @types/node or requests.
min_ageNoOverride the minimum age, like 72h, 3d or 1w. Leave out to use the project's policy.
versionNoThe exact version. Leave out to list recent releases.
ecosystemYesThe registry: npm (also pnpm, yarn, bun), pypi, cargo, go, composer, rubygems, nuget, maven (group:artifact), jsr, pub (Dart and Flutter), cocoapods, swift (owner/repo on GitHub), terraform (namespace/provider), conan (C and C++ from ConanCenter), cran (R packages on CRAN), hex (Elixir and Erlang), nix (owner/repo and a commit), bazel, vcpkg (microsoft/vcpkg and a baseline commit), actions (owner/repo).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.10.1
    • changedInput schema / properties / ecosystem / description
      Previous value: -"The registry: npm (also pnpm, yarn, bun), pypi, cargo, go, composer, rubygems, nuget, maven (group:artifact), jsr, pub (Dart and Flutter), cocoapods, swift (owner/repo on GitHub), terraform (namespace/provider), conan (C and C++ from ConanCenter), actions (owner/repo)."New value: +"The registry: npm (also pnpm, yarn, bun), pypi, cargo, go, composer, rubygems, nuget, maven (group:artifact), jsr, pub (Dart and Flutter), cocoapods, swift (owner/repo on GitHub), terraform (namespace/provider), conan (C and C++ from ConanCenter), cran (R packages on CRAN), hex (Elixir and Erlang), nix (owner/repo and a commit), bazel, vcpkg (microsoft/vcpkg and a baseline commit), actions (owner/repo)."
    • changedInput schema / properties / ecosystem / enum
      Previous value: -[
      -  "npm",
      -  "pypi",
      -  "cargo",
      -  "go",
      -  "composer",
      -  "rubygems",
      -  "nuget",
      -  "maven",
      -  "jsr",
      -  "actions",
      -  "pub",
      -  "cocoapods",
      -  "swift",
      -  "terraform",
      -  "conan"
      -]New value: +[
      +  "npm",
      +  "pypi",
      +  "cargo",
      +  "go",
      +  "composer",
      +  "rubygems",
      +  "nuget",
      +  "maven",
      +  "jsr",
      +  "actions",
      +  "pub",
      +  "cocoapods",
      +  "swift",
      +  "terraform",
      +  "conan",
      +  "cran",
      +  "hex",
      +  "nix",
      +  "bazel",
      +  "vcpkg"
      +]
  2. First observedv0.1.0

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover safety (readOnlyHint, idempotentHint, destructiveHint false), and the description adds real behavioral detail beyond them: a too-new version returns the newest older version that passes, and omitting version switches to a release-listing mode. It does not mention registry rate limits, auth needs, or error behavior when a version doesn't exist, which keeps it below a 5.

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?

Three short sentences, purpose first, then the omit-version behavior, then the too-new fallback. Every sentence carries information, though the last sentence is slightly compressed and takes a second read to parse.

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 no output schema, the description takes on the job of explaining returns and does so adequately: publish date, age verdict, the list of recent releases, and the fallback older version. For a four-parameter read-only tool this covers what an agent needs before calling, with only error paths left implicit.

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 adds meaning the schema does not: leaving version out changes the tool from a point lookup into a listing that also picks the newest old-enough release. It also reinforces that min_age overrides project policy. That is genuine added semantics, though the ecosystem enum's alias notes remain schema-only.

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?

The description opens with a specific verb+resource pair: it reports when a package version was published and whether it clears the project's minimum-age policy. The purpose is unambiguous, but it never contrasts itself with the sibling tools cooldown_settings or check_lockfiles, so the agent must infer the boundary from the name alone.

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?

It gives concrete routing guidance for two cases: omit version to list recent releases, and use the returned old-enough version when adding or upgrading a dependency. That is clear context for use, but it stops short of stating exclusions or when to reach for the sibling tools instead.

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

Deploy Server

Other Tools