Spaceship MCP Connector — टूल्स संदर्भ

Spaceship MCP Connector आपके AI assistant (जैसे Claude) को आपके Spaceship खाते से जोड़ता है। इसके माध्यम से, assistant डोमेन की उपलब्धता और कीमतें जांच सकता है, डोमेन संपर्कों और nameservers का प्रबंधन कर सकता है, और आपकी ओर से DNS records पढ़ या संपादित कर सकता है — आपको बस सामान्य भाषा में पूछना है, और assistant सही टूल्स को कॉल करता है।

Spaceship MCP Connector डोमेन नहीं खरीदता है। assistant यह जांच सकता है कि कोई नाम उपलब्ध है या नहीं और उसकी कीमत क्या है, लेकिन खरीदारी स्वयं spaceship.com पर होती है।

शुरुआत करना

आपको एक Spaceship खाता चाहिए। Spaceship MCP Connector यहाँ उपलब्ध है https://connector-mcp.spaceship.com/mcp।

  • Claude (web and desktop) — Settings खोलें, Connectors चुनें, connectors directory में Spaceship खोजें, और उसे जोड़ें। Anthropic का Claude वर्तमान में वह client है जिसके साथ हमने Spaceship MCP Connector के काम करने की पुष्टि की है।

  • अन्य MCP clients — एक remote MCP server जोड़ें और उसे https://connector-mcp.spaceship.com/mcp पर पॉइंट करें। अन्य clients काम कर सकते हैं, लेकिन हमने अभी तक उनकी पुष्टि नहीं की है।

जब आप कनेक्ट करते हैं, तो आपसे Spaceship में साइन इन करने और assistant को अपने खाते तक एक्सेस देने के लिए कहा जाएगा। assistant कौन से टूल्स उपयोग कर सकता है, यह आपके द्वारा स्वीकृत एक्सेस पर निर्भर करता है — यदि किसी टूल को इसलिए अस्वीकार किया जाता है क्योंकि एक्सेस नहीं दिया गया था, तो फिर से कनेक्ट करें और उसे आवश्यक एक्सेस स्वीकृत करें।

एक नज़र में टूल्स

  • टूल: contacts_save

    यह क्या करता है: संपर्क विवरण सहेजें और एक संपर्क ID प्राप्त करें

  • टूल: contacts_get

    यह क्या करता है: उसकी ID द्वारा सहेजा गया संपर्क पढ़ें

  • टूल: contacts_list

    यह क्या करता है: किसी एक को ढूंढने और पुन: उपयोग करने के लिए सभी सहेजे गए संपर्कों की सूची बनाता है

  • टूल: domains_list

    यह क्या करता है: अपने डोमेनों की सूची बनाएं, या एक डोमेन खोजें

  • टूल: domains_check_availability

    यह क्या करता है: जांचें कि डोमेन पंजीकरण के लिए उपलब्ध हैं या नहीं, और उनकी कीमत

  • टूल: domain_set_contacts

    यह क्या करता है: आपके स्वामित्व वाले डोमेन को संपर्क असाइन करें

  • टूल: domain_set_nameservers

    यह क्या करता है: किसी डोमेन को basic या custom nameservers पर स्विच करें

  • टूल: dns_records_get

    यह क्या करता है: किसी डोमेन के DNS records पढ़ें

  • टूल: dns_records_save

    यह क्या करता है: DNS रिकॉर्ड्स जोड़ें या उनका TTL अपडेट करें

  • टूल: dns_records_delete

    यह क्या करता है: DNS रिकॉर्ड्स हटाएँ

  • टूल: async_operation_get

    यह क्या करता है: लंबे समय तक चलने वाले ऑपरेशन की स्थिति जाँचें

इनमें से कोई भी टूल आपके खाते से शुल्क नहीं लेता।

संपर्क: id द्वारा संदर्भित

जहाँ भी किसी संपर्क की आवश्यकता होती है (domain_set_contacts), प्रत्येक भूमिका एक contactId स्ट्रिंग लेती है — कभी भी inline संपर्क विवरण नहीं। पहले संपर्क को contacts_save से सहेजें (जो उसका contactId लौटाता है), फिर जहाँ संपर्क स्वीकार किया जाता है वहाँ वह id पास करें। कोई inline auto-save नहीं है; किसी भूमिका को पूरा contact object नहीं दिया जा सकता। आप contacts_list परिणाम से या domains_list परिणाम में दिखने वाले contactId का पुन: उपयोग भी कर सकते हैं।

एक contactId27–32 अल्फ़ान्यूमेरिक वर्णों की एक स्ट्रिंग है। जहाँ संपर्क स्वीकार किया जाता है, वहाँ बस इसे वापस पास करें।

