Spaceship MCP — Dokumentacja narzędzi

Spaceship MCP łączy Twojego asystenta AI (takiego jak Claude) z Twoim kontem Spaceship. Dzięki temu asystent może sprawdzać i rejestrować domeny, zarządzać kontaktami domenowymi oraz odczytywać lub edytować rekordy DNS w Twoim imieniu — wystarczy, że zapytasz w prostym języku, a asystent wywoła odpowiednie narzędzia.

Pierwsze kroki

Potrzebujesz konta Spaceship. Spaceship MCP jest dostępny pod adresem https://mcp.spaceship.com/mcp.

Sposób połączenia zależy od Twojego asystenta AI:

  • Claude (web i desktop) — otwórz Ustawienia, wybierz Connectors, znajdź Spaceship w katalogu konektorów i dodaj go. Claude od Anthropic jest obecnie klientem, z którym potwierdziliśmy działanie Spaceship MCP.

  • Inni klienci MCP — dodaj zdalny serwer MCP i wskaż go na https://mcp.spaceship.com/mcp. Inni klienci mogą działać, ale jeszcze tego nie zweryfikowaliśmy.

Podczas łączenia zostaniesz poproszony o zalogowanie się do Spaceship i przyznanie asystentowi dostępu do Twojego konta. To, z których narzędzi asystent może korzystać, zależy od zatwierdzonego przez Ciebie dostępu — jeśli narzędzie zostanie odrzucone, ponieważ dostęp nie został przyznany, połącz się ponownie i zatwierdź wymagany dostęp.

Przegląd narzędzi

  • Narzędzie: contacts_save

    Co robi: Zapisuje dane kontaktowe i pobiera identyfikator kontaktu

  • Narzędzie: contacts_get

    Działanie: Odczytaj zapisany kontakt na podstawie jego identyfikatora

  • Narzędzie: domains_list

    Działanie: Wyświetl swoje domeny lub wyszukaj jedną domenę

  • Narzędzie: domains_check_availability

    Działanie: Sprawdź, czy domeny są dostępne do rejestracji

  • Narzędzie: domain_register

    Działanie: Zarejestruj (kup) domenę — wydaje pieniądze

  • Narzędzie: domain_set_contacts

    Działanie: Przypisz kontakty do domeny, którą posiadasz

  • Narzędzie: dns_records_get

    Działanie: Odczytaj rekordy DNS dla domeny

  • Narzędzie: dns_records_save

    Działanie: Dodaj rekordy DNS lub zaktualizuj ich TTL

  • Narzędzie: dns_records_delete

    Co robi: Usuń rekordy DNS

  • Narzędzie: async_operation_get

    Co robi: Sprawdza status długotrwałej operacji

Typowe przepływy pracy

Kilka narzędzi zaprojektowano do wspólnego użycia: dane wyjściowe jednego stają się danymi wejściowymi następnego.

Zarejestruj (kup) domenę

  1. domains_check_availability — sprawdź nazwę lub nazwy, które chcesz. Kontynuuj tylko wtedy, gdy result ma wartość available; nazwy premium zawierają ceny w polu premiumPricing.

  2. contacts_save — zapisz dane kontaktowe do rejestracji. Zwraca contactId. Użyj ponownie jednego contactId dla wszystkich ról lub zapisz kilka kontaktów.

  3. domain_register — zarejestruj domenę, przekazując identyfikator(y) kontaktu jako contacts.registrant, contacts.admin, contacts.tech i contacts.billing. To obciąża domyślną metodę płatności Twojego konta i jest nieodwracalne. Zwraca natychmiast operationId oraz status: pending — rejestracja kończy się w tle.

  4. async_operation_get — przekaż operationId z kroku 3, aby sprawdzić postęp. Powtarzaj, aż status zmieni się na success lub failed.

domains_check_availability ──▶ contacts_save ──▶ domain_register ──▶ async_operation_get
(available?) (contactId) (operationId) (pending → success/failed)

