Spaceship MCP, yapay zeka asistanınızı (örneğin Claude) Spaceship hesabınıza bağlar. Bu sayede asistan, alan adlarını kontrol edip kaydedebilir, alan adı kişilerini yönetebilir ve sizin adınıza DNS kayıtlarını okuyabilir veya düzenleyebilir — siz sadece sade bir dille istersiniz, asistan da doğru araçları çağırır.
Bir Spaceship hesabına ihtiyacınız var. Spaceship MCP şu adreste kullanılabilir: https://mcp.spaceship.com/mcp.
Nasıl bağlanacağınız AI assistant'ınıza bağlıdır:
Claude (web ve masaüstü) — Ayarlar'ı açın, Connectors'ı seçin, bağlayıcılar dizininde Spaceship'i bulun ve ekleyin. Anthropic'in Claude'u, Spaceship MCP'nin çalıştığını doğruladığımız istemcidir.
Not: Spaceship MCP üzerinden alan adı kaydı genel olarak tamamen desteklense de, bu özellik henüz özellikle Claude bağlayıcısı üzerinden kullanılamamaktadır. Arama, alan adı sorgulama, kişi yönetimi ve DNS kayıt yönetimi bugün Claude ile zaten kullanılabilir durumdadır ve çalıştığı doğrulanmıştır.
Diğer MCP istemcileri — uzak bir MCP sunucusu ekleyin ve onu https://mcp.spaceship.com/mcp adresine yönlendirin. Diğer istemciler çalışabilir, ancak henüz doğrulamadık.
Bağlandığınızda, Spaceship'te oturum açmanız ve asistana hesabınıza erişim izni vermeniz istenir. Asistanın hangi araçları kullanabileceği, onayladığınız erişime bağlıdır — bir araç erişim verilmediği için reddedilirse, yeniden bağlanın ve ihtiyaç duyduğu erişimi onaylayın.
Araç: contacts_save
Ne yapar: Kişi ayrıntılarını kaydeder ve bir kişi kimliği alır
Araç: contacts_get
Ne yapar: Kayıtlı bir kişiyi kimliğine göre okur
Araç: contacts_list
Ne yapar: Birini bulup yeniden kullanmak için tüm kayıtlı kişileri listeler
Araç: domains_list
Ne yapar: Alan adlarınızı listeler veya tek bir alan adını arar
Araç: domains_check_availability
Ne yapar: Alan adlarının kayda uygun olup olmadığını kontrol eder
Araç: domain_register
Ne yapar: Bir alan adını kaydeder (satın alır) — para harcar
Araç: domain_set_contacts
Ne yapar: Sahip olduğunuz bir alan adına kişiler atar
Araç: domain_set_nameservers
Ne yapar: Bir alan adını temel veya özel ad sunucularına geçirir
Araç: dns_records_get
Ne yapar: Bir alan adı için DNS kayıtlarını okur
Araç: dns_records_save
Ne yapar: DNS kayıtları ekler veya TTL'lerini günceller
Araç: dns_records_delete
Ne yapar: DNS kayıtlarını siler
Araç: async_operation_get
Ne yapar: Uzun süren bir işlemin durumunu kontrol eder
Bir kişinin gerekli olduğu her yerde (domain_register, domain_set_contacts), her rol bir contactId dizesi alır — asla satır içi kişi ayrıntıları değil. Önce kişiyi contacts_save ile kaydedin (bu işlem onun contactId değerini döndürür), ardından bu kimliği kişinin kabul edildiği yerde iletin. Satır içi otomatik kaydetme yoktur; bir rol tam bir kişi nesnesi alamaz. Ayrıca bir contactId değerini contacts_list sonucundan veya domains_list sonucunda gördüğünüz bir değerden yeniden kullanabilirsiniz.
Bir contactId, 27–32 alfasayısal karakterden oluşan bir dizedir. Bir kişinin kabul edildiği yerde bunu geri iletmeniz yeterlidir.
Birkaç araç birlikte kullanılmak üzere tasarlanmıştır: birinin çıktısı diğerinin girdisi olur.
contacts_save — kayıt sahibi, yönetici, teknik ve faturalama kişilerini kaydedin (kimliklerine zaten sahip değilseniz) ve her biri için döndürülen contactId değerini saklayın. Kayıt yapabilmeniz için kişiler önceden mevcut olmalıdır.
domains_check_availability — istediğiniz ad(lar)ı kontrol edin. Yalnızca resultavailable olduğunda devam edin. Kullanılabilir her ad, kaydetme için USD cinsinden price değerini içerir (standart ve premium fark etmeksizin) veya belirlenemediğinde priceUnavailableReason ile birlikte, ayrıca minRegisterPeriodInYears ve maxRegisterPeriodInYears — TLD'nin izin verdiği süreyi de içerir. price değerinin price.pricedYears yılı kapsadığını unutmayın; bu, TLD'nin izin verdiği en kısa süredir ve her zaman 1 olmayabilir.
domain_register (önizleme) — confirmationToken ayarlanmamış olarak çağırın; status: confirmation_required, yeni bir confirmationToken ve tahsil edilecek price döner. Hiçbir ücret alınmaz. Aracın yanıt metni tam bir onaydır — süre, fiyat dökümü, otomatik yenileme, WHOIS gizliliği, ödeme kaynağı ve kayıt sahibi/yönetici/teknik/faturalama kişileri — bunu kullanıcıya olduğu gibi gösterin. years değerini 2. adımdaki minRegisterPeriodInYears ile maxRegisterPeriodInYears arasında seçin — aralık dışı bir değer doğrudan reddedilir. Her kişi rolünü, 1. adımda kaydettiğiniz contactId olarak iletin.
domain_register (kabul/ret) — kullanıcı kabul ettikten sonra, aynı argümanlarla birlikte o confirmationToken ve confirmationResponse: "accept" ile tekrar çağırın. Bu, hesabın varsayılan ödeme yönteminden tahsilat yapar ve geri alınamaz. Hemen status: pending ve bir operationId döndürür — kayıt arka planda tamamlanır. Bunun yerine iptal etmek için, aynı confirmationToken ve confirmationResponse: "decline" ile tekrar çağırın — hiçbir ücret alınmaz. Token kısa bir süre sonra sona erer ve verildiği tam argümanlara ve fiyata bağlıdır; eksikse, süresi dolmuşsa veya artık eşleşmiyorsa, çağrı hata yerine yepyeni bir onay döndürür — asla ücret alınmaz. Fiyat her iki çağrıda da belirlenemezse, araç bunun yerine status: price_unavailable döndürür ve hiçbir ücret alınmaz.
async_operation_get — ilerlemeyi kontrol etmek için 4. adımdaki operationId değerini iletin. statussuccess veya failed olana kadar tekrarlayın.
contacts_save ──▶ domains_check_availability ──▶ domain_register ──▶ domain_register ──▶ async_operation_get(contactId kimlikleri) (uygun mu? + fiyat + (token ayarsız: (token + (pending →min/maxRegisterPeriod) onay, accept: operationId, success/failed)confirmationToken, pending)ücret yok)
domain_set_contacts — kişileri alan adına contactId ile atayın (gerekirse önce contacts_save ile kaydedin). Bu işlem hemen tamamlanır ve bir verificationStatus döndürür: verification, değişikliğin tam olarak uygulanabilmesi için kayıt sahibinin e-posta adresini doğrulaması gerektiği anlamına gelir (kendisine bir e-posta gönderilir); success bunun zaten doğrulandığı anlamına gelir ve null o alan adı için doğrulama gerekmediği anlamına gelir.
domains_list — alan adını bulun ve mevcut nameservers değerlerini görün ({ provider, hosts }).
domain_set_nameservers — bunu, provider: "basic" ile Spaceship'in varsayılan ad sunucularına geçirin (hosts yok) veya provider: "custom" ve 2–12 hosts listesi ile kendi ad sunucularınıza yönlendirin. Sonuçta oluşan { provider, hosts } değerini döndürür ve sonraki bir domains_list çağrısı değişikliği yansıtır. Bir alan adının zaten bulunduğu durumu yeniden uygulamak, etkisiz bir işlem yerine doğrulama hatası döndürür — bunu yeniden denenecek bir başarısızlık değil, beklenen bir durum olarak değerlendirin.
domains_list — yönetmek istediğiniz alan adını bulun (veya biliyorsanız adını doğrudan iletin).
dns_records_get — alan adı için mevcut kayıtları okuyun.
dns_records_save veya dns_records_delete — kayıt ekleyin, güncelleyin veya kaldırın. dns_records_get tarafından döndürülen kayıtlar, kaydetme ve silme araçlarının kabul ettiği yapıyla aynıdır (silme işleminde yalnızca ttl atlanır), böylece asistan okuyabilir, düzenleyebilir ve geri yazabilir. Eşleştirme, büyük/küçük harfe duyarlı olan TXT kayıtları dışında büyük/küçük harfe duyarsızdır.
domains_list — sıralama ile tüm alan adlarınız arasında sayfalayın veya ada göre tek bir alan adını getirin. Her alan adı, sona erme tarihi, otomatik yenileme ayarı, durum, ad sunucuları, gizlilik koruması ve atanmış kişi kimliklerini içerir.
contacts_list — hesabınıza kaydedilmiş tüm kişiler arasında sayfalayarak mevcut bir kişiyi bulup yeniden kullanın (kişi kimliğine göre), böylece yinelenen bir kayıt oluşturmazsınız.
contacts_get — bir alan adında veya contacts_list sonucunda gördüğünüz herhangi bir kişi kimliğinin arkasındaki ayrıntıları görüntüleyin.
Her araç sonucunu yapılandırılmış JSON olarak döndürür. Uzun süren işlemler (şu anda yalnızca domain_register) async_operation_get ile sorgulanacak bir işlem başvurusu döndürür; diğer tüm araçlar hemen tamamlanır.
Kişiler, bir alan adı kaydına bağlı kişi veya kuruluşlardır (kayıt sahibi, yönetici, teknik, faturalama). Bir kişiye her yerde kişi kimliği ile başvurulur — bu, opak bir dizedir.
contacts_save — Kişiyi KaydetKişi ayrıntılarını kaydeder ve oluşturulan kişi kimliğini döndürür. Bazı alanların doğrulanması (örneğin stateProvince ve postalCode) seçilen ülkeye bağlıdır.
Parametre: firstName
Gerekli: Evet
Tür ve kısıtlamalar: Dize, 1–64 karakter. Tire ve kesme işareti içerebilir.
Parametre: lastName
Gerekli: Evet
Tür ve kısıtlamalar: Dize, 1–64 karakter. Tire ve kesme işareti içerebilir.
Parametre: email
Gerekli: Evet
Tür ve kısıtlamalar: Geçerli e-posta adresi, en fazla 254 karakter.
Parametre: address1
Gerekli: Evet
Tür ve kısıtlamalar: Adres satırı 1. Dize, 1–128 karakter.
Parametre: city
Gerekli: Evet
Tür ve kısıtlamalar: Dize, 1–64 karakter.
Parametre: country
Gerekli: Evet
Tür ve kısıtlamalar: İki harfli ülke kodu (ISO 3166-1 alpha-2), ör. US.
Parametre: phone
Gerekli: Evet
Tür ve kısıtlamalar: Uluslararası biçim +CountryCode.Number, ör. +1.2025551234. En fazla 32 karakter.
Parametre: organization
Gerekli: Hayır
Tür ve kısıtlamalar: Kuruluş/şirket adı. 1–128 karakter.
Parametre: address2
Gerekli: Hayır
Tür ve kısıtlamalar: Adres satırı 2. 1–128 karakter.
Parametre: stateProvince
Gerekli: Hayır
Tür ve kısıtlamalar: Eyalet/il adı, 1–64 karakter. Ülkeye bağlı olarak gerekli olabilir.
Parametre: postalCode
Gerekli: Hayır
Tür ve kısıtlamalar: 1–16 karakter. Ülkeye bağlı olarak gerekli olabilir.
Parametre: phoneExt
Gerekli: Hayır
Tür ve kısıtlamalar: Telefon dahili numarası, 1–16 karakter.
Parametre: fax
Gerekli: Hayır
Tür ve kısıtlamalar: Faks numarası, aynı +CountryCode.Number biçimi, en fazla 32 karakter.
Parametre: faxExt
Gerekli: Hayır
Tür ve kısıtlamalar: Faks dahili numarası, 1–16 karakter.
Parametre: taxNumber
Gerekli: Hayır
Tür ve kısıtlamalar: Vergi numarası, 1–32 karakter.
Döndürür
{ "contactId": "..." }
contactId (27–32 alfasayısal karakter), domain_register, domain_set_contacts ve contacts_get için ilettiğiniz değerdir.
contacts_get — Kişiyi AlKayıtlı bir kişinin ayrıntılarını kişi kimliğine göre okur. Kişi kimlikleri contacts_save, contacts_list veya domains_list sonuçlarındaki contacts alanından gelir.
Parametre: contactId
Gerekli: Evet
Tür ve kısıtlamalar: Kişi kimliği, 27–32 alfasayısal karakter.
Döndürür — { contact }, şunlarla birlikte:
Alan: firstName, lastName, email, address1, city, country, phone, postalCode
Tür: Dize
Alan: organization, address2, stateProvince, phoneExt, fax, faxExt, taxNumber
Tür: Dize veya null
contacts_list — Kişileri ListeleHesabınız altında kayıtlı tüm kişileri listeler; böylece yinelenen bir kayıt oluşturmak veya alan adlarınız arasında aramak yerine mevcut bir kişiyi (kişi kimliğine göre) bulup yeniden kullanabilirsiniz. Liste sayfalıdır ve sıralanabilir; domains_list ile tutarlıdır.
Parametre: take
Gerekli: Hayır
Tür ve kısıtlamalar: Sayfa başına öğe, 1–100. Varsayılan 10.
Parametre: skip
Gerekli: Hayır
Tür ve kısıtlamalar: Atlanacak öğeler, 0 veya daha fazla. Varsayılan 0.
Parametre: orderBy
Gerekli: Hayır
Tür ve kısıtlamalar: En fazla 8 sıralama anahtarı: name, email, organization; azalan sıralama için başına - ekleyin (ör. -name).
Döndürür — { items, total }; burada total hesaptaki benzersiz kişi sayısıdır (sayfa boyutuna göre değil, kişi kimliğine göre tekilleştirilmiş) ve her öğe, ek bir çağrı yapmadan kişileri ayırt etmeye yetecek kadar bilgi taşır. Hesapta aynı kişi kimliği için yinelenen girdiler varsa bunlar tek bir girdiye daraltılır; bu nedenle total ham sunucu tarafı satırları değil, farklı kişileri sayar:
Alan: contactId
Tür: Dize (27–32 alfasayısal). contacts_get, domain_register veya domain_set_contacts için iletin.
Alan: name
Tür: Dize — kişinin adı.
Alan: email
Tür: Kişinin kayıtlı e-postası yoksa Dize veya null
Alan: organization
Tür: Kişinin kayıtlı kuruluşu yoksa Dize veya null
{"items": [{ "contactId": "1anq5bsl9haBy21rOV9aeDWrARBsV", "name": "Ada Lovelace", "email": "ada@example.com", "organization": "Analytical Engines" }],"total": 1}
Alan adı girdileri (domain/domainName) Unicode (IDN) veya ASCII (A-label) kabul eder — her iki durumda da araç, adı kullanmadan önce otomatik olarak punycode'a normalleştirir. domains_check_availability ve domain_register ayrıca Spaceship'in kayıt için desteklediği bir TLD gerektirir: TLD'si desteklenmeyen bir alan adı, kontrol edilmek veya ücretlendirilmek yerine kullanılamaz olarak değerlendirilir. Diğer alan adı araçları (domains_list, domain_set_contacts, domain_set_nameservers) ve DNS araçları yalnızca adı normalleştirir ve TLD desteğine göre asla reddetmez.
domains_list — Alan Adlarını ListeleAlan adlarınızın sayfalı bir listesini getirir. Bunun yerine adına göre tek bir alan adı getirmek için domain iletin (bu durumda sayfalama ve sıralama yok sayılır; sağlanmışlarsa sonuçta bunu belirten bir note bulunur).
Parametre: domain
Gerekli: Hayır
Tür ve kısıtlamalar: Tek bir alan adı getirmek için tam nitelikli alan adı. Unicode (IDN) veya ASCII (A-label) kabul eder — otomatik olarak punycode'a normalleştirilir.
Parametre: take
Gerekli: Hayır
Tür ve kısıtlamalar: Sayfa başına öğe, 1–100. Varsayılan 10.
Parametre: skip
Gerekli: Hayır
Tür ve kısıtlamalar: Atlanacak öğeler, 0 veya daha fazla. Varsayılan 0.
Parametre: orderBy
Gerekli: Hayır
Tür ve kısıtlamalar: En fazla 8 sıralama anahtarı: name, unicodeName, registrationDate, expirationDate; azalan sıralama için başına - ekleyin (ör. -expirationDate).
Döndürür — { items, total }; burada her öğe bir alan adını açıklar:
Alan: name / unicodeName
Anlamı: Alan adının ASCII ve Unicode biçimi.
Alan: isPremium
Anlamı: Alan adının premium bir ad olup olmadığı.
Alan: autoRenew
Anlamı: Otomatik yenilemenin etkin olup olmadığı.
Alan: registrationDate / expirationDate
Anlamı: Kayıt ve sona erme zaman damgaları.
Alan: lifecycleStatus
Anlamı: creating, registered, grace1, grace2 veya redemption.
Alan: verificationStatus
Anlamı: verification, success, failed veya uygulanmadığında null.
Alan: eppStatuses
Anlamı: Kayıt operatörü durum kodları (ör. transfer kilitleri).
Alan: suspensions
Anlamı: Etkin askıya almalar; her biri bir reasonCode içerir.
Alan: privacyProtection
Anlamı: { level: "public" | "high", contactForm: boolean }.
Alan: nameservers
Anlamı: { provider: "basic" | "custom", hosts: [...] }.
Alan: contacts
Anlamı: Kişi kimlikleri: registrant, ayrıca admin/tech/billing (null olabilir) ve attributes (genişletilmiş öznitelik kişi kimliklerinin listesi veya null). contacts_get ile okunabilir.
Spaceship MCP, yukarıdaki her alanı doldurur — buna contacts, eppStatuses, suspensions, verificationStatus, nameservers, gerçek bir autoRenew ve alan adında varsa ayrı bir unicodeName da dahildir — hem çok öğeli liste hem de tek alan adı getirme işlemleri için.
domains_check_availability — Alan Adı Uygunluğunu Kontrol EtBir veya daha fazla alan adının kayda uygun olup olmadığını kontrol eder. Tek ad için tek alan adı uç noktasını, birden fazla ad için toplu uç noktayı kullanır. TLD'si kayıt için desteklenmeyen bir alan adı uygunluk kontrolüne hiç gönderilmez — doğrudan tldNotSupported olarak döndürülür.
Parametre: domains
Gerekli: Evet
Tür ve kısıtlamalar: 1–20 tam nitelikli alan adı. Her biri Unicode (IDN) veya ASCII (A-label) kabul eder — otomatik olarak punycode'a normalleştirilir.
Döndürür — { results }, istenen her ad için bir giriş:
Alan: domain
Anlamı: Kontrol edilen ad.
Alan: result
Anlamı: available, taken, invalidDomainName, tldNotSupported veya unexpectedError.
Alan: premiumPricing
Anlamı: Premium adlar için: { operation, price, currency } listesidir; burada operationregister, transfer, renew veya restore olur. Normal adlar için boştur.
Alan: price
Anlamı: available adlar için (standart ve premium): alan adını TLD'nin izin verdiği en kısa süre boyunca kaydetmenin USD fiyatı — { amount, currency: "USD", pricedYears?, pricePerYear?, icannFee?, isPremium }. amount, bu sürenin tamamı için ödenecek toplamdır; pricedYears bunun kaç yılı kapsadığını belirtir. İndirim öncesi veya "eski" fiyat bildirilmez. icannFee, amount içine zaten dahil edilmiş ICANN ücretidir (USD); döküm açıklanabilsin diye ayrıca döndürülür ve yalnızca TLD ücret taşıdığında görünür.
Alan: pricePerYear
Anlamı: price içinde: amount değerinin pricedYears değerine bölünmüş hali; böylece karşılaştırma için her zaman yıllık bir rakam bulunur. pricedYears 1 olduğunda bu gerçek bir yıllık fiyattır; bunun üzerindeyse satın alabileceğiniz bir süre değil, sürenin yıllık ortalamasıdır.
Alan: minRegisterPeriodInYears / maxRegisterPeriodInYears
Anlamı: available adlar için: ilgili TLD'nin gerçekten izin verdiği en kısa ve en uzun kayıt süresi, iki düz sayı olarak. domain_register için geçerli bir years seçmekte kullanın. İzin verilen süre belirlenemediğinde her ikisi de atlanır.
Alan: priceUnavailableReason
Anlamı: Uygun bir ad için fiyat belirlenemediğinde price yerine bulunur. Kontrolün kendisi yine de başarılı olur.
Yalnızca uygun adlar fiyatlandırılır; taken/geçersiz sonuçlar ne price ne de priceUnavailableReason taşır.
Çoğu TLD bir yıla izin verir, ancak bazıları vermez..ai, örneğin, en az iki yıl gerektirir. Bunlarda price.amount, uygulanabilir bir bir yıllık fiyat değil, minimum süre için toplam tutardır — ve price.pricedYears bunu belirtir:
{"domain": "example.ai","result": "available","premiumPricing": [],"price": { "amount": 159.96, "currency": "USD", "pricedYears": 2, "pricePerYear": 79.98, "isPremium": false },"minRegisterPeriodInYears": 2,"maxRegisterPeriodInYears": 10}
pricePerYear burada vardır — 159.96 değerinin kapsadığı iki yıla bölünmesi 79.98 verir. Bu, toplamın süreye bölünmüş halidir; tek bir yıl için ödeyebileceğiniz bir fiyat değildir (bir yıllık .ai kaydı satın alınamaz). Her zaman amount ile birlikte pricedYears gösterin ("2 yıl için $159.96"); asla yalnızca amount göstermeyin. Sıradan bir TLD için pricedYears1 olur ve pricePerYear, amount değerine eşittir.
domain_register — Alan Adı KaydetBir alan adını kaydeder (satın alır). Bu işlem hesabınızın varsayılan ödeme yöntemini ücretlendirir ve geri alınamaz. Önerilen sıra: domains_check_availability → domain_register. TLD'si kayıt için desteklenmeyen bir alan adı, herhangi bir uygunluk kontrolü, fiyatlandırma veya ücretlendirme yapılmadan önce hemen reddedilir.
years, TLD'nin kendi izin verdiği süre içinde olmalıdır. Aşağıdaki 1–10 sınırı tüm TLD'ler için dış sınırdır; her TLD daha dardır. .ai 2–10'a, .co ve .io 1–5'e, .sg 1–2'ye, .fr ise tam olarak 1'e izin verir. Bu aralığın dışındaki bir years değeri, izin verilen aralığı belirten bir doğrulama hatasıyla reddedilir — herhangi bir uygunluk kontrolü, fiyatlandırma veya ücretlendirme yapılmadan önce — ve değer sizin için sessizce ayarlanmaz:
.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.
Önce domains_check_availability içinden minRegisterPeriodInYears/maxRegisterPeriodInYears değerlerini okuyun ve bunun içinde bir years seçin. Aynı kontrol, onaylayan (confirmationResponse: "accept") çağrıda yeniden çalıştırılır; bu nedenle onay verilerek asla atlatılamaz.
Ücretlendirme öncesi iki adımlı onay. İlk olarak confirmationToken ayarlanmamış şekilde çağırın: araç alan adını güncel olarak fiyatlandırır, tam bir onay oluşturur — süre, fiyat dökümü (ICANN ücreti ve alan adının premium olup olmadığı dahil), otomatik yenileme, WHOIS gizliliği, ödeme kaynağı ve registrant/admin/tech/billing kişileri (registrant ile aynı olan bir kişi "same as registrant" olarak gösterilir) — ve bu price ile birlikte status: "confirmation_required" ve yeni bir confirmationToken döndürür. Bu çağrıda hiçbir şey kaydedilmez veya ücretlendirilmez. Tam onay, aracın yanıt metnidir; bunu kullanıcıya olduğu gibi gösterin. Kullanıcı kabul ettiğinde, satın alma işlemini göndermek için tam olarak aynı argümanlarla birlikte bu confirmationToken ve confirmationResponse: "accept" ile tekrar çağırın; ya da iptal etmek için confirmationResponse: "decline" kullanın — reddetmede hiçbir ücret alınmaz. Belirteç bu tam argümanlara ve verilen fiyata bağlıdır ve kısa bir süre sonra sona erer: onaylayan çağrıda eksik, süresi dolmuş, değiştirilmiş veya artık eşleşmeyen bir belirteç yalnızca yeni bir belirteçle yepyeni bir onay döndürür — asla hata vermez, asla ücret almaz. Her iki çağrıda da fiyat belirlenemezse araç belirteç yerine status: "price_unavailable" döndürür ve asla ücret almaz; daha sonra yeniden deneyin. Onaylanmış bir çağrı hemen status: "pending" ve bir operationId ile döner — kayıt arka planda tamamlanır; bunu async_operation_get ile kontrol edin.
Parametre: domain
Gerekli: Evet
Tür ve kısıtlamalar: Kaydedilecek tam nitelikli alan adı, ör. example.com. Unicode (IDN) veya ASCII (A-label) kabul eder — otomatik olarak punycode'a normalleştirilir.
Parametre: years
Gerekli: Evet
Tür ve kısıtlamalar: Yıl cinsinden kayıt süresi. 1–10 dış sınırdır; kabul edilen aralık TLD'nin kendisine aittir — domains_check_availability içindeki minRegisterPeriodInYears/maxRegisterPeriodInYears değerlerine bakın. Aralık dışı değerler ayarlanmaz, reddedilir.
Parametre: autoRenew
Gerekli: Evet
Tür ve kısıtlamalar: Boolean. true olduğunda alan adı, süresi dolduğunda hesabın varsayılan ödeme yöntemi kullanılarak otomatik olarak yenilenir.
Parametre: privacy.level
Gerekli: Evet
Tür ve kısıtlamalar: high, registrant'ın iletişim bilgilerini herkese açık WHOIS'ten gizler; public ise bunları yayımlar.
Parametre: privacy.userConsent
Gerekli: Evet
Tür ve kısıtlamalar: Boolean. Seçilen gizlilik ayarını kabul ettiğinizi onaylamalıdır.
Parametre: contacts.registrant
Gerekli: Evet
Tür ve kısıtlamalar: contactId dizesi (27–32 alfasayısal), contacts_save içinden.
Parametre: contacts.admin
Gerekli: Evet
Tür ve kısıtlamalar: contactId dizesi (27–32 alfasayısal), contacts_save içinden.
Parametre: contacts.tech
Gerekli: Evet
Tür ve kısıtlamalar: contactId dizesi (27–32 alfasayısal), contacts_save içinden.
Parametre: contacts.billing
Gerekli: Evet
Tür ve kısıtlamalar: contactId dizesi (27–32 alfasayısal), contacts_save içinden.
Parametre: contacts.attributes
Gerekli: Hayır
Tür ve kısıtlamalar: Genişletilmiş öznitelik iletişim kimliklerinden oluşan dizi (en fazla 5); yalnızca belirli TLD'ler için gereklidir, aksi halde atlayın veya null kullanın.
Parametre: confirmationToken
Gerekli: Hayır
Tür ve kısıtlamalar: Dize, en fazla 4096 karakter. Bu tam bağımsız değişkenler için önceki bir domain_register çağrısından dönen, sunucu tarafından verilmiş belirteç. Yeni bir kayıt denemesinin ilk çağrısında atlayın. Kısa bir süre sonra süresi dolar ve verildiği tam bağımsız değişkenlere ve fiyata bağlıdır — işlem yapmak için bunu değiştirmeden, confirmationResponse ile birlikte yeniden gönderin.
Parametre: confirmationResponse
Gerekli: Koşullu
Tür ve kısıtlamalar: "accept" veya "decline". Yalnızca geçerli bir confirmationToken ile birlikte anlamlıdır. "accept", bu onayda gösterilen (ücretlendirilen) kaydı gönderir; "decline" ise ücret almadan iptal eder. İlk çağrıda atlayın.
Döndürür — ilk çağrıdan sonra (ücret alınmaz):
{"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."}
Bu JSON'un yanında, aracın yanıt metni kullanıcıya gösterilecek tam onaydır — yukarıdaki alan adını, süreyi ve fiyatı yeniden belirtir; ayrıca Auto-renew: on/off, WHOIS privacy: on/off, Payment source: Spaceship account funds ve kayıt sahibi/yönetici/teknik/faturalandırma kişilerinin her biri için satırlar içerir (ad, e-posta, ülke — kayıt sahibiyle eşleşen bir kişi "same as registrant" olarak görünür); ardından sonraki çağrı için talimatlar gelir. Çok yıllı bir süre için price.amount tüm süre için toplamdır ve price.pricePerYear bu toplamın süreye bölünmüş halidir — örneğin years: 5 ile .com için { "amount": 48.52, "pricedYears": 5, "pricePerYear": 9.70 } döner ve example.ai ile years: 2 için { "amount": 159.96, "pricedYears": 2, "pricePerYear": 79.98 } döner.
Döndürür — confirmationResponse: "accept" sonrasında (kayıt gönderildi):
{"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."}
Döndürür — confirmationResponse: "decline" sonrasında (ücret alınmaz):
{"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."}
Döndürür — fiyat belirlenemiyorsa, her iki çağrıda da:
{"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 şu değerlerden biri olabilir:
Durum: confirmation_required
Anlamı: Önizleme — ücret alınmaz. Yanıt metnini kullanıcıya gösterin, ardından bu confirmationToken ve confirmationResponse ile tekrar çağırın. Ayrıca, gönderilen bir confirmationToken eksikse, süresi dolmuşsa, kurcalanmışsa veya artık mevcut bağımsız değişkenler/fiyatla eşleşmiyorsa, yeni bir belirteçle birlikte döndürülür — asla hata olarak değil.
Durum: cancelled
Anlamı: Satın alma reddedildi (confirmationResponse: "decline"), bu nedenle hiçbir şey gönderilmedi.
Durum: pending
Anlamı: Gönderildi; kayıt operatörü işlemi arka planda tamamlıyor. async_operation_get aracını operationId ile sorgulayın.
Durum: price_unavailable
Anlamı: Fiyat belirlenemedi, bu nedenle belirteç verilmedi ve ücretlendirme yapılmadı. Daha sonra yeniden deneyin.
operationId düz bir dizedir — bunu async_operation_get aracına iletin; bu araç kaydın nihayetinde başarılı mı başarısız mı olduğunu bildirir. price içinde confirmation_required durumunda gösterilen değer, confirmationResponse: "accept" sırasında tam olarak ücretlendirilecek tutardır — price.amount tüm süre için toplamdır ve price.pricedYears süreyi belirtir; bu yüzden ikisini her zaman birlikte gösterin. TLD bir ICANN ücreti içeriyorsa, price.amount bunu zaten içerir ve price.icannFee açıklanabilmesi için ücret tutarını belirtir.
domain_set_contacts — Alan Adı Kişilerini AyarlaSahip olduğunuz bir alan adına atanmış kişileri değiştirir. Hemen tamamlanır (sorgulanacak işlem yoktur).
Parametre: domainName
Gerekli: Evet
Tür ve kısıtlamalar: Tam nitelikli alan adı. Unicode (IDN) veya ASCII (A-label) kabul eder — otomatik olarak punycode'a normalleştirilir.
Parametre: registrant
Gerekli: Evet
Tür ve kısıtlamalar: contactId dizesi (27–32 alfasayısal), contacts_save içinden.
Parametre: admin
Gerekli: Hayır
Tür ve kısıtlamalar: contactId dizesi (27–32 alfasayısal) veya null.
Parametre: tech
Gerekli: Hayır
Tür ve kısıtlamalar: contactId dizesi (27–32 alfasayısal) veya null.
Parametre: billing
Gerekli: Hayır
Tür ve kısıtlamalar: contactId dizesi (27–32 alfasayısal) veya null.
Parametre: attributes
Gerekli: Hayır
Tür ve kısıtlamalar: Genişletilmiş öznitelik iletişim kimliklerinden oluşan dizi (en fazla 5); yalnızca belirli TLD'ler için gereklidir, aksi halde atlayın veya null kullanın.
Döndürür
{ "verificationStatus": "verification" }
Döndürülen verificationStatus, ICANN RAA e-posta doğrulamasını yansıtır: verification — kayıt sahibi e-posta adresini onaylamalıdır (bir onay e-postası gönderilir); success — zaten onaylandı; null — RAA doğrulaması bu alan adı için geçerli değildir.
domain_set_nameservers — Alan Adı Ad Sunucularını AyarlaBir alan adının kayıt kuruluşu düzeyindeki ad sunucularını değiştirir. Hemen tamamlanır (sorgulanacak işlem yoktur). Değişiklik daha sonra domains_list tarafından yansıtılır.
Parametre: domainName
Gerekli: Evet
Tür ve kısıtlamalar: Tam nitelikli alan adı. Unicode (IDN) veya ASCII (A-label) kabul eder — otomatik olarak punycode'a normalleştirilir.
Parametre: provider
Gerekli: Evet
Tür ve kısıtlamalar: basic (Spaceship'in varsayılan ad sunucuları) veya custom (kendi ana makineleriniz).
Parametre: hosts
Gerekli: Koşullu
Tür ve kısıtlamalar: providercustom olduğunda gereklidir: 2–12 ad sunucusu ana makine adı (her biri geçerli bir FQDN, 4–255 karakter). providerbasic olduğunda atlanmalıdır.
Döndürür
{ "provider": "custom", "hosts": ["ns1.example.com", "ns2.example.com"] }
Bir alan adının zaten bulunduğu durumu yeniden uygulamak (ör. zaten basic iken basic ayarlamak), etkisiz bir başarı yerine doğrulama hatası döndürür — bunu yeniden denenecek bir başarısızlık değil, beklenen bir sonuç olarak değerlendirin.
Bu araçların aldığı domainName Unicode (IDN) veya ASCII (A-label) kabul eder ve otomatik olarak punycode'a normalleştirilir; TLD desteği burada zorunlu kılınmaz.
dns_records_get — DNS Kayıtlarını GetirBir alan adı için sayfalandırılmış DNS kaynak kaydı listesini alır.
Parametre: domainName
Gerekli: Evet
Tür ve kısıtlamalar: Kayıtları alınacak alan adı.
Parametre: take
Gerekli: Hayır
Tür ve kısıtlamalar: Sayfa başına öğe sayısı, 1–500. Varsayılan 100.
Parametre: skip
Gerekli: Hayır
Tür ve kısıtlamalar: Atlanacak öğeler, 0 veya daha fazla. Varsayılan 0.
Parametre: orderBy
Gerekli: Hayır
Tür ve kısıtlamalar: En fazla 8 sıralama anahtarı: type, -type, name, -name.
Döndürür — { items, total }. Her öğe, Kayıt şekilleri bölümünde açıklandığı gibi bir kayıttır; ayrıca kaydın nereden geldiğini gösteren isteğe bağlı bir group alanı da olabilir (custom — sizin tarafınızdan oluşturuldu, product — bir Spaceship ürünü tarafından yönetiliyor, personalNs — kişisel ad sunucuları).
dns_records_save — DNS Kayıtlarını KaydetÖzel DNS kayıtları ekler veya mevcut olanların TTL değerini günceller. Kayıtlar, TXT kayıtları hariç (büyük/küçük harfe duyarlı), büyük/küçük harf duyarsız olarak eşleştirilir.
Parametre: domainName
Gerekli: Evet
Tür ve kısıtlamalar: Kayıtları güncellenecek alan adı.
Parametre: records
Gerekli: Evet
Tür ve kısıtlamalar: 1–500 kayıt — bkz. Kayıt şekilleri. Her biri isteğe bağlı bir ttl içerebilir.
Parametre: force
Gerekli: Hayır
Tür ve kısıtlamalar: Boolean. Çakışma çözümleme denetimini atlar ve bölge güncellemesini zorlar.
Döndürür — { "saved": <number> }, gönderilen kayıtların sayısı. Başarılı bir yanıt, tüm kayıtların kabul edildiği anlamına gelir; herhangi bir kayıt başarısız olursa, bunun yerine tüm çağrı hata döndürür.
dns_records_delete — DNS Kayıtlarını SilÖzel DNS kayıtlarını siler. Silmeler geri alınamaz. Kayıtlar, TXT kayıtları hariç (büyük/küçük harfe duyarlı), büyük/küçük harf duyarsız olarak eşleştirilir.
Parametre: domainName
Gerekli: Evet
Tür ve kısıtlamalar: Kayıtları silinecek alan adı.
Parametre: records
Gerekli: Evet
Tür ve kısıtlamalar: Mevcut kayıtları tanımlayan 1–500 kayıt — kaydetmeyle aynı şekiller, ancak ttl olmadan.
Döndürür — { "deleted": <number> }, gönderilen kayıtların sayısı. Herhangi bir kayıt eşleştirilemezse, tüm çağrı başarısız olur ve hiçbir şey silinmez.
Her kayıt şunlara sahiptir:
type — aşağıda desteklenen 13 türden biri.
name — alan adı hariç kayıt adı: alan adının kendisi (apex) için @ ve joker karakter için * kullanın.
ttl (yalnızca kaydetme, isteğe bağlı) — saniye cinsinden önbellek süresi, 60–3600.
Türe özgü alanlar:
Tür: A
Alanlar: address — IPv4 adresi.
Tür: AAAA
Alanlar: address — IPv6 adresi.
Tür: CNAME
Alanlar: cname — kurallı alan adı (en fazla 253 karakter).
Tür: ALIAS
Alanlar: aliasName — kurallı alan adı; CNAME'e izin verilmeyen apex için CNAME benzeri davranış.
Tür: NS
Alanlar: nameserver — ad sunucusu adı.
Tür: PTR
Alanlar: pointer — verilen IP adresi için alan adı.
Tür: TXT
Alanlar: value — metin değeri (büyük/küçük harfe duyarlı eşleştirilir).
Tür: MX
Alanlar: exchange — posta sunucusu; preference — öncelik (0–65535, düşük olan tercih edilir).
Tür: CAA
Alanlar: flag — 0 veya 128 (kritik bit); tag — issue, issuewild veya iodef; value — isteğe bağlı parametrelerle CA tanımlayıcısı.
Tür: SRV
Alanlar: service (ör. _sip); protocol (ör. _tcp); priority ve weight (0–65535); port (1–65535); target — sunucu alan adı.
Tür: TLSA
Alanlar: usage, selector, matching (her biri 0–255); port — * veya _<1–65535>; protocol (ör. _tcp); associationData — sertifika karması veya veri.
Tür: HTTPS
Alanlar: svcPriority (0–65535; 0 = AliasMode); targetName — FQDN veya .; isteğe bağlı port (* veya _<1–65535>), scheme (_https, port ayarlandığında zorunludur), svcParams.
Tür: SVCB
Alanlar: svcPriority (0–65535; 0 = AliasMode); targetName — FQDN veya .; isteğe bağlı port, scheme (ör. _tcp), svcParams.
async_operation_get — Eşzamansız İşlem Durumunu AlBaşka bir araç tarafından başlatılan uzun süren bir işlemi kontrol eder (şu anda domain_register). Aracın döndürdüğü operationId değerini operationId olarak vererek çağırın ve statussuccess veya failed olana kadar tekrarlayın.
Parametre: operationId
Gerekli: Evet
Tür ve kısıtlamalar: Alfasayısal dize, en fazla 36 karakter; işlemi başlatan araç tarafından döndürülür.
Döndürür
Alan: operationId
Anlamı: Sorgulanan işlem.
Alan: status
Anlamı: pending, success veya failed.
Alan: type
Anlamı: İşlem türü veya null.
Alan: details
Anlamı: İşlem hakkında ek ayrıntılar veya null.
Alan: createdAt / modifiedAt
Anlamı: İşlemin oluşturulduğu / son güncellendiği zaman (modifiedAtnull olabilir).
Bir çağrı başarısız olduğunda, araç neyin yanlış gittiğini açıklayan bir kod ve insan tarafından okunabilir bir detail hatası döndürür — örneğin geçersiz girdi (hatalı biçimlendirilmiş bir alan adı veya kişi kimliği), mevcut olmayan bir alan adı ya da kişi veya mevcut durumla çakışma. Bir araç, asistana erişim izni verilmediği için reddedilirse, Spaceship MCP'yi yeniden bağlayın ve istediği erişimi onaylayın.