सामान्य वर्कफ़्लो

कई टूल्स को साथ में उपयोग करने के लिए डिज़ाइन किया गया है: एक का आउटपुट अगले का इनपुट बन जाता है।

खरीदने के लिए डोमेन खोजें

  1. domains_check_availability — अपने इच्छित नामों की जाँच करें। प्रत्येक उपलब्ध नाम में उसे रजिस्टर करने के लिए USD price शामिल होता है (standard और premium दोनों), या priceUnavailableReason जब इसे निर्धारित नहीं किया जा सकता, साथ ही minRegisterPeriodInYears और maxRegisterPeriodInYears — वे अवधि जिन्हें TLD अनुमति देता है। ध्यान दें कि priceprice.pricedYears वर्षों को कवर करता है, जो TLD की सबसे कम अनुमत अवधि है और हमेशा 1 नहीं होती।

  2. इसे spaceship.com पर खरीदें। कोई भी टूल डोमेन रजिस्टर नहीं करता या checkout लिंक नहीं बनाता, इसलिए assistant खरीद पूरी नहीं कर सकता या यह नहीं कह सकता कि बातचीत से डोमेन रजिस्टर हो गया। खरीद पूरी होने के बाद, domains_list नया डोमेन दिखाता है।

अपने स्वामित्व वाले डोमेन पर संपर्क अपडेट करें

  1. domain_set_contacts — डोमेन को contactId द्वारा संपर्क असाइन करें (यदि आवश्यक हो तो पहले उन्हें contacts_save से सहेजें)। यह तुरंत पूरा हो जाता है और एक verificationStatus लौटाता है: verification का अर्थ है कि registrant को परिवर्तन पूरी तरह लागू होने से पहले अपना ईमेल पता पुष्टि करना होगा (उन्हें एक ईमेल भेजा जाता है), success का अर्थ है कि यह पहले से पुष्टि हो चुकी है, और null का अर्थ है कि उस डोमेन के लिए किसी पुष्टि की आवश्यकता नहीं है।

डोमेन के नेमसर्वर बदलें

  1. domains_list — डोमेन खोजें और उसके वर्तमान nameservers देखें ({ provider, hosts })।

  2. domain_set_nameservers — इसे Spaceship के डिफ़ॉल्ट नेमसर्वर पर provider: "basic" के साथ स्विच करें (कोई hosts नहीं), या provider: "custom" और 2–12 hosts की सूची के साथ इसे अपने नेमसर्वर पर पॉइंट करें। यह परिणामी { provider, hosts } लौटाता है, और बाद की domains_list कॉल परिवर्तन को दर्शाती है। जिस स्थिति में डोमेन पहले से है, उसी स्थिति को फिर से लागू करने पर no-op के बजाय वैलिडेशन त्रुटि मिलती है — इसे अपेक्षित मानें, दोबारा प्रयास करने में विफलता नहीं।

DNS रिकॉर्ड्स प्रबंधित करें

  1. domains_list — वह डोमेन खोजें जिसे आप प्रबंधित करना चाहते हैं (या यदि नाम पता हो तो उसका नाम सीधे पास करें)।

  2. dns_records_get — डोमेन के वर्तमान रिकॉर्ड्स पढ़ें।

  3. dns_records_save या dns_records_delete — रिकॉर्ड्स जोड़ें, अपडेट करें, या हटाएँ। dns_records_get द्वारा लौटाए गए रिकॉर्ड्स का वही shape होता है जिसे save और delete टूल्स स्वीकार करते हैं (delete केवल ttl को छोड़ देता है), इसलिए assistant पढ़ सकता है, समायोजित कर सकता है, और वापस लिख सकता है। TXT रिकॉर्ड्स को छोड़कर मिलान case-insensitive है, जबकि TXT रिकॉर्ड्स case-sensitive हैं।

अपने पोर्टफ़ोलियो की समीक्षा करें

  • domains_list — sorting के साथ अपने सभी डोमेन्स में पेज करें, या नाम से एकल डोमेन प्राप्त करें। प्रत्येक डोमेन में उसकी expiration date, auto-renew setting, status, nameservers, privacy protection, और असाइन किए गए contact IDs शामिल होते हैं।

  • contacts_list — अपने खाते में सहेजे गए सभी संपर्कों में पेज करें ताकि किसी मौजूदा संपर्क को (उसकी contact ID द्वारा) खोजकर पुन: उपयोग किया जा सके, डुप्लिकेट बनाने के बजाय।

  • contacts_get — किसी डोमेन पर या contacts_list परिणाम में दिखने वाली किसी भी contact ID के पीछे का विवरण देखें।

टूल संदर्भ

हर टूल अपना परिणाम structured JSON के रूप में लौटाता है, और हर टूल तुरंत पूरा हो जाता है।

