Skip to main content
Glama
MShekow

package-version-check-mcp

by MShekow

package-version-check-mcp

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.

Why do I need this?

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.

Related MCP server: Dependency Freshness MCP Server

Features

Supported ecosystems / tools:

  • 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

  • DevOps ecosystems:

    • 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

    • Terraform Providers and Modules - Providers & Modules from Terraform Registry, OpenTofu Registry, or custom registries

    • Various tools such as kubectl, terraform, gradle, maven, etc. supported by mise-en-place

Usage

Adding the MCP to Your Agent

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

in (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=stdio

This automatically installs and runs the latest version from PyPI.

Requirements:

  • You need the mise binary on PATH if you want to call the tools get_supported_tools or get_latest_tool_versions

Optional 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=stdio

Optional but recommended: Pass the GITHUB_PAT environment variable using -e GITHUB_PAT=your_token_here to avoid GitHub API rate limits.

Caching Configuration

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.

Configuring Your Agent

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

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

  2. Nudge the agent to use the MCP in 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 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").

Available Tools

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 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.

    • version_hint (optional):

      • 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

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 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)

  • 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 instructions

Output:

  • 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

    • readme: (optional) The action's README content if include_readme was true

  • lookup_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:

  • No parameters required

Output:

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

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:

  • gradle or maven: Pin the Gradle or Maven version in the distributionUrl in gradle-wrapper.properties or maven-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

  • terraform: Pin terraform.required_version in a file like version.tf or versions.tf

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

  • kubectl or azure: Pin the version in a download URL called with curl or wget, e.g., in a Dockerfile

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

To 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 error

Why build yet another MCP

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 provides several alternatives 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 a minimal Docker/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)

Development

Prerequisites

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.

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 instructions to configure your virtual environments.

Next:

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

Or if you have the .venv activated:

python src/package_version_check_mcp/main.py

Package management with Poetry

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

  • When dependencies changed from the outside, e.g. because Renovate updated the 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.

  • If you updated a dependency in pyproject.toml, run poetry update && poetry sync --all-extras to update the lock file and install the updated dependencies including extras.

  • To only update the transitive dependencies (keeping the ones in 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.

Available Tools

4 tools
get_github_action_versions_and_argsA

Get the latest versions and metadata for GitHub Actions.

This tool fetches the latest Git tag and action.yml metadata for GitHub Actions hosted on github.com. It can optionally include the README.md for usage instructions.

ParametersJSON Schema
NameRequiredDescriptionDefault
action_namesYesA list of action names in "owner/repo" format (e.g., ["actions/checkout", "docker/login-action"])
include_readmeNoWhether to include the README.md content (default: False)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
lookup_errorsYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the behavioral trait of fetching latest Git tag and action.yml metadata, and optionally README. However, it does not mention authentication needs, rate limits, or what happens for invalid inputs. Some additional context would be beneficial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences, front-loading the primary purpose. Every sentence adds value and there is no unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 parameters, output schema exists), the description covers the main functionality adequately. It could briefly mention the output format or that it only works for github.com-hosted actions, but the existence of an output schema reduces the need for return value details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers both parameters with descriptions. The tool description adds context by mentioning 'latest versions and metadata' and README, but does not significantly enhance the understanding of the parameters beyond the schema. Baseline for 100% coverage is 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it gets the latest versions and metadata for GitHub Actions, specifying the exact data fetched (latest Git tag and action.yml) and optional README inclusion. This distinguishes it from sibling tools like get_latest_package_versions which target packages.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on what the tool does and its optional parameter, but does not explicitly state when to use this tool versus alternatives or when not to use it. Given the distinct purpose from siblings, this is acceptable but not maximally helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_latest_package_versionsB

Get the latest versions of packages from various ecosystems.

This tool fetches the latest version information for packages from NPM, PyPI, NuGet, Maven/Gradle, Go modules, PHP/Packagist, Ruby gems, Rust crates, Swift packages, Dart packages, Docker, Helm, Terraform modules and Terraform providers. It returns both successful lookups and any errors that occurred.

