Spaceship MCP

Gerencie domínios, registros DNS, contatos, listagens no marketplace e mais através da API Spaceship.

Documentação

spaceship-mcp

npm version License: MIT Node.js CI Coverage MCP

Um servidor Model Context Protocol (MCP) construído pela comunidade para a API do Spaceship. Gerencie domínios, registros DNS, contatos, anúncios no marketplace e muito mais — tudo por meio de linguagem natural através de qualquer cliente de IA compatível com MCP.

Nota: Este é um projeto não oficial, mantido pela comunidade, e não é afiliado ou endossado pela Spaceship.

Adicionar ao Seu Editor

Comandos de uma linha — a forma mais rápida de começar. Escolha sua ferramenta:

Claude Code

claude mcp add --scope user spaceship-mcp \
  --env SPACESHIP_API_KEY=your-key \
  --env SPACESHIP_API_SECRET=your-secret \
  -- npx -y spaceship-mcp

Codex CLI (OpenAI)

codex mcp add spaceship-mcp \
  --env SPACESHIP_API_KEY=your-key \
  --env SPACESHIP_API_SECRET=your-secret \
  -- npx -y spaceship-mcp

Gemini CLI (Google)

gemini mcp add spaceship-mcp -- npx -y spaceship-mcp

Defina as variáveis de ambiente SPACESHIP_API_KEY e SPACESHIP_API_SECRET separadamente via ~/.gemini/settings.json.

VS Code (Copilot)

Abra a Paleta de Comandos (Cmd+Shift+P / Ctrl+Shift+P) > MCP: Add Server > selecione Command (stdio).

Ou adicione ao .vscode/mcp.json no diretório do seu projeto:

{
  "servers": {
    "spaceship-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "spaceship-mcp"],
      "env": {
        "SPACESHIP_API_KEY": "your-key",
        "SPACESHIP_API_SECRET": "your-secret"
      }
    }
  }
}

Cursor

Adicione ao .cursor/mcp.json (nível do projeto) ou ~/.cursor/mcp.json (global):

{
  "mcpServers": {
    "spaceship-mcp": {
      "command": "npx",
      "args": ["-y", "spaceship-mcp"],
      "env": {
        "SPACESHIP_API_KEY": "your-key",
        "SPACESHIP_API_SECRET": "your-secret"
      }
    }
  }
}

Clientes Suportados

Este servidor MCP funciona com qualquer cliente que suporte o Model Context Protocol, incluindo:

ClienteInstalação mais fácil
Claude CodeComando de uma linha: claude mcp add
Codex CLI (OpenAI)Comando de uma linha: codex mcp add
Gemini CLI (Google)Comando de uma linha: gemini mcp add
VS Code (Copilot)Paleta de Comandos: MCP: Add Server
Claude DesktopArquivo de configuração JSON
CursorArquivo de configuração JSON
WindsurfArquivo de configuração JSON
ClineConfigurações da interface
ZedArquivo de configurações JSON
Claude Desktop, Cowork e outros clientes GUI (expandir)

Claude Desktop / Cowork

O Cowork roda dentro do Claude Desktop e usa os mesmos servidores MCP conectados e permissões. Configure uma vez no Claude Desktop e o servidor estará disponível no Cowork.

Adicione o seguinte ao arquivo de configuração do Claude Desktop:

PlataformaArquivo de configuração
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Windows%APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "spaceship-mcp": {
      "command": "npx",
      "args": ["-y", "spaceship-mcp"],
      "env": {
        "SPACESHIP_API_KEY": "your-key",
        "SPACESHIP_API_SECRET": "your-secret"
      }
    }
  }
}

Windsurf / Cline / Zed

Windsurf — adicione ao ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "spaceship-mcp": {
      "command": "npx",
      "args": ["-y", "spaceship-mcp"],
      "env": {
        "SPACESHIP_API_KEY": "your-key",
        "SPACESHIP_API_SECRET": "your-secret"
      }
    }
  }
}

Cline — abra Configurações > Servidores MCP > Editar e adicione o mesmo bloco mcpServers mostrado acima.