संपर्क

संपर्क वे लोग या संगठन हैं जो डोमेन पंजीकरण से जुड़े होते हैं (registrant, admin, tech, billing)। किसी संपर्क को हर जगह उसकी contact ID द्वारा संदर्भित किया जाता है — एक opaque string।

contacts_save — संपर्क सहेजें

संपर्क विवरण सहेजता है और जनरेट की गई contact ID लौटाता है। कुछ फ़ील्ड्स (जैसे stateProvince और postalCode) का वैलिडेशन चुने गए देश पर निर्भर करता है।

  • पैरामीटर: firstName

    आवश्यक: हाँ

    प्रकार और सीमाएँ: स्ट्रिंग, 1–64 वर्ण। इसमें hyphens और apostrophes शामिल हो सकते हैं।

  • पैरामीटर: lastName

    आवश्यक: हाँ

    प्रकार और सीमाएँ: स्ट्रिंग, 1–64 वर्ण। इसमें hyphens और apostrophes शामिल हो सकते हैं।

  • पैरामीटर: email

    आवश्यक: हाँ

    प्रकार और सीमाएँ: मान्य ईमेल पता, अधिकतम 254 वर्ण।

  • पैरामीटर: address1

    आवश्यक: हाँ

    प्रकार और सीमाएँ: पता पंक्ति 1। स्ट्रिंग, 1–128 वर्ण।

  • पैरामीटर: city

    आवश्यक: हाँ

    प्रकार और सीमाएँ: स्ट्रिंग, 1–64 वर्ण।

  • पैरामीटर: country

    आवश्यक: हाँ

    प्रकार & प्रतिबंध: दो-अक्षरीय देश कोड (ISO 3166-1 alpha-2), उदाहरण के लिए US.

  • पैरामीटर: phone

    आवश्यक: हाँ

    प्रकार & प्रतिबंध: अंतरराष्ट्रीय प्रारूप +CountryCode.Number, उदाहरण के लिए +1.2025551234. अधिकतम 32 वर्ण.

  • पैरामीटर: organization

    आवश्यक: नहीं

    प्रकार & प्रतिबंध: संगठन/कंपनी का नाम. 1–128 वर्ण.

  • पैरामीटर: address2

    आवश्यक: नहीं

    प्रकार & प्रतिबंध: पता पंक्ति 2. 1–128 वर्ण.

  • पैरामीटर: stateProvince

    आवश्यक: नहीं

    प्रकार & प्रतिबंध: राज्य/प्रांत का नाम, 1–64 वर्ण. देश के आधार पर आवश्यक हो सकता है.

  • पैरामीटर: postalCode

    आवश्यक: नहीं

    प्रकार & प्रतिबंध: 1–16 वर्ण. देश के आधार पर आवश्यक हो सकता है.

  • पैरामीटर: phoneExt

    आवश्यक: नहीं

    प्रकार & प्रतिबंध: फोन एक्सटेंशन, 1–16 वर्ण.

  • पैरामीटर: fax

    आवश्यक: नहीं

    प्रकार & प्रतिबंध: फैक्स नंबर, वही +CountryCode.Number प्रारूप, अधिकतम 32 वर्ण.

  • पैरामीटर: faxExt

    आवश्यक: नहीं

    प्रकार & प्रतिबंध: फैक्स एक्सटेंशन, 1–16 वर्ण.

  • पैरामीटर: taxNumber

    आवश्यक: नहीं

    प्रकार & सीमाएँ: Tax number, 1–32 chars.

रिटर्न

{ "contactId": "..." }

contactId (27–32 alphanumeric characters) वही है जिसे आप domain_set_contacts और contacts_get को पास करते हैं।

contacts_get — संपर्क प्राप्त करें

उसके contact ID द्वारा सहेजे गए संपर्क का विवरण पढ़ता है। Contact IDs contacts_save, contacts_list, या contacts फ़ील्ड से आते हैं, जो domains_list परिणामों में होता है।

  • पैरामीटर: contactId

    आवश्यक: हाँ

    प्रकार & सीमाएँ: Contact ID, 27–32 alphanumeric characters.

रिटर्न — { contact } जिसमें:

  • फ़ील्ड: firstName, lastName, email, address1, city, country, phone, postalCode

    प्रकार: String

  • फ़ील्ड: organization, address2, stateProvince, phoneExt, fax, faxExt, taxNumber

    प्रकार: String या null

contacts_list — संपर्कों की सूची