Zaktualizuj kontakty w domenie, którą posiadasz

  1. contacts_save — zapisz nowe dane kontaktowe; zwraca contactId (lub użyj ponownie istniejącego, możliwego do odczytu przez contacts_get).

  2. domain_set_contacts — przypisz identyfikator(y) kontaktu do domeny. To kończy się natychmiast i zwraca verificationStatus: verification oznacza, że rejestrujący musi potwierdzić swój adres e-mail, zanim zmiana zostanie w pełni zastosowana (zostanie do niego wysłana wiadomość e-mail), success oznacza, że jest już potwierdzony, a null oznacza, że dla tej domeny potwierdzenie nie jest wymagane.

Zarządzaj rekordami DNS

  1. domains_list — znajdź domenę, którą chcesz zarządzać (lub przekaż jej nazwę bezpośrednio, jeśli ją znasz).

  2. dns_records_get — odczytaj bieżące rekordy domeny.

  3. dns_records_save lub dns_records_delete — dodawaj, aktualizuj lub usuwaj rekordy. Rekordy zwrócone przez dns_records_get mają ten sam kształt, który akceptują narzędzia zapisu i usuwania (usuwanie po prostu pomija ttl), więc asystent może je odczytać, dostosować i zapisać z powrotem. Dopasowanie nie uwzględnia wielkości liter, z wyjątkiem rekordów TXT, które uwzględniają wielkość liter.

Przejrzyj swoje portfolio

  • domains_list — przeglądaj strona po stronie wszystkie swoje domeny z sortowaniem lub pobierz pojedynczą domenę po nazwie. Każda domena zawiera datę wygaśnięcia, ustawienie automatycznego odnawiania, status, serwery nazw, ochronę prywatności i przypisane identyfikatory kontaktów.

  • contacts_get — sprawdź szczegóły kryjące się za dowolnym identyfikatorem kontaktu widocznym przy domenie.

Dokumentacja narzędzi

Każde narzędzie zwraca wynik jako uporządkowany JSON. Długotrwałe operacje (obecnie tylko domain_register) zwracają identyfikator operacji do odpytywania za pomocą async_operation_get; wszystkie pozostałe narzędzia kończą się natychmiast.

Kontakty

Kontakty to osoby lub organizacje powiązane z rejestracją domeny (rejestrujący, administrator, techniczny, rozliczeniowy). Do kontaktu wszędzie odwołuje się przez jego identyfikator kontaktu — 27–32-znakowy ciąg alfanumeryczny.

contacts_save — Zapisz kontakt

Zapisuje dane kontaktowe i zwraca wygenerowany identyfikator kontaktu. Walidacja niektórych pól (takich jak stateProvince i postalCode) zależy od wybranego kraju.

  • Parametr: firstName

    Wymagane: Tak

    Typ i ograniczenia: Ciąg znaków, 1–64 znaki. Może zawierać myślniki i apostrofy.

  • Parametr: lastName

    Wymagane: Tak

    Typ i ograniczenia: Ciąg znaków, 1–64 znaki. Może zawierać myślniki i apostrofy.

  • Parametr: email

    Wymagane: Tak

    Typ i ograniczenia: Prawidłowy adres e-mail, maks. 254 znaki.

  • Parametr: address1

    Wymagane: Tak

    Typ i ograniczenia: Wiersz adresu 1. Ciąg znaków, 1–128 znaków.

  • Parametr: city

    Wymagane: Tak

    Typ i ograniczenia: Ciąg znaków, 1–64 znaki.

  • Parametr: country

    Wymagane: Tak

    Typ i ograniczenia: Dwuliterowy kod kraju (ISO 3166-1 alpha-2), np. US.

  • Parametr: phone

    Wymagane: Tak

    Typ i ograniczenia: Format międzynarodowy +CountryCode.Number, np. +1.2025551234. Maks. 32 znaki.

  • Parametr: organization

    Wymagane: Nie

    Typ i ograniczenia: Nazwa organizacji/firmy. 1–128 znaków.

  • Parametr: address2

    Wymagane: Nie

    Typ i ograniczenia: Wiersz adresu 2. 1–128 znaków.

  • Parametr: stateProvince

    Wymagane: Nie

    Typ i ograniczenia: Nazwa stanu/prowincji, 1–64 znaki. Może być wymagana w zależności od kraju.

  • Parametr: postalCode

    Wymagane: Nie

    Typ i ograniczenia: 1–16 znaków. Może być wymagany w zależności od kraju.

  • Parametr: phoneExt

    Wymagane: Nie

    Typ i ograniczenia: Numer wewnętrzny telefonu, 1–16 znaków.

  • Parametr: fax

    Wymagane: Nie

    Typ i ograniczenia: Numer faksu, ten sam format +CountryCode.Number, maks. 32 znaki.

  • Parametr: faxExt

    Wymagane: Nie

    Typ i ograniczenia: Numer wewnętrzny faksu, 1–16 znaków.

  • Parametr: taxNumber

    Wymagane: Nie

    Typ i ograniczenia: Numer podatkowy, 1–32 znaki.