Zed — adicione às configurações do Zed (~/.zed/settings.json no macOS, ~/.config/zed/settings.json no Linux):

{
  "context_servers": {
    "spaceship-mcp": {
      "command": "npx",
      "args": ["-y", "spaceship-mcp"],
      "env": {
        "SPACESHIP_API_KEY": "your-key",
        "SPACESHIP_API_SECRET": "your-secret"
      }
    }
  }
}

Docker

docker run -i --rm \
  -e SPACESHIP_API_KEY=your-key \
  -e SPACESHIP_API_SECRET=your-secret \
  ghcr.io/bartwaardenburg/spaceship-mcp

Configuração Genérica de Servidor MCP

Use isto como base em qualquer host:

  • Comando: npx
  • Argumentos: ["-y", "spaceship-mcp"]
  • Variáveis de ambiente obrigatórias: SPACESHIP_API_KEY, SPACESHIP_API_SECRET
  • Variáveis de ambiente opcionais: SPACESHIP_CACHE_TTL, SPACESHIP_MAX_RETRIES, SPACESHIP_TOOLSETS, SPACESHIP_DYNAMIC_TOOLS (veja Configuração)

Mapeamento de chaves do host:

HostChave de nível superiorObservações
VS CodeserversAdicione "type": "stdio" no objeto do servidor
Claude Desktop / Cursor / Windsurf / ClinemcpServersMesmo bloco de comando/argumentos/ambiente
Zedcontext_serversMesmo bloco de comando/argumentos/ambiente
Codex CLI (TOML)mcp_serversUsa TOML, mostrado abaixo

Codex CLI (alternativa de configuração TOML)

Se preferir editar o ~/.codex/config.toml diretamente:

[mcp_servers.spaceship-mcp]
command = "npx"
args = ["-y", "spaceship-mcp"]
env = { "SPACESHIP_API_KEY" = "your-key", "SPACESHIP_API_SECRET" = "your-secret" }

Outros Clientes MCP

Para qualquer cliente compatível com MCP, use esta configuração de servidor:

  • Comando: npx
  • Argumentos: ["-y", "spaceship-mcp"]
  • Variáveis de ambiente: SPACESHIP_API_KEY e SPACESHIP_API_SECRET

Observações sobre o Ecossistema Claude

O Claude atualmente possui vários conceitos relacionados a MCP que são fáceis de confundir:

  • Servidores MCP locais (Claude Desktop): definidos em claude_desktop_config.json e iniciados na sua máquina (documentação).
  • Cowork: reutiliza os servidores MCP conectados no Claude Desktop (documentação).
  • Conectores: integrações MCP remotas gerenciadas no Claude (documentação).
  • Plugins do Cowork: empacotamento de fluxos de trabalho específicos do Claude (instruções + integrações de ferramentas/dados) (documentação). Úteis no Claude, mas não portáveis como configuração genérica de servidor MCP para outros clientes de agente.

Verificado em relação à documentação dos fornecedores em 05/03/2026.

Terminologia

O que é portável entre hosts:

  • Configurações de runtime do servidor MCP (command, args, env)
  • Modelo de transporte (servidor de comando stdio)
  • Nomes de ferramentas e esquemas de ferramentas expostos por este servidor

O que é específico do host/fornecedor (não portável como está):

