Skip to content

whois mcp server changelog

io.github.cyanheads/whois-mcp-server

5 changes recorded. MCP Harbor re-reads this listing from the official registry every six hours and asks the live server what it exposes, and keeps what changed between one look and the next.

  • server.json 1 field changed
    version
    0.2.1 0.3.0

  • AGENTS.md +7 −2

    https://raw.githubusercontent.com/cyanheads/whois-mcp-server/HEAD/AGENTS.md

    − **Version:** 0.2.0− **Zod:** ^4.6.5+ **Version:** 0.2.1+ **Zod:** ^4.6.7+     routing/+       routing-service.ts               # Optional RIPEstat RIS routing observations+       _literal.ts                       # Literal provider text for Markdown presentation+ Primary domain objects must carry matching identity (case/IDNA equivalent), reject error envelopes and explicitly wrong classes, and accept sparse name-only records. Invalid objects are `rdap_invalid_domain_response`, not registration evidence. NXDOMAIN retains supported preceding aliases; PTR remains terminal on NXDOMAIN. Dossier null MX stays `0 .` with an explicit no-mail label and no provider. Provider strings use literal fences where Markdown would alter punctuation/spacing; structured stri+ `whois_lookup_ip` optionally accepts `include_routing: true`: one RIPEstat Network Info request, after successful primary RDAP and parallel with PTR, under one fixed 3000 ms deadline covering headers and body, with no retries or ASN-detail fan-out. Nested routing is separately attributed RIS eight-hour-dump observation, never registry ownership; found, empty and failed outcomes remain distinct. Omitted/false adds no routing request. Optional failure retains primary data; cancellation propagates.

  • server.json 1 field changed
    version
    0.2.0 0.2.1
  • AGENTS.md +15 −9

    https://raw.githubusercontent.com/cyanheads/whois-mcp-server/HEAD/AGENTS.md

    − **Version:** 0.1.6− **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.13.10`− **MCP SDK:** `@modelcontextprotocol/server` ^2.1.0−   description: 'Look up a domain\'s registration record — registrar, created/expiry dates, nameservers, EPP status codes, DNSSEC flag, and registrant org (where not privacy-redacted). RDAP-first via IANA auto-bootstrap.',−       when: 'RDAP returned 404 — domain not registered',−       recovery: 'Use whois_check_availability to confirm the domain is available.' },−       whois-check-availability.tool.ts  # Domain availability check (RDAP 404 = available)−       _fqdn.ts                          # Shared FQDN validation helper− **Every release goes through a release PR, straight-through** — `git-wrapup`'s "Release PR mode", mode `straight-through`. One run: `git-wrapup` lands the commit stack on `release/<version>`, pushes it, and opens the PR (title = the release commit subject, body = the changelog entry plus a gates section); `release-and-publish` then fast-forwards `main` locally with `git merge --ff-only`, creates the tag on `main`'s tip, pushes `main` and the tag, deletes the branch, and publishes. A caller's bri+ **Version:** 0.2.0+ **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.13.15`+ **MCP SDK:** `@modelcontextprotocol/server` ^2.3.1+   description: 'Look up registry registration data with provider DNSSEC and privacy evidence. Public registrant org is independent of contact redaction.',+       when: 'RDAP returned 404 — no registry object found',+       recovery: 'Use whois_check_availability for record status; no eligibility guarantee is implied.' },+ Call `getServerConfig()` in `createApp()`'s `setup()` before initializing services so invalid environment values fail startup before the transport binds.+       whois-check-availability.tool.ts  # Registry record status; no eligibility guarantee+       _fqdn.ts                          # Shared registration/DNS/ASN/IP syntax patterns+ ## Lookup Contracts+ Registry object absence never establishes registration eligibility. `whois_check_availability` reports `registration_status: registered | not_found | unknown`, with `available: false` only for a found record and null otherwise. ICANN-only suffix recognition rejects known subdomains without silently querying their parent; private suffixes do not create registry boundaries.+ Registrant org comes from jCard `org`; personal `fn` is not organization data. Explicit registrant redaction and missing evidence yield true and null respectively; public org survives independently. DNSSEC preserves provider `delegationSigned`, with missing/no-coverage evidence null. Domain and dossier formatters render unknown states explicitly. Optional `include_registrar` detail stays nested, never overriding registry authority; one referral, no retry/recursion, five guarded redirects and one+ DNS owner syntax separately permits underscores and one normalized root dot. Failure RCODEs and truncated replies never become empty successes; CAA does not repeat NextDNS as fallback, and cancellation starts no further requests. TXT uses complete literal fences, not an injection boundary. PTR selects only reachable owner-matched records, allows five aliases under one DNS deadline, and discloses found/not_found/failed plus failure detail. IP output retains all ordered `cidrs`, with scalar `cidr`+ Serialized patterns are the syntax gate (`InvalidParams`/`invalid_arguments`); IP/ASN semantic parsing and exclusions retain typed reasons. Preserve existing ASN whitespace/plus/zero-padding and CIDR padding without arbitrary input ceilings. See `docs/design.md` for the domain decisions.+ **Every release goes through a release PR, straight-through** — `git-wrapup`'s "Release PR mode", mode `straight-through`. One run: `git-wrapup` lands the commit stack on `release/<version>`, pushes it, and opens the PR (title = the release commit subject, body = the release digest: theme line, `## Changes`, `## Gates`, changelog link last); `release-and-publish` then fast-forwards `main` locally with `git merge --ff-only`, creates the tag on `main`'s tip, pushes `main` and the tag, deletes the 

  • server.json 2 fields changed
    description
    Domain registration, availability, DNS records, and IP/ASN resolution via RDAP and DNS-over-HTTPS. Domain registry records and status, DNS records, and IP/ASN resolution over RDAP and DoH.
    version
    0.1.6 0.2.0