आपके खाते के अंतर्गत सहेजे गए सभी संपर्कों की सूची देता है, ताकि आप डुप्लिकेट बनाने या अपने डोमेनों में खोजने के बजाय किसी मौजूदा संपर्क को (उसकी contact ID द्वारा) ढूंढकर पुन: उपयोग कर सकें। सूची paginated और sortable है, और domains_list के अनुरूप है।

  • पैरामीटर: take

    आवश्यक: नहीं

    प्रकार & सीमाएँ: प्रति पृष्ठ आइटम, 1–100। डिफ़ॉल्ट 10।

  • पैरामीटर: skip

    आवश्यक: नहीं

    प्रकार & सीमाएँ: छोड़ने के लिए आइटम, 0 या अधिक। डिफ़ॉल्ट 0।

  • पैरामीटर: orderBy

    आवश्यक: नहीं

    प्रकार & सीमाएँ: अधिकतम 8 sort keys: name, email, organization; descending के लिए - उपसर्ग लगाएँ (उदा. -name)।

रिटर्न — { items, total } जहाँ total खाते पर अद्वितीय संपर्कों की संख्या है (contact ID द्वारा deduplicated, page size नहीं), और प्रत्येक item में follow-up call के बिना संपर्कों में अंतर बताने के लिए पर्याप्त जानकारी होती है। यदि खाते में एक ही contact ID के लिए duplicate entries हैं, तो उन्हें एक में समेट दिया जाता है, इसलिए total raw server-side rows के बजाय distinct contacts की गणना करता है:

  • फ़ील्ड: contactId

    प्रकार: String (27–32 alphanumeric)। इसे contacts_get या domain_set_contacts को पास करें।

  • फ़ील्ड: name

    प्रकार: String — संपर्क का नाम।

  • फ़ील्ड: email

    प्रकार: String या null जब संपर्क के रिकॉर्ड में कोई email न हो।

  • फ़ील्ड: organization

    प्रकार: String या null जब संपर्क के रिकॉर्ड में कोई organization न हो।

{
"items": [
{ "contactId": "1anq5bsl9haBy21rOV9aeDWrARBsV", "name": "Ada Lovelace", "email": "ada@example.com", "organization": "Analytical Engines" }
],
"total": 1
}

डोमेन

डोमेन नाम इनपुट (domain/domainName) Unicode (IDN) या ASCII (A-label) स्वीकार करते हैं — किसी भी स्थिति में, टूल उपयोग से पहले नाम को अपने आप punycode में normalize कर देता है। domains_check_availability को अतिरिक्त रूप से ऐसा TLD चाहिए जिसे Spaceship पंजीकरण के लिए समर्थन देता हो: जिस डोमेन का TLD समर्थित नहीं है, उसे जांचने के बजाय उपलब्ध नहीं के रूप में रिपोर्ट किया जाता है। अन्य डोमेन टूल्स (domains_list, domain_set_contacts, domain_set_nameservers) और DNS टूल्स केवल नाम को normalize करते हैं और TLD support के आधार पर कभी reject नहीं करते।

domains_list — डोमेनों की सूची

आपके डोमेनों की paginated सूची प्राप्त करता है। इसके बजाय नाम से एकल डोमेन प्राप्त करने के लिए domain पास करें (तब pagination और ordering को अनदेखा किया जाता है, और यदि वे दिए गए हों तो परिणाम में यह बताने वाला note शामिल होता है)।

  • पैरामीटर: domain

    आवश्यक: नहीं

    प्रकार & सीमाएँ: एकल डोमेन प्राप्त करने के लिए पूर्णतः योग्य डोमेन नाम। Unicode (IDN) या ASCII (A-label) स्वीकार करता है — अपने आप punycode में normalize किया जाता है।

  • पैरामीटर: take

    आवश्यक: नहीं

    प्रकार & सीमाएँ: प्रति पृष्ठ आइटम, 1–100। डिफ़ॉल्ट 10।

  • पैरामीटर: skip

    आवश्यक: नहीं

    प्रकार & सीमाएँ: छोड़ने के लिए आइटम, 0 या अधिक। डिफ़ॉल्ट 0।

  • पैरामीटर: orderBy

    आवश्यक: नहीं

    प्रकार & सीमाएँ: अधिकतम 8 sort keys: name, unicodeName, registrationDate, expirationDate; descending के लिए - उपसर्ग लगाएँ (उदा. -expirationDate)।