Recursos

  • 48 ferramentas em 8 categorias cobrindo toda a API do Spaceship
  • 13 tipos de registros DNS com ferramentas de criação dedicadas e type-safe (A, AAAA, ALIAS, CAA, CNAME, HTTPS, MX, NS, PTR, SRV, SVCB, TLSA, TXT)
  • Ciclo de vida completo do domínio — registrar, renovar, transferir e restaurar domínios
  • Integração com SellerHub — listar domínios para venda e gerar links de checkout
  • Análise de alinhamento DNS — comparar registros esperados vs. reais para detectar configurações incorretas
  • Privacidade WHOIS e gerenciamento de contatos com suporte a atributos específicos por TLD
  • Validação de entrada e saída via esquemas Zod em todas as ferramentas para operações seguras e previsíveis
  • 5 Recursos MCP para carregamento passivo de contexto (lista de domínios, detalhes do domínio, registros DNS, contatos, SellerHub)
  • 9 Prompts MCP — 5 fluxos de trabalho guiados e 4 com preenchimento automático de argumentos
  • Assinaturas de recursos com detecção de alterações baseada em polling e notificações automáticas
  • Cache de respostas com TTL configurável e invalidação automática em gravações
  • Tratamento de limite de taxa com backoff exponencial e suporte ao cabeçalho Retry-After
  • Filtragem de conjuntos de ferramentas para expor apenas as categorias de ferramentas que você precisa
  • Modo de carregamento dinâmico de ferramentas para agentes com janelas de contexto limitadas
  • Mensagens de erro acionáveis com sugestões de recuperação sensíveis ao contexto
  • Suporte a Docker para implantação em contêineres
  • 453 testes unitários com cobertura quase completa

Configuração

Obrigatório

VariávelDescrição
SPACESHIP_API_KEYSua chave de API do Spaceship
SPACESHIP_API_SECRETSeu segredo de API do Spaceship

Gere suas credenciais no Gerenciador de API do Spaceship.

Opcional

VariávelDescriçãoPadrão
SPACESHIP_CACHE_TTLTempo de vida do cache de respostas em segundos. Defina como 0 para desativar o cache.120
SPACESHIP_MAX_RETRIESNúmero máximo de tentativas para solicitações com limite de taxa (429) com backoff exponencial.3
SPACESHIP_TOOLSETSLista separada por vírgulas de categorias de ferramentas a serem habilitadas (veja Filtragem de Conjuntos de Ferramentas).Todos os conjuntos de ferramentas
SPACESHIP_DYNAMIC_TOOLSDefina como true para habilitar o modo de carregamento dinâmico de ferramentas (veja Carregamento Dinâmico de Ferramentas).false

Configuração da Chave de API

Criando Sua Chave de API

  1. Faça login na sua conta Spaceship
  2. Navegue até o Gerenciador de API (link direto)
  3. Clique em Nova chave de API
  4. Dê um nome descritivo à chave (ex.: "Servidor MCP")
  5. Selecione os escopos que você precisa (veja abaixo)
  6. Copie tanto a chave de API quanto o segredo de API — o segredo é mostrado apenas uma vez

Escopos Disponíveis

Cada escopo controla o acesso a uma parte específica da API do Spaceship. Ao criar sua chave, habilite apenas os escopos que você precisa.

EscopoAcesso
domains:readListar domínios, verificar disponibilidade, visualizar detalhes e configurações do domínio
domains:writeModificar configurações do domínio (nameservers, renovação automática, contatos, privacidade)
domains:billingRegistrar, renovar, restaurar e transferir domínios (operações financeiras)
domains:transferBloqueio de transferência, códigos de autorização e status de transferência
contacts:readLer perfis de contato salvos e atributos
contacts:writeCriar e atualizar perfis de contato e atributos
dnsrecords:readListar registros DNS dos seus domínios
dnsrecords:writeCriar, atualizar e excluir registros DNS
sellerhub:readVisualizar anúncios do marketplace e registros de verificação
sellerhub:writeListar/remover domínios da lista de venda, atualizar preços, gerar links de checkout
asyncoperations:readConsultar status de operações assíncronas (registro, renovação, transferência)

Escopos por Recurso

A tabela abaixo mostra quais escopos são necessários para cada grupo de ferramentas.

