https://github.com/artmann/package-registry-mcp
MCP search for searching and getting up-to-date information about NPM, Cargo and Nuget packages.
https://github.com/artmann/package-registry-mcp
Last synced: 5 months ago
JSON representation
MCP search for searching and getting up-to-date information about NPM, Cargo and Nuget packages.
- Host: GitHub
- URL: https://github.com/artmann/package-registry-mcp
- Owner: Artmann
- License: mit
- Created: 2025-06-19T17:49:34.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-06-19T18:05:23.000Z (5 months ago)
- Last Synced: 2025-06-19T18:12:53.118Z (5 months ago)
- Language: TypeScript
- Size: 0 Bytes
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-mcp-servers - **artmann/package-registry-mcp 🏠 📇 🍎 🪟 🐧** - MCP server for searching and getting up-to-date information about NPM, Cargo, PyPi, and NuGet packages. `http` `git` `github` (📦 Other)
- awesome-mcp-servers - Package Registry Search - Search and get up-to-date information about NPM, Cargo, PyPi, and NuGet packages. (Community Servers)
- awesome-ai-tools - artmann/package-registry-mcp - Package registry search for NPM, Cargo, PyPi, and NuGet packages (MCP Servers / 🛠️ Development Tools)
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
[](https://cursor.com/install-mcp?name=package-registry&config=eyJjb21tYW5kIjoibnB4IC15IHBhY2thZ2UtcmVnaXN0cnktbWNwIn0%3D)
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**: `["-y", "package-registry-mcp"]`
### Claude Code
For Claude Code, run the following command in your terminal:
```shell
claude mcp add package-registry 'npx -y 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`:
```json
{
"mcpServers": {
"package-registry": {
"command": "npx",
"args": ["-y", "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)
- 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:**
```bash
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:**
```bash
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:**
```bash
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:**
```bash
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:**
```bash
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:**
```bash
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:**
```bash
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:**
```bash
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:**
```bash
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:**
```bash
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:**
```bash
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:**
```bash
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:**
```bash
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
## Installation
Install the package globally:
```bash
npm install -g package-registry-mcp
```
Or use directly with npx (no installation required):
```bash
npx package-registry-mcp
```
## Development
```bash
npm install
# or
bun install
# or
yarn install
```
## Development
```bash
# Install dependencies
bun install
# Build the server
bun run build
# Format code
bun run format
# Test individual MCP tools
bun tool
# NPM Examples:
# bun tool search-npm-packages '{"query": "react"}'
# bun tool get-npm-package-details '{"name": "react"}'
# bun tool list-npm-package-versions '{"name": "react", "limit": 50}'
# crates.io Examples:
# bun tool search-cargo-packages '{"query": "serde"}'
# bun tool get-cargo-package-details '{"name": "serde"}'
# bun tool list-cargo-package-versions '{"name": "serde", "limit": 50}'
# NuGet Examples:
# bun tool search-nuget-packages '{"query": "newtonsoft"}'
# bun tool get-nuget-package-details '{"name": "Newtonsoft.Json"}'
# bun tool list-nuget-package-versions '{"name": "Newtonsoft.Json", "limit": 50}'
# PyPI Examples:
# bun tool get-pypi-package-details '{"name": "requests"}'
# bun tool list-pypi-package-versions '{"name": "django", "limit": 50}'
# Go Examples:
# bun tool get-golang-package-details '{"module": "github.com/gin-gonic/gin"}'
# bun tool list-golang-package-versions '{"module": "github.com/gorilla/mux", "limit": 50}'
```
## Requirements
- Node.js 18+ or Bun runtime
- Internet connection for package registry access
## License
See LICENSE file for details.