Zwraca

{ "contactId": "..." }

contactId (27–32 znaków alfanumerycznych) to wartość przekazywana do domain_register, domain_set_contacts oraz contacts_get.

contacts_get — Pobierz kontakt

Odczytuje szczegóły zapisanego kontaktu na podstawie jego identyfikatora kontaktu. (Nie ma narzędzia do wyświetlania listy wszystkich kontaktów — identyfikatory kontaktów pochodzą z contacts_save lub z pola contacts w wynikach domains_list.)

  • Parametr: contactId

    Wymagane: Tak

    Typ i ograniczenia: Identyfikator kontaktu, 27–32 znaki alfanumeryczne.

Zwraca{ contact } z:

  • Pole: firstName, lastName, email, address1, city, country, phone, postalCode

    Typ: Ciąg znaków

  • Pole: organization, address2, stateProvince, phoneExt, fax, faxExt, taxNumber

    Typ: Ciąg znaków lub null

Domeny

domains_list — Wyświetl domeny

Pobiera stronicowaną listę Twoich domen. Przekaż domain, aby zamiast tego pobrać pojedynczą domenę według nazwy (stronicowanie i sortowanie są wtedy ignorowane, a wynik zawiera pole note informujące o tym, jeśli zostały podane).

  • Parametr: domain

    Wymagane: Nie

    Typ i ograniczenia: W pełni kwalifikowana nazwa domeny (ASCII/A-label) do pobrania pojedynczej domeny.

  • Parametr: take

    Wymagane: Nie

    Typ i ograniczenia: Liczba elementów na stronę, 1–100. Domyślnie 10.

  • Parametr: skip

    Wymagane: Nie

    Typ i ograniczenia: Liczba pomijanych elementów, 0 lub więcej. Domyślnie 0.

  • Parametr: orderBy

    Wymagane: Nie

    Typ i ograniczenia: Do 8 kluczy sortowania: name, unicodeName, registrationDate, expirationDate; poprzedź znakiem - dla kolejności malejącej (np. -expirationDate).

