Spaceship MCP — Tài liệu tham khảo công cụ

Spaceship MCP kết nối trợ lý AI của bạn (chẳng hạn như Claude) với tài khoản Spaceship của bạn. Thông qua đó, trợ lý có thể kiểm tra và đăng ký tên miền, quản lý liên hệ tên miền, đồng thời đọc hoặc chỉnh sửa bản ghi DNS thay cho bạn — bạn chỉ cần yêu cầu bằng ngôn ngữ thông thường, và trợ lý sẽ gọi đúng công cụ.

Bắt đầu

Bạn cần có tài khoản Spaceship. Spaceship MCP có tại https://mcp.spaceship.com/mcp.

Cách bạn kết nối phụ thuộc vào trợ lý AI của bạn:

  • Claude (web và desktop) — mở Settings, chọn Connectors, tìm Spaceship trong thư mục connectors và thêm nó. Claude của Anthropic hiện là ứng dụng khách mà chúng tôi đã xác minh là Spaceship MCP hoạt động cùng.

  • Các ứng dụng khách MCP khác — thêm một máy chủ MCP từ xa và trỏ nó tới https://mcp.spaceship.com/mcp. Các ứng dụng khách khác có thể hoạt động, nhưng chúng tôi chưa xác minh chúng.

Khi bạn kết nối, bạn sẽ được yêu cầu đăng nhập vào Spaceship và cấp cho trợ lý quyền truy cập vào tài khoản của bạn. Trợ lý có thể sử dụng công cụ nào phụ thuộc vào quyền truy cập bạn phê duyệt — nếu một công cụ bị từ chối vì chưa được cấp quyền truy cập, hãy kết nối lại và phê duyệt quyền truy cập mà công cụ đó cần.

Tổng quan công cụ

  • Công cụ: contacts_save

    Chức năng: Lưu chi tiết liên hệ và nhận ID liên hệ

  • Công cụ: contacts_get

    Chức năng: Đọc một liên hệ đã lưu theo ID của nó

  • Công cụ: domains_list

    Chức năng: Liệt kê các tên miền của bạn hoặc tra cứu một tên miền

  • Công cụ: domains_check_availability

    Chức năng: Kiểm tra xem tên miền có sẵn để đăng ký hay không

  • Công cụ: domain_register

    Chức năng: Đăng ký (mua) một tên miền — tốn tiền

  • Công cụ: domain_set_contacts

    Chức năng: Gán liên hệ cho một tên miền bạn sở hữu

  • Công cụ: dns_records_get

    Chức năng: Đọc bản ghi DNS cho một tên miền

  • Công cụ: dns_records_save

    Chức năng: Thêm bản ghi DNS hoặc cập nhật TTL của chúng

  • Công cụ: dns_records_delete

    Chức năng: Xóa bản ghi DNS

  • Công cụ: async_operation_get

    Chức năng: Kiểm tra trạng thái của một thao tác chạy lâu

Các quy trình làm việc phổ biến

Một số công cụ được thiết kế để dùng cùng nhau: đầu ra của công cụ này trở thành đầu vào của công cụ tiếp theo.

Đăng ký (mua) một tên miền

  1. domains_check_availability — kiểm tra (các) tên bạn muốn. Chỉ tiếp tục khi resultavailable; tên cao cấp bao gồm giá trong premiumPricing.

  2. contacts_save — lưu chi tiết liên hệ cho việc đăng ký. Trả về một contactId. Dùng lại một contactId cho mọi vai trò hoặc lưu nhiều liên hệ.

  3. domain_register — đăng ký tên miền, truyền (các) ID liên hệ dưới dạng contacts.registrant, contacts.admin, contacts.tech, và contacts.billing. Thao tác này sẽ tính phí vào phương thức thanh toán mặc định của tài khoản bạn và không thể hoàn tác. Công cụ trả về ngay lập tức với một operationIdstatus: pending — việc đăng ký sẽ hoàn tất ở chế độ nền.

  4. async_operation_get — truyền operationId từ bước 3 để kiểm tra tiến trình. Lặp lại cho đến khi status trở thành success hoặc failed.

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