RecursoFerramentasEscopos necessários
Registros DNSlist_dns_recordsdnsrecords:read
save_dns_records, delete_dns_records, todas as ferramentas create_*_recorddnsrecords:read dnsrecords:write
Informações do Domíniolist_domains, get_domain, check_domain_availabilitydomains:read
Configurações do Domínioupdate_nameservers, set_auto_renew, set_privacy_level, set_email_protection, update_domain_contactsdomains:write
Ciclo de Vida do Domínioregister_domain, renew_domain, restore_domain, transfer_domaindomains:billing
Transferênciaset_transfer_lock, get_auth_code, get_transfer_statusdomains:transfer
Contatosget_contact, get_contact_attributescontacts:read
save_contact, save_contact_attributescontacts:write
NS Pessoallist_personal_nameservers, get_personal_nameserverdomains:read
update_personal_nameserver, delete_personal_nameserverdomains:write
SellerHublist_sellerhub_domains, get_sellerhub_domain, get_verification_recordssellerhub:read
create_sellerhub_domain, update_sellerhub_domain, delete_sellerhub_domain, create_checkout_linksellerhub:write
Operações Assíncronasget_async_operationasyncoperations:read
Análisecheck_dns_alignmentdnsrecords:read

Presets de Escopo Recomendados

Acesso total — habilite tudo para uso irrestrito:

domains:read  domains:write  domains:billing  domains:transfer
contacts:read  contacts:write
dnsrecords:read  dnsrecords:write
sellerhub:read  sellerhub:write
asyncoperations:read

Somente gerenciamento de DNS — apenas leitura/gravação de registros DNS:

dnsrecords:read  dnsrecords:write

Somente leitura — navegue por domínios e registros sem fazer alterações:

domains:read  contacts:read  dnsrecords:read  sellerhub:read  asyncoperations:read

Ferramentas Disponíveis

Registros DNS

FerramentaDescrição
list_dns_recordsListar todos os registros DNS de um domínio com paginação
save_dns_recordsSalvar (upsert) registros DNS — substitui registros com o mesmo nome e tipo
delete_dns_recordsExcluir registros DNS por nome e tipo

Criação de Registros Específicos por Tipo

Cada tipo de registro DNS possui uma ferramenta dedicada com parâmetros type-safe e validação.

FerramentaDescrição
create_a_recordCriar um registro A (endereço IPv4)
create_aaaa_recordCriar um registro AAAA (endereço IPv6)
create_alias_recordCriar um registro ALIAS (achatamento de CNAME no ápice da zona)
create_caa_recordCriar um registro CAA (Autorização de Autoridade de Certificação)
create_cname_recordCriar um registro CNAME (nome canônico)
create_https_recordCriar um registro HTTPS (compatível com SVCB)
create_mx_recordCriar um registro MX (troca de correio)
create_ns_recordCriar um registro NS (delegação de nameserver)
create_ptr_recordCriar um registro PTR (DNS reverso)
create_srv_recordCriar um registro SRV (localizador de serviço)
create_svcb_recordCriar um registro SVCB (vinculação geral de serviço)
create_tlsa_recordCriar um registro TLSA (associação de certificado DANE/TLS)
create_txt_recordCriar um registro TXT (dados de texto)

Gerenciamento de Domínios

FerramentaDescrição
list_domainsListar todos os domínios da conta com paginação
get_domainObter informações detalhadas do domínio
check_domain_availabilityVerificar disponibilidade de até 20 domínios de uma vez
update_nameserversAtualizar nameservers de um domínio
set_auto_renewAlternar renovação automática de um domínio
set_transfer_lockAlternar bloqueio de transferência de um domínio
get_auth_codeObter o código de autorização/EPP de transferência

Ciclo de Vida do Domínio

FerramentaDescrição
register_domainRegistrar um novo domínio (operação financeira, assíncrona)
renew_domainRenovar o registro de um domínio (operação financeira, assíncrona)
restore_domainRestaurar um domínio do período de carência de redenção (operação financeira, assíncrona)
transfer_domainTransferir um domínio para a Spaceship (operação financeira, assíncrona)
get_transfer_statusVerificar o status de uma transferência de domínio
get_async_operationConsultar o status de uma operação assíncrona pelo ID da operação

Contatos e Privacidade

FerramentaDescrição
save_contactCriar ou atualizar um perfil de contato reutilizável
get_contactRecuperar um contato salvo pelo ID
save_contact_attributesSalvar atributos de contato específicos de TLD (ex.: IDs fiscais)
get_contact_attributesRecuperar todos os atributos de contato armazenados
update_domain_contactsAtualizar contatos do domínio (registrante, admin, técnico, cobrança)
set_privacy_levelDefinir o nível de privacidade WHOIS (alto ou público)
set_email_protectionAlternar a exibição do formulário de contato no WHOIS

