Skip to main content
Glama

semver_satisfies

Test whether a version satisfies an npm-style version range (caret ^, tilde ~, >=, <=, <, >, =, hyphen ranges, x-wildcards like 1.2.x, &&/space AND and || OR). Returns whether it satisfies plus the expanded operator bounds so the caller can see why. Prerelease versions only match a range that names their major.minor.patch with an explicit prerelease (same as npm).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
rangeYesThe range to test against, e.g. "^1.2.3 || ~2.0.0"
versionYesThe version to test, e.g. 1.9.9

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations present, the description carries the full disclosure burden and does so well. It explains the return value ('whether it satisfies plus the expanded operator bounds'), and it documents the nuanced prerelease matching rule, which matches npm behavior. It does not describe error handling or exact return format, but for a two-string utility the key behavioral traits are covered.

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 compact and front-loaded with the core verb and resource. The second sentence states the return value, and the third covers an important edge case. The operator list is dense but directly useful; no sentence is wasted, though it could be slightly more scannable with line breaks or bullet points.

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?

For a tool with only two string parameters, no output schema, and no annotations, the description covers the essential ground: input syntax, return value, and a notable edge case. The only remaining gaps are exact output shape and error behavior, which are minor for a pure version-checking utility. Sibling tools like semver_compare and semver_bump are clearly different in purpose from what is described.

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%, and the schema already describes both parameters with examples. The description adds meaningful detail beyond the schema by listing exactly which operator forms are accepted (caret, tilde, hyphen ranges, x-wildcards, AND/OR) and by explaining how prerelease versions are matched. This genuinely helps an agent construct correct 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 opens with a specific verb and resource: 'Test whether a version satisfies an npm-style version range.' It also enumerates the accepted range syntax, which clearly separates this from sibling tools like semver_compare, semver_bump, and semver_max. An agent can immediately understand what operation is performed and what input shapes are expected.

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 makes the purpose clear enough that an agent can infer when to choose it — whenever a version needs to be checked against a range. However, it does not explicitly distinguish this from semver_compare or semver_max, nor does it state when not to use it. The guidance is implied rather than stated.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.1/5.0
Disambiguation5/5

Each tool targets a distinct operation—encoding, color conversion, parsing, hashing, JWT validation, Markdown rendering, regex testing, SemVer operations, diffing, URL analysis, and UUID generation. The four SemVer tools are related but cleanly separated by action (bump vs compare vs max vs satisfies), and descriptions clarify their boundaries.

Naming Consistency4/5

Tools overwhelmingly follow an object_verb snake_case convention (base64_encode, csv_parse, regex_test, semver_bump). Semver_max and semver_satisfies deviate slightly from the imperative verb pattern, but the overall naming is predictable and searchable.

Tool Count4/5

At 16 tools, the server is slightly above the ideal 3–15 tool range but each utility earns its place for a general-purpose developer toolbox. No tools feel redundant, and the count remains manageable because the names and domains are highly scannable.

Completeness4/5

The toolkit covers a solid breadth of common developer utilities: encodings, common formats (JSON, CSV, Markdown), hashing/JWT, regex, SemVer, cron, URL, UUIDs, and diffing. It lacks some fringe converters such as YAML/XML parsing or HTML escape/unescape, but these are minor gaps that agents can work around rather than dead ends.