spaceship-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SPACESHIP_API_KEY | Yes | Your Spaceship API key | |
| SPACESHIP_TOOLSETS | No | Comma-separated list of tool categories to enable (see Toolset Filtering). | |
| SPACESHIP_CACHE_TTL | No | Response cache lifetime in seconds. Set to 0 to disable caching. | 120 |
| SPACESHIP_API_SECRET | Yes | Your Spaceship API secret | |
| SPACESHIP_MAX_RETRIES | No | Maximum retry attempts for rate-limited (429) requests with exponential backoff. | 3 |
| SPACESHIP_DYNAMIC_TOOLS | No | Set to true to enable dynamic tool loading mode. | false |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| completions | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_domainsB | List all domains in the Spaceship account. |
| get_domainA | Get detailed information about a specific domain including registration/expiration dates, auto-renewal status, privacy protection level, nameservers, lifecycle status, and contacts. |
| check_domain_availabilityA | Check if one or more domains are available for registration and show pricing. Provide up to 20 domains to check at once. |
| update_nameserversA | Update the nameservers for a domain. This replaces ALL current nameservers with the provided list. Set provider to "basic" to switch to Spaceship's built-in DNS (nameservers list is ignored). Set provider to "custom" (default) to use external nameservers. WARNING: Changing nameservers affects DNS resolution for ALL services on this domain and may cause extended downtime if misconfigured. Always confirm with the user before calling this tool and use get_domain first to check current nameservers. |
| set_auto_renewA | Enable or disable auto-renewal for a domain. WARNING: Disabling auto-renewal risks losing the domain when it expires — the domain may become available for others to register. Always confirm with the user before disabling auto-renewal. |
| set_transfer_lockA | Enable or disable transfer lock for a domain. WARNING: Disabling the transfer lock makes the domain vulnerable to unauthorized transfers away from this account. Only unlock when intentionally transferring the domain. Always confirm with the user before unlocking. |
| get_auth_codeA | Retrieve the authorization/EPP code for domain transfer. WARNING: The auth code is a sensitive credential — anyone with this code can initiate a domain transfer. Never share the auth code publicly or log it in plain text. Always confirm with the user before retrieving. |
| register_domainA | Register a new domain name. WARNING: This is a FINANCIAL operation that will charge money to the Spaceship account. Registration is irreversible — once completed, the domain is registered and the charge cannot be undone. This operation is asynchronous: it returns an operationId that must be polled with get_async_operation to check completion status. Always confirm with the user before calling this tool. Use check_domain_availability first to verify the domain is available. |
| renew_domainA | Renew an existing domain registration. WARNING: This is a FINANCIAL operation that will charge money to the Spaceship account. The currentExpirationDate parameter is required to prevent accidental double renewals — it must match the domain's actual expiration date. Use get_domain first to retrieve the current expiration date. Always confirm with the user before calling this tool — show the domain name, renewal years, and estimated cost. This operation is asynchronous: it returns an operationId that must be polled with get_async_operation to check completion status. |
| restore_domainA | Restore a domain that is in the redemption grace period after expiration or deletion. WARNING: This is a FINANCIAL operation that typically costs significantly more than a standard registration or renewal. Only domains in the redemption period can be restored — domains that have been fully released cannot be recovered with this tool. Always confirm with the user before calling this tool — restoration fees are typically much higher than standard registration. This operation is asynchronous: it returns an operationId that must be polled with get_async_operation to check completion status. |
| transfer_domainA | Transfer a domain TO Spaceship from another registrar. WARNING: This is a FINANCIAL operation that will charge money to the Spaceship account (transfers typically include a 1-year renewal). The transfer process: 1) Unlock the domain at the current registrar, 2) Get the auth/EPP code from the current registrar, 3) Call this tool with the auth code, 4) Approve the transfer via email (if required by the TLD). Some TLDs (e.g. .uk) do not require an auth code. Transfers can take up to 5-7 days depending on the TLD. Always confirm with the user before calling this tool — show the domain name and explain the transfer process. This operation is asynchronous: it returns an operationId. Use get_transfer_status to check the transfer progress and get_async_operation to check the operation status. |
| get_transfer_statusA | Check the current status of a domain transfer to Spaceship. Use this after initiating a transfer with transfer_domain to monitor its progress. |
| get_async_operationA | Poll the status of an asynchronous operation by its operation ID. Operations like domain registration, renewal, restore, and transfer are async — they return an operationId immediately and process in the background. Call this tool with the operationId to check if the operation has completed. Possible statuses: 'pending' (still processing), 'success' (completed successfully), 'failed' (operation failed — check details for reason). |
| list_dns_recordsA | List all DNS records for a domain. Uses pagination and can fetch all pages automatically. |
| save_dns_recordsA | Save (upsert) DNS records for a domain using PUT with force overwrite. WARNING: All existing records matching the same name AND type combination will be completely replaced — not merged. Other record name/type combinations are preserved. Use this for bulk operations with mixed record types. For single records, prefer the type-specific tools (create_a_record, create_cname_record, etc.). Always confirm with the user before calling this tool and use list_dns_records first to check existing records. |
| delete_dns_recordsA | Delete specific DNS records from a domain by name and type. Only records matching both the name AND type will be removed. Other records are not affected. WARNING: This permanently removes DNS records, which can break services relying on them. Always confirm with the user before calling this tool and use list_dns_records first to verify which records will be deleted. |
| create_a_recordA | Create an A record (IPv4 address) for a domain. WARNING: This replaces ALL existing A records with the same name — previous A records for this name will be overwritten, not merged. Use list_dns_records first to check for existing records. |
| create_aaaa_recordA | Create an AAAA record (IPv6 address) for a domain. WARNING: This replaces ALL existing AAAA records with the same name — previous AAAA records for this name will be overwritten, not merged. Use list_dns_records first to check for existing records. |
| create_cname_recordA | Create a CNAME record (canonical name/alias) for a domain. WARNING: This replaces ALL existing CNAME records with the same name — previous CNAME records for this name will be overwritten, not merged. Use list_dns_records first to check for existing records. |
| create_mx_recordA | Create an MX record (mail exchange) for a domain. WARNING: This replaces ALL existing MX records with the same name — previous MX records for this name will be overwritten, not merged. Overwriting MX records can disrupt email delivery. Use list_dns_records first to check for existing records. |
| create_srv_recordA | Create an SRV record (service locator) for a domain. WARNING: This replaces ALL existing SRV records with the same name — previous SRV records for this name will be overwritten, not merged. Use list_dns_records first to check for existing records. |
| create_txt_recordA | Create a TXT record (text data) for a domain. Useful for SPF, DKIM, DMARC, verification, etc. WARNING: This replaces ALL existing TXT records with the same name — previous TXT records for this name will be overwritten, not merged. Overwriting TXT records can break email authentication (SPF/DKIM/DMARC) or domain verification. Use list_dns_records first to check for existing records. |
| create_alias_recordA | Create an ALIAS record (CNAME flattening at zone apex) for a domain. WARNING: This replaces ALL existing ALIAS records with the same name — previous ALIAS records for this name will be overwritten, not merged. Use list_dns_records first to check for existing records. |
| create_caa_recordA | Create a CAA record (Certificate Authority Authorization) for a domain. Controls which CAs can issue certificates. WARNING: This replaces ALL existing CAA records with the same name — previous CAA records for this name will be overwritten, not merged. Incorrect CAA records can prevent SSL/TLS certificate issuance. Use list_dns_records first to check for existing records. |
| create_https_recordA | Create an HTTPS record (SVCB-compatible for HTTPS) for a domain. Used for HTTPS service binding and ECH. WARNING: This replaces ALL existing HTTPS records with the same name — previous HTTPS records for this name will be overwritten, not merged. Use list_dns_records first to check for existing records. |
| create_ns_recordA | Create an NS record (nameserver delegation) for a domain. WARNING: This replaces ALL existing NS records with the same name — previous NS records for this name will be overwritten, not merged. Incorrect NS records can break DNS resolution for delegated subdomains. Use list_dns_records first to check for existing records. |
| create_ptr_recordA | Create a PTR record (reverse DNS pointer) for a domain. WARNING: This replaces ALL existing PTR records with the same name — previous PTR records for this name will be overwritten, not merged. Use list_dns_records first to check for existing records. |
| create_svcb_recordA | Create an SVCB record (general service binding) for a domain. WARNING: This replaces ALL existing SVCB records with the same name — previous SVCB records for this name will be overwritten, not merged. Use list_dns_records first to check for existing records. |
| create_tlsa_recordA | Create a TLSA record (TLS certificate association / DANE) for a domain. WARNING: This replaces ALL existing TLSA records with the same name — previous TLSA records for this name will be overwritten, not merged. Incorrect TLSA records can break TLS certificate validation for DANE-enabled clients. Use list_dns_records first to check for existing records. |
| check_dns_alignmentA | Compare a list of expected DNS records against the actual records configured in Spaceship. Returns which expected records are missing and which unexpected records exist. Useful for verifying DNS configurations match your infrastructure requirements. |
| save_contactA | Create or update a reusable contact profile. Saved contacts can be referenced when registering domains or updating domain contacts. If a contactId is provided, the existing contact is updated; otherwise a new contact is created. |
| get_contactA | Retrieve a saved contact profile by its unique identifier. |
| save_contact_attributesA | Save TLD-specific contact attributes required for certain domain registrations. Different TLDs require different fields. Example for .us: { type: "us", appPurpose: "P1", nexusCategory: "C11" }. Returns the contactId associated with the saved attributes. |
| get_contact_attributesA | Retrieve stored contact attributes for a specific contact (TLD-specific extra fields like tax IDs and company registration numbers). Use get_domain first to find the contact ID, then use this tool to retrieve its attributes. |
| update_domain_contactsA | Update the contacts (registrant, admin, tech, billing) for a specific domain using contact IDs. Use save_contact first to create contacts and obtain their IDs. WARNING: Changing the registrant contact may trigger an ICANN 60-day transfer lock on the domain, preventing transfers for 60 days. Only the contact roles you provide will be updated; omitted roles remain unchanged. Always confirm with the user before calling this tool — show which contact roles will be changed. |
| set_privacy_levelA | Set the WHOIS privacy level for a domain. "high" enables full privacy protection, hiding your personal information from public WHOIS lookups. "public" makes your contact details visible in WHOIS results. WARNING: Setting privacy to "public" exposes personal contact information (name, address, email, phone) in public WHOIS databases, which cannot be un-cached once indexed by third parties. Always confirm with the user before setting privacy to public. |
| set_email_protectionA | Toggle the contact form display for a domain's WHOIS listing. When enabled, a contact form is shown instead of the raw email address, helping protect against spam and email harvesting. WARNING: Disabling email protection exposes the registrant's email address in WHOIS, increasing spam and phishing risk. Always confirm with the user before disabling email protection. |
| list_personal_nameserversA | List personal (vanity) nameservers configured for a domain (e.g. ns1.yourdomain.com, ns2.yourdomain.com). |
| get_personal_nameserverA | Get details of a single personal (vanity) nameserver by hostname, including its IP addresses. |
| update_personal_nameserverA | Create or update a personal nameserver host with its IP addresses. These are glue records that map a nameserver hostname (e.g. ns1.yourdomain.com) to IP addresses at the registry level. |
| delete_personal_nameserverA | Delete a personal nameserver host from a domain. This removes the glue record at the registry. WARNING: If this nameserver is actively used by any domain, those domains will lose DNS resolution and experience downtime. Always confirm with the user before calling this tool. |
| list_sellerhub_domainsA | List domains listed for sale on SellerHub, Spaceship's domain marketplace for selling domains. |
| create_sellerhub_domainA | List a domain for sale on the SellerHub marketplace. This makes the domain publicly visible as available for purchase. The domain starts in 'verifying' status. You can optionally set pricing at creation time, or use update_sellerhub_domain later. Always confirm with the user before listing — verify the domain name. |
| get_sellerhub_domainA | Get details of a SellerHub listing by domain name. |
| update_sellerhub_domainA | Update settings for a SellerHub domain listing. You can update description, pricing, and price toggles. Prices use { amount: string, currency: string } format. |
| delete_sellerhub_domainA | Remove a domain from the SellerHub marketplace. This deletes the listing permanently — any existing checkout links will stop working. Always confirm with the user before calling this tool. |
| create_checkout_linkA | Generate a shareable checkout/purchase link for a SellerHub domain listing. WARNING: Anyone with this link can initiate a purchase of the domain. Only share with intended buyers. Always confirm with the user before generating a checkout link. |
| get_verification_recordsA | Get the DNS verification records needed to verify ownership of SellerHub domain listings. This returns account-level verification options (not per-domain). Each option contains DNS records to add. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| setup-domain | Guided workflow for registering and configuring a new domain |
| audit-domain | Comprehensive domain health check — reviews status, DNS, privacy, and auto-renew |
| setup-email | Configure DNS records for email providers (Google Workspace, Microsoft 365, Fastmail, custom) |
| migrate-dns | Step-by-step DNS migration guide — export, review, recreate, and verify |
| list-for-sale | Guided SellerHub listing workflow — create listing, set pricing, generate checkout link |
| dns-records | List DNS records for a domain, optionally filtered by type |
| set-privacy | Set privacy level for a domain |
| update-nameservers | Update nameservers for a domain |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/BartWaardenburg/spaceship-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server