Dependency MCP Server
Allows querying the npm registry for package versions, metadata, and existence checks.
Allows querying the NuGet gallery for package versions, metadata, and existence checks.
Allows querying the Python Package Index (PyPI) for package versions, metadata, and existence checks.
Allows querying RubyGems.org for package versions, metadata, and existence checks.
Allows querying the crates.io registry for package versions, metadata, and existence checks.
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., "@Dependency MCP ServerWhat is the latest version of react on npm?"
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.
Dependency MCP Server
A Model Context Protocol (MCP) server for checking package versions across multiple package managers and registries.
Features
Multi-language support: Check packages from NPM, PyPI, Maven, NuGet, RubyGems, Crates.io, and Go modules
Latest version lookup: Get the most recent version of any package
Version existence check: Verify if a specific version exists
Package information: Get detailed package metadata including all versions
Batch processing: Check multiple packages simultaneously for improved efficiency
Easy installation: Install and run via npx
Related MCP server: Socket MCP Server
Supported Package Managers
npm - Node.js packages
pypi - Python packages
maven - Java packages (format:
groupId:artifactId)nuget - .NET packages
rubygems - Ruby gems
crates - Rust crates
go - Go modules
Installation
Global Installation
npm install -g dependency-mcpRun with npx (no installation needed)
npx dependency-mcpLocal Development
git clone <repository>
cd dependency-mcp
npm install
npm startUsage
The server runs as an MCP server using stdio transport. It's designed to be used with MCP-compatible clients.
Available Tools
Single Package Tools
Use these tools when you need to check 1-2 packages or require detailed information:
1. get_latest_version
Get the latest version of a package. Use for dependency updates, version checks, or when you need the most recent stable release.
Parameters:
package_name(string): Name of the packageregistry(string): Package registry (npm,pypi,maven,nuget,rubygems,crates,go)
Example:
{
"package_name": "express",
"registry": "npm"
}2. check_version_exists
Check if a specific version exists. Use for dependency validation, CI/CD checks, or ensuring version compatibility.
Parameters:
package_name(string): Name of the packageversion(string): Version to checkregistry(string): Package registry
Example:
{
"package_name": "flask",
"version": "2.3.0",
"registry": "pypi"
}3. get_package_info
Get detailed package information including all versions. Use for dependency audits, security reviews, or when you need comprehensive package metadata.
Parameters:
package_name(string): Name of the packageregistry(string): Package registry
Example:
{
"package_name": "lodash",
"registry": "npm"
}Multi-Package Tools
Use these tools when you need to check 3+ packages or perform bulk operations:
4. get_latest_versions
Get latest versions for multiple packages simultaneously. Use when checking 3+ dependencies - processes up to 100 packages in parallel.
Parameters:
packages(array): Array of package namesregistry(string): Package registry
Example:
{
"packages": ["react", "lodash", "axios"],
"registry": "npm"
}5. check_versions_exist
Check if specific versions exist for multiple packages. Use for bulk dependency validation, CI/CD pipeline checks, or ensuring multiple package version compatibility.
Parameters:
packages(array): Array of package objects withpackage_nameandversionregistry(string): Package registry
Example:
{
"packages": [
{ "package_name": "react", "version": "18.2.0" },
{ "package_name": "lodash", "version": "4.17.21" },
{ "package_name": "axios", "version": "1.6.0" }
],
"registry": "npm"
}6. get_packages_info
Get comprehensive package details for multiple packages. Use for dependency audits, security reviews, or bulk package analysis.
Parameters:
packages(array): Array of package namesregistry(string): Package registry
Example:
{
"packages": ["react", "lodash", "axios"],
"registry": "npm"
}Tool Selection Guide
When to Use Single Package Tools:
1-2 packages to check
Detailed information needed (versions, homepage, repository)
Specific version validation for one package
Quick checks during development
When to Use Multi-Package Tools:
3+ packages to check
Bulk dependency validation
CI/CD pipeline checks
Dependency audits or security reviews
Performance-critical scenarios with multiple packages
Performance Notes:
Single package tools: Faster for 1-2 packages
Multi-package tools: 3-5x faster for 5+ packages due to parallel processing
Error isolation: Failed packages don't break the entire batch
Batch limits: Maximum 100 packages per request
Batch Processing
The multi-package tools provide significant performance improvements when checking multiple packages:
Benefits
Eliminates round-trip delays: Check up to 100 packages in a single request
Consistent error handling: Individual package failures don't break the entire batch
Parallel processing: All packages are checked concurrently for maximum efficiency
Reduced API overhead: Fewer HTTP requests to external registries
Limitations
Maximum batch size: 100 packages per request
Rate limiting: Built-in delays prevent overwhelming external APIs
Timeout handling: 10-second timeout per request with graceful fallback
Memory usage: Large batches may consume more memory
When to Use Batch Tools
Dependency audits: Check multiple packages in your project
Version comparisons: Compare versions across multiple packages
Bulk updates: Identify which packages have newer versions available
CI/CD pipelines: Validate multiple package versions simultaneously
Production Considerations
Performance
Concurrent processing: Multi-package tools use Promise.all for parallel execution
Rate limiting: Built-in 100ms delay between requests to external APIs
Timeout handling: 10-second timeout with graceful error handling
Memory management: Efficient processing of large batches
Reliability
Error isolation: Individual package failures don't affect others in the batch
Network resilience: Handles temporary network issues gracefully
API fallbacks: Graceful degradation when external APIs are unavailable
Validation: Comprehensive input validation prevents invalid requests
Registry-specific handling: Maven registry may be slower in some network environments
Security
Input sanitization: All inputs are validated and sanitized
Rate limiting: Prevents abuse of external APIs
Error messages: Safe error messages that don't expose internal details
Timeout protection: Prevents hanging requests
Monitoring
Timestamps: All responses include ISO timestamps for tracking
Error tracking: Detailed error information for debugging
Performance metrics: Built-in timeout and rate limiting tracking
Configuration with Claude Desktop
Add this to your Claude Desktop configuration file:
Windows
%APPDATA%\Claude\claude_desktop_config.json
macOS
~/Library/Application Support/Claude/claude_desktop_config.json
Linux
~/.config/claude/claude_desktop_config.json
{
"mcpServers": {
"dependency-checker": {
"command": "npx",
"args": ["dependency-mcp"]
}
}
}Example Responses
Latest Version Response
{
"package": "express",
"registry": "npm",
"found": true,
"latest_version": "4.18.2",
"description": "Fast, unopinionated, minimalist web framework"
}Version Check Response
{
"package": "flask",
"version": "2.3.0",
"registry": "pypi",
"exists": true
}Package Info Response
{
"package": "lodash",
"registry": "npm",
"found": true,
"latest_version": "4.17.21",
"description": "Lodash modular utilities.",
"versions": ["4.17.21", "4.17.20", "..."],
"homepage": "https://lodash.com/",
"repository": "git+https://github.com/lodash/lodash.git"
}Special Format Notes
Maven
Maven packages should be specified in the format groupId:artifactId:
{
"package_name": "org.springframework:spring-core",
"registry": "maven"
}Go Modules
Go modules should use the full module path:
{
"package_name": "github.com/gorilla/mux",
"registry": "go"
}Error Handling
The server provides detailed error messages for common scenarios:
Package not found
Network connectivity issues
Invalid package name formats
Registry API errors
Rate limiting exceeded
Server errors (5xx responses)
Request timeouts
Input validation errors
Error Response Format
All error responses include:
error: Human-readable error messagetimestamp: ISO timestamp of when the error occurredpackage: Package name that caused the errorregistry: Registry where the error occurred
Input Validation
The server validates all inputs:
Package names: Must be non-empty strings under 500 characters
Versions: Must be non-empty strings under 100 characters
Registry: Must be one of the supported registries
Batch size: Maximum 100 packages per request
Required parameters: All required fields must be present
Response Expectations
Single Package Tools:
Success: Returns complete package information with
found: trueNot Found: Returns
found: falsewith error messageNetwork Issues: Returns error with descriptive message
Always includes:
timestamp,package,registryfields
Multi-Package Tools:
Success: Returns array of results, each with individual status
Partial Success: Some packages succeed, others fail - each has individual result
Error Isolation: Failed packages don't affect successful ones
Batch Processing: All packages processed in parallel for efficiency
Consistent Format: Each result follows same structure as single package tools
Development
Project Structure
dependency-mcp/
├── src/
│ ├── index.js # Main MCP server
│ └── packageChecker.js # Package registry handlers
├── test/
│ └── test.js # Basic tests
├── package.json
└── README.mdRunning Tests
npm testDebug Mode
npm run devLicense
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/niradler/dependency-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server