ParametersJSON Schema
NameRequiredDescriptionDefault
packagesYesA list of package version requests with: - ecosystem: "npm", "pypi", "nuget", "maven_gradle", "go", "php", "rubygems", "rust", "swift", "dart", "docker", "helm", "terraform_provider", or "terraform_module" - package_name: The name of the package (e.g., "express", "requests", "Newtonsoft.Json") For Maven/Gradle, use format "[registry:]<groupId>:<artifactId>" (e.g., "org.springframework:spring-core" for Maven Central, "maven.google.com:com.google.android.material:material" for Google Maven) For Go, use the absolute module identifier (e.g., "github.com/gin-gonic/gin") For PHP, use the Packagist package name in "vendor/package" format (e.g., "monolog/monolog", "laravel/framework") For RubyGems, use the gem name (e.g., "rails", "devise") For Rust, use the crate name (e.g., "serde", "tokio") For Swift, use the GitHub URL (e.g., "https://github.com/owner/repo.git" or "github.com/owner/repo.git") - only github.com is supported For Dart, use the package name from pub.dev (e.g., "flutter", "http") For Docker, this must be fully qualified (e.g., "index.docker.io/library/busybox") For Helm, use one of these formats: - ChartMuseum: "https://host/path/chart-name" (fetches from index.yaml) - OCI: "oci://host/path/chart-name" (queries OCI registry tags) - version_hint: (optional) For Docker and Helm OCI, used as a tag compatibility hint (e.g., "1.2-alpine") to find the latest tag matching the same suffix pattern. For NPM/PyPI/NuGet/Maven/ChartMuseum/Go/PHP/RubyGems/Rust/Swift/Dart, not used.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
lookup_errorsYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions error handling but does not disclose whether the tool is read-only, requires authentication, or has rate limits. The description lacks detail on idempotency and side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and efficiently lists ecosystems without extraneous detail. It is moderately long but each sentence contributes value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity and the presence of an output schema, the description adequately covers input handling and error reporting. However, it does not explain the output structure or preconditions, leaving some gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with detailed descriptions per parameter, including formatting examples. The main description adds little beyond listing ecosystems, so it meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: getting latest versions of packages from various ecosystems. It lists supported ecosystems and indicates return of both successes and errors, distinguishing it from sibling tools like get_github_action_versions_and_args.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for package version lookups but provides no explicit when-to-use or when-not-to-use guidance. It does not contrast with sibling tools or mention exclusion criteria, leaving the agent to infer from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_latest_tool_versionsA

Get the latest stable versions of tools supported by mise-en-place.

This tool fetches the latest stable version of development and DevOps tools that are NOT part of language ecosystems like PyPI or NPM. For language ecosystem packages (including Terraform providers and modules), use the get_latest_package_versions tool instead.

Use this tool to determine the latest versions of tools like:

To see all available tools, use the get_supported_tools tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
tool_namesYesA list of tool names (e.g., ["terraform", "gradle", "kubectl"])

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
lookup_errorsYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description discloses it returns stable versions for a specific set of tools, and no side effects are implied. Without annotations, it adequately covers behavioral expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, well-organized with examples, but contains some lengthy details that could be condensed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Comprehensive for a simple tool with output schema; includes scope differentiation, usage guidance, and reference to sibling for full list.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters; description adds value by providing concrete example tool names, enhancing understanding of valid inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches latest stable versions of non-language-ecosystem tools, and distinguishes from sibling get_latest_package_versions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use (for tools not in language ecosystems) and when not to (use get_latest_package_versions for ecosystem packages), with practical examples.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_supported_toolsA

Get list of all tools supported by the get_latest_tool_versions MCP tool.

This tool queries the mise registry to retrieve all available tool names that can be used with the get_latest_tool_versions tool.

Returns: A list of tool short names (e.g., ["1password", "act", "node", "python", ...])

Example: >>> await get_supported_tools() ["1password", "act", "node", "python", ...]

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries the disclosure burden. It accurately describes the read-only nature (retrieving a list) and includes return type and example. It could mention potential error conditions but is sufficient for a simple query tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with a clear purpose stated first, followed by a brief explanation, return type, and example. Every sentence contributes to understanding without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless tool with a simple return value, the description fully explains what it does, what it returns, and where the data comes from. The presence of an output schema (unseen but noted) further supports completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the schema coverage is trivially 100%. The description adds value beyond the schema by explaining the return structure (list of tool short names) and providing an example, which helps an agent understand the output.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool retrieves the list of all tools supported by the get_latest_tool_versions MCP tool, specifically from the mise registry. It distinguishes itself from siblings by focusing on supported tools rather than versions or arguments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context on how the tool relates to get_latest_tool_versions, suggesting its usage as a supporting query. However, it lacks explicit instructions on when not to use it or comparisons with sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 4 tool updatesv1.2.0
    • First observedget_github_action_versions_and_args
    • First observedget_latest_package_versions
    • First observedget_latest_tool_versions
    • First observedget_supported_tools

TDQS

A4.2/5.0
Disambiguation5/5

Each tool targets a distinct domain (GitHub Actions, ecosystem packages, dev tools, tool listing). Descriptions clearly differentiate between packages and tools, reducing ambiguity.

Naming Consistency5/5

All tools follow a consistent 'get_<specific_noun>' snake_case pattern, making it easy to predict and understand tool purposes.

Tool Count5/5

Four tools is appropriate for a focused version-checking service—neither too few nor too many, covering the essential operations.

Completeness5/5

The tool surface covers the major version-checking needs: GitHub Actions, package ecosystems, dev tools, and a way to list supported tools. No obvious gaps for the stated purpose.

Maintenance

ActivityActive
ResponsivenessResponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

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/MShekow/package-version-check-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server