Spaceship MCP kobler AI-assistenten din (for eksempel Claude) til Spaceship-kontoen din. Gjennom den kan assistenten sjekke og registrere domener, administrere domenekontakter og lese eller redigere DNS-poster på dine vegne — du bare spør på vanlig språk, og assistenten kaller de riktige verktøyene.
Du trenger en Spaceship-konto. Spaceship MCP er tilgjengelig på https://mcp.spaceship.com/mcp.
Hvordan du kobler til, avhenger av AI-assistenten din:
Claude (web og skrivebord) — åpne Innstillinger, velg Connectors, finn Spaceship i connector-katalogen og legg det til. Anthropic's Claude er for øyeblikket klienten vi har bekreftet at Spaceship MCP fungerer med.
NB: Selv om domeneregistrering via Spaceship MCP er fullt støttet generelt, er denne funksjonen ennå ikke tilgjengelig gjennom Claude-connectoren spesifikt. Søk, domeneoppslag, kontaktadministrasjon og administrasjon av DNS-poster er allerede tilgjengelig og bekreftet å fungere med Claude i dag.
Andre MCP-klienter — legg til en ekstern MCP-server og pek den til https://mcp.spaceship.com/mcp. Andre klienter kan fungere, men vi har ikke bekreftet dem ennå.
Når du kobler til, blir du bedt om å logge på Spaceship og gi assistenten tilgang til kontoen din. Hvilke verktøy assistenten kan bruke, avhenger av tilgangen du godkjenner — hvis et verktøy avvises fordi tilgang ikke ble gitt, kobler du til på nytt og godkjenner tilgangen det trenger.
Verktøy: contacts_save
Hva det gjør: Lagre kontaktopplysninger og få en kontakt-ID
Verktøy: contacts_get
Hva det gjør: Leser en lagret kontakt etter ID-en dens
Verktøy: contacts_list
Hva det gjør: Lister alle lagrede kontakter for å finne og gjenbruke en
Verktøy: domains_list
Hva det gjør: Lister domenene dine, eller slår opp ett domene
Verktøy: domains_check_availability
Hva det gjør: Sjekker om domener er tilgjengelige for registrering
Verktøy: domain_register
Hva det gjør: Registrerer (kjøper) et domene — bruker penger
Verktøy: domain_set_contacts
Hva det gjør: Tildeler kontakter til et domene du eier
Verktøy: domain_set_nameservers
Hva det gjør: Bytter et domene til grunnleggende eller egendefinerte navneservere
Verktøy: dns_records_get
Hva det gjør: Les DNS-poster for et domene
Verktøy: dns_records_save
Hva det gjør: Legg til DNS-poster eller oppdater TTL-en deres
Verktøy: dns_records_delete
Hva det gjør: Slett DNS-poster
Verktøy: async_operation_get
Hva det gjør: Kontroller statusen til en langvarig operasjon
Der en kontakt er påkrevd (domain_register, domain_set_contacts), tar hver rolle en contactId-streng — aldri innebygde kontaktopplysninger. Lagre først kontakten med contacts_save (som returnerer dens contactId), og send deretter denne ID-en der kontakten godtas. Det finnes ingen innebygd automatisk lagring; en rolle kan ikke motta et fullstendig kontaktobjekt. Du kan også gjenbruke en contactId fra et contacts_list-resultat eller en du leser fra et domains_list-resultat.
En contactId er en streng på 27–32 alfanumeriske tegn. Bare send den tilbake der en kontakt godtas.
Flere verktøy er utformet for å brukes sammen: utdataene fra ett blir inndataene til det neste.
contacts_save — lagre registrant-, admin-, tech- og faktureringskontaktene (hvis du ikke allerede har ID-ene deres) og behold den returnerte contactId for hver. Kontakter må eksistere før du kan registrere.
domains_check_availability — sjekk navnet/navnene du vil ha. Fortsett bare når result er available. Hvert tilgjengelige navn inkluderer USD-price for å registrere det (både standard og premium), eller priceUnavailableReason når det ikke kan fastslås, pluss minRegisterPeriodInYears og maxRegisterPeriodInYears — perioden TLD-en tillater. Merk at price dekker price.pricedYears år, som er TLD-ens korteste tillatte periode og ikke alltid er 1.
domain_register (forhåndsvisning) — kall med confirmationToken ikke satt for å få status: confirmation_required, en ny confirmationToken og price som vil bli belastet. Ingenting blir belastet. Verktøyets svarttekst er en fullstendig bekreftelse — periode, prisoversikt, automatisk fornyelse, WHOIS-personvern, betalingskilde og registrant-/admin-/tech-/faktureringskontaktene — vis den til brukeren som den er. Velg years mellom minRegisterPeriodInYears og maxRegisterPeriodInYears fra trinn 2 — en verdi utenfor området avvises direkte. Send hver kontaktrolle som contactId du lagret i trinn 1.
domain_register (godta/avslå) — etter at brukeren godtar, kaller du igjen med nøyaktig de samme argumentene pluss den confirmationToken og confirmationResponse: "accept". Dette belaster kontoens standard betalingsmåte og kan ikke angres. Det returnerer umiddelbart med status: pending og en operationId — registreringen fullføres i bakgrunnen. For å avbryte i stedet, kall igjen med samme confirmationToken og confirmationResponse: "decline" — ingenting blir belastet. Tokenet utløper etter kort tid og er knyttet til de nøyaktige argumentene og prisen det ble utstedt for; hvis det mangler, er utløpt eller ikke lenger samsvarer, returnerer kallet en helt ny bekreftelse i stedet for en feil — aldri en belastning. Hvis prisen ikke kan fastslås i noen av kallene, returnerer verktøyet i stedet status: price_unavailable og ingenting blir belastet.
async_operation_get — send operationId fra trinn 4 for å sjekke fremdriften. Gjenta til status blir success eller failed.
contacts_save ──▶ domains_check_availability ──▶ domain_register ──▶ domain_register ──▶ async_operation_get(contactId ids) (available? + price + (token unset: (token + (pending →min/maxRegisterPeriod) confirmation, accept: operationId, success/failed)confirmationToken, pending)no charge)
domain_set_contacts — tildel kontakter til domenet etter contactId (lagre dem med contacts_save først ved behov). Dette fullføres umiddelbart og returnerer en verificationStatus: verification betyr at registranten må bekrefte e-postadressen sin før endringen trer fullt i kraft (en e-post sendes til vedkommende), success betyr at den allerede er bekreftet, og null betyr at ingen bekreftelse kreves for det domenet.
domains_list — finn domenet og se dets nåværende nameservers ({ provider, hosts }).
domain_set_nameservers — bytt det til Spaceships standard navneservere med provider: "basic" (ingen hosts), eller pek det til dine egne med provider: "custom" og en liste med 2–12 hosts. Det returnerer de resulterende { provider, hosts }, og en påfølgende domains_list gjenspeiler endringen. Å bruke på nytt en tilstand et domene allerede er i, returnerer en valideringsfeil i stedet for en no-op — behandle det som forventet, ikke som en feil som må prøves på nytt.
domains_list — finn domenet du vil administrere (eller send navnet direkte hvis du kjenner det).
dns_records_get — les de gjeldende postene for domenet.
dns_records_save eller dns_records_delete — legg til, oppdater eller fjern poster. Poster returnert av dns_records_get har samme form som lagre- og sletteverktøyene godtar (sletting utelater bare ttl), så assistenten kan lese, justere og skrive tilbake. Matching er ikke skille mellom store og små bokstaver, unntatt for TXT-poster, som skiller mellom store og små bokstaver.
domains_list — bla gjennom alle domenene dine med sortering, eller hent ett enkelt domene etter navn. Hvert domene inkluderer utløpsdato, innstilling for automatisk fornyelse, status, navneservere, personvern og tildelte kontakt-ID-er.
contacts_list — bla gjennom alle kontaktene som er lagret på kontoen din for å finne og gjenbruke en eksisterende (etter kontakt-ID-en) i stedet for å opprette et duplikat.
contacts_get — slå opp detaljene bak en hvilken som helst kontakt-ID du ser på et domene eller i et contacts_list-resultat.
Hvert verktøy returnerer resultatet som strukturert JSON. Langvarige operasjoner (for øyeblikket bare domain_register) returnerer en operasjonsreferanse som kan spørres etter med async_operation_get; alle andre verktøy fullføres umiddelbart.
Kontakter er personene eller organisasjonene som er knyttet til en domeneregistrering (registrant, admin, tech, billing). En kontakt refereres overalt med sin kontakt-ID — en ugjennomsiktig streng.
contacts_save — Lagre kontaktLagrer kontaktopplysninger og returnerer den genererte kontakt-ID-en. Validering av noen felt (som stateProvince og postalCode) avhenger av det valgte landet.
Parameter: firstName
Påkrevd: Ja
Type og begrensninger: Streng, 1–64 tegn. Kan inneholde bindestreker og apostrofer.
Parameter: lastName
Påkrevd: Ja
Type og begrensninger: Streng, 1–64 tegn. Kan inneholde bindestreker og apostrofer.
Parameter: email
Påkrevd: Ja
Type og begrensninger: Gyldig e-postadresse, maks. 254 tegn.
Parameter: address1
Påkrevd: Ja
Type og begrensninger: Adresselinje 1. Streng, 1–128 tegn.
Parameter: city
Påkrevd: Ja
Type og begrensninger: Streng, 1–64 tegn.
Parameter: country
Påkrevd: Ja
Type og begrensninger: Landkode med to bokstaver (ISO 3166-1 alpha-2), f.eks. US.
Parameter: phone
Påkrevd: Ja
Type og begrensninger: Internasjonalt format +CountryCode.Number, f.eks. +1.2025551234. Maks. 32 tegn.
Parameter: organization
Påkrevd: Nei
Type og begrensninger: Navn på organisasjon/selskap. 1–128 tegn.
Parameter: address2
Påkrevd: Nei
Type og begrensninger: Adresselinje 2. 1–128 tegn.
Parameter: stateProvince
Påkrevd: Nei
Type og begrensninger: Navn på stat/provins, 1–64 tegn. Kan være påkrevd avhengig av landet.
Parameter: postalCode
Påkrevd: Nei
Type og begrensninger: 1–16 tegn. Kan være påkrevd avhengig av landet.
Parameter: phoneExt
Påkrevd: Nei
Type og begrensninger: Telefoninternnummer, 1–16 tegn.
Parameter: fax
Påkrevd: Nei
Type & begrensninger: Faksnummer, samme +CountryCode.Number-format, maks. 32 tegn.
Parameter: faxExt
Påkrevd: Nei
Type & begrensninger: Faksutvidelse, 1–16 tegn.
Parameter: taxNumber
Påkrevd: Nei
Type & begrensninger: Skattenummer, 1–32 tegn.
Returnerer
{ "contactId": "..." }
contactId (27–32 alfanumeriske tegn) er det du sender til domain_register, domain_set_contacts og contacts_get.
contacts_get — Hent kontaktLeser detaljene for en lagret kontakt etter kontakt-ID-en. Kontakt-ID-er kommer fra contacts_save, contacts_list eller feltet contacts i resultater fra domains_list.
Parameter: contactId
Påkrevd: Ja
Type & begrensninger: Kontakt-ID, 27–32 alfanumeriske tegn.
Returnerer — { contact } med:
Felt: firstName, lastName, email, address1, city, country, phone, postalCode
Type: Streng
Felt: organization, address2, stateProvince, phoneExt, fax, faxExt, taxNumber
Type: Streng eller null
contacts_list — List kontakterLister alle kontakter som er lagret under kontoen din, slik at du kan finne og gjenbruke en eksisterende kontakt (etter kontakt-ID-en) i stedet for å opprette et duplikat eller lete gjennom domenene dine. Listen er paginert og sorterbar, i samsvar med domains_list.
Parameter: take
Påkrevd: Nei
Type & begrensninger: Elementer per side, 1–100. Standard er 10.
Parameter: skip
Påkrevd: Nei
Type & begrensninger: Elementer som skal hoppes over, 0 eller flere. Standard er 0.
Parameter: orderBy
Påkrevd: Nei
Type & begrensninger: Opptil 8 sorteringsnøkler: name, email, organization; prefiks med - for synkende rekkefølge (f.eks. -name).
Returnerer — { items, total } der total er antallet unike kontakter på kontoen (duplikater fjernet etter kontakt-ID, ikke sidestørrelsen), og hvert element inneholder nok informasjon til å skille kontakter fra hverandre uten et oppfølgingskall. Hvis kontoen har duplikatoppføringer for samme kontakt-ID, slås de sammen til én, så total teller distinkte kontakter i stedet for rå serverrader:
Felt: contactId
Type: Streng (27–32 alfanumeriske). Send til contacts_get, domain_register eller domain_set_contacts.
Felt: name
Type: Streng — kontaktens navn.
Felt: email
Type: Streng eller null når kontakten ikke har noen e-post registrert.
Felt: organization
Type: Streng eller null når kontakten ikke har noen organisasjon registrert.
{"items": [{ "contactId": "1anq5bsl9haBy21rOV9aeDWrARBsV", "name": "Ada Lovelace", "email": "ada@example.com", "organization": "Analytical Engines" }],"total": 1}
Inndata for domenenavn (domain/domainName) godtar Unicode (IDN) eller ASCII (A-label) — uansett normaliserer verktøyet navnet til punycode automatisk før bruk. domains_check_availability og domain_register krever i tillegg en TLD som Spaceship støtter for registrering: et domene med en TLD som ikke støttes, behandles som ikke tilgjengelig i stedet for å bli sjekket eller belastet. De andre domeneverktøyene (domains_list, domain_set_contacts, domain_set_nameservers) og DNS-verktøyene normaliserer bare navnet og avviser aldri på grunn av TLD-støtte.
domains_list — List domenerHenter en paginert liste over domenene dine. Send domain for å hente ett enkelt domene etter navn i stedet (paginering og sortering ignoreres da, og resultatet inkluderer en note som sier dette hvis de ble oppgitt).
Parameter: domain
Påkrevd: Nei
Type & begrensninger: Fullt kvalifisert domenenavn for å hente ett enkelt domene. Godtar Unicode (IDN) eller ASCII (A-label) — normaliseres automatisk til punycode.
Parameter: take
Påkrevd: Nei
Type & begrensninger: Elementer per side, 1–100. Standard er 10.
Parameter: skip
Påkrevd: Nei
Type & begrensninger: Elementer som skal hoppes over, 0 eller flere. Standard er 0.
Parameter: orderBy
Påkrevd: Nei
Type & begrensninger: Opptil 8 sorteringsnøkler: name, unicodeName, registrationDate, expirationDate; prefiks med - for synkende rekkefølge (f.eks. -expirationDate).
Returnerer — { items, total } der hvert element beskriver et domene:
Felt: name / unicodeName
Betydning: Domenenavn i ASCII- og Unicode-form.
Felt: isPremium
Betydning: Om domenet er et premiumnavn.
Felt: autoRenew
Betydning: Om automatisk fornyelse er aktivert.
Felt: registrationDate / expirationDate
Betydning: Tidsstempler for registrering og utløp.
Felt: lifecycleStatus
Betydning: creating, registered, grace1, grace2 eller redemption.
Felt: verificationStatus
Betydning: verification, success, failed eller null når det ikke er aktuelt.
Felt: eppStatuses
Betydning: Statuskoder fra registeret (f.eks. overføringslåser).
Felt: suspensions
Betydning: Aktive suspensjoner, hver med en reasonCode.
Felt: privacyProtection
Betydning: { level: "public" | "high", contactForm: boolean }.
Felt: nameservers
Betydning: { provider: "basic" | "custom", hosts: [...] }.
Felt: contacts
Betydning: Kontakt-ID-er: registrant, pluss admin/tech/billing (kan være null) og attributes (en liste over kontakt-ID-er for utvidede attributter, eller null). Kan leses via contacts_get.
Spaceship MCP fyller ut hvert felt ovenfor — inkludert contacts, eppStatuses, suspensions, verificationStatus, nameservers, en reell autoRenew og en egen unicodeName der domenet har en — både for lister med flere elementer og henting av enkelt-domener.
domains_check_availability — Sjekk domenetilgjengelighetSjekker om ett eller flere domenenavn er tilgjengelige for registrering. Bruker endepunktet for enkelt-domene for ett navn og bulk-endepunktet for flere. Et domene med en TLD som ikke støttes for registrering, sendes ikke til tilgjengelighetssjekken i det hele tatt — det returneres umiddelbart som tldNotSupported.
Parameter: domains
Påkrevd: Ja
Type & begrensninger: 1–20 fullt kvalifiserte domenenavn. Hvert navn godtar Unicode (IDN) eller ASCII (A-label) — normaliseres automatisk til punycode.
Returnerer — { results }, én oppføring per forespurte navn:
Felt: domain
Betydning: Navnet som ble sjekket.
Felt: result
Betydning: available, taken, invalidDomainName, tldNotSupported eller unexpectedError.
Felt: premiumPricing
Betydning: For premiumnavn: liste over { operation, price, currency } der operation er register, transfer, renew eller restore. Tom for vanlige navn.
Felt: price
Betydning: For available navn (standard og premium): USD-prisen for å registrere domenet for den korteste perioden TLD-en tillater — { amount, currency: "USD", pricedYears?, pricePerYear?, icannFee?, isPremium }. amount er totalbeløpet som skal betales for hele perioden; pricedYears angir hvor mange år det dekker. Ingen pris før rabatt eller "førpris" rapporteres. icannFee er ICANN-avgiften (USD) som allerede er inkludert i amount, returnert separat slik at oppdelingen kan forklares; den vises bare når TLD-en har en avgift.
Felt: pricePerYear
Betydning: Inne i price: amount delt på pricedYears, slik at et årlig tall alltid er tilgjengelig for sammenligning. Når pricedYears er 1, er det den faktiske ettårsprisen; over det er det et gjennomsnitt per år for perioden, ikke en periode du kan kjøpe.
Felt: minRegisterPeriodInYears / maxRegisterPeriodInYears
Betydning: For available navn: den korteste og lengste registreringsperioden som TLD-en faktisk tillater, som to vanlige tall. Bruk dem til å velge en gyldig years for domain_register. Begge utelates når den tillatte perioden ikke kunne fastslås.
Felt: priceUnavailableReason
Betydning: Vises i stedet for price når prisen ikke kunne fastslås for et tilgjengelig navn. Selve sjekken lykkes fortsatt.
Bare tilgjengelige navn får pris; taken/ugyldige resultater har verken price eller priceUnavailableReason.
De fleste TLD-er tillater ett år, men noen gjør det ikke..ai har for eksempel et minimum på to år. For disse er price.amount totalen for minimumsperioden — ikke en ettårspris du kan bruke — og price.pricedYears sier dette:
{"domain": "example.ai","result": "available","premiumPricing": [],"price": { "amount": 159.96, "currency": "USD", "pricedYears": 2, "pricePerYear": 79.98, "isPremium": false },"minRegisterPeriodInYears": 2,"maxRegisterPeriodInYears": 10}
pricePerYear er til stede her — 159.96 delt på de to årene det dekker gir 79.98. Dette er totalen delt på perioden, ikke en pris du kunne betalt for ett enkelt år (en ettårig .ai-registrering kan ikke kjøpes). Vis alltid amount sammen med pricedYears ("$159.96 for 2 år"), aldri amount alene. For en vanlig TLD er pricedYears1 og pricePerYear er lik amount.
domain_register — Registrer domeneRegistrerer (kjøper) et domene. Dette belaster kontoens standard betalingsmetode og kan ikke angres. Anbefalt rekkefølge: domains_check_availability → domain_register. Et domene med en TLD som ikke støttes for registrering, avvises umiddelbart — før eventuell tilgjengelighetssjekk, prising eller belastning.
years må være innenfor TLD-ens egen tillatte periode. Grensen 1–10 nedenfor er den ytre grensen på tvers av alle TLD-er; hver TLD er smalere. .ai tillater 2–10, .co og .io tillater 1–5, .sg 1–2, .fr nøyaktig 1. En years utenfor dette området blir avvist med en valideringsfeil som oppgir det tillatte området — før eventuell tilgjengelighetssjekk, prising eller belastning — og verdien blir ikke stille justert for deg:
.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.
Les minRegisterPeriodInYears/maxRegisterPeriodInYears fra domains_check_availability først og velg en years innenfor dette. Den samme sjekken kjøres på nytt ved bekreftelseskallet (confirmationResponse: "accept"), så den kan aldri omgås ved å bekrefte.
Bekreftelse i to trinn før belastning. Kall først med confirmationToken ikke satt: verktøyet priser domenet på nytt, bygger en full bekreftelse — periode, prisoppdeling (inkludert eventuell ICANN-avgift og om domenet er premium), automatisk fornyelse, WHOIS-personvern, betalingskilde og registrant-/admin-/tech-/billing-kontaktene (en kontakt som er identisk med registranten vises som "same as registrant") — og returnerer status: "confirmation_required" med denne price og en ny confirmationToken. Ingenting registreres eller belastes i dette kallet. Den fullstendige bekreftelsen er verktøyets svarttekst; vis den til brukeren som den er. Når de godtar, kaller du igjen med nøyaktig de samme argumentene pluss denne confirmationToken og confirmationResponse: "accept" for å sende inn kjøpet, eller confirmationResponse: "decline" for å avbryte det — ingenting belastes ved avslag. Tokenet er bundet til disse nøyaktige argumentene og den oppgitte prisen og utløper etter kort tid: et manglende, utløpt, manipulert eller ikke lenger samsvarende token i bekreftelseskallet returnerer ganske enkelt en helt ny bekreftelse med et nytt token — aldri en feil, aldri en belastning. Hvis prisen ikke kan fastslås i noen av kallene, returnerer verktøyet status: "price_unavailable" i stedet for et token og belaster aldri; prøv igjen senere. Et bekreftet kall returnerer umiddelbart med status: "pending" og en operationId — registreringen fullføres i bakgrunnen; sjekk den med async_operation_get.
Parameter: domain
Påkrevd: Ja
Type & begrensninger: Fullt kvalifisert domenenavn som skal registreres, f.eks. example.com. Godtar Unicode (IDN) eller ASCII (A-label) — normaliseres automatisk til punycode.
Parameter: years
Påkrevd: Ja
Type & begrensninger: Registreringsperiode i år. 1–10 er den ytre grensen; det godkjente området er TLD-ens eget — se minRegisterPeriodInYears/maxRegisterPeriodInYears fra domains_check_availability. Verdier utenfor området avvises, ikke justeres.
Parameter: autoRenew
Påkrevd: Ja
Type & begrensninger: Boolsk. Når true, fornyes domenet automatisk ved utløp ved hjelp av kontoens standard betalingsmetode.
Parameter: privacy.level
Påkrevd: Ja
Type & begrensninger: high skjuler registrantens kontaktopplysninger fra offentlig WHOIS; public publiserer dem.
Parameter: privacy.userConsent
Påkrevd: Ja
Type & begrensninger: Boolsk. Må bekrefte at du godtar den valgte personverninnstillingen.
Parameter: contacts.registrant
Påkrevd: Ja
Type & begrensninger: contactId-streng (27–32 alfanumeriske tegn), fra contacts_save.
Parameter: contacts.admin
Påkrevd: Ja
Type & begrensninger: contactId-streng (27–32 alfanumeriske tegn), fra contacts_save.
Parameter: contacts.tech
Påkrevd: Ja
Type og begrensninger: contactId streng (27–32 alfanumeriske tegn), fra contacts_save.
Parameter: contacts.billing
Påkrevd: Ja
Type og begrensninger: contactId streng (27–32 alfanumeriske tegn), fra contacts_save.
Parameter: contacts.attributes
Påkrevd: Nei
Type og begrensninger: Array med kontakt-ID-er for utvidede attributter (opptil 5); kreves bare for visse TLD-er, utelat eller null ellers.
Parameter: confirmationToken
Påkrevd: Nei
Type og begrensninger: Streng, opptil 4096 tegn. Serverutstedt token returnert av et tidligere domain_register-kall for nøyaktig disse argumentene. Utelat ved første kall for et nytt registreringsforsøk. Utløper etter kort tid og er bundet til de nøyaktige argumentene og prisen det ble utstedt for — send det på nytt uendret, sammen med confirmationResponse, for å handle på det.
Parameter: confirmationResponse
Påkrevd: Betinget
Type og begrensninger: "accept" eller "decline". Har bare betydning sammen med en gyldig confirmationToken. "accept" sender inn registreringen (som faktureres) som vises i den bekreftelsen; "decline" avbryter den uten belastning. Utelat ved første kall.
Returnerer — etter første kall (ingenting belastet):
{"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."}
Sammen med denne JSON-en er verktøyets tekst-svar den fullstendige bekreftelsen som skal vises til brukeren — den gjentar domenet, perioden og prisen ovenfor, pluss linjer for Auto-renew: on/off, WHOIS privacy: on/off, Payment source: Spaceship account funds, og hver av registrant-/admin-/tech-/billing-kontaktene (navn, e-post, land — en kontakt som samsvarer med registranten vises som "same as registrant"), etterfulgt av instruksjoner for neste kall. For en flerårig periode er price.amount totalen for hele perioden og price.pricePerYear er totalen delt på perioden — f.eks. years: 5 på .com returnerer { "amount": 48.52, "pricedYears": 5, "pricePerYear": 9.70 }, og example.ai med years: 2 returnerer { "amount": 159.96, "pricedYears": 2, "pricePerYear": 79.98 }.
Returnerer — etter confirmationResponse: "accept" (registrering sendt inn):
{"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."}
Returnerer — etter confirmationResponse: "decline" (ingenting belastet):
{"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."}
Returnerer — hvis prisen ikke kan fastslås, ved begge kall:
{"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 kan være:
Status: confirmation_required
Betydning: Forhåndsvisning — ingenting belastet. Vis svarteksten til brukeren, og kall deretter på nytt med denne confirmationToken og confirmationResponse. Returneres også, med et nytt token, når et innsendt confirmationToken mangler, er utløpt, manipulert eller ikke lenger samsvarer med gjeldende argumenter/pris — aldri en feil.
Status: cancelled
Betydning: Kjøpet ble avslått (confirmationResponse: "decline"), så ingenting ble sendt inn.
Status: pending
Betydning: Sendt inn; registeret fullfører i bakgrunnen. Poll async_operation_get med operationId.
Status: price_unavailable
Betydning: Prisen kunne ikke fastslås, så ingen token ble utstedt og ingenting ble fakturert. Prøv igjen senere.
operationId er en flat streng — send den til async_operation_get, som rapporterer om registreringen til slutt lykkes eller mislykkes. price som vises ved confirmation_required er nøyaktig det som vil bli belastet ved confirmationResponse: "accept" — price.amount er totalen for hele perioden og price.pricedYears angir perioden, så vis alltid disse to sammen. Når TLD-en har et ICANN-gebyr, inkluderer price.amount det allerede, og price.icannFee angir gebyrbeløpet slik at det kan forklares.
domain_set_contacts — Angi domenekontakterEndrer kontaktene som er tilordnet et domene du eier. Fullføres umiddelbart (ingen operasjon å polle).
Parameter: domainName
Påkrevd: Ja
Type og begrensninger: Fullt kvalifisert domenenavn. Godtar Unicode (IDN) eller ASCII (A-label) — normaliseres automatisk til punycode.
Parameter: registrant
Påkrevd: Ja
Type og begrensninger: contactId streng (27–32 alfanumeriske tegn), fra contacts_save.
Parameter: admin
Påkrevd: Nei
Type og begrensninger: contactId streng (27–32 alfanumeriske tegn) eller null.
Parameter: tech
Påkrevd: Nei
Type og begrensninger: contactId streng (27–32 alfanumeriske tegn) eller null.
Parameter: billing
Påkrevd: Nei
Type og begrensninger: contactId streng (27–32 alfanumeriske tegn) eller null.
Parameter: attributes
Påkrevd: Nei
Type og begrensninger: Array med kontakt-ID-er for utvidede attributter (opptil 5); kreves bare for visse TLD-er, utelat eller null ellers.
Returnerer
{ "verificationStatus": "verification" }
Den returnerte verificationStatus gjenspeiler ICANN RAA-e-postverifisering: verification — registranten må bekrefte e-postadressen sin (en bekreftelses-e-post sendes); success — allerede bekreftet; null — RAA-verifisering gjelder ikke for dette domenet.
domain_set_nameservers — Angi domenenavneservereEndrer et domenes navneservere på registrar-nivå. Fullføres umiddelbart (ingen operasjon å polle). Endringen gjenspeiles av domains_list etterpå.
Parameter: domainName
Påkrevd: Ja
Type og begrensninger: Fullt kvalifisert domenenavn. Godtar Unicode (IDN) eller ASCII (A-label) — normaliseres automatisk til punycode.
Parameter: provider
Påkrevd: Ja
Type og begrensninger: basic (Spaceships standardnavneservere) eller custom (dine egne verter).
Parameter: hosts
Påkrevd: Betinget
Type og begrensninger: Påkrevd når provider er custom: 2–12 vertsnavn for navneservere (hver et gyldig FQDN, 4–255 tegn). Må utelates når provider er basic.
Returnerer
{ "provider": "custom", "hosts": ["ns1.example.com", "ns2.example.com"] }
Å bruke på nytt en tilstand et domene allerede er i (f.eks. å sette basic når det allerede er basic) returnerer en valideringsfeil i stedet for en vellykket no-op — behandle det som et forventet resultat, ikke som en feil som skal prøves på nytt.
Disse verktøyenes domainName godtar Unicode (IDN) eller ASCII (A-label) og normaliseres automatisk til punycode; TLD-støtte håndheves ikke her.
dns_records_get — Hent DNS-posterHenter en paginert liste over DNS-ressursposter for et domene.
Parameter: domainName
Påkrevd: Ja
Type og begrensninger: Domenet hvis poster skal hentes.
Parameter: take
Påkrevd: Nei
Type og begrensninger: Elementer per side, 1–500. Standard 100.
Parameter: skip
Påkrevd: Nei
Type og begrensninger: Elementer som skal hoppes over, 0 eller flere. Standard 0.
Parameter: orderBy
Påkrevd: Nei
Type og begrensninger: Opptil 8 sorteringsnøkler: type, -type, name, -name.
Returnerer — { items, total }. Hvert element er en post som beskrevet i Postformer, pluss et valgfritt group-felt som angir hvor posten kommer fra (custom — opprettet av deg, product — administrert av et Spaceship-produkt, personalNs — personlige navneservere).
dns_records_save — Lagre DNS-posterLegger til egendefinerte DNS-poster eller oppdaterer TTL-en til eksisterende poster. Poster matches uten hensyn til store og små bokstaver, unntatt TXT-poster (skiller mellom store og små bokstaver).
Parameter: domainName
Påkrevd: Ja
Type og begrensninger: Domenet hvis poster skal oppdateres.
Parameter: records
Påkrevd: Ja
Type og begrensninger: 1–500 poster — se Postformer. Hver kan inkludere en valgfri ttl.
Parameter: force
Påkrevd: Nei
Type og begrensninger: Boolsk. Hopper over kontrollen for konfliktløsning og tvinger soneoppdateringen.
Returnerer — { "saved": <number> }, antallet innsendte poster. Et vellykket svar betyr at alle poster ble godtatt; hvis en post mislykkes, returnerer hele kallet en feil i stedet.
dns_records_delete — Slett DNS-posterSletter egendefinerte DNS-poster. Slettinger kan ikke angres. Poster matches uten hensyn til store og små bokstaver, unntatt TXT-poster (skiller mellom store og små bokstaver).
Parameter: domainName
Påkrevd: Ja
Type og begrensninger: Domenet hvis poster skal slettes.
Parameter: records
Påkrevd: Ja
Type og begrensninger: 1–500 poster som identifiserer eksisterende poster — samme former som ved lagring, men uten ttl.
Returnerer — { "deleted": <number> }, antallet innsendte poster. Hvis en post ikke kan matches, mislykkes hele kallet og ingenting slettes.
Hver post har:
type — en av de 13 støttede typene nedenfor.
name — postnavnet uten domenet: bruk @ for selve domenet (apex) og * for jokertegn.
ttl (kun lagring, valgfritt) — cachetid i sekunder, 60–3600.
Typespesifikke felt:
Type: A
Felt: address — IPv4-adresse.
Type: AAAA
Felt: address — IPv6-adresse.
Type: CNAME
Felt: cname — kanonisk domenenavn (maks. 253 tegn).
Type: ALIAS
Felt: aliasName — kanonisk domenenavn; CNAME-lignende oppførsel for apex, der CNAME ikke er tillatt.
Type: NS
Felt: nameserver — navneservernavn.
Type: PTR
Felt: pointer — domenenavn for den angitte IP-adressen.
Type: TXT
Felt: value — tekstverdi (matches med hensyn til store og små bokstaver).
Type: MX
Felt: exchange — e-postserver; preference — prioritet (0–65535, lavere foretrekkes).
Type: CAA
Felt: flag — 0 eller 128 (kritisk bit); tag — issue, issuewild, eller iodef; value — CA-identifikator med valgfrie parametere.
Type: SRV
Felt: service (f.eks. _sip); protocol (f.eks. _tcp); priority og weight (0–65535); port (1–65535); target — serverens domenenavn.
Type: TLSA
Felt: usage, selector, matching (hver 0–255); port — * eller _<1–65535>; protocol (f.eks. _tcp); associationData — sertifikathash eller data.
Type: HTTPS
Felt: svcPriority (0–65535; 0 = AliasMode); targetName — FQDN eller .; valgfri port (* eller _<1–65535>), scheme (må være _https når port er satt), svcParams.
Type: SVCB
Felt: svcPriority (0–65535; 0 = AliasMode); targetName — FQDN eller .; valgfri port, scheme (f.eks. _tcp), svcParams.
async_operation_get — Hent status for asynkron operasjonKontrollerer en langvarig operasjon startet av et annet verktøy (for øyeblikket domain_register). Kall det med operationId satt til operationId som verktøyet returnerte, og gjenta til status er success eller failed.
Parameter: operationId
Påkrevd: Ja
Type og begrensninger: Alfanumerisk streng, maks. 36 tegn, returnert av verktøyet som startet operasjonen.
Returnerer
Felt: operationId
Betydning: Operasjonen det spørres etter status for.
Felt: status
Betydning: pending, success eller failed.
Felt: type
Betydning: Operasjonstype, eller null.
Felt: details
Betydning: Ekstra detaljer om operasjonen, eller null.
Felt: createdAt / modifiedAt
Betydning: Når operasjonen ble opprettet / sist oppdatert (modifiedAt kan være null).
Når et kall mislykkes, returnerer verktøyet en feil med en kode og en menneskelesbar detail som forklarer hva som gikk galt — for eksempel ugyldig inndata (et feilformatert domenenavn eller kontakt-ID), et domene eller en kontakt som ikke finnes, eller en konflikt med gjeldende tilstand. Hvis et verktøy avvises fordi assistenten ikke fikk tilgang til det, kobler du til Spaceship MCP på nytt og godkjenner tilgangen det ber om.