SemverKit

Does this version satisfy that range? Type a version and an npm-style range (^, ~, 1.x, 1.2.3 - 2, ||) and see the answer, what the range really means, and how the two versions compare. Results match node-semver. Nothing you type is stored.

Examples:

How it works

Precedence follows SemVer 2.0.0 item 11: numeric MAJOR.MINOR.PATCH, then a release sorts after its prereleases, prerelease identifiers compare numerically when numeric and in ASCII order otherwise, and build metadata is ignored. Ranges follow npm (node-semver 7): ^ allows changes that keep the left-most non-zero part, ~ allows patch changes (minor when only a major is given), 1.x / 1.2.* / * are wildcards, "a - b" is inclusive, || means OR and spaces mean AND. A prerelease such as 2.0.0-rc.1 only matches a range that names a prerelease on the same 2.0.0, unless includePrerelease is true. See Semantic Versioning 2.0.0.

Versions: MAJOR.MINOR.PATCH with optional -prerelease and +build (one leading "v" is accepted), max 256 characters. Ranges: max 512 characters. Lists: up to 200 versions. Release types: major, minor, patch, premajor, preminor, prepatch, prerelease, release. Not supported: loose/coerced versions such as "1.2" or "01.2.3" (rejected as invalid, like semver.valid), Cargo/Maven/PEP 440 range dialects.

JSON API

curl -s 'https://semverkit.mike-tusa.workers.dev/api/satisfies?version=1.4.2&range=%5E1.2.0'
curl -s 'https://semverkit.mike-tusa.workers.dev/api/resolve?versions=1.0.0,1.2.3,1.10.0&range=~1.2'
curl -s 'https://semverkit.mike-tusa.workers.dev/api/bump?version=1.2.3&release=preminor&preid=beta'

Routes: /api/parse, /api/compare, /api/satisfies, /api/resolve (up to 200 versions) and /api/bump. No key needed: about 60 requests per minute per IP. OpenAPI 3.1 spec

For AI agents

Language models are unreliable at semver edge cases (^0.2.3 does not allow 0.3.0; 1.10.0 is newer than 1.9.0; prereleases skip most ranges). SemverKit is also a remote Model Context Protocol (MCP) server with five read-only tools: parse_version, compare_versions, check_range, resolve_versions and bump_version. Works with AI agents and assistants that can call an MCP server or a JSON API, for example Muse, Claude, ChatGPT or Cursor (descriptive only). Most MCP clients accept this config; some use a different format (for example, VS Code uses a servers key).

{ "mcpServers": { "semverkit": { "type": "http", "url": "https://semverkit.mike-tusa.workers.dev/mcp" } } }

Machine-readable docs: llms.txt · OpenAPI 3.1 spec · MCP server card. SemverKit is not affiliated with, endorsed by or sponsored by semver.org, npm, GitHub, the OpenJS Foundation, Meta, Anthropic, OpenAI or Anysphere. It reimplements the published Semantic Versioning 2.0.0 rules and npm range syntax and is tested against node-semver 7.

Privacy

Versions and ranges you submit are processed in memory and discarded when the response is sent. They are never written to storage, logs or analytics, and SemverKit makes no network requests (it does not look anything up on npm or any registry). Full privacy notice.