# SemVer satisfies

`semver-satisfies` · version 1.0.0 · Versions & config · free, no key needed

Test whether a strict version satisfies a semver range.

**Use when you need to: semver satisfies · version satisfies range · semver range test.**

## Supported

- semver satisfies
- version satisfies range
- semver range test

## Not supported

- loose
- git urls
- npm tags
- latest

## Behavior

- version must be a strict SemVer as above.
- range is a string passed to semver.satisfies(version, range, { includePrerelease: include_prerelease === true, loose: false }).
- Supported range syntax is what semver 7.8.5 accepts in non-loose mode: comparators, hyphen ranges, X-ranges, tilde, caret, ||.
- If the range is empty or semver.invalid as a range, reject. Do not throw raw package errors; map to invalid_input.
- include_prerelease defaults false. Unknown fields rejected.

## Input

- `version` (string, required): min length 1; max length 256
- `range` (string, required): min length 1; max length 512
- `include_prerelease` (boolean, optional)

## Output

- `satisfies` (boolean, required)

## Limits

- max version length: 256
- max range length: 512

## Example

Request input:

```json
{
  "version": "1.2.3",
  "range": "^1.0.0"
}
```

Response:

```json
{
  "result": {
    "satisfies": true
  }
}
```

## How to call it

### MCP

Connect `https://computefirst.net/mcp` ([setup](/docs#connect)), then call `execute` with:

```json
{
  "id": "semver-satisfies",
  "version": "1.0.0",
  "input": {
    "version": "1.2.3",
    "range": "^1.0.0"
  }
}
```

### HTTP (no key)

```sh
curl -X POST https://computefirst.net/v1/tools/semver-satisfies/versions/1.0.0/execute \
  -H "Content-Type: application/json" \
  -d '{"version":"1.2.3","range":"^1.0.0"}'
```

The machine-readable contract is at [/v1/tools/semver-satisfies/versions/1.0.0](/v1/tools/semver-satisfies/versions/1.0.0).

### CLI

```sh
node cli.mjs run semver-satisfies 1.0.0 --input input.json --base-url https://computefirst.net
```

Get the client at [/clients/cli/](/clients/cli/).

## Related tools

- [SemVer filter](/tools/semver-filter): Filter strict versions that satisfy a range, preserving original order and strings.
- [SemVer compare](/tools/semver-compare): Compare two strict Semantic Versions by precedence.
- [SemVer sort](/tools/semver-sort): Sort strict valid Semantic Versions in ascending precedence order.
- [.env merge](/tools/env-merge): Overlay two dotenv-subset documents, replacing left values and appending right-only keys.
- [.env parse](/tools/env-parse): Parse a strict dotenv-subset document into ordered key/value entries.
- [.env stringify](/tools/env-stringify): Serialize unique env key/value entries to a canonical dotenv-subset document.
