@pipeworx/jsdelivr

Connect: https://pipeworx.io/mcp — every tool in the catalog, including @pipeworx/jsdelivr’s. Install: one-click buttons

Connect to just the @pipeworx/jsdelivr pack

https://gateway.pipeworx.io/jsdelivr/mcp — only @pipeworx/jsdelivr’s own tools, nothing else in the catalog.

No MCP client? Skip the connection: POST https://gateway.pipeworx.io/v1/tools/search_packs {"query":"..."} to find a tool below, GET /v1/tools/<name> for its schema, POST the same URL with arguments for the data — see For AI agents.

Tools: 6

JSDelivr Data API MCP — CDN package stats, file listing, version resolution for npm + GitHub. Keyless.

Tools

  • npm_package_stats(package_name, period?) — request counts + bandwidth for an npm package
  • gh_repo_stats(owner, repo, period?) — request counts for a GitHub repo via JSDelivr
  • top_npm_packages(period?, by?, limit?) — leaderboard
  • list_npm_files(package_name, version?) — files in a published version
  • resolve_version(package_name, range?) — resolve a semver range to a concrete version
  • list_npm_versions(package_name) — all published versions

Data source

https://data.jsdelivr.com/v1/ — keyless, generous rate limits.

Scoped package names (@scope/name) — the encoding gotcha

A scoped name is one path segment to jsDelivr, so the / inside it has to be escaped along with the @. Measured 2026-09-16 (fleet #2104) against every endpoint family this pack uses:

form sent/packages/npm/<pkg><pkg>/resolved<pkg>@<version>/stats/packages/npm/<pkg>
raw @angular/core200200200200
fully escaped %40angular%2Fcore200200200200
half escaped %40angular/core400400400400

The families do not disagree — they all accept raw and all accept fully escaped. The pack used to split the name on / and encode each half, emitting the half-escaped form, which is the one shape none of them take. encodePkg now runs encodeURIComponent over the whole name; that is also the form jsDelivr puts in the links.self of its own responses, and it leaves unscoped names (lodash, react) byte-identical.

Separately, the file-tree endpoint wants a concrete version — <pkg>@latest 404s — so list_npm_files resolves latest through /resolved first (#2070).

Tools

  • npm_package_stats — Request counts + bandwidth for an npm package served via JSDelivr.
  • gh_repo_stats — Return JSDelivr CDN request count and bandwidth for files served from a GitHub owner/repo for the specified period (day/week/month/quarter/year).
  • top_npm_packages — JSDelivr leaderboard of top-served npm packages.
  • list_npm_files — jsDelivr Data API — the file tree of one published npm package version (latest by default) as jsDelivr indexes it for CDN delivery. Returns the directory structure with each file’s path, byte size, co
  • resolve_version — Resolve a semver range or tag to a concrete published version.
  • list_npm_versions — All published versions for an npm package.

Tools

  • gh_repo_stats — Return JSDelivr CDN request count and bandwidth for files served from a GitHub owner/repo for the specified period (day/week/month/quarter/year).
  • list_npm_files — jsDelivr Data API — the file tree of one published npm package version (latest by default) as jsDelivr indexes it for CDN delivery. Returns the directory structure with each file's path, byte size, co
  • list_npm_versions — All published versions for an npm package.
  • npm_package_stats — Request counts + bandwidth for an npm package served via JSDelivr.
  • resolve_version — Resolve a semver range or tag to a concrete published version.
  • top_npm_packages — JSDelivr leaderboard of top-served npm packages.

Regenerated from source · build September 25, 2026