Zwraca{ items, total }, gdzie każdy element opisuje domenę:

  • Pole: name / unicodeName

    Znaczenie: Nazwa domeny w formie ASCII i Unicode.

  • Pole: isPremium

    Znaczenie: Czy domena jest nazwą premium.

  • Pole: autoRenew

    Znaczenie: Czy automatyczne odnawianie jest włączone.

  • Pole: registrationDate / expirationDate

    Znaczenie: Znaczniki czasu rejestracji i wygaśnięcia.

  • Pole: lifecycleStatus

    Znaczenie: creating, registered, grace1, grace2 lub redemption.

  • Pole: verificationStatus

    Znaczenie: verification, success, failed lub null, gdy nie dotyczy.

  • Pole: eppStatuses

    Znaczenie: Kody statusu rejestru (np. blokady transferu).

  • Pole: suspensions

    Znaczenie: Aktywne zawieszenia, każde z polem reasonCode.

  • Pole: privacyProtection

    Znaczenie: { level: "public" | "high", contactForm: boolean }.

  • Pole: nameservers

    Znaczenie: { provider: "basic" | "custom", hosts: [...] }.

  • Pole: contacts

    Znaczenie: Identyfikatory kontaktów: registrant oraz admin/tech/billing/attributes (mogą mieć wartość null). Można je odczytać przez contacts_get.

domains_check_availability — Sprawdź dostępność domeny

Sprawdza, czy jedna lub więcej nazw domen jest dostępna do rejestracji.

  • Parametr: domains

    Wymagane: Tak

    Typ i ograniczenia: 1–20 w pełni kwalifikowanych nazw domen (ASCII/A-label).

Zwraca{ results }, po jednym wpisie dla każdej żądanej nazwy:

  • Pole: domain

    Znaczenie: Sprawdzona nazwa.

  • Pole: result

    Znaczenie: available, taken, invalidDomainName, tldNotSupported lub unexpectedError.

  • Pole: premiumPricing

    Znaczenie: Dla nazw premium: lista { operation, price, currency }, gdzie operation to register, transfer, renew lub restore. Puste dla zwykłych nazw.

domain_register — Zarejestruj domenę

Rejestruje (kupuje) domenę. To obciąża domyślną metodę płatności Twojego konta i jest nieodwracalne. Zalecana sekwencja: domains_check_availabilitycontacts_savedomain_register. Narzędzie zwraca wynik natychmiast ze statusem oczekującym; sama rejestracja kończy się w tle — sprawdź ją za pomocą async_operation_get.

  • Parametr: domain

    Wymagane: Tak

    Typ i ograniczenia: W pełni kwalifikowana nazwa domeny do rejestracji, np. example.com.

  • Parametr: years

    Wymagane: Tak

    Typ i ograniczenia: Okres rejestracji w latach, 1–10.

  • Parametr: autoRenew

    Wymagane: Tak

    Typ i ograniczenia: Wartość logiczna. Gdy true, domena odnawia się automatycznie po wygaśnięciu przy użyciu domyślnej metody płatności konta.

  • Parametr: privacy.level

    Wymagane: Tak

    Typ i ograniczenia: high ukrywa dane kontaktowe rejestrującego przed publicznym WHOIS; public je publikuje.

  • Parametr: privacy.userConsent

    Wymagane: Tak

    Typ i ograniczenia: Wartość logiczna. Musi potwierdzać zgodę na wybrane ustawienie prywatności.

  • Parametr: contacts.registrant

    Wymagane: Tak

    Typ i ograniczenia: Identyfikator kontaktu (z contacts_save).

  • Parametr: contacts.admin

    Wymagane: Tak

    Typ i ograniczenia: Identyfikator kontaktu.

  • Parametr: contacts.tech

    Wymagane: Tak

    Typ i ograniczenia: Identyfikator kontaktu.

  • Parametr: contacts.billing

    Wymagane: Tak

    Typ i ograniczenia: Identyfikator kontaktu.

  • Parametr: contacts.attributes

    Wymagane: Nie

    Typ i ograniczenia: Do 5 dodatkowych identyfikatorów kontaktów, wymaganych tylko dla niektórych TLD.

Zwraca

{
"operationId": "...",
"domain": "example.com",
"years": 1,
"status": "pending",
"note": "Registration of example.com submitted. ..."
}

Przekaż operationId do async_operation_get, aby sprawdzić, czy rejestracja się powiodła.

domain_set_contacts — Ustaw kontakty domeny

