Package Version Check

by mshekow

Not rated
GitHub

About

Returns the latest package / dependency / tool versions for Python, NPM, Go, Docker, Helm, etc.

Details

Author
mshekow
Categories
Developer Tools, Infrastructure

Setup

Install Package Version Check in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/mshekow/package-version-check-mcp

Follow the installation instructions in the repository README, then restart your MCP client.

A MCP server that returns the latest stable versions of packages you use as dependencies in a variety of ecosystems, such as Python, NPM, Go, or GitHub Actions.

It also supports looking up the latest versions of almost 1000 tools, such asdevelopment runtimeslikepython,node,dotnet,development toolslikegradle, and variousDevOps toolslikekubectlorterraform, via themise-en-placetool.

Whenever an AI coding agents generates files that pin dependency versions, they insertoutdated versionsbecause their training happened weeks or months ago, and new dependency versions have been released since then. As a developer, it is annoying having to manually fix these outdated versions.

This MCP fixes this problem. Use it together with an MCP such asContext7to avoid that your AI agent produces outdated code.

- Developer ecosystems:

- NPM- Node.js packages from registry.npmjs.org
- PyPI- Python packages from PyPI
- NuGet- .NET packages from NuGet
- Maven / Gradle- Java/Kotlin/Scala packages from Maven repositories (Maven Central, Google Maven, etc.)
- Go- Go modules from proxy.golang.org
- PHP- PHP packages from Packagist (used by Composer)
- Ruby- Ruby gems from rubygems.org
- Rust- Rust crates from crates.io
- Swift- Swift packages from GitHub repositories
- Dart- Dart packages from pub.dev

- Docker- Docker container images from Docker registries
- Helm- Helm charts from ChartMuseum repositories and OCI registries
- GitHub Actions- Actions hosted on GitHub.com, returning their current version, their inputs and outputs, and (optionally) their entire README with usage examples
- TerraformProvidersandModules- Providers & Modules from Terraform Registry, OpenTofu Registry, or custom registries
- Varioustoolssuch askubectl,terraform,gradle,maven, etc. supported by mise-en-place

There are three ways to make this MCP available to your AI coding agent:

Option 1: Use the Hosted Service (Easiest)

Point your agent to the free hosted service:

https://package-version-check-mcp.onrender.com/mcp

This is the quickest way to get started. Note that the hosted service may have rate limits from the underlying package registries.

uvx package-version-check-mcp --mode=stdio

This automatically installs and runs the latest version from PyPI.

- You need themisebinary on PATH if you want to call the toolsget_supported_toolsorget_latest_tool_versions

Optional but recommended:Set theGITHUB_PATenvironment variable to a GitHub Personal Access Token (no scopes required) to avoid GitHub API rate limits.

Option 3: Run with Docker (for local use)

docker run --pull=always --rm -i ghcr.io/mshekow/package-version-check-mcp:latest --mode=stdio

Optional but recommended:Pass theGITHUB_PATenvironment variable using-e GITHUB_PAT=your_token_hereto avoid GitHub API rate limits.

To improve performance and reduce API calls to package registries, you can enable caching:

- PACKAGE_VERSION_CACHE_ENABLED: Set totrueto enable caching (disabled by default)
- PACKAGE_VERSION_CACHE_TTL_SECONDS: Cache duration in seconds (default: 3600 / 1 hour)
- PACKAGE_VERSION_CACHE_MAX_SIZE_MB: Maximum cache size in MB (default: 64)

The cache is an in-memory TTL (Time-To-Live) cache. It resets when the MCP server restarts.

Once you've added the MCP server, you need to:
-

Enable the MCP toolsin your agent's configuration. The available tools are documented below

Nudge the agent to use the MCPin your prompts. Most LLMs don't automatically invoke this MCP's tools without explicit guidance. Include instructions like:

- "Use MCP to get latest versions"
- "Check the latest package versions using the MCP tools"
- "Use get_latest_package_versions to find the current version"

In case you forgot to add this prompt and your agent generated code withoutdatedversions, you can just ask your agent to update the versions afterwards (e.g., "Update the dependencies you just added to the latest version via MCP").

Fetches the latest versions of packages from various ecosystems.

