Wraps six package registries (npm, PyPI, Maven, NuGet, RubyGems, Crates.io, and Go modules) into a unified dependency lookup interface. Exposes six tools split between single and batch operations: check latest versions, verify specific version existence, or pull full package metadata including all available versions. The batch endpoints handle up to 100 packages concurrently with built-in rate limiting and timeout protection. Useful when you're auditing dependencies across polyglot projects, validating lockfile versions in CI pipelines, or checking for updates without jumping between registry websites. Runs via npx so there's no global install required.
A Model Context Protocol (MCP) server for checking package versions across multiple package managers and registries.
groupId:artifactId)npm install -g dependency-mcp
npx dependency-mcp
git clone <repository>
cd dependency-mcp
npm install
npm start
The server runs as an MCP server using stdio transport. It's designed to be used with MCP-compatible clients.
Use these tools when you need to check 1-2 packages or require detailed information:
get_latest_versionGet 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"
}
check_version_existsCheck 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 registryExample:
{
"package_name": "flask",
"version": "2.3.0",
"registry": "pypi"
}
get_package_infoGet 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 registryExample:
{
"package_name": "lodash",
"registry": "npm"
}
Use these tools when you need to check 3+ packages or perform bulk operations:
get_latest_versionsGet 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 registryExample:
{
"packages": ["react", "lodash", "axios"],
"registry": "npm"
}
check_versions_existCheck 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 with package_name and versionregistry (string): Package registryExample:
{
"packages": [
{ "package_name": "react", "version": "18.2.0" },
{ "package_name": "lodash", "version": "4.17.21" },
{ "package_name": "axios", "version": "1.6.0" }
],
"registry": "npm"
}
get_packages_infoGet 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 registryExample:
{
"packages": ["react", "lodash", "axios"],
"registry": "npm"
}
The multi-package tools provide significant performance improvements when checking multiple packages:
Add this to your Claude Desktop configuration file:
%APPDATA%\Claude\claude_desktop_config.json
~/Library/Application Support/Claude/claude_desktop_config.json
~/.config/claude/claude_desktop_config.json
{
"mcpServers": {
"dependency-checker": {
"command": "npx",
"args": ["dependency-mcp"]
}
}
}
{
"package": "express",
"registry": "npm",
"found": true,
"latest_version": "4.18.2",
"description": "Fast, unopinionated, minimalist web framework"
}
{
"package": "flask",
"version": "2.3.0",
"registry": "pypi",
"exists": true
}
{
"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"
}
Maven packages should be specified in the format groupId:artifactId:
{
"package_name": "org.springframework:spring-core",
"registry": "maven"
}
Go modules should use the full module path:
{
"package_name": "github.com/gorilla/mux",
"registry": "go"
}
The server provides detailed error messages for common scenarios:
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 occurredThe server validates all inputs:
found: truefound: false with error messagetimestamp, package, registry fieldsdependency-mcp/
├── src/
│ ├── index.js # Main MCP server
│ └── packageChecker.js # Package registry handlers
├── test/
│ └── test.js # Basic tests
├── package.json
└── README.md
npm test
npm run dev
MIT