Zmienia kontakty przypisane do domeny, którą posiadasz. Kończy się natychmiast (bez identyfikatora operacji).

  • Parametr: domainName

    Wymagane: Tak

    Typ i ograniczenia: W pełni kwalifikowana nazwa domeny (ASCII/A-label).

  • Parametr: registrant

    Wymagane: Tak

    Typ i ograniczenia: Identyfikator kontaktu.

  • Parametr: admin

    Wymagane: Nie

    Typ i ograniczenia: Identyfikator kontaktu lub null.

  • Parametr: tech

    Wymagane: Nie

    Typ i ograniczenia: Identyfikator kontaktu lub null.

  • Parametr: billing

    Wymagane: Nie

    Typ i ograniczenia: Identyfikator kontaktu lub null.

  • Parametr: attributes

    Wymagane: Nie

    Typ i ograniczenia: Do 5 identyfikatorów kontaktów lub null.

Zwraca

{ "verificationStatus": "verification" }

verification — rejestrujący musi potwierdzić swój adres e-mail (wysyłana jest wiadomość potwierdzająca); success — już potwierdzono; null — potwierdzenie nie jest wymagane dla tej domeny.

Rekordy DNS

dns_records_get — Pobierz rekordy DNS

Pobiera stronicowaną listę rekordów zasobów DNS dla domeny.

  • Parametr: domainName

    Wymagane: Tak

    Typ i ograniczenia: Domena, której rekordy mają zostać pobrane.

  • Parametr: take

    Wymagane: Nie

    Typ i ograniczenia: Liczba elementów na stronę, 1–500. Domyślnie 100.

  • Parametr: skip

    Wymagane: Nie

    Typ i ograniczenia: Liczba pomijanych elementów, 0 lub więcej. Domyślnie 0.

  • Parametr: orderBy

    Wymagane: Nie

    Typ i ograniczenia: Do 8 kluczy sortowania: type, -type, name, -name.

Zwraca{ items, total }. Każdy element jest rekordem opisanym w sekcji Kształty rekordów, plus opcjonalne pole group wskazujące, skąd pochodzi rekord (custom — utworzony przez Ciebie, product — zarządzany przez produkt Spaceship, personalNs — prywatne serwery nazw).

dns_records_save — Zapisz rekordy DNS

Dodaje niestandardowe rekordy DNS lub aktualizuje TTL istniejących rekordów. Rekordy są dopasowywane bez rozróżniania wielkości liter, z wyjątkiem rekordów TXT (z rozróżnianiem wielkości liter).

  • Parametr: domainName

    Wymagane: Tak

    Typ i ograniczenia: Domena, której rekordy mają zostać zaktualizowane.

  • Parametr: records

    Wymagane: Tak

    Typ i ograniczenia: 1–500 rekordów — zobacz Kształty rekordów. Każdy może zawierać opcjonalne pole ttl.

  • Parametr: force

    Wymagane: Nie

    Typ i ograniczenia: Wartość logiczna. Pomija sprawdzanie rozwiązywania konfliktów i wymusza aktualizację strefy.

Zwraca{ "saved": <number> }, liczbę przesłanych rekordów. Pomyślna odpowiedź oznacza, że wszystkie rekordy zostały zaakceptowane; jeśli którykolwiek rekord zakończy się niepowodzeniem, całe wywołanie zwróci błąd.

dns_records_delete — Usuń rekordy DNS

Usuwa niestandardowe rekordy DNS. Usunięcia nie można cofnąć. Rekordy są dopasowywane bez rozróżniania wielkości liter, z wyjątkiem rekordów TXT (z rozróżnianiem wielkości liter).

  • Parametr: domainName

    Wymagane: Tak

    Typ i ograniczenia: Domena, której rekordy mają zostać usunięte.

  • Parametr: records

    Wymagane: Tak

    Typ i ograniczenia: 1–500 rekordów identyfikujących istniejące rekordy — te same kształty co przy zapisie, ale bez ttl.

Zwraca{ "deleted": <number> }, liczbę przesłanych rekordów.

