Skip to main content
Glama

Server Details

Semver parse, compare, npm range checks, max-satisfying and version bumps (node-semver compatible).

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.2/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a clearly distinct SemVer operation: parse, compare, range check, bump, and resolve/sort. There is no meaningful overlap between their purposes, so an agent can confidently select the right tool.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern: bump_version, check_range, compare_versions, parse_version, resolve_versions. The convention is predictable and immediately readable.

Tool Count5/5

Five tools is a well-scoped surface for a SemVer utility server, with each tool covering a core operation. No tool feels redundant or unnecessary.

Completeness4/5

The surface covers the main SemVer operations: parsing, comparison, range satisfaction, version bumping, and sorting/resolution. Minor gaps exist around coercion/cleaning or explicit range validation, but agents can work around them with the provided tools.

Available Tools

5 tools
bump_versionCompute the next versionA
Read-onlyIdempotent
Inspect

Compute the next version for a release type (major, minor, patch, premajor, preminor, prepatch, prerelease, release), with an optional prerelease id such as alpha, beta or rc, exactly like npm version / semver.inc. Read-only: nothing is published. Same engine as GET /api/bump.

NameRequiredDescriptionDefault
preidNoPrerelease identifier, e.g. "beta" (for pre* and prerelease).
releaseNoRelease type.patch
versionYesCurrent version: a semantic version such as "1.4.2", "v2.0.0" or "3.0.0-rc.1+build.5".

Output Schema

NameRequiredDescription
fromYes
notesNo
preidNo
releaseNo
versionYes
apiVersionYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false; the description reinforces this with 'Read-only: nothing is published,' which is worth stating explicitly for a versioning tool. The genuinely added context is the semver.inc equivalence, which tells the agent edge-case behavior matches a well-known implementation. Return values are covered by the output schema, so no gap there.

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?

Three compact sentences, front-loaded with the core action. The enumerated release types partially duplicate the schema enum, a minor redundancy, but nothing else is wasted.

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?

Given an output schema, full parameter descriptions, and rich annotations, the description supplies everything else an agent needs: what is computed, the exact semantics to expect, and that nothing is published. No material gaps remain.

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?

Schema coverage is 100%, including an enum on release and a description on preid, so the schema already carries the parameter detail. The description's restatement of the release-type list and prerelease id examples duplicates that. Baseline 3 is appropriate — it adds no syntax or constraint beyond the schema.

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?

States a specific verb and resource — compute the next version for a given release type — and enumerates the supported release types. The 'exactly like npm version / semver.inc' anchor pins the semantics precisely, so an agent can distinguish it from siblings like compare_versions or check_range without opening a schema.

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?

Clear context for when to use: you have a current semver and want the next one for a release type, optionally with a prerelease id. It also names the equivalent REST surface (GET /api/bump) and the npm analogue. It stops short of explicit exclusions or naming sibling alternatives, so it lands at 4 rather than 5.

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

check_rangeCheck a version against an npm rangeA
Read-onlyIdempotent
Inspect

Does a version satisfy an npm-style range (^, ~, x-ranges, hyphen ranges, comparators, || alternatives)? Returns the answer and the range desugared into plain comparators (e.g. ^0.2.3 → >=0.2.3 <0.3.0-0), with a note when npm's prerelease rule is why it fails. Read-only. Same engine as GET /api/satisfies.

NameRequiredDescriptionDefault
rangeYesnpm-style range, e.g. "^1.2.0", "~1.4", ">=1.0.0 <2.0.0", "1.2.3 - 2.x", "1.x || >=3.0.0-beta.1".
versionYesVersion to test: a semantic version such as "1.4.2", "v2.0.0" or "3.0.0-rc.1+build.5".
includePrereleaseNoLet prereleases match any range they fall inside (npm includePrerelease). Default false (npm behaviour).

Output Schema

NameRequiredDescription
notesNo
rangeNo
versionNo
satisfiesYes
apiVersionYes
normalizedYes
includePrereleaseNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive, closed-world, so the bar is lower. The description adds genuinely new behavior: it returns both the boolean answer and the range desugared into plain comparators, and it flags when npm's prerelease rule caused a failure. 'Same engine as GET /api/satisfies' also gives API-parity context.

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?