Cập nhật liên hệ trên tên miền bạn sở hữu

  1. contacts_save — lưu chi tiết liên hệ mới; trả về một contactId (hoặc dùng lại một ID hiện có, có thể đọc qua contacts_get).

  2. domain_set_contacts — gán (các) ID liên hệ cho tên miền. Thao tác này hoàn tất ngay lập tức và trả về verificationStatus: verification nghĩa là người đăng ký phải xác nhận địa chỉ email của họ trước khi thay đổi được áp dụng hoàn toàn (một email sẽ được gửi cho họ), success nghĩa là đã được xác nhận, và null nghĩa là không cần xác nhận cho tên miền đó.

Quản lý bản ghi DNS

  1. domains_list — tìm tên miền bạn muốn quản lý (hoặc truyền trực tiếp tên của nó nếu bạn biết).

  2. dns_records_get — đọc các bản ghi hiện tại của tên miền.

  3. dns_records_save hoặc dns_records_delete — thêm, cập nhật hoặc xóa bản ghi. Các bản ghi được trả về bởi dns_records_get có cùng hình dạng mà công cụ lưu và xóa chấp nhận (xóa chỉ bỏ qua ttl), vì vậy trợ lý có thể đọc, điều chỉnh và ghi lại. Việc đối sánh không phân biệt chữ hoa chữ thường ngoại trừ bản ghi TXT, vốn phân biệt chữ hoa chữ thường.

Xem lại danh mục của bạn

  • domains_list — duyệt qua tất cả tên miền của bạn với sắp xếp, hoặc lấy một tên miền duy nhất theo tên. Mỗi tên miền bao gồm ngày hết hạn, cài đặt tự động gia hạn, trạng thái, máy chủ tên, bảo vệ quyền riêng tư và các ID liên hệ được gán.

  • contacts_get — tra cứu chi tiết đằng sau bất kỳ ID liên hệ nào bạn thấy trên một tên miền.

Tham chiếu công cụ

Mỗi công cụ trả về kết quả dưới dạng JSON có cấu trúc. Các thao tác chạy lâu (hiện tại chỉ có domain_register) trả về một ID thao tác để thăm dò bằng async_operation_get; tất cả các công cụ khác hoàn tất ngay lập tức.

Liên hệ

Liên hệ là những người hoặc tổ chức gắn với một đăng ký tên miền (người đăng ký, quản trị viên, kỹ thuật, thanh toán). Một liên hệ được tham chiếu ở mọi nơi bằng ID liên hệ — một chuỗi chữ và số dài 27–32 ký tự.

contacts_save — Lưu liên hệ

Lưu chi tiết liên hệ và trả về ID liên hệ được tạo. Việc xác thực một số trường (chẳng hạn như stateProvincepostalCode) phụ thuộc vào quốc gia đã chọn.

  • Tham số: firstName

    Bắt buộc:

    Kiểu & ràng buộc: Chuỗi, 1–64 ký tự. Có thể bao gồm dấu gạch nối và dấu nháy đơn.

  • Tham số: lastName

    Bắt buộc:

    Kiểu & ràng buộc: Chuỗi, 1–64 ký tự. Có thể bao gồm dấu gạch nối và dấu nháy đơn.

  • Tham số: email

    Bắt buộc:

    Kiểu & ràng buộc: Địa chỉ email hợp lệ, tối đa 254 ký tự.

  • Tham số: address1

    Bắt buộc:

    Kiểu & ràng buộc: Dòng địa chỉ 1. Chuỗi, 1–128 ký tự.

  • Tham số: city

    Bắt buộc:

    Kiểu & ràng buộc: Chuỗi, 1–64 ký tự.

  • Tham số: country

    Bắt buộc:

    Kiểu & ràng buộc: Mã quốc gia gồm hai chữ cái (ISO 3166-1 alpha-2), ví dụ: US.

  • Tham số: phone

    Bắt buộc:

    Kiểu & ràng buộc: Định dạng quốc tế +CountryCode.Number, ví dụ: +1.2025551234. Tối đa 32 ký tự.

  • Tham số: organization

    Bắt buộc: Không

    Kiểu & ràng buộc: Tên tổ chức/công ty. 1–128 ký tự.

  • Tham số: address2

    Bắt buộc: Không

    Kiểu & ràng buộc: Dòng địa chỉ 2. 1–128 ký tự.

  • Tham số: stateProvince

    Bắt buộc: Không

    Kiểu & ràng buộc: Tên bang/tỉnh, 1–64 ký tự. Có thể bắt buộc tùy theo quốc gia.

  • Tham số: postalCode

    Bắt buộc: Không

    Kiểu & ràng buộc: 1–16 ký tự. Có thể bắt buộc tùy theo quốc gia.

  • Tham số: phoneExt

    Bắt buộc: Không

    Kiểu & ràng buộc: Số máy lẻ điện thoại, 1–16 ký tự.

  • Tham số: fax

    Bắt buộc: Không

    Kiểu & ràng buộc: Số fax, cùng định dạng +CountryCode.Number, tối đa 32 ký tự.

  • Tham số: faxExt

    Bắt buộc: Không

    Kiểu & ràng buộc: Số máy lẻ fax, 1–16 ký tự.

  • Tham số: taxNumber

    Bắt buộc: Không

    Loại & ràng buộc: Mã số thuế, 1–32 ký tự.