रिटर्न — { items, total } जहाँ प्रत्येक item एक डोमेन का वर्णन करता है:

  • फ़ील्ड: name / unicodeName

    अर्थ: ASCII और Unicode रूप में डोमेन नाम।

  • फ़ील्ड: isPremium

    अर्थ: क्या डोमेन एक premium नाम है।

  • फ़ील्ड: autoRenew

    अर्थ: क्या auto-renew सक्षम है।

  • फ़ील्ड: registrationDate / expirationDate

    अर्थ: पंजीकरण और समाप्ति timestamps।

  • फ़ील्ड: lifecycleStatus

    अर्थ: creating, registered, grace1, grace2, या redemption।

  • फ़ील्ड: verificationStatus

    अर्थ: verification, success, failed, या null जब लागू न हो।

  • फ़ील्ड: eppStatuses

    अर्थ: Registry status codes (उदा. transfer locks)।

  • फ़ील्ड: suspensions

    अर्थ: सक्रिय suspensions, प्रत्येक में एक reasonCode होता है।

  • फ़ील्ड: privacyProtection

    अर्थ: { level: "public" | "high", contactForm: boolean }।

  • फ़ील्ड: nameservers

    अर्थ: { provider: "basic" | "custom", hosts: [...] }।

  • फ़ील्ड: contacts

    अर्थ: Contact IDs: registrant, साथ में admin/tech/billing (null हो सकते हैं) और attributes (extended-attribute contact IDs की सूची, या null)। contacts_get के माध्यम से पढ़े जा सकते हैं।

Spaceship MCP ऊपर दिए गए हर फ़ील्ड को populate करता है — जिनमें contacts, eppStatuses, suspensions, verificationStatus, nameservers, एक वास्तविक autoRenew, और जहाँ डोमेन में हो वहाँ एक अलग unicodeName शामिल है — multi-item list और single-domain fetches दोनों के लिए।

domains_check_availability — डोमेन उपलब्धता जांचें

जांचता है कि एक या अधिक डोमेन नाम पंजीकरण के लिए उपलब्ध हैं या नहीं। एक नाम के लिए single-domain endpoint और कई नामों के लिए bulk endpoint का उपयोग करता है। जिस डोमेन का TLD पंजीकरण के लिए समर्थित नहीं है, उसे availability check में बिल्कुल नहीं भेजा जाता — उसे तुरंत tldNotSupported के रूप में लौटाया जाता है।

  • पैरामीटर: domains

    आवश्यक: हाँ

    प्रकार & सीमाएँ: 1–20 पूर्णतः योग्य डोमेन नाम। प्रत्येक Unicode (IDN) या ASCII (A-label) स्वीकार करता है — अपने आप punycode में normalize किया जाता है।

रिटर्न — { results }, अनुरोधित प्रत्येक नाम के लिए एक entry:

  • फ़ील्ड: domain

    अर्थ: जांचा गया नाम।

  • फ़ील्ड: result

    अर्थ: available, taken, invalidDomainName, tldNotSupported, या unexpectedError।

  • फ़ील्ड: premiumPricing

    अर्थ: premium नामों के लिए: { operation, price, currency } की सूची, जहाँ operationregister, transfer, renew, या restore होता है। सामान्य नामों के लिए खाली।

  • फ़ील्ड: price

    अर्थ: available नामों (standard और premium) के लिए: डोमेन को उस सबसे छोटी अवधि के लिए पंजीकृत करने की USD कीमत जिसकी TLD अनुमति देती है — { amount, currency: "USD", pricedYears?, pricePerYear?, icannFee?, isPremium }। amount उस पूरी अवधि के लिए देय कुल राशि है; pricedYears बताता है कि यह कितने वर्षों को कवर करती है। कोई pre-discount या "was" price रिपोर्ट नहीं की जाती। icannFee ICANN शुल्क (USD) है, जो पहले से ही शामिल है amount में, और breakdown समझाने के लिए अलग से लौटाया जाता है; यह केवल तब दिखाई देता है जब TLD पर शुल्क लागू होता है।

  • फ़ील्ड: pricePerYear

    अर्थ: price के अंदर: amount को pricedYears से विभाजित किया गया है, ताकि तुलना के लिए वार्षिक आंकड़ा हमेशा उपलब्ध रहे। जब pricedYears 1 होता है, तो यह वास्तविक एक-वर्षीय कीमत होती है; इससे अधिक होने पर यह अवधि का प्रति-वर्ष औसत होता है, न कि ऐसी अवधि जिसे आप खरीद सकते हों।

  • फ़ील्ड: minRegisterPeriodInYears / maxRegisterPeriodInYears

    अर्थ: available नामों के लिए: वह सबसे छोटी और सबसे लंबी पंजीकरण अवधि जिसकी वह TLD वास्तव में अनुमति देती है, दो साधारण संख्याओं के रूप में। ये ग्राहक को बताते हैं कि वे डोमेन को किन अवधियों के लिए खरीद सकते हैं। जब अनुमत अवधि निर्धारित नहीं की जा सकी हो, तब दोनों को छोड़ दिया जाता है।

  • फ़ील्ड: priceUnavailableReason

    अर्थ: उपलब्ध नाम के लिए जब कीमत निर्धारित नहीं की जा सकी हो, तब price के बजाय मौजूद होता है। जांच स्वयं फिर भी सफल रहती है।

