このMCPでできること
Checks domain availability, pricing, and eligibility for domain transfers.
ツール
入力スキーマ
{'type': 'object', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'maxLength': 253, 'minLength': 3, 'description': "One fully-qualified domain the user already owns somewhere else, including its TLD (e.g. 'acme.com'). Not a bare label and not a list: this reads a third-party registry per call."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['domain', 'tld', 'supported', 'ready', 'checked_at', 'registrar', 'dns_continuity', 'source', 'transfer_url', 'next_step', 'auth_code_policy'], 'properties': {'tld': {'type': 'string'}, 'price': {'anyOf': [{'type': 'object', 'required': ['amount', 'term_years', 'term_note'], 'properties': {'amount': {'type': 'string', 'description': "Decimal string, e.g. '128.00'. The TOTAL for `term_years` years, not a rate. Quote it as it is; do not divide it."}, 'currency': {'type': 'string', 'default': 'USD'}, 'term_note': {'type': 'string', 'description': 'The sentence that must travel with the amount. Quote it beside the price whenever the term is longer than a year.'}, 'is_premium': {'type': 'boolean', 'default': False}, 'term_years': {'type': 'integer', 'description': 'Years this transfer adds and charges. 1 on most endings; 2 on .ai, whose registry sells and transfers in two-year units.'}, 'expected_new_expiry': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "ISO date. A PROJECTION - the registry's current expiry plus the term - not a date any registry has confirmed. Present it as expected, never as agreed or guaranteed."}}}, {'type': 'null'}], 'default': None, 'description': "Null when the registrar's price list could not be read. Never estimate a domain transfer price yourself."}, 'ready': {'type': 'boolean', 'description': 'TRUE only when `blockers` is empty. It is a convenience over that list and can never disagree with it: anything we could not establish becomes a blocker, so a registry timeout reads as not ready rather than as a green light.'}, 'domain': {'type': 'string'}, 'source': {'type': 'object', 'required': ['rdap', 'registrar_pricing'], 'properties': {'rdap': {'type': 'boolean', 'description': "Did the registry's public record answer? FALSE means nothing about this domain was established - report that, and never report the domain as ready."}, 'registrar_pricing': {'type': 'boolean', 'description': "Did our registrar's price list answer? FALSE means the price is missing because we could not read it, not because the transfer is free."}}, 'description': 'Which public sources actually answered on this request.'}, 'blockers': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'detail'], 'properties': {'code': {'type': 'string', 'description': "Stable code: 'locked', 'within_60_days', 'redemption', 'expired', 'tld_unsupported', 'premium', 'not_registered', 'pending_transfer', 'pending_delete', or 'unknown'. If you do not recognise a code, render `detail` verbatim - never drop a blocker you have no wording for."}, 'detail': {'type': 'string', 'description': 'One plain sentence, safe to show the user as-is.'}, 'eligible_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'ISO-8601 instant this blocker clears, set only where that is a fact the registry gave us (the end of the 60-day hold). Never a guess at when somebody will unlock a domain.'}}}, 'description': 'What stands between this domain and a transfer, most blocking first. An EMPTY list is the only thing that means ready.'}, 'next_step': {'type': 'string', 'description': "One sentence you can say to the user about what happens next, already matched to this domain's state."}, 'registrar': {'type': 'object', 'properties': {'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'iana_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'description': 'Who sponsors the domain today, as the REGISTRY reports it.'}, 'supported': {'type': 'boolean', 'description': 'Whether Just Domain can accept this ENDING at all. Says nothing about this particular domain - read `blockers` for that.'}, 'checked_at': {'type': 'string', 'description': 'ISO-8601 instant these facts were read.'}, 'nameservers': {'type': 'array', 'items': {'type': 'string'}}, 'transfer_url': {'type': 'string', 'description': 'The page on justdomain.ai a PERSON opens in a browser to take this further. The handoff out of the chat.'}, 'dns_continuity': {'type': 'object', 'required': ['case', 'detail'], 'properties': {'case': {'type': 'string', 'description': "'independent' - the nameservers belong to a DNS provider, so a transfer does not touch them. 'losing_registrar' - they are the current registrar's own nameservers, which is the case that breaks a site or mail after the move. 'unknown' - we do not recognise them, said plainly rather than guessed."}, 'detail': {'type': 'string'}, 'provider': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'description': "Does the domain's DNS keep working after the move?\n\nA transfer moves sponsorship, not DNS, so the current delegation decides\nwhether the site and the mail survive it."}, 'auth_code_policy': {'type': 'string', 'description': 'Constant. The rule about authorization (EPP) codes, restated in the payload so it travels with the answer. Follow it.'}}}
入力スキーマ
{'type': 'object', 'properties': {'query': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Free-text fallback when exact FQDNs aren't known: one or more names, comma- or space-separated. Names without a TLD are expanded to popular TLDs (com/io/ai/co/net). Ignored when `domains` is provided."}, 'domains': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}, 'maxItems': 200, 'minItems': 1}, {'type': 'null'}], 'default': None, 'description': "Fully-qualified domains to check, e.g. ['acme.com', 'acme.io', 'acme.ai']. Each entry must include the TLD. Maximum 200 per request. Preferred over `query`."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['domains', 'results'], 'properties': {'error': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Set when the search could not be completed (e.g. invalid query, provider failure).'}, 'domains': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The exact domains requested by the caller, echoed back.'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['fqdn', 'name', 'tld', 'available', 'status'], 'properties': {'tld': {'type': 'string'}, 'fqdn': {'type': 'string'}, 'name': {'type': 'string'}, 'price': {'anyOf': [{'type': 'object', 'required': ['amount_minor', 'currency', 'formatted'], 'properties': {'currency': {'type': 'string', 'maxLength': 3, 'minLength': 3, 'description': 'ISO-4217 currency code.'}, 'formatted': {'type': 'string', 'description': "Human-readable price, e.g. '$12.99'."}, 'amount_minor': {'type': 'integer', 'description': 'Amount in the smallest currency unit (e.g. cents).'}}}, {'type': 'null'}], 'default': None, 'description': 'Registration price: the total for ONE full registration term of this ending, not a per-year rate. One year on most endings; two years on .ai, whose registry mandates a two-year term.'}, 'status': {'type': 'string', 'description': "Raw provider status, e.g. 'free', 'active', 'premium'."}, 'premium': {'type': 'boolean', 'default': False}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'available': {'type': 'boolean'}, 'term_years': {'type': 'integer', 'default': 1, 'description': 'Length in years of ONE registration term for this ending, and therefore the period `price` and `renewal_price` each cover. 1 on most endings; 2 on .ai, whose registry mandates a two-year term with no one-year option. Read this before describing any price as annual.'}, 'checkout_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "URL on the Just Domain website where the user completes payment. Set for available domains we can actually register; null for unavailable ones, for premium names (the checkout API refuses them), and for endings whose registry requires registrant data we cannot supply yet. The MCP tool handler fills this in after the bare service call so the UI widget's Buy button can open checkout directly in one click."}, 'renewal_price': {'anyOf': [{'type': 'object', 'required': ['amount_minor', 'currency', 'formatted'], 'properties': {'currency': {'type': 'string', 'maxLength': 3, 'minLength': 3, 'description': 'ISO-4217 currency code.'}, 'formatted': {'type': 'string', 'description': "Human-readable price, e.g. '$12.99'."}, 'amount_minor': {'type': 'integer', 'description': 'Amount in the smallest currency unit (e.g. cents).'}}}, {'type': 'null'}], 'default': None, 'description': "Renewal price: the total for ONE further registration term, on the same basis as `price`. What a later term would cost at today's rate, not a figure anyone has been charged or quoted for a specific renewal. An owner renews, and turns auto-renew on or off, on their own dashboard at https://justdomain.ai/dashboard, which is the only authoritative source for one domain's renewal state."}, 'requires_additional_data': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': "Does this ending's registry demand registrant data beyond standard contact details - a nexus declaration, a national ID, a professional credential? TRI-STATE: true / false / null = we do not know. Just Domain cannot collect or submit that data yet, so a true (or unknown) value means the name is reported honestly but carries no `checkout_url`."}}}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'next_action': {'type': 'string', 'default': 'none', 'description': "An instruction for the assistant reading this response, or the string 'none' when there is nothing extra to do. It is set only when no requested domain and no alternative in this response can be registered through Just Domain. When it is not 'none', carry it out in this same turn before replying to the user; it is written to be executable as-is."}, 'alternatives': {'type': 'array', 'items': {'type': 'object', 'required': ['fqdn', 'name', 'tld', 'available', 'status'], 'properties': {'tld': {'type': 'string'}, 'fqdn': {'type': 'string'}, 'name': {'type': 'string'}, 'price': {'anyOf': [{'type': 'object', 'required': ['amount_minor', 'currency', 'formatted'], 'properties': {'currency': {'type': 'string', 'maxLength': 3, 'minLength': 3, 'description': 'ISO-4217 currency code.'}, 'formatted': {'type': 'string', 'description': "Human-readable price, e.g. '$12.99'."}, 'amount_minor': {'type': 'integer', 'description': 'Amount in the smallest currency unit (e.g. cents).'}}}, {'type': 'null'}], 'default': None, 'description': 'Registration price: the total for ONE full registration term of this ending, not a per-year rate. One year on most endings; two years on .ai, whose registry mandates a two-year term.'}, 'status': {'type': 'string', 'description': "Raw provider status, e.g. 'free', 'active', 'premium'."}, 'premium': {'type': 'boolean', 'default': False}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'available': {'type': 'boolean'}, 'term_years': {'type': 'integer', 'default': 1, 'description': 'Length in years of ONE registration term for this ending, and therefore the period `price` and `renewal_price` each cover. 1 on most endings; 2 on .ai, whose registry mandates a two-year term with no one-year option. Read this before describing any price as annual.'}, 'checkout_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "URL on the Just Domain website where the user completes payment. Set for available domains we can actually register; null for unavailable ones, for premium names (the checkout API refuses them), and for endings whose registry requires registrant data we cannot supply yet. The MCP tool handler fills this in after the bare service call so the UI widget's Buy button can open checkout directly in one click."}, 'renewal_price': {'anyOf': [{'type': 'object', 'required': ['amount_minor', 'currency', 'formatted'], 'properties': {'currency': {'type': 'string', 'maxLength': 3, 'minLength': 3, 'description': 'ISO-4217 currency code.'}, 'formatted': {'type': 'string', 'description': "Human-readable price, e.g. '$12.99'."}, 'amount_minor': {'type': 'integer', 'description': 'Amount in the smallest currency unit (e.g. cents).'}}}, {'type': 'null'}], 'default': None, 'description': "Renewal price: the total for ONE further registration term, on the same basis as `price`. What a later term would cost at today's rate, not a figure anyone has been charged or quoted for a specific renewal. An owner renews, and turns auto-renew on or off, on their own dashboard at https://justdomain.ai/dashboard, which is the only authoritative source for one domain's renewal state."}, 'requires_additional_data': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': "Does this ending's registry demand registrant data beyond standard contact details - a nexus declaration, a national ID, a professional credential? TRI-STATE: true / false / null = we do not know. Just Domain cannot collect or submit that data yet, so a true (or unknown) value means the name is reported honestly but carries no `checkout_url`."}}}, 'description': 'Available domains the caller did not ask about, offered only when every requested domain came back unavailable. Same label the caller typed, on a different ending; nothing is invented and nothing here duplicates a name in `results`. Every entry is available, non-premium and carries a `checkout_url`, so it can be offered to the user directly. Empty is not an error. It means one of three things: recovery is switched off for this deployment, or the search was not a dead end, or the same label is taken on the other endings too, which is the normal outcome for a common dictionary word. Do not tell the user that other endings were checked unless this list is non-empty. Do not re-check these; they were checked live in this same call.'}, 'error_message': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'component_hint': {'type': 'string', 'const': 'domain_search_results', 'default': 'domain_search_results'}}}
最近のツール変更
類似のMCPサーバー
BorealHost
Provides web hosting and infrastructure management, including site deployment, DNS, domains, containers, compute, backups, cachin…
Algenta MCP Server
Provides governed data onboarding, connector browsing, deterministic simulations, agent-run lifecycles, capability routing, deplo…
mcphost
Hosts MCP tools over HTTP and provides tenant billing, tool publishing and discovery, agent directories, inter-agent messaging, g…
Contabo (VPS) MCP Server
Provides tools to provision and manage Contabo VPS, bare metal, object storage, networks, DNS, snapshots, images, users, roles, a…
shiply
Publishes and manages web applications with SQL databases, serverless functions, domains, email tests, client intake, contracts, …
OSIR Domain Registrar
Manages domain registration and transfers, DNS, VPS instances, SSH keys, hosted email, account funding, and related infrastructur…
Fine Structure
Builds and hosts full-stack applications from prompts and supports agent communication through WhatsApp and email.
mcp
Provisions and manages cloud instances, networks, storage, databases, backups, VPNs, application deployments, and autocoding-agen…