Trả về

{ "contactId": "..." }

contactId (27–32 ký tự chữ và số) là giá trị bạn truyền vào domain_register, domain_set_contactscontacts_get.

contacts_get — Lấy liên hệ

Đọc thông tin chi tiết của một liên hệ đã lưu theo ID liên hệ của nó. (Không có công cụ liệt kê tất cả liên hệ — ID liên hệ đến từ contacts_save hoặc từ trường contacts trong kết quả của domains_list.)

  • Tham số: contactId

    Bắt buộc:

    Kiểu & ràng buộc: ID liên hệ, 27–32 ký tự chữ và số.

Trả về{ contact } với:

  • Trường: firstName, lastName, email, address1, city, country, phone, postalCode

    Kiểu: Chuỗi

  • Trường: organization, address2, stateProvince, phoneExt, fax, faxExt, taxNumber

    Kiểu: Chuỗi hoặc null

Tên miền

domains_list — Liệt kê tên miền

Truy xuất danh sách tên miền của bạn có phân trang. Truyền domain để thay vào đó lấy một tên miền duy nhất theo tên (khi đó phân trang và sắp xếp sẽ bị bỏ qua, và kết quả sẽ bao gồm một note cho biết điều đó nếu chúng đã được cung cấp).

  • Tham số: domain

    Bắt buộc: Không

    Kiểu & ràng buộc: Tên miền đầy đủ điều kiện (ASCII/A-label) để lấy một tên miền duy nhất.

  • Tham số: take

    Bắt buộc: Không

    Kiểu & ràng buộc: Số mục trên mỗi trang, 1–100. Mặc định là 10.

  • Tham số: skip

    Bắt buộc: Không

    Kiểu & ràng buộc: Số mục cần bỏ qua, từ 0 trở lên. Mặc định là 0.

  • Tham số: orderBy

    Bắt buộc: Không

    Kiểu & ràng buộc: Tối đa 8 khóa sắp xếp: name, unicodeName, registrationDate, expirationDate; thêm tiền tố - để sắp xếp giảm dần (ví dụ: -expirationDate).