Nameservers Pessoais

FerramentaDescrição
list_personal_nameserversListar nameservers vanity/glue de um domínio
get_personal_nameserverObter detalhes de um nameserver pessoal pelo hostname
update_personal_nameserverCriar ou atualizar um nameserver pessoal (registro glue)
delete_personal_nameserverExcluir um nameserver pessoal

SellerHub

FerramentaDescrição
list_sellerhub_domainsListar domínios à venda no marketplace
create_sellerhub_domainListar um domínio à venda com preço
get_sellerhub_domainObter detalhes do anúncio
update_sellerhub_domainAtualizar nome de exibição, descrição e preço do anúncio
delete_sellerhub_domainRemover um anúncio do marketplace
create_checkout_linkGerar um link de checkout de compra imediata para um anúncio
get_verification_recordsObter registros de verificação de DNS para um anúncio

Análise

FerramentaDescrição
check_dns_alignmentComparar registros DNS esperados vs. reais para detectar entradas ausentes ou inesperadas

Recursos MCP

Recursos fornecem contexto passivo que os clientes podem carregar sem chamar ferramentas.

RecursoURIDescrição
Lista de Domíniosspaceship://domainsTodos os domínios da conta
Detalhes do Domíniospaceship://domains/{domain}Informações detalhadas de um domínio específico
Registros DNSspaceship://domains/{domain}/dnsRegistros DNS de um domínio específico
Contatos do Domíniospaceship://domains/{domain}/contactsAtribuições de contato de um domínio
Anúncios SellerHubspaceship://sellerhubTodos os anúncios do marketplace SellerHub

Clientes que suportam assinaturas de recursos receberão notificações automáticas quando os dados mudarem (verificação a cada 30 segundos).

Prompts MCP

Prompts fornecem fluxos de trabalho guiados que os clientes podem apresentar como comandos de barra ou ações rápidas.

Fluxos de Trabalho Guiados

PromptDescrição
setup-domainRegistrar e configurar um novo domínio (verificação de disponibilidade, registro, DNS, privacidade)
audit-domainVerificação de integridade de um domínio existente (status, DNS, privacidade, renovação automática, contatos)
setup-emailConfigurar registros DNS de e-mail para Google Workspace, Microsoft 365, Fastmail ou um provedor personalizado
migrate-dnsGuia passo a passo para migrar registros DNS para a Spaceship
list-for-saleListar um domínio no marketplace SellerHub com preço e link de checkout

Prompts de Auto-Completar

Estes prompts suportam auto-completar de argumentos para nomes de domínio e valores comuns:

PromptDescrição
domain-lookupConsultar detalhes do domínio com auto-completar de nome de domínio
dns-recordsListar registros DNS com auto-completar de domínio e tipo de registro
set-privacyDefinir privacidade WHOIS com auto-completar de domínio e nível
update-nameserversAtualizar nameservers com auto-completar de domínio e provedor

Filtragem de Conjuntos de Ferramentas

Reduza o uso da janela de contexto habilitando apenas as categorias de ferramentas necessárias. Defina a variável de ambiente SPACESHIP_TOOLSETS como uma lista separada por vírgulas:

SPACESHIP_TOOLSETS=dns,domains
Conjunto de FerramentasFerramentas incluídas
domainsFerramentas de gerenciamento e ciclo de vida de domínios
dnsRegistros DNS, criadores de registros e análise
contactsGerenciamento de contatos e privacidade
privacyGerenciamento de privacidade (mesmas ferramentas que contacts)
nameserversGerenciamento de nameservers pessoais
sellerhubFerramentas do marketplace SellerHub
availabilityVerificação de disponibilidade de domínios

Quando não definido, todos os conjuntos de ferramentas são habilitados. Nomes inválidos são ignorados; se todos os nomes forem inválidos, todos os conjuntos de ferramentas são habilitados como fallback.

Carregamento Dinâmico de Ferramentas

