Package Version Check Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Package Version Check Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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 as development runtimes like python, node, dotnet, development tools like gradle, and various DevOps tools like kubectl or terraform, via the mise-en-place tool.
Whenever an AI coding agents generates files that pin dependency versions, they insert outdated versions because 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 as Context7 to avoid that your AI agent produces outdated code.
Supported ecosystems / tools:
kubectl, terraform, gradle, maven, etc. supported by mise-en-placeThere 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/mcpin (streamable) HTTP mode.
This is the quickest way to get started. Note that the hosted service may have rate limits from the underlying package registries.
#### Option 2: Run with uvx (for local use)
Use uvx to run the MCP server locally:
uvx package-version-check-mcp --mode=stdioThis automatically installs and runs the latest version from PyPI.
Requirements:
mise binary on PATH if you want to call the tools get_supported_tools or get_latest_tool_versionsOptional but recommended: Set the GITHUB_PAT environment variable to a GitHub Personal Access Token (no scopes required) to avoid GitHub API rate limits.
#### Option 3: Run with Docker (for local use)
Use the pre-built Docker image:
docker run --pull=always --rm -i ghcr.io/mshekow/package-version-check-mcp:latest --mode=stdioOptional but recommended: Pass the GITHUB_PAT environment variable using -e GITHUB_PAT=your_token_here to avoid GitHub API rate limits.
To improve performance and reduce API calls to package registries, you can enable caching:
PACKAGE_VERSION_CACHE_ENABLED: Set to true to 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:
In case you forgot to add this prompt and your agent generated code with _outdated_ versions, 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").
#### get_latest_package_versions
Fetches the latest versions of packages from various ecosystems.
Input:
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 packageversion_hint (optional):Output:
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 tagdigest: (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)lookup_errors: Array of errors with:ecosystem: The package ecosystem (as provided)package_name: The package name (as provided)error: Description of the error#### get_github_action_versions_and_args
Fetches the latest versions and metadata for GitHub Actions hosted on github.com.
Input:
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 instructionsOutput:
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 parametersoutputs: Action outputsruns: Execution configurationreadme: (optional) The action's README content if include_readme was truelookup_errors: Array of errors with:name: The action name (as provided)error: Description of the error#### get_supported_tools
Returns a list of all tool names supported by the get_latest_tool_versions MCP tool.
This tool queries the mise registry to retrieve all available tool names that can be managed by mise.
Input:
Output:
#### get_latest_tool_versions
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), use get_latest_package_versions instead.
Use cases:
distributionUrl in gradle-wrapper.properties or maven-wrapper.propertiesdistributionUrl=https://services.gradle.org/distributions/gradle-8.5-bin.zipdistributionUrl=https://repo.maven.apache.org/.../apache-maven-3.9.6-bin.zipterraform.required_version in a file like version.tf or versions.tfterraform { required_version = "~> 1.6.0" }curl or wget, e.g., in a DockerfileRUN curl -LO https://dl.k8s.io/release/v1.28.0/bin/linux/amd64/kubectlTo see all available tools, use the get_supported_tools tool.
Input:
tool_names (required): Array of tool names (e.g., ["terraform", "gradle", "kubectl"])Output:
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")lookup_errors: Array of errors with:tool_name: The tool name (as provided)error: Description of the errorThis MCP is certainly not the first one to tackle the "outdated dependency" problem. However, we feel that it has various advantages over other MCPs:
#### mise-en-place
The MCP server depends on the mise-en-place package for looking up tool versions. See https://mise.jdx.dev/installing-mise.html for installation instructions.
If you're developing or testing the MCP server locally, you can run it directly.
First, follow the Package management with Poetry -> Setup instructions to configure your virtual environments.
Next:
.poetry/bin/poetry run python -m package_version_check_mcp.mainOr if you have the .venv activated:
python src/package_version_check_mcp/main.py#### Setup
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. via C:\Users\USER\AppData\Local\Programs\Python\Python312\python.exe -m venv <path>. This separation is necessary to avoid dependency _conflicts_ between the project and Poetry.
Using the pip of the Poetry venv, install Poetry via pip install -r requirements-poetry.txt
Then, run poetry sync --all-extras, but make sure that either no venv is active, or the .venv one, but not the .poetry one (otherwise Poetry would stupidly install the dependencies into that one, unless you previously ran poetry config virtualenvs.in-project true). The --all-extras flag is required to install _development_ dependencies, such as pytest.
#### Updating dependencies
pyproject.toml and poetry.lock file, run poetry sync --all-extras to update your local environment. This removes any obsolete dependencies from your .venv venv.pyproject.toml, run poetry update && poetry sync --all-extras to update the lock file and install the updated dependencies including extras.pyproject.toml the same), run poetry 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 .venv venv is active) while running any of the above poetry commands.
<!-- mcp-name: io.github.MShekow/package-version-check-mcp -->
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.