npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mcp-npm-registry

v1.2.0

Published

MCP server for the npm registry — search packages, check versions, vulnerabilities, download stats and more

Readme

npm Registry MCP

An MCP (Model Context Protocol) server that gives Claude direct access to the npm registry — search packages, check versions, audit vulnerabilities, compare libraries and more, all without leaving your conversation.

License MCP Node


Why

When you're coding with Claude and need to pick a package, check if something is still maintained, or audit a dependency for vulnerabilities — you normally have to stop, switch tabs, google it, and come back. This server removes that friction entirely. Claude can query the npm registry directly, in context, mid-conversation.


Tools

| Tool | What it does | |---|---| | search_packages | Search npm by keyword with quality and maintenance scores | | get_package_info | Full details — license, maintainers, dependencies, size, downloads | | get_package_versions | Full version history with publish dates | | get_download_stats | Download counts over any period (day / week / month / year) | | check_vulnerabilities | Known CVEs for a specific package version | | compare_packages | Side-by-side comparison of two packages |


Example prompts

Once installed, just ask Claude naturally:

"What's the best package for parsing CSV files in Node?"
"Is moment.js still actively maintained?"
"Compare lodash and ramda"
"Are there any known vulnerabilities in axios 0.21.1?"
"What changed in express between v4 and v5?"
"How many downloads does react get per month?"

Installation

Prerequisites

1. Add to Claude Desktop config

Open your Claude Desktop config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "npm-registry": {
      "command": "npx",
      "args": ["mcp-npm-registry"]
    }
  }
}

That's it — no cloning, no building. npx handles everything automatically.

Manual install (optional)

If you prefer a global install:

npm install -g mcp-npm-registry

Then use mcp-npm-registry as the command instead of npx mcp-npm-registry.

3. Restart Claude Desktop

Fully quit and reopen Claude Desktop. You should see a tools icon confirming the server is connected.

No API key required — the npm registry is fully public.


Development

# Run in dev mode (no build step needed)
npm run dev

# Build
npm run build

The server communicates over stdio using the MCP protocol. You can test it directly:

echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | node dist/index.js

Data sources

All data is fetched live from public APIs — no database, no cache, no rate limits on your end:


Showcase

Showcase


Roadmap

  • [x] get_changelog — diff between two versions
  • [ ] Package README as an MCP resource
  • [ ] get_dependents — what packages depend on this one
  • [x] Publish to npm for one-line npx install

License

MIT