Para agentes com janelas de contexto limitadas, o modo dinâmico substitui todas as 48 ferramentas por 3 meta-ferramentas leves:

SPACESHIP_DYNAMIC_TOOLS=true
Meta-FerramentaDescrição
search_toolsPesquisar ferramentas disponíveis por palavra-chave para descobrir o que está disponível
describe_toolsObter esquemas completos de parâmetros para uma ou mais ferramentas antes de executar
execute_toolExecutar qualquer ferramenta da Spaceship pelo nome com argumentos

Fluxo de trabalho:

  1. search_tools({ query: "dns" }) — descobrir ferramentas relevantes
  2. describe_tools({ tools: ["create_a_record"] }) — obter o esquema completo de parâmetros
  3. execute_tool({ tool: "create_a_record", arguments: { ... } }) — executar

Recursos, prompts e complementos permanecem disponíveis no modo dinâmico.

Notas de Segurança

  • Modelo de confiança: Qualquer prompt ou agente autorizado a chamar este servidor MCP pode executar ações da API Spaceship com as credenciais configuradas.
  • Credenciais de privilégio mínimo: Use chaves de API Spaceship separadas por ambiente/equipe/caso de uso e habilite apenas os escopos necessários (veja Escopos disponíveis).
  • Aprovações para ações de escrita: Habilite aprovações no host para ferramentas de mutação (register_domain, create_*, update_*, delete_*, save_*, set_* e operações de ciclo de vida).
  • Governança de configuração da equipe: Mantenha a configuração MCP compartilhada em controle de versão, exija revisão para alterações em comando/args/env/filtragem de conjuntos de ferramentas e mantenha segredos em um cofre ou gerenciador de segredos do host (não em arquivos de texto simples no repositório).

Exemplo de Uso

Uma vez conectado, você pode interagir com a API Spaceship usando linguagem natural:

  • "Listar todos os meus domínios"
  • "Verificar se example.com está disponível para registro"
  • "Criar um registro A para api.example.com apontando para 203.0.113.10"
  • "Configurar registros MX para example.com usando Google Workspace"
  • "Ativar privacidade WHOIS em example.com"
  • "Verificar se meus registros DNS para example.com correspondem ao esperado"
  • "Listar meus domínios à venda no SellerHub"
  • "Transferir example.com para a Spaceship"

Comunidade

Desenvolvimento

# Install dependencies
pnpm install

# Run in development mode
pnpm dev

# Build for production
pnpm build

# Run tests
pnpm test

# Type check
pnpm typecheck

Estrutura do Projeto

src/
  index.ts                    # Entry point (stdio transport)
  server.ts                   # MCP server setup, toolset filtering, feature registration
  spaceship-client.ts         # Spaceship API HTTP client with caching and retry
  cache.ts                    # TTL-based in-memory response cache
  schemas.ts                  # Shared Zod validation schemas
  output-schemas.ts           # Zod output schemas for all 48 tools
  types.ts                    # TypeScript interfaces
  tool-result.ts              # Error formatting with recovery suggestions
  resources.ts                # MCP Resources (5 resources)
  resource-subscriptions.ts   # Polling-based resource change notifications
  prompts.ts                  # MCP Prompts (5 guided workflows)
  completions.ts              # MCP Prompts with argument auto-complete (4 prompts)
  dynamic-tools.ts            # Dynamic tool loading meta-tools
  dns-utils.ts                # DNS record formatting utilities
  update-checker.ts           # NPM update notifications
  tools/
    dns-records.ts            # List, save, delete DNS records
    dns-record-creators.ts    # 13 type-specific DNS record creation tools
    domain-management.ts      # Domain listing, settings, nameservers
    domain-lifecycle.ts       # Registration, renewal, transfer, restore
    contacts-privacy.ts       # Contact profiles and WHOIS privacy
    personal-nameservers.ts   # Vanity/glue nameserver management
    sellerhub.ts              # Marketplace listing and checkout tools
    analysis.ts               # DNS alignment analysis

Requisitos

  • Node.js >= 20
  • Uma conta Spaceship com credenciais de API

Licença

MIT - veja LICENSE para detalhes.