केवल उपलब्ध नामों की कीमत दी जाती है; taken/invalid परिणामों में न तो price होता है और न ही priceUnavailableReason।

अधिकांश TLDs एक वर्ष की अनुमति देते हैं, लेकिन कुछ नहीं देते।.ai, उदाहरण के लिए, न्यूनतम दो-वर्षीय अवधि रखता है। ऐसे मामलों में, price.amount न्यूनतम अवधि के लिए कुल राशि होती है — न कि ऐसी एक-वर्षीय कीमत जिस पर आप कार्रवाई कर सकें — और price.pricedYears यह बताता है:

{
"domain": "example.ai",
"result": "available",
"premiumPricing": [],
"price": { "amount": 159.96, "currency": "USD", "pricedYears": 2, "pricePerYear": 79.98, "isPremium": false },
"minRegisterPeriodInYears": 2,
"maxRegisterPeriodInYears": 10
}

pricePerYear यहाँ मौजूद है — 159.96 को जिन दो वर्षों के लिए यह लागू है उनसे विभाजित करने पर 79.98 मिलता है। यह कुल राशि को अवधि से विभाजित करके निकाला गया है, न कि ऐसी कीमत जिसे आप एक वर्ष के लिए चुका सकते हों (एक-वर्षीय .ai पंजीकरण खरीदा नहीं जा सकता)। हमेशा amount को pricedYears के साथ दिखाएँ ("2 वर्षों के लिए $159.96"), कभी भी केवल amount अकेले नहीं। सामान्य TLD के लिए, pricedYears1 होता है और pricePerYearamount के बराबर होता है।

domain_set_contacts — डोमेन संपर्क सेट करें

आपके स्वामित्व वाले डोमेन को असाइन किए गए संपर्कों को बदलता है। तुरंत पूरा होता है (poll करने के लिए कोई operation नहीं)।

  • पैरामीटर: domainName

    आवश्यक: हाँ

    प्रकार & सीमाएँ: पूर्णतः योग्य डोमेन नाम। Unicode (IDN) या ASCII (A-label) स्वीकार करता है — अपने आप punycode में normalize किया जाता है।

  • पैरामीटर: registrant

    आवश्यक: हाँ

    प्रकार & सीमाएँ: contactId string (27–32 alphanumeric), contacts_save से।

  • पैरामीटर: admin

    आवश्यक: नहीं

    प्रकार & सीमाएँ: contactId string (27–32 alphanumeric) या null।

  • पैरामीटर: tech

    आवश्यक: नहीं

    प्रकार & सीमाएँ: contactId string (27–32 alphanumeric) या null।

  • पैरामीटर: billing

    आवश्यक: नहीं

    प्रकार & सीमाएँ: contactId string (27–32 alphanumeric) या null।

  • पैरामीटर: attributes

    आवश्यक: नहीं

    प्रकार & सीमाएँ: extended-attribute contact ids की array (अधिकतम 5); केवल कुछ TLDs के लिए आवश्यक, अन्यथा इसे छोड़ दें या null रखें।

रिटर्न

{ "verificationStatus": "verification" }

लौटाया गया verificationStatus ICANN RAA email verification को दर्शाता है: verification — registrant को अपना email address पुष्टि करना होगा (एक confirmation email भेजा जाता है); success — पहले से पुष्टि हो चुकी है; null — इस डोमेन पर RAA verification लागू नहीं होती।

domain_set_nameservers — डोमेन nameservers सेट करें

डोमेन के registrar-level nameservers बदलता है। तुरंत पूरा होता है (poll करने के लिए कोई operation नहीं)। यह परिवर्तन बाद में domains_list द्वारा दिखाई देता है।

  • पैरामीटर: domainName

    आवश्यक: हाँ

    प्रकार & सीमाएँ: पूर्णतः योग्य डोमेन नाम। Unicode (IDN) या ASCII (A-label) स्वीकार करता है — अपने आप punycode में normalize किया जाता है।

  • पैरामीटर: provider

    आवश्यक: हाँ

    प्रकार & सीमाएँ: basic (Spaceship के default nameservers) या custom (आपके अपने hosts)।

  • पैरामीटर: hosts

    आवश्यक: सशर्त

    प्रकार और सीमाएँ: जब providercustom हो, तब आवश्यक: 2–12 नेमसर्वर होस्टनेम (प्रत्येक एक मान्य FQDN, 4–255 वर्ण)। जब providerbasic हो, तब इसे छोड़ना होगा।

रिटर्न

{ "provider": "custom", "hosts": ["ns1.example.com", "ns2.example.com"] }

