
Dependency Mcp
io.github.niradlerPublished by GitHub account niradlerv0.0.5Updated Oct 24, 2026
MCP server for checking package versions across multiple package managers
Overview
Lets an assistant look up latest package versions and verify specific versions across npm, PyPI, Maven, NuGet, RubyGems, Crates.io, and Go modules.
- What you can do
- This MCP server queries public package registries to answer dependency questions. It exposes tools to get the latest version of a package, check whether a specific version exists, and retrieve detailed package metadata including all published versions. Batch variants handle up to 100 packages per request with parallel processing and per-package error isolation.
- When to use it
- Useful when updating dependencies, validating version pins in CI/CD, auditing a project's packages, or comparing versions across several registries. Batch tools are intended for three or more packages at once.
- Requirements
- Runs locally over stdio, typically via npx dependency-mcp or a global npm install, so Node.js and network access to the public registries are needed. No accounts, API keys, or environment variables are declared.
Installation
In SourceWeft
- Open Dependency Mcp in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
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
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
Run with npx (no installation needed)
Local Development
Usage
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:
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:
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:
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:
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:
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:
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
Example Responses
Latest Version Response
Version Check Response
Package Info Response
Special Format Notes
Maven
Maven packages should be specified in the format groupId:artifactId:
Go Modules
Go modules should use the full module path:
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: true - Not Found: Returns
found: falsewith error message - Network 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
Running Tests
Debug Mode
License
MIT
Source: README.md at commit f7aee77
Tools
0Version history
1- v0.0.5LatestSep 16, 2026
Score
40% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.