# SemVer filter

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

Filter strict versions that satisfy a range, preserving original order and strings.

**Use when you need to: semver filter · filter versions by range · select matching semver.**

## Supported

- semver filter
- filter versions by range
- select matching semver

## Not supported

- sort
- loose
- npm lookup

## Behavior

- Each versions item must be a strict SemVer. range as semver-satisfies.
- Return the original strings that satisfy, original order, no sort.
- include_prerelease defaults false. Max 5000 versions.

## Input

- `versions` (array of string, required): max items 5000; each min length 1; each max length 256
- `range` (string, required): min length 1; max length 512
- `include_prerelease` (boolean, optional)

## Output

- `versions` (array of string, required)

## Limits

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

## Example

Request input:

```json
{
  "versions": [
    "1.0.0",
    "2.0.0",
    "1.5.0"
  ],
  "range": "^1.0.0"
}
```

Response:

```json
{
  "result": {
    "versions": [
      "1.0.0",
      "1.5.0"
    ]
  }
}
```

## How to call it

### MCP

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

```json
{
  "id": "semver-filter",
  "version": "1.0.0",
  "input": {
    "versions": [
      "1.0.0",
      "2.0.0",
      "1.5.0"
    ],
    "range": "^1.0.0"
  }
}
```

### HTTP (no key)

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

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

### CLI

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

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

## Related tools

- [SemVer sort](/tools/semver-sort): Sort strict valid Semantic Versions in ascending precedence order.
- [SemVer compare](/tools/semver-compare): Compare two strict Semantic Versions by precedence.
- [SemVer satisfies](/tools/semver-satisfies): Test whether a strict version satisfies a semver range.
- [.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.
