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 🙏

© 2025 – Pkg Stats / Ryan Hefner

package-registry-mcp

v2.1.0

Published

MCP server for searching and getting up-to-date information about NPM, Cargo and NuGet packages.

Readme

Package Registry MCP Server

A Model Context Protocol (MCP) server that enables AI assistants and agents (Claude, Cursor, Copilot, etc.) to search package registries and retrieve up-to-date package information.

Getting Started

Cursor

Install MCP Server

Alternatively, in Cursor, you can configure MCP servers in your settings:

  1. Open Cursor Settings (Cmd/Ctrl + ,)
  2. Search for "MCP" or go to Extensions > MCP
  3. Add a new server with:
    • Name: package-registry
    • Command: npx
    • Args: ["package-registry-mcp"]

Claude Code

For Claude Code, run the following command in your terminal:

claude mcp add -s user package-registry npx package-registry-mcp

After configuration, you'll have access to package search and information tools.

Claude Desktop

Add this server to your Claude Desktop by adding the following to your claude_desktop_config.json:

{
  "mcpServers": {
    "package-registry": {
      "command": "npx",
      "args": ["package-registry-mcp"]
    }
  }
}

The config file is typically located at:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

After adding the configuration, restart Claude Desktop.

Features

  • Search NPM packages
  • Get detailed NPM package information
  • Search crates.io (Rust package registry)
  • Get detailed crate information
  • Search NuGet packages (.NET package registry)
  • Get detailed NuGet package information
  • Get detailed PyPI package information (Python package registry)
  • Get detailed Go module information (Go package registry)
  • Search GitHub Security Advisories for vulnerabilities
  • Real-time data directly from package registries

Available Tools

NPM Tools

search-npm-packages

Search the NPM registry for packages matching a query.

Parameters:

  • query (string): Search term for packages
  • limit (number, optional): Maximum number of results (1-100, default: 10)

Example:

bun tool search-npm-packages '{"query": "react", "limit": 5}'

get-npm-package-details

Get detailed information about a specific NPM package.

Parameters:

  • name (string): Exact crate name

Example:

bun tool get-npm-package-details '{"name": "react"}'

Returns detailed information including:

  • Package metadata (name, description, version, license)
  • Dependencies (runtime, dev, peer)
  • Maintainer information
  • Repository and homepage links
  • Last 50 versions (newest first)

list-npm-package-versions

List all versions of a specific NPM package.

Parameters:

  • name (string): Exact crate name
  • limit (number, optional): Maximum number of versions to return (1-1000, default: 100)

Example:

bun tool list-npm-package-versions '{"name": "react", "limit": 50}'

Returns:

  • Package name and total version count
  • All versions sorted by release date (newest first)
  • Latest version information

crates.io Tools

search-cargo-packages

Search crates.io for Rust crates matching a query.

Parameters:

  • query (string): Search term for crates
  • limit (number, optional): Maximum number of results (1-100, default: 10)

Example:

bun tool search-cargo-packages '{"query": "serde", "limit": 5}'

get-cargo-package-details

Get detailed information about a specific crate from crates.io.

Parameters:

  • name (string): Exact crate name

Example:

bun tool get-cargo-package-details '{"name": "serde"}'

Returns detailed information including:

  • Crate metadata (name, description, version, license)
  • Keywords and categories
  • Download statistics (total and recent)
  • Features and crate size
  • Repository, homepage, and documentation links
  • Last 50 versions (newest first)

list-cargo-package-versions

List all versions of a specific crate from crates.io.

Parameters:

  • name (string): Exact crate name
  • limit (number, optional): Maximum number of versions to return (1-1000, default: 100)

Example:

bun tool list-cargo-package-versions '{"name": "serde", "limit": 50}'

Returns:

  • Crate name and total version count
  • All versions sorted by release date (newest first)
  • Latest and max stable version information

NuGet Tools

search-nuget-packages

Search the NuGet registry for .NET packages matching a query.

Parameters:

  • query (string): Search term for packages
  • limit (number, optional): Maximum number of results (1-100, default: 10)

Example:

bun tool search-nuget-packages '{"query": "newtonsoft", "limit": 5}'

get-nuget-package-details

Get detailed information about a specific NuGet package.

Parameters:

  • name (string): Exact package name

Example:

bun tool get-nuget-package-details '{"name": "Newtonsoft.Json"}'

Returns detailed information including:

  • Package metadata (name, description, version, license)
  • Authors and project information
  • Target frameworks and dependencies
  • Download statistics and verification status
  • Project, license, and icon URLs
  • Last 50 versions (newest first)