Kształty rekordów

Każdy rekord ma:

  • type — jeden z 13 obsługiwanych typów poniżej.

  • name — nazwa rekordu bez domeny: użyj @ dla samej domeny (apex) oraz * dla symbolu wieloznacznego.

  • ttl (tylko zapis, opcjonalnie) — czas pamięci podręcznej w sekundach, 60–3600.

Pola specyficzne dla typu:

  • Typ: A

    Pola: address — adres IPv4.

  • Typ: AAAA

    Pola: address — adres IPv6.

  • Typ: CNAME

    Pola: cname — kanoniczna nazwa domeny (maks. 253 znaki).

  • Typ: ALIAS

    Pola: aliasName — kanoniczna nazwa domeny; zachowanie podobne do CNAME dla apexu, gdzie CNAME nie jest dozwolony.

  • Typ: NS

    Pola: nameserver — nazwa serwera nazw.

  • Typ: PTR

    Pola: pointer — nazwa domeny dla podanego adresu IP.

  • Typ: TXT

    Pola: value — wartość tekstowa (dopasowywana z rozróżnianiem wielkości liter).

  • Typ: MX

    Pola: exchange — serwer pocztowy; preference — priorytet (0–65535, preferowana niższa wartość).

  • Typ: CAA

    Pola: flag0 lub 128 (bit krytyczny); tagissue, issuewild lub iodef; value — identyfikator CA z opcjonalnymi parametrami.

  • Typ: SRV

    Pola: service (np. _sip); protocol (np. _tcp); priority i weight (0–65535); port (1–65535); target — nazwa domeny serwera.

  • Typ: TLSA

    Pola: usage, selector, matching (każde 0–255); port* lub _<165535>; protocol (np. _tcp); associationData — skrót certyfikatu lub dane.

  • Typ: HTTPS

    Pola: svcPriority (0–65535; 0 = AliasMode); targetName — FQDN lub .; opcjonalnie port (* lub _<165535>), scheme (musi być _https, gdy port jest ustawiony), svcParams.

  • Typ: SVCB

    Pola: svcPriority (0–65535; 0 = AliasMode); targetName — FQDN lub .; opcjonalnie port, scheme (np. _tcp), svcParams.

Operacje asynchroniczne

async_operation_get — Pobierz status operacji asynchronicznej

Sprawdza długotrwałą operację uruchomioną przez inne narzędzie (obecnie domain_register). Wywołaj je z wartością operationId zwróconą przez tamto narzędzie i powtarzaj, aż status będzie mieć wartość success lub failed.

  • Parametr: operationId

    Wymagane: Tak

    Typ i ograniczenia: Ciąg alfanumeryczny, maks. 36 znaków, zwrócony przez narzędzie, które rozpoczęło operację.

Zwraca

  • Pole: operationId

    Znaczenie: Odpytywana operacja.

  • Pole: status

    Znaczenie: pending, success lub failed.

  • Pole: type

    Znaczenie: Typ operacji lub null.

  • Pole: details

    Znaczenie: Dodatkowe szczegóły operacji lub null.

  • Pole: createdAt / modifiedAt

    Znaczenie: Kiedy operacja została utworzona / ostatnio zaktualizowana (modifiedAt może mieć wartość null).

Błędy

Gdy wywołanie kończy się niepowodzeniem, narzędzie zwraca błąd z kodem i czytelnym dla człowieka polem detail wyjaśniającym, co poszło nie tak — na przykład nieprawidłowe dane wejściowe (niepoprawnie sformatowana nazwa domeny lub identyfikator kontaktu), domena lub kontakt, które nie istnieją, albo konflikt z bieżącym stanem. Jeśli narzędzie zostanie odrzucone, ponieważ asystent nie otrzymał do niego dostępu, połącz ponownie Spaceship MCP i zatwierdź żądany dostęp.

Wymagany jest prawidłowy adres e-mail