Trả về{ items, total } trong đó mỗi mục mô tả một tên miền:

  • Trường: name / unicodeName

    Ý nghĩa: Tên miền ở dạng ASCII và Unicode.

  • Trường: isPremium

    Ý nghĩa: Tên miền có phải là tên premium hay không.

  • Trường: autoRenew

    Ý nghĩa: Tự động gia hạn có được bật hay không.

  • Trường: registrationDate / expirationDate

    Ý nghĩa: Dấu thời gian đăng ký và hết hạn.

  • Trường: lifecycleStatus

    Ý nghĩa: creating, registered, grace1, grace2, hoặc redemption.

  • Trường: verificationStatus

    Ý nghĩa: verification, success, failed, hoặc null khi không áp dụng.

  • Trường: eppStatuses

    Ý nghĩa: Mã trạng thái registry (ví dụ: khóa chuyển nhượng).

  • Trường: suspensions

    Ý nghĩa: Các trạng thái tạm ngưng đang hoạt động, mỗi trạng thái có một reasonCode.

  • Trường: privacyProtection

    Ý nghĩa: { level: "public" | "high", contactForm: boolean }.

  • Trường: nameservers

    Ý nghĩa: { provider: "basic" | "custom", hosts: [...] }.

  • Trường: contacts

    Ý nghĩa: ID liên hệ: registrant, cùng với admin/tech/billing/attributes (có thể là null). Có thể đọc qua contacts_get.

domains_check_availability — Kiểm tra tính khả dụng của tên miền

Kiểm tra xem một hoặc nhiều tên miền có sẵn để đăng ký hay không.

  • Tham số: domains

    Bắt buộc:

    Kiểu & ràng buộc: 1–20 tên miền đầy đủ điều kiện (ASCII/A-label).

Trả về{ results }, một mục cho mỗi tên được yêu cầu:

  • Trường: domain

    Ý nghĩa: Tên đã được kiểm tra.

  • Trường: result

    Ý nghĩa: available, taken, invalidDomainName, tldNotSupported, hoặc unexpectedError.

  • Trường: premiumPricing

    Ý nghĩa: Đối với tên premium: danh sách { operation, price, currency } trong đó operationregister, transfer, renew, hoặc restore. Trống đối với tên thông thường.

domain_register — Đăng ký tên miền

Đăng ký (mua) một tên miền. Thao tác này sẽ tính phí vào phương thức thanh toán mặc định của tài khoản bạn và không thể hoàn tác. Trình tự được khuyến nghị: domains_check_availabilitycontacts_savedomain_register. Công cụ trả về ngay lập tức với trạng thái đang chờ; bản thân việc đăng ký sẽ hoàn tất ở chế độ nền — hãy kiểm tra bằng async_operation_get.

  • Tham số: domain

    Bắt buộc:

    Kiểu & ràng buộc: Tên miền đầy đủ điều kiện để đăng ký, ví dụ: example.com.

  • Tham số: years

    Bắt buộc:

    Kiểu & ràng buộc: Thời hạn đăng ký tính theo năm, 1–10.

  • Tham số: autoRenew

    Bắt buộc:

    Kiểu & ràng buộc: Boolean. Khi true, tên miền sẽ tự động gia hạn khi hết hạn bằng phương thức thanh toán mặc định của tài khoản.

  • Tham số: privacy.level

    Bắt buộc:

    Kiểu & ràng buộc: high ẩn thông tin liên hệ của người đăng ký khỏi WHOIS công khai; public công bố chúng.

  • Tham số: privacy.userConsent

    Bắt buộc:

    Kiểu & ràng buộc: Boolean. Phải xác nhận rằng bạn đồng ý với cài đặt quyền riêng tư đã chọn.

  • Tham số: contacts.registrant

    Bắt buộc:

    Kiểu & ràng buộc: ID liên hệ (từ contacts_save).

  • Tham số: contacts.admin

    Bắt buộc:

    Kiểu & ràng buộc: ID liên hệ.

  • Tham số: contacts.tech

    Bắt buộc:

    Kiểu & ràng buộc: ID liên hệ.

  • Tham số: contacts.billing

    Bắt buộc:

    Kiểu & ràng buộc: ID liên hệ.

  • Tham số: contacts.attributes

    Bắt buộc: Không

    Kiểu & ràng buộc: Tối đa 5 ID liên hệ bổ sung, chỉ bắt buộc đối với một số TLD nhất định.

Trả về

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

Truyền operationId cho async_operation_get để kiểm tra xem việc đăng ký có thành công hay không.

domain_set_contacts — Đặt liên hệ tên miền