Three tight sentences, each earning its place: capability first, then return shape with a concrete desugaring example, then the read-only/parity footnote. Front-loaded and free of filler.

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?

A simple read-only predicate with a rich annotated profile, 100%-covered input schema and an output schema, so the description needn't spell out return values. What it does add — desugaring output and prerelease-failure notes — covers the remaining ambiguity about why a check might fail unexpectedly.

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?

Schema description coverage is 100% and each parameter already carries examples and a default, so the baseline is 3. The description only indirectly illuminates includePrerelease by mentioning npm's prerelease rule; it names no parameter and adds no syntax beyond the schema.

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?

States a specific verb and resource: 'Does a version satisfy an npm-style range', and enumerates the range grammar it understands (^, ~, x-ranges, hyphen, comparators, ||). This is clearly distinct from compare_versions (ordering) and parse_version (parsing) among the siblings.

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 question form implies the use case — testing membership in a range — but the description never says when to prefer it over compare_versions or resolve_versions, and lists no exclusions or prerequisites. Usage must be inferred from the phrasing rather than stated.

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

compare_versionsCompare two semantic versionsA
Read-onlyIdempotent
Inspect

Compare a and b by SemVer precedence (prereleases sort before the release, build metadata ignored). Returns -1, 0 or 1 and the change type from the lower to the higher version (major, minor, patch, premajor, preminor, prepatch, prerelease) exactly like semver.diff. Read-only. Same engine as GET /api/compare.

NameRequiredDescriptionDefault
aYesFirst version: a semantic version such as "1.4.2", "v2.0.0" or "3.0.0-rc.1+build.5".
bYesSecond version: a semantic version such as "1.4.2", "v2.0.0" or "3.0.0-rc.1+build.5".

Output Schema

NameRequiredDescription
aNo
bNo
diffYes
notesNo
resultYes
relationYes
apiVersionYes
buildDiffersNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the 'Read-only' sentence is largely redundant. What the description does add is substantive: prereleases sort before the release, build metadata is ignored, the return is -1/0/1 plus a semver.diff-style change type, and results match GET /api/compare — all behavior not derivable from the annotations.

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?

Three tight sentences, front-loaded with the precedence rule the agent most needs, followed by return shape and provenance. No filler and no restatement of the title alone.

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?

With annotations covering safety and an output schema covering the response shape, the remaining burden is semantic correctness, and the description covers precedence, metadata handling, and change-type semantics fully. Nothing needed to invoke it correctly is missing.

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 coverage is 100%, so the schema already documents 'a' and 'b' formats thoroughly. The description adds interpretation the schema lacks: both are parsed as SemVer, and the change type is computed from the lower to the higher version rather than from a to b, which resolves a real ambiguity about operand roles.

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?

States a specific verb (compare) and resource (two semantic versions) plus the exact precedence rule applied. An agent can distinguish it from bump_version, check_range, and resolve_versions without opening the schema, since those change or validate versions rather than order two of them.

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?

Gives clear context for when it applies: ordering two concrete versions by SemVer precedence, with prerelease and build-metadata rules spelled out. It does not explicitly name an alternative such as check_range or parse_version or state when not to use it, so it stops short of full routing guidance.

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

parse_versionParse and validate a semantic versionA
Read-onlyIdempotent
Inspect

Validate a version against SemVer 2.0.0 and split it into major, minor, patch, prerelease identifiers and build metadata, with isPrerelease/isStable flags. Read-only. Same engine as GET /api/parse.

NameRequiredDescriptionDefault
versionYesVersion: a semantic version such as "1.4.2", "v2.0.0" or "3.0.0-rc.1+build.5".

Output Schema

NameRequiredDescription
buildNo
inputNo
majorYes
minorYes
notesNo
patchYes
versionYes
isStableNo
apiVersionYes
prereleaseNo
isPrereleaseYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, so restating 'Read-only' adds nothing. The one genuinely new behavioral fact is 'Same engine as GET /api/parse', which tells the agent results match the REST endpoint - useful but thin for an otherwise annotation-covered 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?

A single front-loaded sentence packs purpose, spec version, output fields and flags with zero filler; nothing needs trimming.

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?

