Spaceship MCP propojuje vašeho AI asistenta (například Claude) s vaším účtem Spaceship. Díky tomu může asistent vaším jménem kontrolovat a registrovat domény, spravovat kontakty domén a číst nebo upravovat záznamy DNS — stačí se zeptat běžným jazykem a asistent zavolá správné nástroje.
Potřebujete účet Spaceship. Spaceship MCP je k dispozici na adrese https://mcp.spaceship.com/mcp.
Způsob připojení závisí na vašem AI asistentovi:
Claude (web a desktop) — otevřete Nastavení, zvolte Connectors, najděte Spaceship v adresáři konektorů a přidejte jej. Claude od Anthropic je v současnosti klient, u kterého jsme ověřili, že Spaceship MCP funguje.
NB: Přestože je registrace domén přes Spaceship MCP celkově plně podporována, tato možnost zatím není dostupná konkrétně prostřednictvím konektoru Claude. Vyhledávání, kontrola domén, správa kontaktů a správa DNS záznamů jsou již dostupné a ověřeně dnes s Claude fungují.
Ostatní MCP klienti — přidejte vzdálený MCP server a namiřte jej na https://mcp.spaceship.com/mcp. Ostatní klienti mohou fungovat, ale zatím jsme je neověřili.
Když se připojíte, budete vyzváni k přihlášení do Spaceship a k udělení přístupu asistenta k vašemu účtu. To, které nástroje může asistent používat, závisí na přístupu, který schválíte — pokud je nástroj odmítnut, protože přístup nebyl udělen, znovu se připojte a schvalte přístup, který potřebuje.
Nástroj: contacts_save
Co dělá: Uloží kontaktní údaje a získá ID kontaktu
Nástroj: contacts_get
Co dělá: Načte uložený kontakt podle jeho ID
Nástroj: contacts_list
Co dělá: Vypíše všechny uložené kontakty, abyste mohli jeden najít a znovu použít
Nástroj: domains_list
Co dělá: Vypíše vaše domény nebo vyhledá jednu doménu
Nástroj: domains_check_availability
Co dělá: Zkontroluje, zda jsou domény dostupné k registraci
Nástroj: domain_register
Co dělá: Zaregistruje (koupí) doménu — utrácí peníze
Nástroj: domain_set_contacts
Co dělá: Přiřadí kontakty k doméně, kterou vlastníte
Nástroj: domain_set_nameservers
Co dělá: Přepne doménu na základní nebo vlastní nameservery
Nástroj: dns_records_get
Co dělá: Čte DNS záznamy pro doménu
Nástroj: dns_records_save
Co dělá: Přidává DNS záznamy nebo aktualizuje jejich TTL
Nástroj: dns_records_delete
Co dělá: Maže DNS záznamy
Nástroj: async_operation_get
Co dělá: Kontroluje stav dlouhotrvající operace
Kdekoli je vyžadován kontakt (domain_register, domain_set_contacts), každá role přijímá contactId řetězec — nikdy ne vložené kontaktní údaje. Nejprve uložte kontakt pomocí contacts_save (které vrátí jeho contactId), a pak toto ID předejte tam, kde je kontakt přijímán. Neexistuje žádné automatické inline uložení; role nemůže přijmout celý objekt kontaktu. Můžete také znovu použít contactId z výsledku contacts_list nebo z výsledku domains_list, který jste přečetli.
contactId je řetězec o 27–32 alfanumerických znacích. Stačí jej předat zpět tam, kde je kontakt přijímán.
Několik nástrojů je navrženo tak, aby se používaly společně: výstup jednoho se stává vstupem dalšího.
contacts_save — uložte kontakty registranta, administrativní, technické a fakturační kontakty (pokud ještě nemáte jejich ID) a ponechte si vrácené contactId pro každý z nich. Kontakty musí existovat, než budete moci registrovat.
domains_check_availability — zkontrolujte požadovaný název nebo názvy. Pokračujte pouze tehdy, když je resultavailable. Každý dostupný název obsahuje cenu v USD price za registraci (standardní i prémiové), nebo priceUnavailableReason, když ji nelze určit, plus minRegisterPeriodInYears a maxRegisterPeriodInYears — období, které TLD umožňuje. Všimněte si, že price pokrývá price.pricedYears let, což je nejkratší období povolené TLD a není vždy 1.
domain_register (náhled) — zavolejte s nenastaveným confirmationToken, abyste získali status: confirmation_required, nový confirmationToken a price, která bude účtována. Nic se neúčtuje. Text odpovědi nástroje je úplné potvrzení — období, rozpis ceny, automatické obnovení, ochrana soukromí WHOIS, zdroj platby a kontakty registranta/administrativní/technické/fakturační — ukažte jej uživateli beze změny. Zvolte years mezi minRegisterPeriodInYears a maxRegisterPeriodInYears z kroku 2 — hodnota mimo rozsah je okamžitě odmítnuta. Každou roli kontaktu předejte jako contactId, které jste uložili v kroku 1.
domain_register (přijmout/odmítnout) — poté, co uživatel souhlasí, zavolejte znovu se zcela stejnými argumenty plus tímto confirmationToken a confirmationResponse: "accept". Tím se naúčtuje výchozí platební metoda účtu a akce je nevratná. Okamžitě vrátí status: pending a operationId — registrace se dokončí na pozadí. Chcete-li místo toho zrušit, zavolejte znovu se stejným confirmationToken a confirmationResponse: "decline" — nic se neúčtuje. Token po krátké době vyprší a je vázán na přesné argumenty a cenu, pro které byl vydán; pokud chybí, vypršel nebo už neodpovídá, volání místo chyby vrátí zcela nové potvrzení — nikdy neúčtování. Pokud cenu nelze určit při kterémkoli volání, nástroj místo toho vrátí status: price_unavailable a nic se neúčtuje.
async_operation_get — předejte operationId z kroku 4 pro kontrolu průběhu. Opakujte, dokud se status nezmění na success nebo failed.
contacts_save ──▶ domains_check_availability ──▶ domain_register ──▶ domain_register ──▶ async_operation_get(ID contactId) (dostupné? + cena + (token nenastaven: (token + (pending →min/maxRegisterPeriod) potvrzení, accept: operationId, success/failed)confirmationToken, pending)bez účtování)
domain_set_contacts — přiřaďte kontakty k doméně pomocí contactId (nejprve je v případě potřeby uložte pomocí contacts_save). To se dokončí okamžitě a vrátí verificationStatus: verification znamená, že registrant musí potvrdit svou e-mailovou adresu, než se změna plně projeví (je mu odeslán e-mail), success znamená, že je již potvrzena, a null znamená, že pro tuto doménu není potvrzení vyžadováno.
domains_list — najděte doménu a zobrazte její aktuální nameservers ({ provider, hosts }).
domain_set_nameservers — přepněte ji na výchozí nameservery Spaceship pomocí provider: "basic" (bez hosts), nebo ji namiřte na vlastní pomocí provider: "custom" a seznamu 2–12 hosts. Vrátí výsledné { provider, hosts } a následné domains_list změnu zobrazí. Opětovné použití stavu, ve kterém už doména je, vrátí validační chybu namísto no-op — považujte to za očekávané, nikoli za selhání vyžadující opakování.
domains_list — najděte doménu, kterou chcete spravovat (nebo předejte její název přímo, pokud jej znáte).
dns_records_get — načtěte aktuální záznamy pro doménu.
dns_records_save nebo dns_records_delete — přidejte, aktualizujte nebo odeberte záznamy. Záznamy vrácené nástrojem dns_records_get mají stejnou strukturu, jakou přijímají nástroje pro uložení a odstranění (odstranění pouze vynechává ttl), takže asistent může číst, upravovat a znovu zapisovat. Porovnávání nerozlišuje velikost písmen s výjimkou TXT záznamů, které velikost písmen rozlišují.
domains_list — procházejte stránkami všechny své domény s řazením nebo načtěte jednu doménu podle názvu. Každá doména obsahuje datum vypršení platnosti, nastavení automatického obnovení, stav, nameservery, ochranu soukromí a přiřazená ID kontaktů.
contacts_list — procházejte stránkami všechny kontakty uložené ve vašem účtu, abyste našli a znovu použili existující kontakt (podle jeho ID kontaktu) místo vytváření duplikátu.
contacts_get — vyhledejte podrobnosti za jakýmkoli ID kontaktu, které vidíte u domény nebo ve výsledku contacts_list.
Každý nástroj vrací svůj výsledek jako strukturovaný JSON. Dlouhotrvající operace (aktuálně pouze domain_register) vracejí odkaz na operaci pro dotazování pomocí async_operation_get; všechny ostatní nástroje se dokončí okamžitě.
Kontakty jsou osoby nebo organizace připojené k registraci domény (registrant, administrativní, technický, fakturační kontakt). Na kontakt se všude odkazuje pomocí jeho ID kontaktu — neprůhledného řetězce.
contacts_save — Uložit kontaktUloží kontaktní údaje a vrátí vygenerované ID kontaktu. Validace některých polí (například stateProvince a postalCode) závisí na vybrané zemi.
Parametr: firstName
Povinné: Ano
Typ a omezení: Řetězec, 1–64 znaků. Může obsahovat spojovníky a apostrofy.
Parametr: lastName
Povinné: Ano
Typ a omezení: Řetězec, 1–64 znaků. Může obsahovat spojovníky a apostrofy.
Parametr: email
Povinné: Ano
Typ a omezení: Platná e-mailová adresa, max. 254 znaků.
Parametr: address1
Povinné: Ano
Typ a omezení: Řádek adresy 1. Řetězec, 1–128 znaků.
Parametr: city
Povinné: Ano
Typ a omezení: Řetězec, 1–64 znaků.
Parametr: country
Povinné: Ano
Typ a omezení: Dvoupísmenný kód země (ISO 3166-1 alpha-2), např. US.
Parametr: phone
Povinné: Ano
Typ a omezení: Mezinárodní formát +CountryCode.Number, např. +1.2025551234. Max. 32 znaků.
Parametr: organization
Povinné: Ne
Typ a omezení: Název organizace/společnosti. 1–128 znaků.
Parametr: address2
Povinné: Ne
Typ a omezení: Řádek adresy 2. 1–128 znaků.
Parametr: stateProvince
Povinné: Ne
Typ a omezení: Název státu/provincie, 1–64 znaků. Může být vyžadován v závislosti na zemi.
Parametr: postalCode
Povinné: Ne
Typ a omezení: 1–16 znaků. Může být vyžadováno v závislosti na zemi.
Parametr: phoneExt
Povinné: Ne
Typ a omezení: Telefonní linka, 1–16 znaků.
Parametr: fax
Povinné: Ne
Typ a omezení: Faxové číslo, stejný formát +CountryCode.Number, max. 32 znaků.
Parametr: faxExt
Povinné: Ne
Typ a omezení: Přípona faxu, 1–16 znaků.
Parametr: taxNumber
Povinné: Ne
Typ a omezení: Daňové číslo, 1–32 znaků.
Vrací
{ "contactId": "..." }
contactId (27–32 alfanumerických znaků) je to, co předáváte do domain_register, domain_set_contacts a contacts_get.
contacts_get — Získat kontaktNačte podrobnosti uloženého kontaktu podle jeho ID kontaktu. ID kontaktů pocházejí z contacts_save, contacts_list nebo z pole contacts ve výsledcích domains_list.
Parametr: contactId
Povinné: Ano
Typ a omezení: ID kontaktu, 27–32 alfanumerických znaků.
Vrací — { contact } s:
Pole: firstName, lastName, email, address1, city, country, phone, postalCode
Typ: Řetězec
Pole: organization, address2, stateProvince, phoneExt, fax, faxExt, taxNumber
Typ: Řetězec nebo null
contacts_list — Vypsat kontaktyVypíše všechny kontakty uložené pod vaším účtem, takže můžete najít a znovu použít existující kontakt (podle jeho ID kontaktu) místo vytváření duplikátu nebo procházení svých domén. Seznam je stránkovaný a řaditelný, v souladu s domains_list.
Parametr: take
Povinné: Ne
Typ a omezení: Položek na stránku, 1–100. Výchozí hodnota 10.
Parametr: skip
Povinné: Ne
Typ a omezení: Položky k přeskočení, 0 nebo více. Výchozí hodnota 0.
Parametr: orderBy
Povinné: Ne
Typ a omezení: Až 8 klíčů řazení: name, email, organization; pro sestupné řazení přidejte předponu - (např. -name).
Vrací — { items, total } kde total je počet jedinečných kontaktů na účtu (bez duplicit podle ID kontaktu, nikoli velikost stránky) a každá položka obsahuje dostatek informací k rozlišení kontaktů bez následného volání. Pokud má účet duplicitní záznamy pro stejné ID kontaktu, jsou sloučeny do jednoho, takže total počítá odlišné kontakty namísto nezpracovaných řádků na straně serveru:
Pole: contactId
Typ: Řetězec (27–32 alfanumerických znaků). Předejte do contacts_get, domain_register nebo domain_set_contacts.
Pole: name
Typ: Řetězec — jméno kontaktu.
Pole: email
Typ: Řetězec nebo null, pokud kontakt nemá evidovaný e-mail.
Pole: organization
Typ: Řetězec nebo null, pokud kontakt nemá evidovanou organizaci.
{"items": [{ "contactId": "1anq5bsl9haBy21rOV9aeDWrARBsV", "name": "Ada Lovelace", "email": "ada@example.com", "organization": "Analytical Engines" }],"total": 1}
Vstupy názvů domén (domain/domainName) přijímají Unicode (IDN) nebo ASCII (A-label) — v obou případech nástroj před použitím automaticky normalizuje název do punycode. domains_check_availability a domain_register navíc vyžadují TLD, které Spaceship podporuje pro registraci: doména, jejíž TLD není podporována, je považována za nedostupnou namísto toho, aby byla kontrolována nebo účtována. Ostatní nástroje pro domény (domains_list, domain_set_contacts, domain_set_nameservers) a nástroje DNS pouze normalizují název a nikdy jej neodmítnou kvůli podpoře TLD.
domains_list — Vypsat doményNačte stránkovaný seznam vašich domén. Předejte domain, pokud chcete místo toho načíst jednu doménu podle názvu (stránkování a řazení se pak ignorují a výsledek obsahuje note, která to uvádí, pokud byly zadány).
Parametr: domain
Povinné: Ne
Typ a omezení: Plně kvalifikovaný název domény pro načtení jedné domény. Přijímá Unicode (IDN) nebo ASCII (A-label) — automaticky normalizováno do punycode.
Parametr: take
Povinné: Ne
Typ a omezení: Položek na stránku, 1–100. Výchozí hodnota 10.
Parametr: skip
Povinné: Ne
Typ a omezení: Položky k přeskočení, 0 nebo více. Výchozí hodnota 0.
Parametr: orderBy
Povinné: Ne
Typ a omezení: Až 8 klíčů řazení: name, unicodeName, registrationDate, expirationDate; pro sestupné řazení přidejte předponu - (např. -expirationDate).
Vrací — { items, total } kde každá položka popisuje doménu:
Pole: name / unicodeName
Význam: Název domény ve formátu ASCII a Unicode.
Pole: isPremium
Význam: Zda je doména prémiový název.
Pole: autoRenew
Význam: Zda je povoleno automatické obnovení.
Pole: registrationDate / expirationDate
Význam: Časová razítka registrace a vypršení platnosti.
Pole: lifecycleStatus
Význam: creating, registered, grace1, grace2 nebo redemption.
Pole: verificationStatus
Význam: verification, success, failed nebo null, pokud se nepoužije.
Pole: eppStatuses
Význam: Kódy stavu registru (např. zámky převodu).
Pole: suspensions
Význam: Aktivní pozastavení, každé s reasonCode.
Pole: privacyProtection
Význam: { level: "public" | "high", contactForm: boolean }.
Pole: nameservers
Význam: { provider: "basic" | "custom", hosts: [...] }.
Pole: contacts
Význam: ID kontaktů: registrant, plus admin/tech/billing (může být null) a attributes (seznam ID kontaktů rozšířených atributů nebo null). Lze číst přes contacts_get.
Spaceship MCP vyplňuje každé výše uvedené pole — včetně contacts, eppStatuses, suspensions, verificationStatus, nameservers, skutečného autoRenew a odlišného unicodeName tam, kde jej doména má — jak pro seznam s více položkami, tak pro načtení jedné domény.
domains_check_availability — Zkontrolovat dostupnost doményKontroluje, zda je jeden nebo více názvů domén dostupných k registraci. Pro jeden název používá endpoint pro jednu doménu a pro více názvů hromadný endpoint. Doména, jejíž TLD není podporována pro registraci, se do kontroly dostupnosti vůbec neposílá — je okamžitě vrácena jako tldNotSupported.
Parametr: domains
Povinné: Ano
Typ a omezení: 1–20 plně kvalifikovaných názvů domén. Každý přijímá Unicode (IDN) nebo ASCII (A-label) — automaticky normalizováno do punycode.
Vrací — { results }, jednu položku pro každý požadovaný název:
Pole: domain
Význam: Kontrolovaný název.
Pole: result
Význam: available, taken, invalidDomainName, tldNotSupported nebo unexpectedError.
Pole: premiumPricing
Význam: Pro prémiové názvy: seznam { operation, price, currency }, kde operation je register, transfer, renew nebo restore. Pro běžné názvy je prázdný.
Pole: price
Význam: Pro dostupné názvy (standardní i prémiové): cena v USD za registraci domény na nejkratší období, které TLD umožňuje — { amount, currency: "USD", pricedYears?, pricePerYear?, icannFee?, isPremium }. amount je splatná celková částka za celé toto období; pricedYears uvádí, kolik let pokrývá. Není uváděna žádná cena před slevou ani „původní“ cena. icannFee je poplatek ICANN (USD) již zahrnutý v amount, vrácený samostatně, aby bylo možné vysvětlit rozpis; objevuje se pouze tehdy, když TLD tento poplatek má.
Pole: pricePerYear
Význam: Uvnitř price: amount děleno pricedYears, takže je pro porovnání vždy k dispozici roční údaj. Když je pricedYears 1, jde o skutečnou cenu za jeden rok; při vyšší hodnotě jde o průměr za rok v rámci období, nikoli o období, které by bylo možné koupit.
Pole: minRegisterPeriodInYears / maxRegisterPeriodInYears
Význam: Pro dostupné názvy: nejkratší a nejdelší registrační období, které dané TLD skutečně povoluje, jako dvě obyčejná čísla. Použijte je k výběru platné hodnoty years pro domain_register. Obojí je vynecháno, pokud nebylo možné povolené období určit.
Pole: priceUnavailableReason
Význam: Přítomno místo price, pokud nebylo možné určit cenu pro dostupný název. Samotná kontrola je přesto úspěšná.
Cenu mají pouze dostupné názvy; výsledky taken/invalid neobsahují ani price, ani priceUnavailableReason.
Většina TLD umožňuje jeden rok, ale některé ne..ai má například minimálně dva roky. U takových TLD je price.amount celková částka za minimální období — nikoli cena za jeden rok, kterou by bylo možné použít — a price.pricedYears to uvádí:
{"domain": "example.ai","result": "available","premiumPricing": [],"price": { "amount": 159.96, "currency": "USD", "pricedYears": 2, "pricePerYear": 79.98, "isPremium": false },"minRegisterPeriodInYears": 2,"maxRegisterPeriodInYears": 10}
pricePerYear je zde uvedeno — 159.96 děleno dvěma roky, které pokrývá, dává 79.98. Jde o celkovou částku dělenou délkou období, nikoli o cenu, kterou by bylo možné zaplatit za jeden rok (jednoletou registraci .ai nelze koupit). Vždy zobrazujte amount společně s pricedYears („159.96 USD za 2 roky“), nikdy ne samotné amount. U běžného TLD je pricedYears1 a pricePerYear se rovná amount.
domain_register — Registrovat doménuZaregistruje (koupí) doménu. Tím se naúčtuje výchozí platební metoda vašeho účtu a akci nelze vrátit zpět. Doporučený postup: domains_check_availability → domain_register. Doména, jejíž TLD není podporována pro registraci, je okamžitě odmítnuta — ještě před jakoukoli kontrolou dostupnosti, naceněním nebo účtováním.
years musí být v rámci vlastního povoleného období daného TLD. Níže uvedený rozsah 1–10 je vnější limit napříč všemi TLD; každé TLD má užší rozsah. .ai umožňuje 2–10, .co a .io umožňují 1–5, .sg 1–2, .fr přesně 1. Hodnota years mimo tento rozsah je odmítnuta validační chybou uvádějící povolený rozsah — ještě před jakoukoli kontrolou dostupnosti, naceněním nebo účtováním — a hodnota není za vás tiše upravena:
.ai domains cannot be registered for 1 year: this TLD allows 2–10 years. Call domains_check_availability for this domain to see its allowed registration period.
Nejprve si přečtěte minRegisterPeriodInYears/maxRegisterPeriodInYears z domains_check_availability a vyberte hodnotu years v tomto rozsahu. Stejná kontrola se znovu spustí při potvrzovacím volání (confirmationResponse: "accept"), takže ji nikdy nelze obejít potvrzením.
Dvoukrokové potvrzení před zaúčtováním. Nejprve zavolejte s nenastaveným confirmationToken: nástroj znovu aktuálně nacení doménu, sestaví úplné potvrzení — období, rozpis ceny (včetně případného poplatku ICANN a toho, zda je doména prémiová), automatické obnovení, WHOIS privacy, zdroj platby a kontakty registranta/admin/tech/billing (kontakt shodný s registrantem je zobrazen jako „same as registrant“) — a vrátí status: "confirmation_required" s touto price a novým confirmationToken. Při tomto volání se nic neregistruje ani neúčtuje. Úplné potvrzení je text odpovědi nástroje; ukažte jej uživateli beze změn. Jakmile souhlasí, zavolejte znovu se zcela stejnými argumenty plus tímto confirmationToken a confirmationResponse: "accept" pro odeslání nákupu, nebo confirmationResponse: "decline" pro jeho zrušení — při odmítnutí se nic neúčtuje. Token je vázán na tyto přesné argumenty a uvedenou cenu a po krátké době vyprší: chybějící, expirovaný, pozměněný nebo již neodpovídající token při potvrzovacím volání jednoduše vrátí zcela nové potvrzení s novým tokenem — nikdy chybu, nikdy účtování. Pokud nelze cenu určit při kterémkoli volání, nástroj vrátí status: "price_unavailable" místo tokenu a nikdy nic neúčtuje; zkuste to později znovu. Potvrzené volání okamžitě vrátí status: "pending" a operationId — registrace se dokončí na pozadí; zkontrolujte ji pomocí async_operation_get.
Parametr: domain
Povinné: Ano
Typ a omezení: Plně kvalifikovaný název domény k registraci, např. example.com. Přijímá Unicode (IDN) nebo ASCII (A-label) — automaticky normalizováno do punycode.
Parametr: years
Povinné: Ano
Typ a omezení: Registrační období v letech. 1–10 je vnější limit; přijímaný rozsah je vlastní rozsah daného TLD — viz minRegisterPeriodInYears/maxRegisterPeriodInYears z domains_check_availability. Hodnoty mimo rozsah jsou odmítnuty, nikoli upraveny.
Parametr: autoRenew
Povinné: Ano
Typ a omezení: Boolean. Když je true, doména se při vypršení platnosti automaticky obnoví pomocí výchozí platební metody účtu.
Parametr: privacy.level
Povinné: Ano
Typ a omezení: high skryje kontaktní údaje registranta z veřejného WHOIS; public je zveřejní.
Parametr: privacy.userConsent
Povinné: Ano
Typ a omezení: Boolean. Musí potvrdit, že souhlasíte s vybraným nastavením soukromí.
Parametr: contacts.registrant
Povinné: Ano
Typ a omezení: contactId řetězec (27–32 alfanumerických znaků), z contacts_save.
Parametr: contacts.admin
Povinné: Ano
Typ a omezení: contactId řetězec (27–32 alfanumerických znaků), z contacts_save.
Parametr: contacts.tech
Povinné: Ano
Typ a omezení: contactId řetězec (27–32 alfanumerických znaků), z contacts_save.
Parametr: contacts.billing
Povinné: Ano
Typ a omezení: contactId řetězec (27–32 alfanumerických znaků), z contacts_save.
Parametr: contacts.attributes
Povinné: Ne
Typ a omezení: Pole ID kontaktů rozšířených atributů (až 5); vyžadováno pouze pro určité TLD, jinak vynechte nebo null.
Parametr: confirmationToken
Povinné: Ne
Typ a omezení: Řetězec, až 4096 znaků. Token vydaný serverem vrácený předchozím voláním domain_register pro přesně tyto argumenty. Při prvním volání nového pokusu o registraci vynechte. Vyprší po krátké době a je vázán na přesné argumenty a cenu, pro které byl vydán — znovu jej odešlete beze změny spolu s confirmationResponse, abyste na něj reagovali.
Parametr: confirmationResponse
Povinné: Podmíněně
Typ a omezení: "accept" nebo "decline". Má význam pouze společně s platným confirmationToken. "accept" odešle registraci (se zaúčtováním) zobrazenou v tomto potvrzení; "decline" ji zruší bez účtování. Při prvním volání vynechte.
Vrací — po prvním volání (nic není účtováno):
{"domain": "example.com","years": 1,"status": "confirmation_required","price": {"amount": 9.08,"currency": "USD","pricedYears": 1,"pricePerYear": 9.08,"icannFee": 0.2,"isPremium": false},"confirmationToken": "v1.eyJ2IjoxLCJwIjoi...aWQiOjF9.9F3q7z_5c8Vb...","note": "Nothing has been charged yet. Show the confirmation to the user and, once they agree, call domain_register again with this confirmationToken and confirmationResponse=\"accept\" to complete the purchase, or confirmationResponse=\"decline\" to cancel."}
Vedle tohoto JSONu je text odpovědi nástroje úplným potvrzením, které se má zobrazit uživateli — znovu uvádí výše uvedenou doménu, období a cenu, plus řádky pro Auto-renew: on/off, WHOIS privacy: on/off, Payment source: Spaceship account funds a každý z kontaktů registranta/admin/tech/billing (jméno, e-mail, země — kontakt odpovídající registrantovi je uveden jako "same as registrant"), následované pokyny pro další volání. U víceletého období je price.amount celková částka za celé období a price.pricePerYear je tato částka dělená délkou období — např. years: 5 pro .com vrací { "amount": 48.52, "pricedYears": 5, "pricePerYear": 9.70 } a example.ai s years: 2 vrací { "amount": 159.96, "pricedYears": 2, "pricePerYear": 79.98 }.
Vrací — po confirmationResponse: "accept" (registrace odeslána):
{"domain": "example.com","years": 1,"status": "pending","operationId": "...","price": {"amount": 9.08,"currency": "USD","pricedYears": 1,"pricePerYear": 9.08,"icannFee": 0.2,"isPremium": false},"note": "Registration of example.com submitted. Ask again, or call async_operation_get with this operationId, to check status."}
Vrací — po confirmationResponse: "decline" (nic není účtováno):
{"domain": "example.com","years": 1,"status": "cancelled","price": { "amount": 9.08, "currency": "USD", "pricedYears": 1, "pricePerYear": 9.08, "icannFee": 0.2, "isPremium": false },"note": "Registration of example.com was not submitted because the purchase was not confirmed."}
Vrací — pokud nelze určit cenu, při kterémkoli volání:
{"domain": "example.com","years": 1,"status": "price_unavailable","priceUnavailableReason": "Price is currently unavailable for this domain.","note": "Registration of example.com could not be priced right now, so nothing was confirmed or charged. Try again shortly."}
status může být:
Stav: confirmation_required
Význam: Náhled — nic není účtováno. Zobrazte uživateli text odpovědi a poté znovu zavolejte s tímto confirmationToken a confirmationResponse. Vrací se také s novým tokenem, když odeslaný confirmationToken chybí, vypršel, byl pozměněn nebo už neodpovídá aktuálním argumentům/ceně — nikdy nejde o chybu.
Stav: cancelled
Význam: Nákup byl odmítnut (confirmationResponse: "decline"), takže nic nebylo odesláno.
Stav: pending
Význam: Odesláno; registr dokončuje proces na pozadí. Dotazujte se na async_operation_get s operationId.
Stav: price_unavailable
Význam: Cenu nebylo možné určit, takže nebyl vydán žádný token a nic nebylo účtováno. Zkuste to později znovu.
operationId je prostý řetězec — předejte jej do async_operation_get, které hlásí, zda registrace nakonec uspěje, nebo selže. price zobrazená při confirmation_required je přesně to, co bude účtováno při confirmationResponse: "accept" — price.amount je celková částka za celé období a price.pricedYears udává délku období, proto vždy zobrazujte obojí společně. Když TLD zahrnuje poplatek ICANN, price.amount jej už obsahuje a price.icannFee uvádí výši poplatku, aby ji bylo možné vysvětlit.
domain_set_contacts — Nastavit kontakty doményZmění kontakty přiřazené k doméně, kterou vlastníte. Dokončí se okamžitě (žádná operace ke zjišťování stavu).
Parametr: domainName
Povinné: Ano
Typ a omezení: Plně kvalifikovaný název domény. Přijímá Unicode (IDN) nebo ASCII (A-label) — automaticky se normalizuje na punycode.
Parametr: registrant
Povinné: Ano
Typ a omezení: contactId řetězec (27–32 alfanumerických znaků), z contacts_save.
Parametr: admin
Povinné: Ne
Typ a omezení: contactId řetězec (27–32 alfanumerických znaků) nebo null.
Parametr: tech
Povinné: Ne
Typ a omezení: contactId řetězec (27–32 alfanumerických znaků) nebo null.
Parametr: billing
Povinné: Ne
Typ a omezení: contactId řetězec (27–32 alfanumerických znaků) nebo null.
Parametr: attributes
Povinné: Ne
Typ a omezení: Pole ID kontaktů rozšířených atributů (až 5); vyžadováno pouze pro určité TLD, jinak vynechte nebo null.
Vrací
{ "verificationStatus": "verification" }
Vrácený verificationStatus odráží ověření e-mailu ICANN RAA: verification — registrant musí potvrdit svou e-mailovou adresu (je odeslán potvrzovací e-mail); success — již potvrzeno; null — ověření RAA se na tuto doménu nevztahuje.
domain_set_nameservers — Nastavit nameservery doményZmění nameservery domény na úrovni registrátora. Dokončí se okamžitě (žádná operace ke zjišťování stavu). Změna se poté projeví v domains_list.
Parametr: domainName
Povinné: Ano
Typ a omezení: Plně kvalifikovaný název domény. Přijímá Unicode (IDN) nebo ASCII (A-label) — automaticky se normalizuje na punycode.
Parametr: provider
Povinné: Ano
Typ a omezení: basic (výchozí nameservery Spaceship) nebo custom (vaši vlastní hostitelé).
Parametr: hosts
Povinné: Podmíněně
Typ a omezení: Vyžadováno, když provider je custom: 2–12 hostnames nameserverů (každý platný FQDN, 4–255 znaků). Musí být vynecháno, když provider je basic.
Vrací
{ "provider": "custom", "hosts": ["ns1.example.com", "ns2.example.com"] }
Opětovné použití stavu, ve kterém už doména je (např. nastavení basic, když už je basic), vrátí validační chybu místo úspěchu bez operace — považujte to za očekávaný výsledek, ne za selhání, které je třeba opakovat.
domainName, které tyto nástroje přijímají, podporuje Unicode (IDN) nebo ASCII (A-label) a automaticky se normalizuje na punycode; podpora TLD zde není vynucována.
dns_records_get — Získat DNS záznamyNačte stránkovaný seznam DNS resource recordů pro doménu.
Parametr: domainName
Povinné: Ano
Typ a omezení: Doména, jejíž záznamy se mají načíst.
Parametr: take
Povinné: Ne
Typ a omezení: Počet položek na stránku, 1–500. Výchozí 100.
Parametr: skip
Povinné: Ne
Typ a omezení: Počet položek k přeskočení, 0 nebo více. Výchozí 0.
Parametr: orderBy
Povinné: Ne
Typ a omezení: Až 8 klíčů řazení: type, -type, name, -name.
Vrací — { items, total }. Každá položka je záznam, jak je popsán v Tvary záznamů, plus volitelné pole group označující, odkud záznam pochází (custom — vytvořený vámi, product — spravovaný produktem Spaceship, personalNs — osobní nameservery).
dns_records_save — Uložit DNS záznamyPřidává vlastní DNS záznamy nebo aktualizuje TTL existujících. Záznamy se porovnávají bez ohledu na velikost písmen, kromě TXT záznamů (rozlišují velikost písmen).
Parametr: domainName
Povinné: Ano
Typ a omezení: Doména, jejíž záznamy se mají aktualizovat.
Parametr: records
Povinné: Ano
Typ a omezení: 1–500 záznamů — viz Tvary záznamů. Každý může obsahovat volitelné ttl.
Parametr: force
Povinné: Ne
Typ a omezení: Boolean. Přeskočí kontrolu řešení konfliktů a vynutí aktualizaci zóny.
Vrací — { "saved": <number> }, počet odeslaných záznamů. Úspěšná odpověď znamená, že byly přijaty všechny záznamy; pokud některý záznam selže, celé volání místo toho vrátí chybu.
dns_records_delete — Smazat DNS záznamyMaže vlastní DNS záznamy. Smazání nelze vrátit zpět. Záznamy se porovnávají bez ohledu na velikost písmen, kromě TXT záznamů (rozlišují velikost písmen).
Parametr: domainName
Povinné: Ano
Typ a omezení: Doména, jejíž záznamy se mají smazat.
Parametr: records
Povinné: Ano
Typ a omezení: 1–500 záznamů identifikujících existující záznamy — stejné tvary jako pro ukládání, ale bez ttl.
Vrací — { "deleted": <number> }, počet odeslaných záznamů. Pokud nelze některý záznam spárovat, celé volání selže a nic se nesmaže.
Každý záznam má:
type — jeden z 13 podporovaných typů níže.
name — název záznamu bez domény: použijte @ pro samotnou doménu (apex) a * pro zástupný znak.
ttl (pouze při ukládání, volitelné) — doba cache v sekundách, 60–3600.
Pole specifická pro typ:
Typ: A
Pole: address — IPv4 adresa.
Typ: AAAA
Pole: address — IPv6 adresa.
Typ: CNAME
Pole: cname — kanonický název domény (max. 253 znaků).
Typ: ALIAS
Pole: aliasName — kanonický název domény; chování podobné CNAME pro apex, kde CNAME není povoleno.
Typ: NS
Pole: nameserver — název nameserveru.
Typ: PTR
Pole: pointer — název domény pro danou IP adresu.
Typ: TXT
Pole: value — textová hodnota (porovnává se s rozlišením velikosti písmen).
Typ: MX
Pole: exchange — poštovní server; preference — priorita (0–65535, nižší je preferována).
Typ: CAA
Pole: flag — 0 nebo 128 (kritický bit); tag — issue, issuewild nebo iodef; value — identifikátor CA s volitelnými parametry.
Typ: SRV
Pole: service (např. _sip); protocol (např. _tcp); priority a weight (0–65535); port (1–65535); target — název domény serveru.
Typ: TLSA
Pole: usage, selector, matching (každé 0–255); port — * nebo _<1–65535>; protocol (např. _tcp); associationData — hash certifikátu nebo data.
Typ: HTTPS
Pole: svcPriority (0–65535; 0 = AliasMode); targetName — FQDN nebo .; volitelné port (* nebo _<1–65535>), scheme (musí být _https, když je nastaveno port), svcParams.
Typ: SVCB
Pole: svcPriority (0–65535; 0 = AliasMode); targetName — FQDN nebo .; volitelné port, scheme (např. _tcp), svcParams.
async_operation_get — Získat stav asynchronní operaceKontroluje dlouhotrvající operaci spuštěnou jiným nástrojem (aktuálně domain_register). Zavolejte jej s operationId nastaveným na operationId, které tento nástroj vrátil, a opakujte, dokud status nebude success nebo failed.
Parametr: operationId
Povinné: Ano
Typ a omezení: Alfanumerický řetězec, max. 36 znaků, vrácený nástrojem, který operaci spustil.
Vrací
Pole: operationId
Význam: Dotazovaná operace.
Pole: status
Význam: pending, success nebo failed.
Pole: type
Význam: Typ operace nebo null.
Pole: details
Význam: Další podrobnosti o operaci nebo null.
Pole: createdAt / modifiedAt
Význam: Kdy byla operace vytvořena / naposledy aktualizována (modifiedAt může být null).
Když volání selže, nástroj vrátí chybu s kódem a lidsky čitelným detail vysvětlujícím, co se pokazilo — například neplatný vstup (chybně vytvořený název domény nebo ID kontaktu), doménu nebo kontakt, který neexistuje, nebo konflikt s aktuálním stavem. Pokud je nástroj odmítnut, protože asistentovi nebyl udělen přístup, znovu připojte Spaceship MCP a schvalte přístup, o který žádá.