Thay đổi các liên hệ được gán cho một tên miền bạn sở hữu. Hoàn tất ngay lập tức (không có ID thao tác).

  • Tham số: domainName

    Bắt buộc:

    Kiểu & ràng buộc: Tên miền đầy đủ điều kiện (ASCII/A-label).

  • Tham số: registrant

    Bắt buộc:

    Kiểu & ràng buộc: ID liên hệ.

  • Tham số: admin

    Bắt buộc: Không

    Kiểu & ràng buộc: ID liên hệ, hoặc null.

  • Tham số: tech

    Bắt buộc: Không

    Kiểu & ràng buộc: ID liên hệ, hoặc null.

  • Tham số: billing

    Bắt buộc: Không

    Kiểu & ràng buộc: ID liên hệ, hoặc null.

  • Tham số: attributes

    Bắt buộc: Không

    Kiểu & ràng buộc: Tối đa 5 ID liên hệ, hoặc null.

Trả về

{ "verificationStatus": "verification" }

verification — người đăng ký phải xác nhận địa chỉ email của họ (một email xác nhận sẽ được gửi); success — đã xác nhận; null — không yêu cầu xác nhận đối với tên miền này.

Bản ghi DNS

dns_records_get — Lấy bản ghi DNS

Truy xuất danh sách có phân trang của các bản ghi tài nguyên DNS cho một tên miền.

  • Tham số: domainName

    Bắt buộc:

    Kiểu & ràng buộc: Tên miền có các bản ghi cần lấy.

  • Tham số: take

    Bắt buộc: Không

    Kiểu & ràng buộc: Số mục trên mỗi trang, 1–500. Mặc định là 100.

  • Tham số: skip

    Bắt buộc: Không

    Kiểu & ràng buộc: Số mục cần bỏ qua, từ 0 trở lên. Mặc định là 0.

  • Tham số: orderBy

    Bắt buộc: Không

    Kiểu & ràng buộc: Tối đa 8 khóa sắp xếp: type, -type, name, -name.

Trả về{ items, total }. Mỗi mục là một bản ghi như được mô tả trong Hình dạng bản ghi, cùng với trường group tùy chọn cho biết bản ghi đến từ đâu (custom — do bạn tạo, product — do một sản phẩm Spaceship quản lý, personalNs — máy chủ tên cá nhân).

dns_records_save — Lưu bản ghi DNS

Thêm các bản ghi DNS tùy chỉnh hoặc cập nhật TTL của các bản ghi hiện có. Các bản ghi được đối sánh không phân biệt chữ hoa chữ thường, ngoại trừ bản ghi TXT (phân biệt chữ hoa chữ thường).

  • Tham số: domainName

    Bắt buộc:

    Kiểu & ràng buộc: Tên miền có các bản ghi cần cập nhật.

  • Tham số: records

    Bắt buộc:

    Kiểu & ràng buộc: 1–500 bản ghi — xem Hình dạng bản ghi. Mỗi bản ghi có thể bao gồm trường ttl tùy chọn.

  • Tham số: force

    Bắt buộc: Không

    Kiểu & ràng buộc: Boolean. Bỏ qua bước kiểm tra giải quyết xung đột và buộc cập nhật zone.

Trả về{ "saved": <number> }, số lượng bản ghi đã gửi. Phản hồi thành công nghĩa là tất cả bản ghi đã được chấp nhận; nếu bất kỳ bản ghi nào thất bại, toàn bộ lệnh gọi sẽ trả về lỗi.

dns_records_delete — Xóa bản ghi DNS

Xóa các bản ghi DNS tùy chỉnh. Không thể hoàn tác việc xóa. Các bản ghi được đối sánh không phân biệt chữ hoa chữ thường, ngoại trừ bản ghi TXT (phân biệt chữ hoa chữ thường).

  • Tham số: domainName

    Bắt buộc:

    Kiểu & ràng buộc: Tên miền có các bản ghi cần xóa.

  • Tham số: records

    Bắt buộc:

    Kiểu & ràng buộc: 1–500 bản ghi xác định các bản ghi hiện có — cùng hình dạng như khi lưu, nhưng không có ttl.

