Skip to main content
Glama
README.md
# domaincheck

Before you build on a name, check the name. domaincheck wraps
the public Just Domain MCP service in a local stdio server and
a small CLI, with three read-only lookups:

- `search_domains` — is the domain available, and what does
  one full registration term cost (plus the renewal price and,
  for available names, a checkout URL)?
- `check_domain_transfer` — for a domain you already own
  elsewhere: what would block a transfer in, would DNS survive
  the move, and what is the full-term transfer price?
- `check_trademark` — one proposed name against the US, EU and
  Israeli trademark registers read by Open Trademarks.

Prices are term totals, never per-year rates — on `.ai` the
term is two years, so a quoted `.ai` figure covers two years.
Nothing here places an order, files anything, or takes a
payment: registration and transfer happen only in a browser
on justdomain.ai, and a trademark register search is not
legal advice and never clears a name.

## How it works

Each call is forwarded as a JSON-RPC `tools/call` POST to
`https://mcp.justdomain.ai/` (no authentication), and the
upstream's answer — SSE-framed, first `data:` line — is
returned unchanged. Set `JUSTDOMAIN_MCP_URL` to use a
different endpoint.

## CLI

```bash
npx @reneturcios/domaincheck search acme.com acme.io
npx @reneturcios/domaincheck transfer acme.com
npx @reneturcios/domaincheck trademark "Acme Roasters"
npx @reneturcios/domaincheck --version
```

Output is the upstream's result as JSON. Exit codes: `0` on
success, `1` on a runtime error (including an upstream
failure), `2` on a usage error.

## MCP server

```bash
npx -y @reneturcios/domaincheck mcp
```

MCP client config:

```json
{
  "mcpServers": {
    "domaincheck": {
      "command": "npx",
      "args": ["-y", "@reneturcios/domaincheck", "mcp"]
    }
  }
}
```

### Tools

- `search_domains` — availability and pricing lookup.
  - `domains` (array of strings, preferred) — 1-200
    fully-qualified names, each including its TLD
  - `query` (string, fallback) — free text; names without a
    TLD expand to com/io/ai/co/net. Ignored when `domains` is
    supplied. One of the two must be given; the server errors
    honestly when both are absent.
- `check_domain_transfer` — transfer precheck for one domain.
  - `domain` (string, required) — one fully-qualified domain
    owned at another registrar
- `check_trademark` — one name against the trademark
  registers.
  - `name` (string, required) — the proposed name, 2-120
    characters
  - `goods` (string, optional) — what the name is for
  - `classes` (array of integers, optional) — Nice classes,
    each 1-45
  - `registers` (array of `us`/`eu`/`il`, optional) — all
    three when left out

## Docker

```bash
docker run -i ghcr.io/cloudcorprecords/domaincheck
docker run --rm ghcr.io/cloudcorprecords/domaincheck search acme.com
```

## Development

```bash
npm install
npm run build   # tsc -> dist/
npm test        # tsx --test test/*.test.ts (fake fetch, no network)
npm run dev     # run the CLI from source
```

## License

MIT — Copyright (c) 2026 Rene Turcios