जिस स्थिति में डोमेन पहले से है, उसी स्थिति को फिर से लागू करने पर (उदा. basic सेट करना जब वह पहले से basic हो) no-op सफलता के बजाय एक वैलिडेशन त्रुटि मिलती है — इसे अपेक्षित परिणाम मानें, दोबारा प्रयास करने में विफलता नहीं।

DNS रिकॉर्ड्स

इन टूल्स द्वारा लिया जाने वाला domainName Unicode (IDN) या ASCII (A-label) स्वीकार करता है और अपने-आप punycode में सामान्यीकृत हो जाता है; यहाँ TLD समर्थन लागू नहीं किया जाता।

dns_records_get — DNS रिकॉर्ड्स प्राप्त करें

किसी डोमेन के लिए DNS संसाधन रिकॉर्ड्स की पेजिनेटेड सूची प्राप्त करता है।

  • पैरामीटर: domainName

    आवश्यक: हाँ

    प्रकार और सीमाएँ: वह डोमेन जिसके रिकॉर्ड्स प्राप्त करने हैं।

  • पैरामीटर: take

    आवश्यक: नहीं

    प्रकार और सीमाएँ: प्रति पेज आइटम, 1–500। डिफ़ॉल्ट 100।

  • पैरामीटर: skip

    आवश्यक: नहीं

    प्रकार और सीमाएँ: छोड़ने के लिए आइटम, 0 या अधिक। डिफ़ॉल्ट 0।

  • पैरामीटर: orderBy

    आवश्यक: नहीं

    प्रकार और सीमाएँ: अधिकतम 8 सॉर्ट कुंजियाँ: type, -type, name, -name।

रिटर्न — { items, total }। प्रत्येक आइटम Record shapes में वर्णित एक रिकॉर्ड है, साथ में एक वैकल्पिक group फ़ील्ड भी हो सकती है, जो बताती है कि रिकॉर्ड कहाँ से आता है (custom — आपके द्वारा बनाया गया, product — किसी Spaceship उत्पाद द्वारा प्रबंधित, personalNs — व्यक्तिगत नेमसर्वर)।

dns_records_save — DNS रिकॉर्ड्स सहेजें

कस्टम DNS रिकॉर्ड्स जोड़ता है या मौजूदा रिकॉर्ड्स का TTL अपडेट करता है। TXT रिकॉर्ड्स (case-sensitive) को छोड़कर, रिकॉर्ड्स का मिलान case-insensitive तरीके से किया जाता है।

  • पैरामीटर: domainName

    आवश्यक: हाँ

    प्रकार और सीमाएँ: वह डोमेन जिसके रिकॉर्ड्स अपडेट करने हैं।

  • पैरामीटर: records

    आवश्यक: हाँ

    प्रकार और सीमाएँ: 1–500 रिकॉर्ड्स — Record shapes देखें। प्रत्येक में एक वैकल्पिक ttl शामिल हो सकता है।

  • पैरामीटर: force

    आवश्यक: नहीं

    प्रकार और सीमाएँ: बूलियन। conflict-resolution जाँच को छोड़ देता है और ज़ोन अपडेट को बाध्य करता है।

रिटर्न — { "saved": <number> }, सबमिट किए गए रिकॉर्ड्स की संख्या। सफल प्रतिक्रिया का अर्थ है कि सभी रिकॉर्ड्स स्वीकार कर लिए गए; यदि कोई भी रिकॉर्ड विफल होता है, तो पूरी कॉल इसके बजाय त्रुटि लौटाती है।

dns_records_delete — DNS रिकॉर्ड्स हटाएँ

कस्टम DNS रिकॉर्ड्स हटाता है। हटाने की कार्रवाई पूर्ववत नहीं की जा सकती। TXT रिकॉर्ड्स (case-sensitive) को छोड़कर, रिकॉर्ड्स का मिलान case-insensitive तरीके से किया जाता है।

  • पैरामीटर: domainName

    आवश्यक: हाँ

    प्रकार और सीमाएँ: वह डोमेन जिसके रिकॉर्ड्स हटाने हैं।

  • पैरामीटर: records

    आवश्यक: हाँ

    प्रकार और सीमाएँ: 1–500 रिकॉर्ड्स जो मौजूदा रिकॉर्ड्स की पहचान करते हैं — save जैसी ही shapes, लेकिन ttl के बिना।

रिटर्न — { "deleted": <number> }, सबमिट किए गए रिकॉर्ड्स की संख्या। यदि किसी भी रिकॉर्ड का मिलान नहीं हो पाता, तो पूरी कॉल विफल हो जाती है और कुछ भी नहीं हटाया जाता।

Record shapes

