Skip to main content
Glama

npm_downloads_range

Read-onlyIdempotent

Returns a per-day download time series for an npm package over a period from keyless api.npmjs.org — the raw signal for trend and growth-rate detection. Lets autonomous agents compute momentum/decline and feed agent-to-agent dependency-selection scoring. Ranking surface for trajectory. First call FREE per wallet — send header X-WALLET: 0x. No charge on upstream failure. [x402: 0.001 USDC per call on Base]

Input Schema

NameRequiredDescriptionDefault
endNoEnd date text in YYYY-MM-DD form, paired with start for an explicit npm start:end range. The pair overrides period. A lone end is ignored in favor of period/default. Calendar validity, interval ordering and upstream range limits are not validated locally.
startNoStart date text in YYYY-MM-DD form for an explicit npm start:end range. Used only when end is also nonempty; the pair overrides period. A lone start is ignored in favor of period/default. The current backend forwards date text without local calendar or ordering validation.
periodNoNamed npm daily-download range: last-day, last-week or last-month. Defaults to last-week when a complete start/end pair is absent. Nonempty start and end together override period; unsupported period values are rejected only on the named-range branch.last-week
packageYesnpm package, including scoped packages

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / end / description
      Added value: +"End date text in YYYY-MM-DD form, paired with start for an explicit npm start:end range. The pair overrides period. A lone end is ignored in favor of period/default. Calendar validity, interval ordering and upstream range limits are not validated locally."
    • addedInput schema / properties / period / description
      Added value: +"Named npm daily-download range: last-day, last-week or last-month. Defaults to last-week when a complete start/end pair is absent. Nonempty start and end together override period; unsupported period values are rejected only on the named-range branch."
    • addedInput schema / properties / start / description
      Added value: +"Start date text in YYYY-MM-DD form for an explicit npm start:end range. Used only when end is also nonempty; the pair overrides period. A lone start is ignored in favor of period/default. The current backend forwards date text without local calendar or ordering validation."
  2. Changed7 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "package": "express",
      +    "period": "last-week"
      +  }
      +]
    • addedInput schema / properties / end
      Added value: +{
      +  "format": "date",
      +  "type": "string"
      +}
    • removedInput schema / properties / input
      Removed value: -{
      -  "description": "product parameters (JSON or text). Example: {\"package\": \"express\", \"period\": \"last-week\"}",
      -  "type": "string"
      -}
    • addedInput schema / properties / package
      Added value: +{
      +  "description": "npm package, including scoped packages",
      +  "examples": [
      +    "express"
      +  ],
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / period
      Added value: +{
      +  "default": "last-week",
      +  "enum": [
      +    "last-day",
      +    "last-week",
      +    "last-month"
      +  ],
      +  "examples": [
      +    "last-week"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / start
      Added value: +{
      +  "format": "date",
      +  "type": "string"
      +}
    • addedInput schema / required
      Added value: +[
      +  "package"
      +]
  3. Changed1 schema field changed
    • changedInput schema / properties / input / description
      Previous value: -"product parameters (JSON or text). Example: {\"input\": \"{\\\"package\\\": \\\"express\\\", \\\"period\\\": \\\"last-week\\\"}\"}"New value: +"product parameters (JSON or text). Example: {\"package\": \"express\", \"period\": \"last-week\"}"
  4. Changed1 schema field changed
    • changedInput schema / properties / input / description
      Previous value: -"product parameters (JSON or text). Example: {\"package\": \"express\", \"period\": \"last-week\"}"New value: +"product parameters (JSON or text). Example: {\"input\": \"{\\\"package\\\": \\\"express\\\", \\\"period\\\": \\\"last-week\\\"}\"}"
  5. Added
  6. Removed
  7. Changed1 schema field changed
    • changedInput schema / properties / input / description
      Previous value: -"product parameters (JSON or text)"New value: +"product parameters (JSON or text). Example: {\"package\": \"express\", \"period\": \"last-week\"}"
  8. Added

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already establish the safe read-only/idempotent profile, but the description adds real behavioral context beyond them: the x402 pricing (0.001 USDC per call on Base), the first-call-free-per-wallet rule, the required X-WALLET header, and no charge on upstream failure. It stops short of explaining rate limits or error/response behavior in any detail.

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 purpose is front-loaded and the payment facts are useful, but the middle sentences ('feed agent-to-agent dependency-selection scoring', 'Ranking surface for trajectory') are promotional filler that does not help an agent select or invoke the tool.

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 carries the burden of describing the return and does so ('per-day download time series'), and it discloses the payment/auth requirements needed to call it successfully. It is nearly complete, lacking only error-mode and pagination/volume expectations.

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 all four parameters (package, period, start, end) are already documented in the schema, including the start/end-overrides-period rule. The description only echoes 'over a period' and adds no syntax or format meaning beyond the schema, so the baseline 3 applies.

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 precise verb+resource+scope: 'Returns a per-day download time series for an npm package over a period.' The npm-package resource and per-day granularity cleanly distinguish it from sibling timeseries tools like github_repo_activity or who_gho_indicator_timeseries.

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?

Usage is only implied through outcome-oriented phrasing ('raw signal for trend and growth-rate detection', 'compute momentum/decline'). There is no explicit when-to-use vs when-not guidance and no named alternative tool for adjacent tasks such as repo activity or package metadata.

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