SemverKit
Semver parse, compare, npm range checks, max-satisfying and version bumps (node-semver compatible).
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"semverkit": {
"url": "https://semverkit.mike-tusa.workers.dev/mcp"
}
}
}원격 엔드포인트
https://semverkit.mike-tusa.workers.dev/mcpstreamable-http할 수 있는 일
도구 목록
도구 (5)
🟢parse_version(version)
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.
입력 스키마
{
"type": "object",
"properties": {
"version": {
"type": "string",
"minLength": 1,
"maxLength": 256,
"description": "Version: a semantic version such as \"1.4.2\", \"v2.0.0\" or \"3.0.0-rc.1+build.5\"."
}
},
"required": [
"version"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"input": {
"type": "string"
},
"version": {
"type": "string"
},
"major": {
"type": "integer"
},
"minor": {
"type": "integer"
},
"patch": {
"type": "integer"
},
"prerelease": {
"type": "array",
"items": {
"type": [
"string",
"integer"
]
}
},
"build": {
"type": "array",
"items": {
"type": "string"
}
},
"isPrerelease": {
"type": "boolean"
},
"isStable": {
"type": "boolean"
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
},
"apiVersion": {
"type": "string"
}
},
"required": [
"version",
"major",
"minor",
"patch",
"isPrerelease",
"apiVersion"
]
}🟢compare_versions(a, b)
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.
입력 스키마
{
"type": "object",
"properties": {
"a": {
"type": "string",
"minLength": 1,
"maxLength": 256,
"description": "First version: a semantic version such as \"1.4.2\", \"v2.0.0\" or \"3.0.0-rc.1+build.5\"."
},
"b": {
"type": "string",
"minLength": 1,
"maxLength": 256,
"description": "Second version: a semantic version such as \"1.4.2\", \"v2.0.0\" or \"3.0.0-rc.1+build.5\"."
}
},
"required": [
"a",
"b"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"a": {
"type": "string"
},
"b": {
"type": "string"
},
"result": {
"type": "integer"
},
"relation": {
"type": "string"
},
"diff": {
"type": [
"string",
"null"
]
},
"buildDiffers": {
"type": "boolean"
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
},
"apiVersion": {
"type": "string"
}
},
"required": [
"result",
"relation",
"diff",
"apiVersion"
]
}🟢check_range(version, range, includePrerelease)
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.
입력 스키마
{
"type": "object",
"properties": {
"version": {
"type": "string",
"minLength": 1,
"maxLength": 256,
"description": "Version to test: a semantic version such as \"1.4.2\", \"v2.0.0\" or \"3.0.0-rc.1+build.5\"."
},
"range": {
"type": "string",
"minLength": 1,
"maxLength": 512,
"description": "npm-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\"."
},
"includePrerelease": {
"type": "boolean",
"default": false,
"description": "Let prereleases match any range they fall inside (npm includePrerelease). Default false (npm behaviour)."
}
},
"required": [
"version",
"range"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"version": {
"type": "string"
},
"range": {
"type": "string"
},
"normalized": {
"type": "string"
},
"satisfies": {
"type": "boolean"
},
"includePrerelease": {
"type": "boolean"
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
},
"apiVersion": {
"type": "string"
}
},
"required": [
"satisfies",
"normalized",
"apiVersion"
]
}🟢resolve_versions(versions, range, includePrerelease)
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.
입력 스키마
{
"type": "object",
"properties": {
"versions": {
"type": "array",
"minItems": 1,
"maxItems": 200,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 256,
"description": "Version: a semantic version such as \"1.4.2\", \"v2.0.0\" or \"3.0.0-rc.1+build.5\"."
},
"description": "1 to 200 versions."
},
"range": {
"type": "string",
"minLength": 1,
"maxLength": 512,
"description": "npm-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\"."
},
"includePrerelease": {
"type": "boolean",
"default": false,
"description": "Let prereleases match any range they fall inside (npm includePrerelease). Default false (npm behaviour)."
}
},
"required": [
"versions"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"range": {
"type": [
"string",
"null"
]
},
"normalized": {
"type": [
"string",
"null"
]
},
"includePrerelease": {
"type": "boolean"
},
"sorted": {
"type": "array",
"items": {
"type": "string"
}
},
"count": {
"type": "integer"
},
"matching": {
"type": "array",
"items": {
"type": "string"
}
},
"maxSatisfying": {
"type": [
"string",
"null"
]
},
"minSatisfying": {
"type": [
"string",
"null"
]
},
"latestStable": {
"type": [
"string",
"null"
]
},
"invalid": {
"type": "array",
"items": {
"type": "string"
}
},
"duplicatesRemoved": {
"type": "integer"
},
"apiVersion": {
"type": "string"
}
},
"required": [
"sorted",
"matching",
"maxSatisfying",
"apiVersion"
]
}🟢bump_version(version, release, preid)
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.
입력 스키마
{
"type": "object",
"properties": {
"version": {
"type": "string",
"minLength": 1,
"maxLength": 256,
"description": "Current version: a semantic version such as \"1.4.2\", \"v2.0.0\" or \"3.0.0-rc.1+build.5\"."
},
"release": {
"type": "string",
"enum": [
"major",
"minor",
"patch",
"premajor",
"preminor",
"prepatch",
"prerelease",
"release"
],
"default": "patch",
"description": "Release type."
},
"preid": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "Prerelease identifier, e.g. \"beta\" (for pre* and prerelease)."
}
},
"required": [
"version"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"from": {
"type": "string"
},
"release": {
"type": "string"
},
"preid": {
"type": [
"string",
"null"
]
},
"version": {
"type": "string"
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
},
"apiVersion": {
"type": "string"
}
},
"required": [
"from",
"version",
"apiVersion"
]
}커뮤니티
증거