# shortfree (oci · ghcr.io/maximilianfeix/shortfree)

Live domain availability checks plus every free 1-4 character .com .net .de .ai .io .dev .app .tools

- Trust score: 43/100 (low)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-06

## Components

- oci · `ghcr.io/maximilianfeix/shortfree`: 43/100 (this document), [markdown](https://verifymcp.io/servers/maximilianfeix-shortfree/ghcr-io-maximilianfeix-shortfree.md), [page](https://verifymcp.io/servers/maximilianfeix-shortfree/ghcr-io-maximilianfeix-shortfree)

## Channel facts

- Registry: `oci`
- Package: `ghcr.io/maximilianfeix/shortfree`
- Version: `0.1.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-06.

- **Supply Chain Security**: 0/100
  - No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.
  - Known CVEs could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.
  - Install-script risk not yet assessed.
  - Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.
- **Provenance & Transparency**: 48/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 10 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 58/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1885 tokens (~471/item across 4 items; 4 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 33/100
  - Stability observed for 10 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 4 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 5 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### How do I install the shortfree MCP server?

shortfree runs locally as a container image, launched with docker run --rm -i ghcr.io/maximilianfeix/shortfree:0.1.0. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add maximilianfeix-shortfree -- docker run --rm -i ghcr.io/maximilianfeix/shortfree:0.1.0
```

### Cursor

```json
{
  "mcpServers": {
    "maximilianfeix-shortfree": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/maximilianfeix/shortfree:0.1.0"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "maximilianfeix-shortfree": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/maximilianfeix/shortfree:0.1.0"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add maximilianfeix-shortfree -- docker run --rm -i ghcr.io/maximilianfeix/shortfree:0.1.0
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "maximilianfeix-shortfree": {
      "type": "local",
      "command": [
        "docker",
        "run",
        "--rm",
        "-i",
        "ghcr.io/maximilianfeix/shortfree:0.1.0"
      ],
      "enabled": true
    }
  }
}
```

### Hermes

```yaml
mcp_servers:
  maximilianfeix-shortfree:
    command: "docker"
    args: ["run", "--rm", "-i", "ghcr.io/maximilianfeix/shortfree:0.1.0"]
```

### Netclaw

```json
{
  "McpServers": {
    "maximilianfeix-shortfree": {
      "Transport": "stdio",
      "Command": "docker",
      "Arguments": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/maximilianfeix/shortfree:0.1.0"
      ]
    }
  }
}
```

### Other

```json
{
  "mcpServers": {
    "maximilianfeix-shortfree": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/maximilianfeix/shortfree:0.1.0"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-06 (score 43, +1)

No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-04 (score 42, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-02 (score 41, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-31 (score 40, +1)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-29 (score 39, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-27 (score 38)

First indexed and scored.

## MCP tools (4)

### `check_domains` (~424 tokens)

Live availability check for up to 50 domains (any length, any TLD, e.g. "q7.tools", "acme.io"). For each domain it asks the TLD's own authoritative name servers (NS query, no resolver cache) and the registry's RDAP service, so the answer is current to the second, unlike the daily snapshot used by find_free_domains. Returns per domain: dns (free|taken|unknown), rdap (available = 404|registered|dropping|error, "-" if the TLD has no RDAP endpoint in shortfree), verdict ("not registered (RDAP 404)"; "taken"; "dropping (redemption or pending delete)"; "not in DNS (...)" when only DNS answered), registration (not_registered|registered|dropping|not_delegated|unknown|invalid), registrable (no|unconfirmed: RDAP cannot see registry reservations, premium prices or eligibility rules, so a not registered name is never confirmed as buyable), free (true only for registration not_registered) and premium_likely (1-2 character names outside .com/.net/.de, which registries usually reserve or sell at premium prices although RDAP reports them as unregistered). RDAP works for every TLD in the snapshot (.com .net .de .ai .io .dev .app .tools .co .org .xyz .so .to .cc .tv .fm .is .ly .run .inc); other TLDs get a DNS-only verdict. Names shorter than a registry's minimum length are reported as not registrable. Only ASCII names (a-z, 0-9, hyphen) are supported: internationalized names and xn-- labels are rejected as invalid. Use this before telling a user a domain is unregistered. Takes about 1 s per domain (rate-limited per registry).

Input parameters:

- `domains` (null|array, required): 1-50 domains like q7.tools or acme.io (label.tld, no subdomains)

Output parameters:

- `checked_at` (string)
- `results` (null|array)

### `domain_stats` (~195 tokens)

Counts of short domains per TLD and label length (1-4) from the latest daily scan: rdap_verified (not registered per RDAP), unverified (not in DNS, no current RDAP answer; stale = part of it whose RDAP answer expired), dropping (in redemption/pending delete), dns_only_4char (4 character names not in the zone), dns_unknown (no DNS answer: not checked), unscanned_4char (4 character names in shards never swept: not checked, not taken), valid_names (how many LDH labels of that length exist) and coverage (complete, partial, stale or held). Use it to answer "how many 3 letter .io domains are left?" or to pick a TLD with the most free names before searching. Optional tld filter.

Input parameters:

- `tld` (string): TLD or comma-separated TLDs; empty = all

Output parameters:

- `data_updated` (string)
- `tlds` (null|array)

### `find_free_domains` (~500 tokens)

Search the daily snapshot of unregistered 1-4 character domains on .com .net .de .ai .io .dev .app .tools .co .org .xyz .so .to .cc .tv .fm .is .ly .run .inc. Filters: tld (one or comma-separated, default all), length (1-4, default all, shortest first), kind (letters|digits|mixed|any), contains, starts_with, include_dropping. Each result has a status: rdap_verified (1-3 chars, registry RDAP answered 404 = not registered within the last 14 days; registrability not confirmed), unverified (1-3 chars, not in DNS, no current RDAP answer; stale=true when the last answer expired), dns_only (4 chars: not in the zone, never RDAP-checked; may be registered without name servers) or dropping (registered, in redemption/pending delete, with phase and RDAP expiration date, which is not a drop date; only with include_dropping). contains and starts_with accept a-z, 0-9 and hyphen only (ASCII scope, no IDN). Results are ordered by length, then status, then TLD (com net de ai io dev app tools co org xyz so to cc tv fm is ly run inc), then a-z before 0-9. total_matches counts all hits even when limit (default 100, max 1000) cuts the list. The snapshot is up to a day old: confirm picks with check_domains.

Input parameters:

- `contains` (string): only labels that contain this text, e.g. ai
- `include_dropping` (boolean): also return registered 1-3 character names in redemption or pending delete (status dropping)
- `kind` (string): letters (a-z only), digits (0-9 only), mixed (letters+digits or hyphen) or any (default)
- `length` (integer): exact label length 1-4, not counting the TLD. 0 = all lengths
- `limit` (integer): maximum results, default 100, max 1000
- `starts_with` (string): only labels that start with this text
- `tld` (string): TLD without or with dot, comma-separated for several (io,dev). Empty = all scanned TLDs

Output parameters:

- `data_updated` (string)
- `domains` (null|array)
- `notes` (null|array)
- `returned` (integer)
- `total_matches` (integer)

### `suggest_domains` (~451 tokens)

Turn a word, brand or project idea into short (max 4 character) domain names that are free on .com .net .de .ai .io .dev .app .tools .co .org .xyz .so .to .cc .tv .fm .is .ly .run .inc, best first. Deterministic heuristic, scored: the word itself if <= 4 chars (100), initials of a multi-word idea (95), a short word of the idea (90), initials of the first two words (85), first 4/3/2 letters (80/75/70), consonant skeleton without vowels like flickr -> flckr (78/73), two-word blends 2+2, 1+3, 3+1 letters (72/68), then startup patterns on those bases: add a digit 1-9 (55-47), add x (50), add hq or ly (48), go/my prefix (45). Stop words (the, of, and, ...) are dropped, accents transliterated, camelCase split. Each candidate is looked up in the daily snapshot per TLD; 1-2 character names on TLDs other than .com/.net/.de lose 15 points because they are usually premium. Ties go to the TLD order given in tlds (default com net de ai io dev app tools co org xyz so to cc tv fm is ly run inc), then to RDAP-verified over unverified/dns_only. Longer names are out of scope: check those with check_domains. Confirm favourites with check_domains before registering.

Input parameters:

- `idea` (string, required): a word, brand or project idea, e.g. Flicker or deep mind labs
- `limit` (integer): maximum suggestions, default 20, max 100
- `max_length` (integer): longest label to suggest, 1-4, default 4
- `tlds` (null|array): TLDs to consider in order of preference, e.g. [io, dev]. Empty = all scanned TLDs in the default order (com net de ai io ...)

Output parameters:

- `candidates_considered` (integer)
- `data_updated` (string)
- `idea` (string)
- `notes` (null|array)
- `suggestions` (null|array)

## Diagnostics

Captured diagnostic sections: Provenance. The full working is on the page: https://verifymcp.io/servers/maximilianfeix-shortfree/ghcr-io-maximilianfeix-shortfree#diagnostics

## Score history

- 2026-11-06: 43
- 2026-11-05: 42
- 2026-11-04: 42
- 2026-11-03: 41
- 2026-11-02: 41
- 2026-11-01: 40
- 2026-10-31: 40
- 2026-10-30: 39
- 2026-10-29: 39
- 2026-10-28: 38
- 2026-10-27: 38

## Common questions

### What is the shortfree MCP server?

shortfree is an MCP server listed in the public MCP registry as io.github.maximilianfeix/shortfree. Live domain availability checks plus every free 1-4 character .com .net .de .ai .io .dev .app .tools. This page covers its container image (ghcr.io/maximilianfeix/shortfree).

### Is the shortfree MCP server safe to use?

shortfree scores 43 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the shortfree MCP server expose?

shortfree exposes 4 tools: check_domains, domain_stats, find_free_domains, suggest_domains. Their descriptions and schemas cost roughly 1,570 tokens of context every time the server is loaded.

### Is the shortfree MCP server still maintained?

shortfree is still listed as active in the MCP registry. We last reached this channel on 6 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the shortfree MCP server under?

shortfree declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

### What did VerifyMCP test on the shortfree MCP server?

VerifyMCP ran 12 checks on shortfree, covering Source repository, Provenance, License, Maintenance and 8 more. 4 items could not be completed, a gap on our side rather than a finding about shortfree: Malware scan, Known CVEs, Install scripts and Dependency health. One category scores 0 for that reason, because we only credit what we can confirm. Endpoint Security and Transport & Reachability do not apply to a container image, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- GitHub Container Registry: https://ghcr.io/maximilianfeix/shortfree
- Repository: https://github.com/maximilianfeix/shortfree
- Website: https://maximilianfeix.github.io/shortfree/
- Changelog RSS feed: https://verifymcp.io/servers/maximilianfeix-shortfree/ghcr-io-maximilianfeix-shortfree.xml
- Changelog JSON feed: https://verifymcp.io/servers/maximilianfeix-shortfree/ghcr-io-maximilianfeix-shortfree/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/maximilianfeix-shortfree/ghcr-io-maximilianfeix-shortfree.json
- HTML version of this page: https://verifymcp.io/servers/maximilianfeix-shortfree/ghcr-io-maximilianfeix-shortfree