हर रिकॉर्ड में यह होता है:

  • type — नीचे दिए गए 13 समर्थित प्रकारों में से एक।

  • name — रिकॉर्ड का नाम डोमेन को छोड़कर: स्वयं डोमेन (apex) के लिए @ और wildcard के लिए * का उपयोग करें।

  • ttl (केवल save, वैकल्पिक) — सेकंड में cache समय, 60–3600।

प्रकार-विशिष्ट फ़ील्ड्स:

  • प्रकार: A

    फ़ील्ड्स: address — IPv4 पता।

  • प्रकार: AAAA

    फ़ील्ड्स: address — IPv6 पता।

  • प्रकार: CNAME

    फ़ील्ड्स: cname — canonical डोमेन नाम (अधिकतम 253 वर्ण)।

  • प्रकार: ALIAS

    फ़ील्ड्स: aliasName — canonical डोमेन नाम; apex के लिए CNAME-जैसा व्यवहार, जहाँ CNAME की अनुमति नहीं है।

  • प्रकार: NS

    फ़ील्ड्स: nameserver — नेमसर्वर नाम।

  • प्रकार: PTR

    फ़ील्ड्स: pointer — दिए गए IP पते के लिए डोमेन नाम।

  • प्रकार: TXT

    फ़ील्ड्स: value — टेक्स्ट मान (case-sensitive तरीके से मिलान किया गया)।

  • प्रकार: MX

    फ़ील्ड्स: exchange — मेल सर्वर; preference — प्राथमिकता (0–65535, कम मान को वरीयता)।

  • प्रकार: CAA

    फ़ील्ड्स: flag — 0 या 128 (critical bit); tag — issue, issuewild, या iodef; value — वैकल्पिक पैरामीटर्स के साथ CA पहचानकर्ता।

  • प्रकार: SRV

    फ़ील्ड्स: service (उदा. _sip); protocol (उदा. _tcp); priority और weight (0–65535); port (1–65535); target — सर्वर डोमेन नाम।

  • प्रकार: TLSA

    फ़ील्ड्स: usage, selector, matching (प्रत्येक 0–255); port — * या _<1–65535>; protocol (उदा. _tcp); associationData — प्रमाणपत्र hash या डेटा।

  • प्रकार: HTTPS

    फ़ील्ड्स: svcPriority (0–65535; 0 = AliasMode); targetName — FQDN या .; वैकल्पिक port (* या _<1–65535>), scheme (जब port सेट हो, तब _https होना चाहिए), svcParams।

  • प्रकार: SVCB

    फ़ील्ड्स: svcPriority (0–65535; 0 = AliasMode); targetName — FQDN या .; वैकल्पिक port, scheme (उदा. _tcp), svcParams।

Async operations

async_operation_get — Async ऑपरेशन स्थिति प्राप्त करें

आपके खाते पर लंबे समय तक चलने वाले ऑपरेशन को उसके operationId द्वारा जाँचता है। इसे बार-बार कॉल करें जब तक statussuccess या failed न हो जाए।

  • पैरामीटर: operationId

    आवश्यक: हाँ

    प्रकार और सीमाएँ: अल्फ़ान्यूमेरिक स्ट्रिंग, अधिकतम 36 वर्ण, जो ऑपरेशन शुरू करने वाले टूल द्वारा लौटाई जाती है।

रिटर्न

  • फ़ील्ड: operationId

    अर्थ: पोल किया गया ऑपरेशन।

  • फ़ील्ड: status

    अर्थ: pending, success, या failed।

  • फ़ील्ड: type

    अर्थ: ऑपरेशन प्रकार, या null।

  • फ़ील्ड: details

    अर्थ: ऑपरेशन के बारे में अतिरिक्त विवरण, या null।

  • फ़ील्ड: createdAt / modifiedAt

    अर्थ: ऑपरेशन कब बनाया गया / आख़िरी बार अपडेट किया गया (modifiedAtnull हो सकता है)।

त्रुटियाँ

जब कोई कॉल विफल होती है, तो टूल एक कोड और मानव-पठनीय detail के साथ त्रुटि लौटाता है, जो बताता है कि क्या गलत हुआ — उदाहरण के लिए अमान्य इनपुट (गलत स्वरूप वाला डोमेन नाम या संपर्क ID), ऐसा डोमेन या संपर्क जो मौजूद नहीं है, या वर्तमान स्थिति के साथ टकराव। यदि किसी टूल को इसलिए अस्वीकार किया जाता है क्योंकि assistant को उसका एक्सेस नहीं दिया गया था, तो Spaceship MCP को फिर से कनेक्ट करें और वह जो एक्सेस माँगे उसे स्वीकृत करें।

एक मान्य ईमेल आवश्यक है