- packages: Array of package specifications, where each item contains:

- ecosystem(required): Either "npm", "pypi", "nuget", "maven_gradle", "go", "php", "rubygems", "rust", "swift", "dart", "docker", "helm", "terraform_provider", or "terraform_module"
- package_name(required): The name of the package

- For npm: package name (e.g., "express")
- For pypi: package name (e.g., "requests")
- For nuget: package name (e.g., "Newtonsoft.Json")
- For maven_gradle: "
[registry:]<!-- -->:<!-- -->" format (e.g., "org.springframework:spring-core"). If registry is omitted, Maven Central is assumed.
- For go: Absolute module identifier (e.g., "github.com/gin-gonic/gin")
- For php: Package name in "vendor/package" format (e.g., "monolog/monolog", "laravel/framework")
- For rubygems: Gem name (e.g., "rails", "devise")
- For rust: Crate name (e.g., "serde", "tokio")
- For swift: GitHub URL (e.g., "https://github.com/Alamofire/Alamofire.git" or "github.com/owner/repo.git"). Only github.com is supported.
- For dart: Package name from pub.dev (e.g., "http", "flutter")
- For docker: fully qualified image name including registry and namespace (e.g., "index.docker.io/library/busybox")
- For helm: Either ChartMuseum URL ("
https://host/path/chart-name") or OCI reference ("oci://host/path/chart-name")
- For terraform_provider: "
[registry/]<!-- -->/<!-- -->" format (e.g., "hashicorp/aws" or "registry.terraform.io/hashicorp/aws"). If registry is omitted, registry.terraform.io is assumed. Supports alternative registries like registry.opentofu.org.
- For terraform_module: "[registry/]<!-- -->/<!-- -->/<!-- -->" format (e.g., "terraform-aws-modules/vpc/aws" or "registry.terraform.io/terraform-aws-modules/vpc/aws"). If registry is omitted, registry.terraform.io is assumed. Supports alternative registries like registry.opentofu.org.

- For docker: tag compatibility hint (e.g., "1.36-alpine") to find the latest tag matching the same suffix pattern. If omitted, returns the latest semantic version tag.
- For helm (OCI only): tag compatibility hint similar to Docker
- For npm/pypi/nuget/maven_gradle/go/php/rubygems/rust/swift/dart/helm (ChartMuseum)/terraform_provider/terraform_module: not currently used

- result: Array of successful lookups with:

- ecosystem: The package ecosystem (as provided)
- package_name: The package name (as provided)
- latest_version: The latest version number (e.g., "1.2.4") or Docker tag
- digest: (optional) Package digest/hash if available. For Docker, this is the manifest digest (sha256).
- published_on: (optional) Publication date if available (not available for Docker)

- ecosystem: The package ecosystem (as provided)
- package_name: The package name (as provided)
- error: Description of the error

Fetches the latest versions and metadata for GitHub Actions hosted on github.com.

- action_names(required): Array of action names in "owner/repo" format (e.g., ["actions/checkout", "docker/login-action"])
- include_readme(optional): Boolean (default: false), whether to include the action's README.md with usage instructions

- result: Array of successful lookups with:

- name: The action name (as provided)
- latest_version: The most recent Git tag (e.g., "v3.2.4")
- metadata: The action.yml metadata as an object with fields:

- inputs: Action input parameters
- outputs: Action outputs
- runs: Execution configuration

- name: The action name (as provided)
- error: Description of the error

Returns a list of all tool names supported by theget_latest_tool_versionsMCP tool.

This tool queries themiseregistry to retrieve all available tool names that can be managed by mise.

- Array of tool short names (e.g., ["1password", "act", "node", "python", ...])

Fetches the latest stable versions of development and DevOps tools supported by mise-en-place.

This tool is for tools that are NOT part of language ecosystems like PyPI or NPM. For language ecosystem packages (including Terraform providers and modules), useget_latest_package_versionsinstead.

- gradleormaven: Pin the Gradle or Maven version in thedistributionUrlingradle-wrapper.propertiesormaven-wrapper.properties

- Example:distributionUrl=https://services.gradle.org/distributions/gradle-8.5-bin.zip
- Example:distributionUrl=https://repo.maven.apache.org/.../apache-maven-3.9.6-bin.zip

- Example:terraform { required_version = "~> 1.6.0" }

- Example:RUN curl -LO https://dl.k8s.io/release/v1.28.0/bin/linux/amd64/kubectl

To see all available tools, use theget_supported_toolstool.

- tool_names(required): Array of tool names (e.g., ["terraform", "gradle", "kubectl"])

- result: Array of successful lookups with:

- tool_name: The tool name (as provided)
- latest_version: The latest stable version number (e.g., "1.6.5")

- tool_name: The tool name (as provided)
- error: Description of the error

This MCP is certainly not the first one to tackle the "outdated dependency" problem. However, we feel that it has various advantages over other MCPs:

- We offer (far) better ecosystem coverage than other MCPs
- There is full test coverage, with automated dependency updates (powered by Renovate) and regular, automated release builds. In contrast, other projects are often vibe coded, have poor (or no) tests, and are already abandoned, because the authors were just messing around
- This MCP providesseveralalternatives for how to run it locally (uvx or docker), or you can just use the free hosted offering (which other MCPs do not have)
- This MCP uses aminimalDocker/OCI image, hardened for security. SBOMs you generate with tools like Trivy are known to be correct, and the image is signed with Cosign (which allows you to verify its authenticity in case you want to self-host the MCP)

The MCP server depends on themise-en-placepackage for looking up tool versions. Seehttps://mise.jdx.dev/installing-mise.htmlfor installation instructions.

Running the Server Manually (For Development)

If you're developing or testing the MCP server locally, you can run it directly.

First,follow the Package management with Poetry -> Setup instructionsto configure your virtual environments.

.poetry/bin/poetry run python -m package_version_check_mcp.main
python src/package_version_check_mcp/main.py

On a new machine, create a venv for Poetry (in path<project-root>/.poetry), and one for the project itself (in path<project-root>/.venv), e.g. viaC:\Users\USER\AppData\Local\Programs\Python\Python312\python.exe -m venv <path>. This separation is necessary to avoid dependencyconflictsbetween the project and Poetry.

Using thepipof the Poetry venv, install Poetry viapip install -r requirements-poetry.txt

Then, runpoetry sync --all-extras, but make sure that either no venv is active, or the.venvone, butnotthe.poetryone (otherwise Poetry would stupidly install the dependencies into that one, unless you previously ranpoetry config virtualenvs.in-project true). The--all-extrasflag is required to installdevelopmentdependencies, such as pytest.

- When dependencies changedfrom the outside, e.g. because Renovate updated thepyproject.tomlandpoetry.lockfile, runpoetry sync --all-extrasto update your local environment. This removes any obsolete dependencies from your.venvvenv.
- Ifyouupdated a dependency inpyproject.toml, runpoetry update && poetry sync --all-extrasto update the lock file and install the updated dependencies including extras.
- To only update thetransitivedependencies (keeping the ones inpyproject.tomlthe same), runpoetry update && poetry sync --all-extras, which updates the lock file and installs the updates into the active venv.

Make sure that either no venv is active (or the.venvvenv is active) while running any of the abovepoetrycommands.

This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.

All Azure MCP tools in a single server. The Azure MCP Server implements the MCP specification to create a seamless connection between AI agents and Azure services. Azure MCP Server can be used alone or with the GitHub Copilot for Azure extension in VS Code.

Flag features, manage company data, and control feature access using Bucket.

Enable AI Agents to fix build failures from CircleCI.

interacts with ConfigCat feature flag platform. Supports managing feature flags, configs, environments, products and organizations. Helps to integrate ConfigCat SDK, implement feature flags or remove zombie (stale) flags.

Boost security in your dev lifecycle via SAST, SCA, Secrets & IaC scanning with Cycode.

Turn your favourite AI tool into a feature management assistant. DevCycle's MCP works with your favourite coding assistant so you can create and monitor feature flags using natural language right in your workflow.

Official Docker MCP Toolkit for discovering, configuring, and running containerized MCP servers through Docker Desktop and the Docker MCP gateway.

The Octopus MCP Server provides your AI assistant with powerful tools that allow it to inspect, query, and diagnose problems within your Octopus instance, transforming it into your ultimate DevOps wingmate.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.