Trả về{ "deleted": <number> }, số lượng bản ghi đã gửi.

Hình dạng bản ghi

Mỗi bản ghi có:

  • type — một trong 13 loại được hỗ trợ bên dưới.

  • name — tên bản ghi không bao gồm tên miền: dùng @ cho chính tên miền (apex) và * cho ký tự đại diện.

  • ttl (chỉ lưu, tùy chọn) — thời gian lưu cache tính bằng giây, 60–3600.

Các trường theo từng loại:

  • Loại: A

    Trường: address — địa chỉ IPv4.

  • Loại: AAAA

    Trường: address — địa chỉ IPv6.

  • Loại: CNAME

    Trường: cname — tên miền chuẩn (tối đa 253 ký tự).

  • Loại: ALIAS

    Trường: aliasName — tên miền chuẩn; hành vi giống CNAME cho apex, nơi không cho phép CNAME.

  • Loại: NS

    Trường: nameserver — tên máy chủ tên.

  • Loại: PTR

    Trường: pointer — tên miền cho địa chỉ IP đã cho.

  • Loại: TXT

    Trường: value — giá trị văn bản (đối sánh phân biệt chữ hoa chữ thường).

  • Loại: MX

    Trường: exchange — máy chủ thư; preference — mức ưu tiên (0–65535, số thấp hơn được ưu tiên hơn).

  • Loại: CAA

    Trường: flag0 hoặc 128 (bit quan trọng); tagissue, issuewild, hoặc iodef; value — mã định danh CA với các tham số tùy chọn.

  • Loại: SRV

    Trường: service (ví dụ: _sip); protocol (ví dụ: _tcp); priorityweight (0–65535); port (1–65535); target — tên miền máy chủ.

  • Loại: TLSA

    Trường: usage, selector, matching (mỗi giá trị 0–255); port* hoặc _<165535>; protocol (ví dụ: _tcp); associationData — hàm băm hoặc dữ liệu chứng chỉ.

  • Loại: HTTPS

    Trường: svcPriority (0–65535; 0 = AliasMode); targetName — FQDN hoặc .; tùy chọn port (* hoặc _<165535>), scheme (phải là _https khi port được đặt), svcParams.

  • Loại: SVCB

    Trường: svcPriority (0–65535; 0 = AliasMode); targetName — FQDN hoặc .; tùy chọn port, scheme (ví dụ: _tcp), svcParams.

Thao tác bất đồng bộ

async_operation_get — Lấy trạng thái thao tác bất đồng bộ

Kiểm tra một thao tác chạy lâu được bắt đầu bởi công cụ khác (hiện tại là domain_register). Gọi công cụ này với operationId mà công cụ đó trả về, và lặp lại cho đến khi statussuccess hoặc failed.

  • Tham số: operationId

    Bắt buộc:

    Kiểu & ràng buộc: Chuỗi chữ và số, tối đa 36 ký tự, được trả về bởi công cụ đã bắt đầu thao tác.

Trả về

  • Trường: operationId

    Ý nghĩa: Thao tác đang được thăm dò.

  • Trường: status

    Ý nghĩa: pending, success, hoặc failed.

  • Trường: type

    Ý nghĩa: Loại thao tác, hoặc null.

  • Trường: details

    Ý nghĩa: Chi tiết bổ sung về thao tác, hoặc null.

  • Trường: createdAt / modifiedAt

    Ý nghĩa: Thời điểm thao tác được tạo / cập nhật lần cuối (modifiedAt có thể là null).

Lỗi

Khi một lệnh gọi thất bại, công cụ trả về lỗi với mã và detail dễ hiểu cho con người giải thích điều gì đã xảy ra — ví dụ: đầu vào không hợp lệ (tên miền hoặc ID liên hệ sai định dạng), tên miền hoặc liên hệ không tồn tại, hoặc xung đột với trạng thái hiện tại. Nếu một công cụ bị từ chối vì trợ lý chưa được cấp quyền truy cập, hãy kết nối lại Spaceship MCP và phê duyệt quyền truy cập mà công cụ yêu cầu.

Cần có địa chỉ email hợp lệ