list-nuget-package-versions

List all versions of a specific NuGet package.

Parameters:

  • name (string): Exact package name
  • limit (number, optional): Maximum number of versions to return (1-1000, default: 100)

Example:

bun tool list-nuget-package-versions '{"name": "Newtonsoft.Json", "limit": 50}'

Returns:

  • Package name and total version count
  • All versions sorted by release date (newest first)
  • Latest version information

PyPI Tools

Note: PyPI does not provide a JSON search API, so only package details and version listing are supported. For searching, please use the PyPI website directly at https://pypi.org/search/.

get-pypi-package-details

Get detailed information about a specific PyPI package.

Parameters:

  • name (string): Exact package name

Example:

bun tool get-pypi-package-details '{"name": "requests"}'

Returns detailed information including:

  • Package metadata (name, description, version, license)
  • Author and maintainer information
  • Dependencies and Python version requirements
  • Classifiers and keywords
  • Project URLs and documentation links
  • Download statistics
  • Vulnerability information
  • Last 50 versions (newest first)

list-pypi-package-versions

List all versions of a specific PyPI package.

Parameters:

  • name (string): Exact package name
  • limit (number, optional): Maximum number of versions to return (1-1000, default: 100)

Example:

bun tool list-pypi-package-versions '{"name": "django", "limit": 50}'

Returns:

  • Package name and total version count
  • All versions sorted by release date (newest first)
  • Latest version information

Go Tools

Note: pkg.go.dev does not provide a JSON search API, so only package details and version listing are supported. For searching, please use the pkg.go.dev website directly at https://pkg.go.dev/search/.

get-golang-package-details

Get detailed information about a specific Go module/package.

Parameters:

  • module (string): Exact module path (e.g., "github.com/gin-gonic/gin")

Example:

bun tool get-golang-package-details '{"module": "github.com/gin-gonic/gin"}'

Returns detailed information including:

  • Module path and latest version
  • Publication date and repository information
  • VCS (version control system) details
  • pkg.go.dev and go get command links
  • Last 50 versions (newest first)

list-golang-package-versions

List all versions of a specific Go module/package.

Parameters:

  • module (string): Exact module path
  • limit (number, optional): Maximum number of versions to return (1-1000, default: 100)

Example:

bun tool list-golang-package-versions '{"module": "github.com/gorilla/mux", "limit": 50}'

Returns:

  • Module path and total version count
  • All versions sorted by release date (newest first)
  • Latest version information

GitHub Security Advisory Tools

search-github-advisories

Search the GitHub Security Advisory Database for vulnerabilities.

Parameters:

  • ecosystem (string, optional): Filter by package ecosystem (npm, pip, maven, nuget, go, rust, rubygems, composer, pub, swift, erlang, actions, other)
  • severity (string, optional): Filter by severity level (unknown, low, medium, high, critical)
  • type (string, optional): Filter by advisory type (reviewed, malware, unreviewed)
  • cveId (string, optional): Filter by CVE identifier
  • limit (number, optional): Maximum number of results (1-100, default: 30)

Example:

bun tool search-github-advisories '{"ecosystem": "npm", "severity": "critical", "limit": 5}'

get-github-advisory

Get detailed information about a specific GitHub Security Advisory.

Parameters:

  • ghsaId (string): The GHSA identifier (e.g., GHSA-grv7-fg5c-xmjg)

Example:

bun tool get-github-advisory '{"ghsaId": "GHSA-grv7-fg5c-xmjg"}'

Returns detailed information including:

  • Advisory metadata (GHSA ID, CVE ID, summary, description)
  • Severity and CVSS score
  • Affected packages and vulnerable version ranges
  • Patched versions
  • CWE classifications
  • References and credits

get-package-advisories

Get all security advisories affecting a specific package.

Parameters:

  • ecosystem (string): The package ecosystem (npm, pip, maven, etc.)
  • packageName (string): The package name (e.g., braces, lodash)
  • severity (string, optional): Filter by severity level
  • limit (number, optional): Maximum number of results (1-100, default: 30)

Example:

bun tool get-package-advisories '{"ecosystem": "npm", "packageName": "braces"}'

Returns:

  • All known security advisories for the specified package
  • Vulnerable version ranges and patched versions
  • Severity ratings and CVSS scores

Installation

Install the package globally:

npm install -g package-registry-mcp

Or use directly with npx (no installation required):

npx package-registry-mcp

Contributing

See CONTRIBUTING.md for development setup and guidelines.

Requirements

  • Node.js 18+ or Bun runtime
  • Internet connection for package registry access

License

See LICENSE file for details.