jsdelivr-mcp
v1.0.1
Published
MCP server for jsDelivr — search npm/GitHub packages, browse files, check CDN usage stats, browser/platform market share, and more.
Maintainers
Readme
jsdelivr-mcp
MCP server for jsDelivr — search npm/GitHub packages, browse files, check CDN usage stats, browser/platform market share, and more.
Features
| Tool | Description | API Endpoint |
|------|-------------|-------------|
| jsdelivr_npm_package | Get npm package versions and tags | /packages/npm/{package} |
| jsdelivr_npm_resolve | Resolve semver range/tag to exact version | /packages/npm/{package}/resolved |
| jsdelivr_npm_files | List files in npm package version | /packages/npm/{package}@{version} |
| jsdelivr_npm_entrypoints | Get recommended JS/CSS entry points | /packages/npm/{package}@{version}/entrypoints |
| jsdelivr_gh_repo | Get GitHub repo versions | /packages/gh/{user}/{repo} |
| jsdelivr_gh_resolve | Resolve GitHub repo semver range/tag | /packages/gh/{user}/{repo}/resolved |
| jsdelivr_gh_files | List files in GitHub repo version | /packages/gh/{user}/{repo}@{version} |
| jsdelivr_top_packages | Most popular packages by hits or bandwidth | /stats/packages |
| jsdelivr_npm_stats | npm package daily usage stats | /stats/packages/npm/{package} |
| jsdelivr_npm_top_versions | Top versions of an npm package | /stats/packages/npm/{package}/versions |
| jsdelivr_npm_version_stats | Stats for specific npm package version | /stats/packages/npm/{package}@{version} |
| jsdelivr_npm_version_files_stats | File-level stats for npm package version | /stats/packages/npm/{package}@{version}/files |
| jsdelivr_npm_badge | Badge URL for npm package | /stats/packages/npm/{package}/badge |
| jsdelivr_gh_stats | GitHub repo daily usage stats | /stats/packages/gh/{user}/{repo} |
| jsdelivr_gh_top_versions | Top versions of a GitHub repo | /stats/packages/gh/{user}/{repo}/versions |
| jsdelivr_gh_version_stats | Stats for specific GitHub repo version | /stats/packages/gh/{user}/{repo}@{version} |
| jsdelivr_gh_version_files_stats | File-level stats for GitHub repo version | /stats/packages/gh/{user}/{repo}@{version}/files |
| jsdelivr_gh_badge | Badge URL for a GitHub repo | /stats/packages/gh/{user}/{repo}/badge |
| jsdelivr_network_stats | Network-wide hits/bandwidth by CDN provider | /stats/network |
| jsdelivr_network_content | Stats by content type (packages/proxies/other) | /stats/network/content |
| jsdelivr_network_countries | Stats by country with provider breakdown | /stats/network/countries |
| jsdelivr_top_browsers | Browsers by market share (grouped versions) | /stats/browsers |
| jsdelivr_browser_versions | Browsers by market share (separate versions) | /stats/browsers/versions |
| jsdelivr_browser_countries | Countries by browser market share | /stats/browsers/{name}/countries |
| jsdelivr_browser_platforms | Platforms by browser usage share | /stats/browsers/{name}/platforms |
| jsdelivr_browser_version_list | Versions of a specific browser by share | /stats/browsers/{name}/versions |
| jsdelivr_browser_version_countries | Countries for a specific browser version | /stats/browsers/{name}/versions/{version}/countries |
| jsdelivr_top_platforms | Platforms by market share (grouped versions) | /stats/platforms |
| jsdelivr_platform_versions | Platforms by market share (separate versions) | /stats/platforms/versions |
| jsdelivr_platform_browsers | Browsers by platform usage share | /stats/platforms/{name}/browsers |
| jsdelivr_platform_countries | Countries by platform market share | /stats/platforms/{name}/countries |
| jsdelivr_platform_version_list | Versions of a specific platform by share | /stats/platforms/{name}/versions |
| jsdelivr_platform_version_countries | Countries for a specific platform version | /stats/platforms/{name}/versions/{version}/countries |
| jsdelivr_proxy_stats | Proxy endpoint usage stats | /stats/proxies/{name} |
| jsdelivr_proxy_files | Top files for a proxy endpoint | /stats/proxies/{name}/files |
| jsdelivr_stats_periods | List available time periods for stats data | /stats/periods |
| jsdelivr_lookup_hash | Reverse lookup: find package/file by sha256 hash | /lookup/hash/{hash} |
Setup
No installation needed — just configure your MCP client:
Add to .vscode/mcp.json:
{
"servers": {
"jsdelivr": {
"command": "npx",
"args": ["-y", "jsdelivr-mcp"]
}
}
}Add to .cursor/mcp.json:
{
"mcpServers": {
"jsdelivr": {
"command": "npx",
"args": ["-y", "jsdelivr-mcp"]
}
}
}Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"jsdelivr": {
"command": "npx",
"args": ["-y", "jsdelivr-mcp"]
}
}
}Add to claude_desktop_config.json:
{
"mcpServers": {
"jsdelivr": {
"command": "npx",
"args": ["-y", "jsdelivr-mcp"]
}
}
}claude mcp add --transport stdio jsdelivr -- npx -y jsdelivr-mcpOr add to .mcp.json (shared with team):
{
"mcpServers": {
"jsdelivr": {
"command": "npx",
"args": ["-y", "jsdelivr-mcp"]
}
}
}Add to settings.json:
{
"context_servers": {
"jsdelivr": {
"command": "npx",
"args": ["-y", "jsdelivr-mcp"]
}
}
}Open Settings → Tools → AI Assistant → MCP, click +, and paste:
{
"mcpServers": {
"jsdelivr": {
"command": "npx",
"args": ["-y", "jsdelivr-mcp"]
}
}
}gemini mcp add jsdelivr -- npx -y jsdelivr-mcpOr add to ~/.gemini/settings.json:
{
"mcpServers": {
"jsdelivr": {
"command": "npx",
"args": ["-y", "jsdelivr-mcp"]
}
}
}Any MCP client that supports stdio transport can use this server. The command is:
npx -y jsdelivr-mcpSee the full list of MCP clients.
Local development
git clone https://github.com/anvme/jsdelivr-mcp.git
cd jsdelivr-mcp
npm install
node index.jsTool Reference
jsdelivr_npm_package
Get npm package versions and tags from jsDelivr CDN.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| package | string | yes | npm package name, e.g. jquery or @popperjs/core |
Example: { "package": "jquery" }
jsdelivr_npm_resolve
Resolve an npm semver range or tag to an exact version via jsDelivr.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| package | string | yes | — | npm package name |
| specifier | string | no | latest | Semver range or tag, e.g. 2.2, ^3.0.0, latest |
Example: { "package": "jquery", "specifier": "2.2" }
jsdelivr_npm_files
List files in a specific npm package version (max 100MB packages).
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| package | string | yes | — | npm package name |
| version | string | yes | — | Exact version, e.g. 3.7.1 |
| structure | string | no | tree | tree (nested) or flat (list) |
Example: { "package": "jquery", "version": "3.7.1", "structure": "flat" }
jsdelivr_npm_entrypoints
Get recommended JS/CSS entry points for an npm package version.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| package | string | yes | npm package name |
| version | string | yes | Exact version, e.g. 3.7.1 |
Example: { "package": "@popperjs/core", "version": "2.11.8" }
jsdelivr_gh_repo
Get GitHub repo versions available on jsDelivr CDN.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| user | string | yes | GitHub username or org, e.g. twbs |
| repo | string | yes | GitHub repo name, e.g. bootstrap |
Example: { "user": "twbs", "repo": "bootstrap" }
jsdelivr_gh_resolve
Resolve a GitHub repo semver range or tag to an exact version.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| user | string | yes | — | GitHub username or org |
| repo | string | yes | — | GitHub repo name |
| specifier | string | no | latest | Semver range or tag to resolve |
Example: { "user": "twbs", "repo": "bootstrap", "specifier": "5.3" }
jsdelivr_gh_files
List files in a specific GitHub repo version (max 50MB repos).
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| user | string | yes | — | GitHub username or org |
| repo | string | yes | — | GitHub repo name |
| version | string | yes | — | Exact version, e.g. 5.3.3 |
| structure | string | no | tree | tree or flat |
Example: { "user": "twbs", "repo": "bootstrap", "version": "5.3.3" }
jsdelivr_top_packages
List the most popular packages on jsDelivr by hits or bandwidth.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| by | string | no | hits | Sort by hits or bandwidth |
| type | string | no | — | Filter by gh or npm |
| period | string | no | month | Time period (see below) |
| limit | number | no | 100 | Max results (1–100) |
| page | number | no | 1 | Page number (1–100) |
Example: { "by": "bandwidth", "type": "npm", "limit": 10 }
jsdelivr_npm_stats
Get daily usage stats (hits + bandwidth) for an npm package.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| package | string | yes | — | npm package name |
| period | string | no | month | Time period |
Example: { "package": "react", "period": "week" }
jsdelivr_npm_top_versions
List most popular versions of an npm package.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| package | string | yes | — | npm package name |
| by | string | no | hits | Sort by hits or bandwidth |
| period | string | no | month | Time period |
| limit | number | no | 100 | Max results (1–100) |
| page | number | no | 1 | Page number |
Example: { "package": "react", "by": "hits", "limit": 5 }
jsdelivr_npm_version_stats
Stats for a specific npm package version.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| package | string | yes | — | npm package name |
| version | string | yes | — | Exact version |
| period | string | no | month | Time period |
Example: { "package": "react", "version": "18.2.0" }
jsdelivr_npm_version_files_stats
File-level stats for an npm package version.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| package | string | yes | — | npm package name |
| version | string | yes | — | Exact version |
| by | string | no | hits | Sort by hits or bandwidth |
| period | string | no | month | Time period |
| limit | number | no | 100 | Max results (1–100) |
| page | number | no | 1 | Page number |
Example: { "package": "jquery", "version": "3.7.1", "by": "hits", "limit": 10 }
jsdelivr_npm_badge
Get badge URL for an npm package.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| package | string | yes | — | npm package name |
| type | string | no | hits | Badge type: hits, rank, or type-rank |
| period | string | no | month | Time period |
| style | string | no | — | Badge style: square or rounded |
Example: { "package": "react", "type": "hits", "style": "rounded" }
jsdelivr_gh_stats
GitHub repo daily usage stats (hits + bandwidth).
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| user | string | yes | — | GitHub username or org |
| repo | string | yes | — | GitHub repo name |
| period | string | no | month | Time period |
Example: { "user": "twbs", "repo": "bootstrap", "period": "week" }
jsdelivr_gh_top_versions
Most popular versions of a GitHub repo.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| user | string | yes | — | GitHub username or org |
| repo | string | yes | — | GitHub repo name |
| by | string | no | hits | Sort by hits or bandwidth |
| period | string | no | month | Time period |
| limit | number | no | 100 | Max results (1–100) |
| page | number | no | 1 | Page number |
Example: { "user": "twbs", "repo": "bootstrap", "by": "hits", "limit": 5 }
jsdelivr_gh_version_stats
Stats for a specific GitHub repo version.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| user | string | yes | — | GitHub username or org |
| repo | string | yes | — | GitHub repo name |
| version | string | yes | — | Exact version |
| period | string | no | month | Time period |
Example: { "user": "twbs", "repo": "bootstrap", "version": "5.3.3" }
jsdelivr_gh_version_files_stats
File-level stats for a GitHub repo version.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| user | string | yes | — | GitHub username or org |
| repo | string | yes | — | GitHub repo name |
| version | string | yes | — | Exact version |
| by | string | no | hits | Sort by hits or bandwidth |
| period | string | no | month | Time period |
| limit | number | no | 100 | Max results (1–100) |
| page | number | no | 1 | Page number |
Example: { "user": "twbs", "repo": "bootstrap", "version": "5.3.3", "limit": 10 }
jsdelivr_gh_badge
Get badge URL for a GitHub repo.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| user | string | yes | — | GitHub username or org |
| repo | string | yes | — | GitHub repo name |
| type | string | no | hits | Badge type: hits, rank, or type-rank |
| period | string | no | month | Time period |
| style | string | no | — | Badge style: square or rounded |
Example: { "user": "twbs", "repo": "bootstrap", "type": "hits" }
jsdelivr_network_stats
Network-wide hits/bandwidth by CDN provider (Bunny, Cloudflare, Fastly, Gcore, StackPath, Quantil).
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| continent | string | no | — | Continent filter (ISO code): AF, AN, AS, EU, NA, OC, SA |
| country | string | no | — | ISO 3166-1 alpha-2 country code, e.g. US, DE |
| period | string | no | month | Time period |
Example: { "continent": "EU", "period": "week" }
jsdelivr_network_content
Network-wide stats by content type (packages/proxies/other).
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| period | string | no | month | Time period |
Example: { "period": "quarter" }
jsdelivr_network_countries
Network-wide stats by country with provider breakdown.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| period | string | no | month | Time period |
Example: { "period": "month" }
jsdelivr_top_browsers
Browsers by market share (grouped versions).
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| continent | string | no | — | Continent filter (ISO code) |
| country | string | no | — | Country code (ISO 3166-1 alpha-2) |
| period | string | no | s-month | Static period only |
| limit | number | no | 100 | Max results (1–100) |
| page | number | no | 1 | Page number |
Example: { "country": "US", "limit": 10 }
jsdelivr_browser_versions
Browsers by market share (separate version entries).
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| continent | string | no | — | Continent filter |
| country | string | no | — | Country code |
| period | string | no | s-month | Static period only |
| limit | number | no | 100 | Max results (1–100) |
| page | number | no | 1 | Page number |
Example: { "limit": 20 }
jsdelivr_browser_countries
Countries by browser market share.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| name | string | yes | — | Browser name, e.g. Chrome |
| continent | string | no | — | Continent filter |
| country | string | no | — | Country code |
| period | string | no | s-month | Static period only |
| limit | number | no | 100 | Max results |
| page | number | no | 1 | Page number |
Example: { "name": "Chrome" }
jsdelivr_browser_platforms
Platforms by browser usage share.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| name | string | yes | — | Browser name |
| continent | string | no | — | Continent filter |
| country | string | no | — | Country code |
| period | string | no | s-month | Static period only |
| limit | number | no | 100 | Max results |
| page | number | no | 1 | Page number |
Example: { "name": "Firefox" }
jsdelivr_browser_version_list
Versions of a specific browser by share.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| name | string | yes | — | Browser name |
| continent | string | no | — | Continent filter |
| country | string | no | — | Country code |
| period | string | no | s-month | Static period only |
| limit | number | no | 100 | Max results |
| page | number | no | 1 | Page number |
Example: { "name": "Safari", "limit": 10 }
jsdelivr_browser_version_countries
Countries for a specific browser version.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| name | string | yes | — | Browser name |
| version | string | yes | — | Browser version |
| continent | string | no | — | Continent filter |
| country | string | no | — | Country code |
| period | string | no | s-month | Static period only |
| limit | number | no | 100 | Max results |
| page | number | no | 1 | Page number |
Example: { "name": "Chrome", "version": "120" }
jsdelivr_top_platforms
Platforms by market share (grouped versions).
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| continent | string | no | — | Continent filter |
| country | string | no | — | Country code |
| period | string | no | s-month | Static period only |
| limit | number | no | 100 | Max results |
| page | number | no | 1 | Page number |
Example: { "country": "DE", "limit": 10 }
jsdelivr_platform_versions
Platforms by market share (separate version entries).
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| continent | string | no | — | Continent filter |
| country | string | no | — | Country code |
| period | string | no | s-month | Static period only |
| limit | number | no | 100 | Max results |
| page | number | no | 1 | Page number |
Example: { "limit": 20 }
jsdelivr_platform_browsers
Browsers by platform usage share.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| name | string | yes | — | Platform name, e.g. Windows |
| continent | string | no | — | Continent filter |
| country | string | no | — | Country code |
| period | string | no | s-month | Static period only |
| limit | number | no | 100 | Max results |
| page | number | no | 1 | Page number |
Example: { "name": "Windows" }
jsdelivr_platform_countries
Countries by platform market share.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| name | string | yes | — | Platform name |
| continent | string | no | — | Continent filter |
| country | string | no | — | Country code |
| period | string | no | s-month | Static period only |
| limit | number | no | 100 | Max results |
| page | number | no | 1 | Page number |
Example: { "name": "macOS" }
jsdelivr_platform_version_list
Versions of a specific platform by share.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| name | string | yes | — | Platform name |
| continent | string | no | — | Continent filter |
| country | string | no | — | Country code |
| period | string | no | s-month | Static period only |
| limit | number | no | 100 | Max results |
| page | number | no | 1 | Page number |
Example: { "name": "Android", "limit": 10 }
jsdelivr_platform_version_countries
Countries for a specific platform version.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| name | string | yes | — | Platform name |
| version | string | yes | — | Platform version |
| continent | string | no | — | Continent filter |
| country | string | no | — | Country code |
| period | string | no | s-month | Static period only |
| limit | number | no | 100 | Max results |
| page | number | no | 1 | Page number |
Example: { "name": "Windows", "version": "10" }
jsdelivr_proxy_stats
Proxy endpoint usage stats.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| name | string | yes | — | Proxy name, e.g. cocoa |
| period | string | no | month | Time period |
Example: { "name": "cocoa" }
jsdelivr_proxy_files
Top files for a proxy endpoint.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| name | string | yes | — | Proxy name |
| by | string | no | hits | Sort by hits or bandwidth |
| period | string | no | month | Time period |
| limit | number | no | 100 | Max results (1–100) |
| page | number | no | 1 | Page number |
Example: { "name": "cocoa", "by": "hits", "limit": 10 }
jsdelivr_stats_periods
List available time periods for stats data.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| limit | number | no | 100 | Max results (1–100) |
| page | number | no | 1 | Page number |
Example: { "limit": 10 }
jsdelivr_lookup_hash
Reverse lookup: find a package/file by its sha256 hash.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| hash | string | yes | Hex-encoded sha256 hash of the file |
Example: { "hash": "87083882cc6015984eb0411a99d3981817f5dc5c90ba24f0940420c5548d82de" }
Time periods
Many stats tools accept a period parameter. Available formats:
| Format | Examples | Description |
|--------|----------|-------------|
| Floating | day, week, month, quarter, year | Rolling window |
| Static | s-month, s-quarter, s-year | Calendar-aligned |
| Date | 2024-01, 2024-Q1, 2024 | Specific month/quarter/year |
Note: Browser and platform stats only support static periods and date formats.
API Reference
This server implements 100% of the jsDelivr Data API v1 — all 37 unique endpoints are covered. The full OpenAPI spec is available at data.jsdelivr.com/v1/spec.yaml.
Prerequisites
- Node.js >= 18
License
MIT