With an output schema present, enumerating major/minor/patch/isStable in the description is partly redundant, but the spec reference (SemVer 2.0.0) and API-parity note make it complete enough for a one-parameter tool.

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?

Schema coverage is 100% and the version parameter already carries examples ('1.4.2', 'v2.0.0', '3.0.0-rc.1+build.5'). The description mentions prerelease/build metadata but adds no format, tolerance (e.g., leading 'v') or error behavior beyond the schema, so baseline 3 applies.

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?

States a specific verb and resource ('Validate a version against SemVer 2.0.0 and split it into major, minor, patch...') and describes the exact output shape, which cleanly separates it from siblings like compare_versions or bump_version that operate on versions differently.

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?

Usage is implied by the purpose (parse/validate a single version string), but the description never says when to prefer this over check_range or compare_versions, nor any exclusions or prerequisites. It's adequate but leaves routing entirely to the agent's inference.

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

resolve_versionsSort versions and resolve a rangeA
Read-onlyIdempotent
Inspect

Sort 1 to 200 versions by SemVer precedence (duplicates removed, invalid ones listed separately) and, if a range is given, return the matching versions plus maxSatisfying / minSatisfying (what npm would install from that list) and the latest stable version. Read-only. Same engine as GET /api/resolve.

NameRequiredDescriptionDefault
rangeNonpm-style range, e.g. "^1.2.0", "~1.4", ">=1.0.0 <2.0.0", "1.2.3 - 2.x", "1.x || >=3.0.0-beta.1".
versionsYes1 to 200 versions.
includePrereleaseNoLet prereleases match any range they fall inside (npm includePrerelease). Default false (npm behaviour).

Output Schema

NameRequiredDescription
countNo
rangeNo
sortedYes
invalidNo
matchingYes
apiVersionYes
normalizedNo
latestStableNo
maxSatisfyingYes
minSatisfyingNo
duplicatesRemovedNo
includePrereleaseNo

TDQS

A4.1/5.0
Behavior5/5

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

Beyond the annotations, the description discloses important behavior: duplicates are removed, invalid versions are listed separately, range matching returns maxSatisfying/minSatisfying, and the latest stable version is included. It also confirms read-only behavior consistently with readOnlyHint=true.

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 front-loaded with the core operation and remains compact. The second sentence about read-only behavior and the shared engine is short and useful, with no wasted wording.

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?

Given the annotations, 100% schema coverage, and the presence of an output schema, the description covers the key behavior an agent needs: sorting, deduplication, invalid handling, optional range resolution, and max/min/latest stable results. Nothing critical is missing for correct invocation.

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?

Schema description coverage is 100%, so the schema already documents versions, range, and includePrerelease in detail. The description adds some context around the 1–200 version limit and optional range, but does not add meaningfully beyond the schema, so the baseline 3 is appropriate.

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

Purpose4/5

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

The description states a specific verb and resource: sort 1–200 versions by SemVer precedence and optionally resolve a range, returning matches plus max/minSatisfying. It is clear enough to separate it from parse_version or compare_versions, but it does not explicitly name or differentiate against the sibling tools.

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 usage through the conditional 'if a range is given' and explains what happens in each case. However, it does not state when to choose this tool over check_range or compare_versions, nor does it give explicit exclusions.

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.

  1. 5 tool updates
    • First observedbump_version
    • First observedcheck_range
    • First observedcompare_versions
    • First observedparse_version
    • First observedresolve_versions

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides semantic versioning tools to parse, compare, and check range satisfaction for version strings, enabling version management through natural language queries.
    3 npm
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Detects breaking changes in a TypeScript library's public API and recommends the semver bump, comparing two npm releases, git refs or a working tree. Each finding is graded proven or review-only.
    2
    41 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Validates and generates UUIDs, including parsing version, variant, timestamps, and creating random v4 UUIDs.
    7 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Verified, dated facts for AI coding agents: what breaks between npm package versions (diffed from TypeScript types), per-version vulnerabilities, the newest version compatible with a given Node/Python/Rust/PHP, end-of-life dates of ~480 runtimes and frameworks, and AI model prices. Covers npm, PyPI, crates.io and Packagist.
    1
    AGPL 3.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources