pkg-peep
Provides tools for retrieving NPM package download statistics, metadata, and dependency information.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@pkg-peepget download stats for react last month"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
pkg-peep π
A Model Context Protocol (MCP) server for NPM package intelligence. Get download statistics, package metadata, and dependency information for any NPM package.
How It Works
This MCP server exposes NPM registry APIs as tools that Q CLI and Claude can use:
MCP Protocol: Server communicates with AI clients via Model Context Protocol
Tool Registration: NPM API endpoints become callable tools
No Authentication: Uses public NPM APIs (no API key required)
JSON Responses: All package data returned as formatted JSON
Related MCP server: dag-mcp-server
pkg-peep MCP Architecture
%%{init: {'flowchart': {'curve': 'basis'}}}%%
graph LR
A["π»<br/>Q CLI"] -.-> B["π<br/>MCP Server"]
C["π»<br/>Claude Code"] -.-> B
B <--> D["π¦<br/>NPM Registry API"]
B <--> E["π<br/>NPM Downloads API"]
style A fill:#6366f1,stroke:#000,stroke-width:3px,color:#fff
style C fill:#ff9900,stroke:#000,stroke-width:3px,color:#000
style B fill:#C11C84,stroke:#000,stroke-width:3px,color:#fff
style D fill:#cb3837,stroke:#000,stroke-width:3px,color:#fff
style E fill:#10b981,stroke:#000,stroke-width:3px,color:#000When you ask Q CLI or Claude Code to "get download stats for react", it:
Calls the
get_npm_downloadstoolServer makes API request to NPM Downloads API
Returns formatted results to the AI client
The agent presents the data to you in context
Features
π Download Statistics - Weekly, monthly, daily, or custom date ranges
π¦ Package Metadata - Versions, dependencies, maintainers, license info
π Comprehensive Info - Repository links, keywords, creation dates
β‘ Fast & Reliable - Direct NPM registry API integration
π No API Key Required - Uses public NPM APIs
Tools
get_npm_downloads
Get download statistics for any NPM package.
Parameters:
package(required): NPM package nameperiod(optional):last-day,last-week,last-monthstartDate(optional): Custom start date (YYYY-MM-DD)endDate(optional): Custom end date (YYYY-MM-DD)
Example Response:
{
"downloads": 50766634,
"start": "2025-08-27",
"end": "2025-09-02",
"package": "react"
}get_npm_package_info
Get comprehensive package metadata.
Parameters:
package(required): NPM package name
Example Response:
{
"name": "react",
"description": "React is a JavaScript library for building user interfaces.",
"latest": "19.1.1",
"license": "MIT",
"homepage": "https://react.dev/",
"repository": {
"url": "git+https://github.com/facebook/react.git",
"type": "git"
},
"maintainers": [
{"name": "fb", "email": "opensource+npm@fb.com"}
],
"dependencies": {...},
"created": "2011-10-26T17:46:21.942Z"
}Installation
For Amazon Q CLI
Clone or download this repository
Install dependencies:
npm installThe MCP server is ready to use with Q CLI's MCP support
For Claude Desktop
Add to your Claude Desktop configuration:
{
"mcpServers": {
"pkg-peep": {
"command": "node",
"args": ["/path/to/pkg-peep/index.js"]
}
}
}Using NPX (Recommended)
{
"mcpServers": {
"pkg-peep": {
"command": "npx",
"args": ["-y", "pkg-peep"]
}
}
}Usage Examples
Get weekly downloads:
Get download stats for "react" packageCustom date range:
Get download stats for "lodash" from 2024-01-01 to 2024-12-31Package information:
Get package info for "express"Testing
Run the test suite to verify everything works:
npm testThe tests verify:
β Tool registration (both download and package info tools)
β Download stats for popular packages
β Different time periods (daily, weekly, monthly)
β Package metadata retrieval
β Custom date ranges
β Error handling for non-existent packages
π Example Prompts >> - Try these sample queries to test your MCP!
Development
# Install dependencies
npm install
# Run the server
node index.js
# Test with a simple request
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}' | node index.jsAPI Endpoints Used
NPM Downloads API:
https://api.npmjs.org/downloads/NPM Registry API:
https://registry.npmjs.org/
License
MIT
Contributing
Issues and pull requests welcome! This MCP server uses the official Model Context Protocol SDK.
Available Tools
2 toolsget_npm_downloadsC
Get NPM package download statistics
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Predefined time period for download stats | |
| endDate | No | End date for custom range (YYYY-MM-DD format) | |
| package | Yes | NPM package name | |
| startDate | No | Start date for custom range (YYYY-MM-DD format) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden for behavioral disclosure. It states the basic function but omits critical details such as how period interacts with startDate/endDate, whether the period and custom range are mutually exclusive, possible rate limits, or the structure of the returned statistics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loaded with the key verb and resource, and contains no redundant or filler information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (period enum, date range parameters, no output schema, no annotations), the description is far too minimal. It fails to explain the relationship between period and startDate/endDate, what constitutes 'download statistics' (e.g., counts, points in time), or any usage constraints, leaving significant ambiguity for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% β all four parameters have clear descriptions in the input schema. The description adds no extra semantic value beyond what is already documented, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves NPM package download statistics using a specific verb ('Get') and resource ('download statistics'). However, it does not explicitly differentiate from the sibling tool get_npm_package_info, only implying a focus on downloads rather than package metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus the sibling get_npm_package_info. There are no exclusions, prerequisites, or alternative tool mentions, leaving the agent without contextual direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_npm_package_infoB
Get comprehensive NPM package metadata
| Name | Required | Description | Default |
|---|---|---|---|
| package | Yes | NPM package name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden but only says 'comprehensive metadata' without detailing what fields are returned, whether network calls are made, or any limitations. The behavior is not transparent beyond the core purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded with the action and resource. Every word contributes to defining the tool's purpose with no wasteful or redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one well-defined parameter, but the term 'comprehensive' is vague and does not clarify expected output or edge cases. It is minimally sufficient but leaves the agent guessing about what metadata is actually included.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single 'package' parameter, which is already described as 'NPM package name'. The description adds no extra semantic meaning beyond restating the resource, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches comprehensive NPM package metadata, with a specific verb and resource. It does not explicitly distinguish itself from get_npm_downloads, though the scope of 'comprehensive metadata' implies broader info than just downloads.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus the sibling get_npm_downloads. The description only states the basic action, leaving the choice of tool to inference from names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v1.0.0- First observed
get_npm_downloads - First observed
get_npm_package_info
TDQS
The two tools address distinct aspects of NPM package data: download statistics versus package metadata. There is no overlap or ambiguity between them.
Both tools follow a consistent get_npm_[noun] pattern, making their purpose predictable from the name alone.
With only two tools, the server feels thin for a general-purpose package inspection utility. This falls at the lower end of the acceptable range, earning a borderline score.
The server covers basic metadata and download stats, but lacks common operations like version listing, search, or readme retrieval. Agents needing those features would hit a dead end.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Dive into the world of npm with our NPM Package Info MCP. Access crucial metadata about any npm
Provide AI-powered real-time analysis and intelligence on NPM packages, including security, dependβ¦
Scrape npm package metadata, versions, downloads, dependencies and maintainers. Pay per row.
Package intelligence for AI agents across npm, PyPI, crates.io and deps.dev. No API keys.
61
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides comprehensive contextual information about npm packages including README files, versions, dependencies, download statistics, and search functionality. Enables users to explore and analyze npm packages through natural language queries with intelligent GitHub README fetching and branch fallback.9MIT
- AlicenseNot gradedqualityDmaintenanceProvides intelligent, version-aware access to npm library documentation. Supports semantic search, API validation, and version comparison to assist developers in using libraries correctly.2MIT
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants with tools to check npm package versions and security heuristics, including version lookups, signal-based analysis, and batch analysis of package.json files.15AGPL 3.0
- AlicenseAqualityCmaintenanceEnables AI coding agents to search the npm registry and retrieve package metadata, READMEs, download stats, GitHub details, and usage snippets via the Model Context Protocol.921MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/chris-trag/pkg-peep'
If you have feedback or need assistance with the MCP directory API, please join our Discord server