Spaceship MCP — Referenční příručka nástrojů

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.

Začínáme

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.

Přehled nástrojů

  • 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

Kontakty: odkazované podle ID

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.

Běžné pracovní postupy

Několik nástrojů je navrženo tak, aby se používaly společně: výstup jednoho se stává vstupem dalšího.

Registrovat (koupit) doménu

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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í)

Aktualizujte kontakty u domény, kterou vlastníte

  1. 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.

Změňte nameservery domény

  1. domains_list — najděte doménu a zobrazte její aktuální nameservers ({ provider, hosts }).

  2. 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í.

Správa DNS záznamů

  1. domains_list — najděte doménu, kterou chcete spravovat (nebo předejte její název přímo, pokud jej znáte).

  2. dns_records_get — načtěte aktuální záznamy pro doménu.

  3. 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í.

Zkontrolujte své portfolio

  • 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.

Referenční přehled nástrojů

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

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 kontakt

Uloží 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 kontakt

Nač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 kontakty

Vypíš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
}

Domény

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ény

Nač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ény

Kontroluje, 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énu

Zaregistruje (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_availabilitydomain_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 110 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 210 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. 110 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ény

Změ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ény

Změ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.

DNS záznamy

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áznamy

Nač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áznamy

Př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áznamy

Maž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.

Tvary záznamů

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: flag0 nebo 128 (kritický bit); tagissue, 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 _<165535>; protocol (např. _tcp); associationData — hash certifikátu nebo data.

  • Typ: HTTPS

    Pole: svcPriority (0–65535; 0 = AliasMode); targetName — FQDN nebo .; volitelné port (* nebo _<165535>), 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.

Asynchronní operace

async_operation_get — Získat stav asynchronní operace

Kontroluje 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).

Chyby

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á.

Je vyžadována platná e-mailová adresa