Spaceship MCP Connector свързва вашия AI асистент (като Claude) с вашия акаунт в Spaceship. Чрез него асистентът може да проверява наличността и цените на домейни, да управлява контакти и nameservers за домейни и да чете или редактира DNS записи от ваше име — вие просто питате на обикновен език, а асистентът извиква правилните инструменти.
Spaceship MCP Connector не купува домейни. Асистентът може да провери дали дадено име е налично и колко струва, но самата покупка се извършва на spaceship.com.
Нуждаете се от Spaceship акаунт. Spaceship MCP Connector е наличен на https://connector-mcp.spaceship.com/mcp.
Claude (уеб и настолен) — отворете Settings, изберете Connectors, намерете Spaceship в директорията с конектори и го добавете. Claude на Anthropic в момента е клиентът, с който сме потвърдили, че Spaceship MCP Connector работи.
Други MCP клиенти — добавете отдалечен MCP сървър и го насочете към https://connector-mcp.spaceship.com/mcp. Други клиенти може да работят, но все още не сме ги потвърдили.
Когато се свържете, ще бъдете помолени да влезете в Spaceship и да предоставите на асистента достъп до акаунта си. Кои инструменти може да използва асистентът зависи от достъпа, който одобрите — ако инструмент бъде отхвърлен, защото достъп не е предоставен, свържете се отново и одобрете нужния му достъп.
Инструмент: 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 записи за домейн
Инструмент: dns_records_save
Какво прави: Добавя DNS записи или актуализира техния TTL
Инструмент: dns_records_delete
Какво прави: Изтрива DNS записи
Инструмент: async_operation_get
Какво прави: Проверява състоянието на дълго изпълняваща се операция
Нито един от тези инструменти не таксува акаунта ви.
Навсякъде, където се изисква контакт (domain_set_contacts), всяка роля приема низ contactId— никога вградени данни за контакт. Първо запазете контакта с contacts_save (което връща неговия contactId), след което подайте това id там, където контактът се приема. Няма автоматично вградено запазване; една роля не може да получи пълен обект за контакт. Можете също да използвате повторно contactId от резултат на contacts_list или такъв, който сте прочели от резултат на domains_list.
Един contactId е низ от 27–32 буквено-цифрови знака. Просто го подайте обратно там, където се приема контакт.
Няколко инструмента са проектирани да се използват заедно: изходът от един става вход за следващия.
domains_check_availability — проверете желаното(ите) име(на). Всяко налично име включва USD price за регистрацията му (както стандартно, така и premium), или priceUnavailableReason, когато това не може да бъде определено, плюс minRegisterPeriodInYears и maxRegisterPeriodInYears — сроковете, които TLD позволява. Имайте предвид, че price покрива price.pricedYears години, което е най-краткият разрешен срок за TLD и не винаги е 1.
Купете го от spaceship.com. Нито един инструмент не регистрира домейн и не създава линк за плащане, така че асистентът не може да завърши покупката или да каже, че домейн е бил регистриран от разговора. След като покупката бъде завършена, domains_list показва новия домейн.
domain_set_contacts — задайте контакти на домейна чрез contactId (първо ги запазете с contacts_save, ако е необходимо). Това завършва незабавно и връща verificationStatus: verification означава, че регистрантът трябва да потвърди своя имейл адрес, преди промяната да се приложи напълно (до него се изпраща имейл), success означава, че вече е потвърдено, а null означава, че за този домейн не се изисква потвърждение.
domains_list — намерете домейна и вижте текущите му nameservers ({ provider, hosts }).
domain_set_nameservers — превключете го към nameserver-ите по подразбиране на Spaceship с provider: "basic" (без hosts), или го насочете към свои собствени с provider: "custom" и списък от 2–12 hosts. Връща получения { provider, hosts }, а последващ domains_list отразява промяната. Повторното прилагане на състояние, в което домейнът вече се намира, връща грешка при валидация вместо no-op — приемайте това като очаквано, а не като неуспех, който трябва да се повтори.
domains_list — намерете домейна, който искате да управлявате (или подайте името му директно, ако го знаете).
dns_records_get — прочетете текущите записи за домейна.
dns_records_save или dns_records_delete — добавете, актуализирайте или премахнете записи. Записите, върнати от dns_records_get, имат същата форма, която инструментите за запазване и изтриване приемат (при изтриване просто се пропуска ttl), така че асистентът може да чете, коригира и записва обратно. Съпоставянето не е чувствително към главни и малки букви, освен за TXT записите, които са чувствителни към регистъра.
domains_list — преглеждайте страница по страница всички свои домейни със сортиране или извлечете един домейн по име. Всеки домейн включва датата си на изтичане, настройката за автоматично подновяване, статус, nameserver-и, защита на поверителността и зададени ID на контакти.
contacts_list — преглеждайте страница по страница всички контакти, запазени във вашия акаунт, за да намерите и използвате повторно съществуващ такъв (по неговото ID на контакт), вместо да създавате дубликат.
contacts_get — вижте подробностите зад всяко ID на контакт, което виждате в домейн или в резултат от contacts_list.
Всеки инструмент връща резултата си като структуриран JSON и всеки инструмент завършва незабавно.
Контактите са хората или организациите, свързани с регистрация на домейн (регистрант, администратор, технически, фактуриране). Контактът навсякъде се реферира чрез своето ID на контакт — непрозрачен низ.
contacts_save — Запазване на контактЗапазва данните за контакт и връща генерираното ID на контакт. Валидацията на някои полета (като stateProvince и postalCode) зависи от избраната държава.
Параметър: firstName
Задължително: Да
Тип и ограничения: Низ, 1–64 знака. Може да включва тирета и апострофи.
Параметър: lastName
Задължително: Да
Тип и ограничения: Низ, 1–64 знака. Може да включва тирета и апострофи.
Параметър: 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
Задължително: Не
Тип и ограничения: Данъчен номер, 1–32 знака.
Връща
{ "contactId": "..." }
contactId (27–32 буквено-цифрови знака) е това, което подавате към domain_set_contacts и contacts_get.
contacts_get — Получаване на контактПрочита данните на запазен контакт по неговия ID на контакт. ID на контактите идват от contacts_save, contacts_list или полето contacts в резултатите от domains_list.
Параметър: contactId
Задължително: Да
Тип и ограничения: ID на контакт, 27–32 буквено-цифрови знака.
Връща — { contact } със:
Поле: firstName, lastName, email, address1, city, country, phone, postalCode
Тип: Низ
Поле: organization, address2, stateProvince, phoneExt, fax, faxExt, taxNumber
Тип: Низ или null
contacts_list — Списък с контактиИзброява всички контакти, запазени във вашия акаунт, за да можете да намерите и използвате повторно съществуващ контакт (по неговия ID на контакт), вместо да създавате дубликат или да търсите из домейните си. Списъкът е странициран и може да се сортира, в съответствие с domains_list.
Параметър: take
Задължително: Не
Тип и ограничения: Елементи на страница, 1–100. По подразбиране 10.
Параметър: skip
Задължително: Не
Тип и ограничения: Елементи за пропускане, 0 или повече. По подразбиране 0.
Параметър: orderBy
Задължително: Не
Тип и ограничения: До 8 ключа за сортиране: name, email, organization; добавете префикс - за низходящ ред (напр. -name).
Връща — { items, total }, където total е броят на уникалните контакти в акаунта (без дубликати по ID на контакт, а не размерът на страницата), и всеки елемент съдържа достатъчно информация, за да различите контактите без допълнително извикване. Ако акаунтът има дублирани записи за един и същ ID на контакт, те се свеждат до един, така че total брои отделните контакти, а не суровите редове от страна на сървъра:
Поле: contactId
Тип: Низ (27–32 буквено-цифрови знака). Подайте към contacts_get или domain_set_contacts.
Поле: name
Тип: Низ — името на контакта.
Поле: email
Тип: Низ или null, когато за контакта няма записан имейл.
Поле: organization
Тип: Низ или null, когато за контакта няма записана организация.
{"items": [{ "contactId": "1anq5bsl9haBy21rOV9aeDWrARBsV", "name": "Ada Lovelace", "email": "ada@example.com", "organization": "Analytical Engines" }],"total": 1}
Входовете за име на домейн (domain/domainName) приемат Unicode (IDN) или ASCII (A-label) — и в двата случая инструментът автоматично нормализира името до punycode преди употреба. domains_check_availability допълнително изисква TLD, който Spaceship поддържа за регистрация: домейн, чийто TLD не се поддържа, се отчита като неналичен, вместо да бъде проверен. Останалите инструменти за домейни (domains_list, domain_set_contacts, domain_set_nameservers) и DNS инструментите само нормализират името и никога не го отхвърлят въз основа на поддръжката на TLD.
domains_list — Списък с домейниИзвлича странициран списък с вашите домейни. Подайте domain, за да извлечете вместо това един домейн по име (тогава страницирането и подреждането се игнорират, а резултатът включва note, което казва това, ако са били подадени).
Параметър: domain
Задължително: Не
Тип и ограничения: Пълно име на домейн за извличане на един домейн. Приема Unicode (IDN) или ASCII (A-label) — автоматично се нормализира до punycode.
Параметър: take
Задължително: Не
Тип и ограничения: Елементи на страница, 1–100. По подразбиране 10.
Параметър: skip
Задължително: Не
Тип и ограничения: Елементи за пропускане, 0 или повече. По подразбиране 0.
Параметър: orderBy
Задължително: Не
Тип и ограничения: До 8 ключа за сортиране: name, unicodeName, registrationDate, expirationDate; добавете префикс - за низходящ ред (напр. -expirationDate).
Връща — { items, total }, където всеки елемент описва домейн:
Поле: name / unicodeName
Значение: Име на домейн в ASCII и Unicode форма.
Поле: isPremium
Значение: Дали домейнът е premium име.
Поле: autoRenew
Значение: Дали автоматичното подновяване е активирано.
Поле: registrationDate / expirationDate
Значение: Времеви маркери за регистрация и изтичане.
Поле: lifecycleStatus
Значение: creating, registered, grace1, grace2 или redemption.
Поле: verificationStatus
Значение: verification, success, failed или null, когато не е приложимо.
Поле: eppStatuses
Значение: Кодове за статус от регистъра (напр. заключвания за трансфер).
Поле: suspensions
Значение: Активни спирания, всяко с reasonCode.
Поле: privacyProtection
Значение: { level: "public" | "high", contactForm: boolean }.
Поле: nameservers
Значение: { provider: "basic" | "custom", hosts: [...] }.
Поле: contacts
Значение: ID на контакти: registrant, плюс admin/tech/billing (може да е null) и attributes (списък с ID на контакти за разширени атрибути или null). Може да се прочете чрез contacts_get.
Spaceship MCP попълва всяко поле по-горе — включително contacts, eppStatuses, suspensions, verificationStatus, nameservers, реално autoRenew и отделно unicodeName, когато домейнът има такова — както за списъка с много елементи, така и за извличането на единичен домейн.
domains_check_availability — Проверка на наличността на домейнПроверява дали едно или повече имена на домейни са налични за регистрация. Използва endpoint за единичен домейн за едно име и bulk endpoint за няколко. Домейн, чийто TLD не се поддържа за регистрация, изобщо не се изпраща за проверка на наличност — връща се веднага като tldNotSupported.
Параметър: domains
Задължително: Да
Тип и ограничения: 1–20 пълни имена на домейни. Всяко приема Unicode (IDN) или ASCII (A-label) — автоматично се нормализира до punycode.
Връща — { results }, по един запис за всяко заявено име:
Поле: domain
Значение: Провереното име.
Поле: result
Значение: available, taken, invalidDomainName, tldNotSupported или unexpectedError.
Поле: premiumPricing
Значение: За premium имена: списък от { operation, price, currency }, където operation е register, transfer, renew или restore. Празно за обикновени имена.
Поле: price
Значение: За available имена (стандартни и premium): цената в USD за регистрация на домейна за най-краткия срок, който TLD позволява — { amount, currency: "USD", pricedYears?, pricePerYear?, icannFee?, isPremium }. amount е общата сума за плащане за целия този срок; pricedYears посочва колко години покрива. Не се отчита цена преди отстъпка или цена „беше“. icannFee е таксата на ICANN (USD), вече включена в amount, върната отделно, за да може разбивката да бъде обяснена; появява се само когато TLD има такава такса.
Поле: pricePerYear
Значение: Вътре в price: amount, разделено на pricedYears, така че винаги да има налична годишна стойност за сравнение. Когато pricedYears е 1, това е реалната цена за една година; над това е средна цена на година за срока, а не срок, който бихте могли да купите.
Поле: minRegisterPeriodInYears / maxRegisterPeriodInYears
Значение: За available имена: най-краткият и най-дългият период за регистрация, който този TLD действително позволява, като две обикновени числа. Те показват на клиента за какви срокове може да купи домейна. И двете се пропускат, когато позволеният период не може да бъде определен.
Поле: priceUnavailableReason
Значение: Присъства вместо price, когато цената не може да бъде определена за налично име. Самата проверка все пак е успешна.
Цени се дават само за налични имена; резултатите taken/invalid не съдържат нито price, нито priceUnavailableReason.
Повечето TLD позволяват една година, но някои не..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 („$159.96 за 2 години“), никога само amount. За обикновен TLD pricedYears е 1 и pricePerYear е равно на amount.
domain_set_contacts — Задаване на контакти за домейнПроменя контактите, зададени на домейн, който притежавате. Завършва незабавно (няма операция за проследяване).
Параметър: domainName
Задължително: Да
Тип и ограничения: Пълно име на домейн. Приема Unicode (IDN) или ASCII (A-label) — автоматично се нормализира до punycode.
Параметър: registrant
Задължително: Да
Тип и ограничения: contactId низ (27–32 буквено-цифрови знака), от contacts_save.
Параметър: admin
Задължително: Не
Тип и ограничения: contactId низ (27–32 буквено-цифрови знака) или null.
Параметър: tech
Задължително: Не
Тип и ограничения: contactId низ (27–32 буквено-цифрови знака) или null.
Параметър: billing
Задължително: Не
Тип и ограничения: contactId низ (27–32 буквено-цифрови знака) или null.
Параметър: attributes
Задължително: Не
Тип и ограничения: Масив от ID на контакти за разширени атрибути (до 5); изисква се само за определени TLD, в противен случай пропуснете или използвайте null.
Връща
{ "verificationStatus": "verification" }
Върнатото verificationStatus отразява ICANN RAA проверката на имейл: verification — регистрантът трябва да потвърди своя имейл адрес (изпраща се имейл за потвърждение); success — вече е потвърден; null — RAA проверката не се прилага за този домейн.
domain_set_nameservers — Задаване на nameservers за домейнПроменя nameservers на ниво регистратор за даден домейн. Завършва незабавно (няма операция за проследяване). Промяната след това се отразява в domains_list.
Параметър: domainName
Задължително: Да
Тип и ограничения: Пълно име на домейн. Приема Unicode (IDN) или ASCII (A-label) — автоматично се нормализира до punycode.
Параметър: provider
Задължително: Да
Тип и ограничения: basic (nameservers по подразбиране на Spaceship) или custom (вашите собствени хостове).
Параметър: hosts
Задължително: Условно
Тип и ограничения: Задължително, когато provider е custom: 2–12 хост имена на nameserver-и (всяко валидно FQDN, 4–255 знака). Трябва да се пропусне, когато provider е basic.
Връща
{ "provider": "custom", "hosts": ["ns1.example.com", "ns2.example.com"] }
Повторното прилагане на състояние, в което домейнът вече се намира (напр. задаване на basic, когато той вече е basic), връща грешка при валидация вместо успешно изпълнение без действие — приемайте това като очакван резултат, а не като неуспех, който трябва да се повтори.
Полето domainName, което тези инструменти приемат, поддържа Unicode (IDN) или ASCII (A-label) и се нормализира автоматично до punycode; поддръжката на TLD не се налага тук.
dns_records_get — Получаване на DNS записиИзвлича страниран списък с DNS resource записи за домейн.
Параметър: domainName
Задължително: Да
Тип и ограничения: Домейнът, чиито записи да бъдат извлечени.
Параметър: take
Задължително: Не
Тип и ограничения: Елементи на страница, 1–500. По подразбиране 100.
Параметър: skip
Задължително: Не
Тип и ограничения: Елементи за пропускане, 0 или повече. По подразбиране 0.
Параметър: orderBy
Задължително: Не
Тип и ограничения: До 8 ключа за сортиране: type, -type, name, -name.
Връща — { items, total }. Всеки елемент е запис, както е описано в Record shapes, плюс незадължително поле group, указващо откъде идва записът (custom — създаден от вас, product — управляван от продукт на Spaceship, personalNs — лични nameserver-и).
dns_records_save — Запазване на DNS записиДобавя персонализирани DNS записи или актуализира TTL на съществуващи такива. Записите се съпоставят без чувствителност към главни и малки букви, с изключение на TXT записите (чувствителни към регистъра).
Параметър: domainName
Задължително: Да
Тип и ограничения: Домейнът, чиито записи да бъдат актуализирани.
Параметър: records
Задължително: Да
Тип и ограничения: 1–500 записа — вижте Record shapes. Всеки може да включва незадължително поле ttl.
Параметър: force
Задължително: Не
Тип и ограничения: Булева стойност. Пропуска проверката за разрешаване на конфликти и принудително актуализира зоната.
Връща — { "saved": <number> }, броя на подадените записи. Успешен отговор означава, че всички записи са приети; ако някой запис се провали, вместо това цялото извикване връща грешка.
dns_records_delete — Изтриване на DNS записиИзтрива персонализирани DNS записи. Изтриванията не могат да бъдат отменени. Записите се съпоставят без чувствителност към главни и малки букви, с изключение на TXT записите (чувствителни към регистъра).
Параметър: domainName
Задължително: Да
Тип и ограничения: Домейнът, чиито записи да бъдат изтрити.
Параметър: records
Задължително: Да
Тип и ограничения: 1–500 записа, идентифициращи съществуващи записи — същите форми като при запазване, но без ttl.
Връща — { "deleted": <number> }, броя на подадените записи. Ако някой запис не може да бъде съпоставен, цялото извикване се проваля и нищо не се изтрива.
Всеки запис има:
type — един от 13-те поддържани типа по-долу.
name — името на записа, без домейна: използвайте @ за самия домейн (apex) и * за wildcard.
ttl (само при запазване, незадължително) — време за кеширане в секунди, 60–3600.
Специфични за типа полета:
Тип: A
Полета: address — IPv4 адрес.
Тип: AAAA
Полета: address — IPv6 адрес.
Тип: CNAME
Полета: cname — канонично име на домейн (макс. 253 знака).
Тип: ALIAS
Полета: aliasName — канонично име на домейн; поведение като CNAME за apex, където CNAME не е разрешен.
Тип: NS
Полета: nameserver — име на nameserver.
Тип: PTR
Полета: pointer — име на домейн за дадения IP адрес.
Тип: TXT
Полета: value — текстова стойност (съпоставя се с чувствителност към регистъра).
Тип: 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 — хеш на сертификат или данни.
Тип: HTTPS
Полета: svcPriority (0–65535; 0 = AliasMode); targetName — FQDN или .; незадължителни port (* или _<1–65535>), scheme (трябва да е _https, когато port е зададен), svcParams.
Тип: SVCB
Полета: svcPriority (0–65535; 0 = AliasMode); targetName — FQDN или .; незадължителни port, scheme (напр. _tcp), svcParams.
async_operation_get — Получаване на статус на асинхронна операцияПроверява дълго изпълняваща се операция във вашия акаунт по нейния operationId. Извиквайте го многократно, докато status стане success или failed.
Параметър: operationId
Задължително: Да
Тип и ограничения: Буквено-цифров низ, макс. 36 знака, върнат от инструмента, който е стартирал операцията.
Връща
Поле: operationId
Значение: Проверяваната операция.
Поле: status
Значение: pending, success, или failed.
Поле: type
Значение: Тип на операцията или null.
Поле: details
Значение: Допълнителни подробности за операцията или null.
Поле: createdAt / modifiedAt
Значение: Кога операцията е създадена / последно актуализирана (modifiedAt може да е null).
Когато извикване се провали, инструментът връща грешка с код и четимо за човек поле detail, което обяснява какво се е объркало — например невалиден вход (неправилно форматирано име на домейн или ID на контакт), домейн или контакт, който не съществува, или конфликт с текущото състояние. Ако инструмент бъде отхвърлен, защото на асистента не е предоставен достъп до него, свържете отново Spaceship MCP и одобрете искания достъп.