MCP Hub
Back to servers

npm-registry-mcp

An MCP server for searching, inspecting, and evaluating NPM packages through health scoring and license risk assessments. It provides comprehensive package analysis including maintenance status, popularity trends, and security vulnerability reports to help users make informed dependency decisions.

glama
Stars
1
Updated
Feb 21, 2026
Validated
Apr 12, 2026

npm-registry-mcp

A Model Context Protocol (MCP) server for NPM package analysis with health scoring, license risk assessment, and comprehensive package evaluation.

Features

  • 4 MCP Tools for searching, inspecting, and evaluating NPM packages
  • CLI Interface for direct usage from the terminal
  • Health Scoring with weighted factors (maintenance, popularity, security, dependencies)
  • License Risk Assessment using SPDX identifiers (Low/Medium/High/Critical)
  • GitHub Integration for commit activity and repository health
  • In-Memory Caching with 5-minute TTL for API responses

Installation

From Source

go install github.com/howmanysmall/npm-registry-mcp/src@latest

From Releases

Download the latest binary from GitHub Releases.

Build Locally

git clone https://github.com/howmanysmall/npm-registry-mcp.git
cd npm-registry-mcp
go build -o npm-registry-mcp ./src

Configuration

Environment Variables

VariableRequiredDescription
GITHUB_TOKENNoGitHub Personal Access Token for higher API rate limits (60/hr without, 5000/hr with)

.env File Support

Create a .env file in the working directory:

GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxx

Usage with Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "npm-registry": {
      "command": "/path/to/npm-registry-mcp",
      "env": {
        "GITHUB_TOKEN": "ghp_xxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}

CLI Usage

The binary can be used directly as a CLI tool. If no subcommands are provided, it defaults to starting the MCP server.

Search for packages

./npm-registry-mcp search react --limit 5

Get package details

./npm-registry-mcp info lodash

List package versions

./npm-registry-mcp versions express --limit 20

Evaluate package health

./npm-registry-mcp health react

JSON Output

All commands support the --json flag for machine-readable output.

./npm-registry-mcp health react --json

Tools

search-npm-packages

Search the NPM registry for packages.

Input:

ParameterTypeRequiredDescription
querystringYesSearch query
limitintegerNoMax results (1-100, default: 10)

Example:

{
  "query": "react",
  "limit": 5
}

get-npm-package

Get detailed information about an NPM package.

Input:

ParameterTypeRequiredDescription
namestringYesPackage name

Example:

{
  "name": "lodash"
}

Returns: Name, version, description, license, homepage, repository, maintainers, keywords, dependencies, and recent versions.

should-i-install

Comprehensive health check for evaluating whether to install a package.

Input:

ParameterTypeRequiredDescription
packagestringYesPackage name to evaluate

Example:

{
  "package": "lodash"
}

Returns:

  • verdict: "yes" | "caution" | "no"
  • score: 0-100 health score
  • maintenance: Last publish date and status
  • dependencies: Direct, transitive, and outdated counts
  • security: Vulnerability count
  • popularity: Weekly downloads and trend
  • license: SPDX identifier and risk level
  • warnings: Array of concern messages

Verdict Criteria:

VerdictCriteria
yesScore >= 70, no warnings, no vulnerabilities
cautionScore 40-69, or warnings present
noScore < 40, or vulnerabilities present

Health Scoring Algorithm

FactorWeightDescription
Last Publish25%Time since last release (100 pts if <=30 days)
Download Trend20%Growth/decline in weekly downloads
Dependencies20%Percentage of outdated dependencies
Commit Activity15%Commits in last 90 days (requires GitHub token)
Maintainers10%Number of active maintainers
Vulnerabilities10%Known security vulnerabilities

License Risk Levels

RiskExamplesDescription
LowMIT, Apache-2.0, BSD-3-Clause, ISCPermissive, safe for any use
MediumLGPL-3.0, MPL-2.0, EPL-2.0Weak copyleft, some restrictions
HighGPL-3.0, AGPL-3.0Strong copyleft, derivative works must share
CriticalSSPL-1.0, BUSL-1.1, UNLICENSEDProblematic, review with legal

Development

# Build
go build -o npm-registry-mcp ./src

# Test
go test -v -race ./...

# Lint
golangci-lint run ./...

# Integration tests (requires network)
go test -tags=integration -v ./src

Building & Releasing

Local Build

go build -o npm-registry-mcp ./src

Cross-Platform Build (via GoReleaser)

# Install GoReleaser
go install github.com/goreleaser/goreleaser@latest

# Build snapshot (no publish)
goreleaser build --snapshot --clean

# Binaries output to dist/

Creating a Release

# 1. Commit all changes
git add .
git commit -m "feat: your changes"

# 2. Create version tag
git tag v0.1.0

# 3. Push to GitHub
git push origin main
git push origin v0.1.0

The release workflow triggers automatically on v* tags and:

  • Builds binaries for Linux, macOS, Windows (amd64 + arm64)
  • Creates GitHub release with checksums
  • Generates changelog from commits

Using svu for Versioning (Optional)

# Install svu
go install github.com/caarlos0/svu@latest

# Get next version based on commit messages
svu next

# Tag and push
git tag $(svu next)
git push origin $(svu next)

License

MIT

Reviews

No reviews yet

Sign in to write a review