Spaceship MCP

Administra dominios, registros DNS, contactos, listados del marketplace y más a través de la API de Spaceship.

Documentación

spaceship-mcp

npm version License: MIT Node.js CI Coverage MCP

Un servidor Model Context Protocol (MCP) construido por la comunidad para la API de Spaceship. Gestiona dominios, registros DNS, contactos, listados de marketplace y más, todo mediante lenguaje natural a través de cualquier cliente de IA compatible con MCP.

Nota: Este es un proyecto no oficial mantenido por la comunidad y no está afiliado ni respaldado por Spaceship.

Añadir a tu editor

Comandos de una línea: la forma más rápida de empezar. Elige tu herramienta:

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

Configura las variables de entorno SPACESHIP_API_KEY y SPACESHIP_API_SECRET por separado mediante ~/.gemini/settings.json.

VS Code (Copilot)

Abre la Paleta de Comandos (Cmd+Shift+P / Ctrl+Shift+P) > MCP: Add Server > selecciona Command (stdio).

O añádelo a .vscode/mcp.json en el directorio de tu proyecto:

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

Cursor

Añádelo a .cursor/mcp.json (a nivel de proyecto) o ~/.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 compatibles

Este servidor MCP funciona con cualquier cliente que admita el Model Context Protocol, incluyendo:

ClienteInstalación más sencilla
Claude CodeComando de una línea: claude mcp add
Codex CLI (OpenAI)Comando de una línea: codex mcp add
Gemini CLI (Google)Comando de una línea: gemini mcp add
VS Code (Copilot)Paleta de Comandos: MCP: Add Server
Claude DesktopArchivo de configuración JSON
CursorArchivo de configuración JSON
WindsurfArchivo de configuración JSON
ClineConfiguración de interfaz
ZedArchivo de configuración JSON
Claude Desktop, Cowork y otros clientes GUI (expandir)

Claude Desktop / Cowork

Cowork se ejecuta dentro de Claude Desktop y utiliza los mismos servidores MCP conectados y permisos. Configúralo una vez en Claude Desktop y el servidor estará disponible en Cowork.

Añade lo siguiente al archivo de configuración de Claude Desktop:

PlataformaArchivo de configuración
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 — añádelo a ~/.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 — abre Configuración > Servidores MCP > Editar y añade el mismo bloque mcpServers mostrado arriba.

Zed — añádelo a la configuración de Zed (~/.zed/settings.json en macOS, ~/.config/zed/settings.json en 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

Configuración genérica de servidor MCP

Usa esto como base en cualquier host:

  • Comando: npx
  • Argumentos: ["-y", "spaceship-mcp"]
  • Variables de entorno requeridas: SPACESHIP_API_KEY, SPACESHIP_API_SECRET
  • Variables de entorno opcionales: SPACESHIP_CACHE_TTL, SPACESHIP_MAX_RETRIES, SPACESHIP_TOOLSETS, SPACESHIP_DYNAMIC_TOOLS (consulta Configuración)

Mapeo de claves del host:

HostClave de nivel superiorNotas
VS CodeserversAñade "type": "stdio" en el objeto del servidor
Claude Desktop / Cursor / Windsurf / ClinemcpServersMismo bloque de comando/argumentos/entorno
Zedcontext_serversMismo bloque de comando/argumentos/entorno
Codex CLI (TOML)mcp_serversUsa TOML, se muestra abajo

Codex CLI (alternativa de configuración TOML)

Si prefieres editar ~/.codex/config.toml directamente:

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

Otros clientes MCP

Para cualquier cliente compatible con MCP, usa esta configuración de servidor:

  • Comando: npx
  • Argumentos: ["-y", "spaceship-mcp"]
  • Variables de entorno: SPACESHIP_API_KEY y SPACESHIP_API_SECRET

Notas sobre el ecosistema Claude

Claude actualmente tiene múltiples conceptos relacionados con MCP que son fáciles de confundir:

  • Servidores MCP locales (Claude Desktop): definidos en claude_desktop_config.json y ejecutados en tu máquina (documentación).
  • Cowork: reutiliza los servidores MCP conectados en Claude Desktop (documentación).
  • Connectors: integraciones MCP remotas gestionadas en Claude (documentación).
  • Plugins de Cowork: empaquetado de flujos de trabajo específicos de Claude (instrucciones + integraciones de herramientas/datos) (documentación). Útil en Claude, pero no portátil como configuración genérica de servidor MCP para otros clientes de agentes.

Verificado contra la documentación de los proveedores el 2026-03-05.

Terminología

Lo que es portátil entre hosts:

  • Configuración de ejecución del servidor MCP (command, args, env)
  • Modelo de transporte (servidor de comando stdio)
  • Nombres de herramientas y esquemas de herramientas expuestos por este servidor

Lo que es específico del host/proveedor (no portátil tal cual):

Características

  • 48 herramientas en 8 categorías que cubren toda la API de Spaceship
  • 13 tipos de registros DNS con herramientas de creación dedicadas y seguras por tipo (A, AAAA, ALIAS, CAA, CNAME, HTTPS, MX, NS, PTR, SRV, SVCB, TLSA, TXT)
  • Ciclo de vida completo del dominio — registrar, renovar, transferir y restaurar dominios
  • Integración con SellerHub — listar dominios en venta y generar enlaces de pago
  • Análisis de alineación DNS — comparar registros esperados vs. reales para detectar configuraciones incorrectas
  • Privacidad WHOIS y gestión de contactos con soporte de atributos específicos por TLD
  • Validación de entrada y salida mediante esquemas Zod en cada herramienta para operaciones seguras y predecibles
  • 5 Recursos MCP para carga de contexto pasiva (lista de dominios, detalles de dominio, registros DNS, contactos, SellerHub)
  • 9 Prompts MCP — 5 flujos de trabajo guiados y 4 con autocompletado de argumentos
  • Suscripciones a recursos con detección de cambios basada en sondeo y notificaciones automáticas
  • Caché de respuestas con TTL configurable e invalidación automática en escrituras
  • Manejo de límites de tasa con retroceso exponencial y soporte de cabecera Retry-After
  • Filtrado de conjuntos de herramientas para exponer solo las categorías de herramientas que necesitas
  • Modo de carga dinámica de herramientas para agentes con ventanas de contexto limitadas
  • Mensajes de error accionables con sugerencias de recuperación según el contexto
  • Soporte Docker para despliegue en contenedores
  • 453 pruebas unitarias con cobertura casi completa

Configuración

Requerido

VariableDescripción
SPACESHIP_API_KEYTu clave de API de Spaceship
SPACESHIP_API_SECRETTu secreto de API de Spaceship

Genera tus credenciales en el Administrador de API de Spaceship.

Opcional

VariableDescripciónPredeterminado
SPACESHIP_CACHE_TTLVida útil de la caché de respuestas en segundos. Configúralo en 0 para desactivar la caché.120
SPACESHIP_MAX_RETRIESNúmero máximo de reintentos para solicitudes con límite de tasa (429) con retroceso exponencial.3
SPACESHIP_TOOLSETSLista separada por comas de categorías de herramientas a habilitar (consulta Filtrado de conjuntos de herramientas).Todos los conjuntos de herramientas
SPACESHIP_DYNAMIC_TOOLSConfigúralo en true para habilitar el modo de carga dinámica de herramientas (consulta Carga dinámica de herramientas).false

Configuración de la clave de API

Crear tu clave de API

  1. Inicia sesión en tu cuenta de Spaceship
  2. Navega al Administrador de API (enlace directo)
  3. Haz clic en Nueva clave de API
  4. Dale a la clave un nombre descriptivo (por ejemplo, "Servidor MCP")
  5. Selecciona los alcances que necesitas (consulta abajo)
  6. Copia tanto la clave de API como el secreto de API — el secreto solo se muestra una vez

Alcances disponibles

Cada alcance controla el acceso a una parte específica de la API de Spaceship. Al crear tu clave, habilita solo los alcances que necesitas.

AlcanceAcceso
domains:readListar dominios, verificar disponibilidad, ver detalles y configuración de dominios
domains:writeModificar configuración de dominios (servidores de nombres, renovación automática, contactos, privacidad)
domains:billingRegistrar, renovar, restaurar y transferir dominios (operaciones financieras)
domains:transferBloqueo de transferencia, códigos de autorización y estado de transferencia
contacts:readLeer perfiles de contacto guardados y atributos
contacts:writeCrear y actualizar perfiles de contacto y atributos
dnsrecords:readListar registros DNS de tus dominios
dnsrecords:writeCrear, actualizar y eliminar registros DNS
sellerhub:readVer listados de marketplace y registros de verificación
sellerhub:writeListar/retirar dominios en venta, actualizar precios, generar enlaces de pago
asyncoperations:readConsultar el estado de operaciones asíncronas (registro, renovación, transferencia)

Alcances por característica

La tabla siguiente muestra qué alcances se requieren para cada grupo de herramientas.

CaracterísticaHerramientasAlcances requeridos
Registros DNSlist_dns_recordsdnsrecords:read
save_dns_records, delete_dns_records, todas las herramientas create_*_recorddnsrecords:read dnsrecords:write
Información de dominiolist_domains, get_domain, check_domain_availabilitydomains:read
Configuración de dominioupdate_nameservers, set_auto_renew, set_privacy_level, set_email_protection, update_domain_contactsdomains:write
Ciclo de vida del dominioregister_domain, renew_domain, restore_domain, transfer_domaindomains:billing
Transferenciaset_transfer_lock, get_auth_code, get_transfer_statusdomains:transfer
Contactosget_contact, get_contact_attributescontacts:read
save_contact, save_contact_attributescontacts:write
NS personallist_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
Operaciones asíncronasget_async_operationasyncoperations:read
Análisischeck_dns_alignmentdnsrecords:read

Presets de alcance recomendados

Acceso completo — habilita todo para uso sin restricciones:

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

Solo gestión de DNS — solo lectura/escritura de registros DNS:

dnsrecords:read  dnsrecords:write

Solo lectura — navega por dominios y registros sin realizar cambios:

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

Herramientas disponibles

Registros DNS

HerramientaDescripción
list_dns_recordsListar todos los registros DNS de un dominio con paginación
save_dns_recordsGuardar (insertar o actualizar) registros DNS — reemplaza registros con el mismo nombre y tipo
delete_dns_recordsEliminar registros DNS por nombre y tipo

Creación de registros específicos por tipo

Cada tipo de registro DNS tiene una herramienta dedicada con parámetros seguros por tipo y validación.

HerramientaDescripción
create_a_recordCrear un registro A (dirección IPv4)
create_aaaa_recordCrear un registro AAAA (dirección IPv6)
create_alias_recordCrear un registro ALIAS (aplanamiento de CNAME en el ápice de la zona)
create_caa_recordCrear un registro CAA (Autorización de Autoridad de Certificación)
create_cname_recordCrear un registro CNAME (nombre canónico)
create_https_recordCrear un registro HTTPS (compatible con SVCB)
create_mx_recordCrear un registro MX (intercambio de correo)
create_ns_recordCrear un registro NS (delegación de servidor de nombres)
create_ptr_recordCrear un registro PTR (DNS inverso)
create_srv_recordCrear un registro SRV (localizador de servicios)
create_svcb_recordCrear un registro SVCB (enlace de servicio general)
create_tlsa_recordCrear un registro TLSA (asociación de certificado DANE/TLS)
create_txt_recordCrear un registro TXT (datos de texto)

Gestión de dominios

HerramientaDescripción
list_domainsListar todos los dominios de la cuenta con paginación
get_domainObtener información detallada de un dominio
check_domain_availabilityComprobar disponibilidad de hasta 20 dominios a la vez
update_nameserversActualizar los servidores de nombres de un dominio
set_auto_renewActivar o desactivar la renovación automática de un dominio
set_transfer_lockActivar o desactivar el bloqueo de transferencia de un dominio
get_auth_codeObtener el código de autorización/EPP de transferencia

Ciclo de vida del dominio

HerramientaDescripción
register_domainRegistrar un nuevo dominio (operación financiera, asíncrona)
renew_domainRenovar el registro de un dominio (operación financiera, asíncrona)
restore_domainRestaurar un dominio desde el período de gracia de redención (operación financiera, asíncrona)
transfer_domainTransferir un dominio a Spaceship (operación financiera, asíncrona)
get_transfer_statusComprobar el estado de una transferencia de dominio
get_async_operationConsultar el estado de una operación asíncrona mediante su ID de operación

Contactos y privacidad

HerramientaDescripción
save_contactCrear o actualizar un perfil de contacto reutilizable
get_contactRecuperar un contacto guardado por ID
save_contact_attributesGuardar atributos de contacto específicos de TLD (p. ej., IDs fiscales)
get_contact_attributesRecuperar todos los atributos de contacto almacenados
update_domain_contactsActualizar los contactos del dominio (registrante, administrador, técnico, facturación)
set_privacy_levelEstablecer el nivel de privacidad WHOIS (alto o público)
set_email_protectionActivar o desactivar la visualización del formulario de contacto en WHOIS

Servidores de nombres personales

HerramientaDescripción
list_personal_nameserversListar los servidores de nombres personalizados/glue para un dominio
get_personal_nameserverObtener detalles de un servidor de nombres personal por nombre de host
update_personal_nameserverCrear o actualizar un servidor de nombres personal (registro glue)
delete_personal_nameserverEliminar un servidor de nombres personal

SellerHub

HerramientaDescripción
list_sellerhub_domainsListar los dominios en venta en el marketplace
create_sellerhub_domainPublicar un dominio en venta con precio
get_sellerhub_domainObtener detalles de una publicación
update_sellerhub_domainActualizar el nombre mostrado, la descripción y el precio de una publicación
delete_sellerhub_domainEliminar una publicación del marketplace
create_checkout_linkGenerar un enlace de pago inmediato para una publicación
get_verification_recordsObtener los registros de verificación DNS para una publicación

Análisis

HerramientaDescripción
check_dns_alignmentComparar los registros DNS esperados con los reales para detectar entradas faltantes o inesperadas

Recursos MCP

Los recursos proporcionan contexto pasivo que los clientes pueden cargar sin llamar a herramientas.

RecursoURIDescripción
Lista de dominiosspaceship://domainsTodos los dominios de la cuenta
Detalles del dominiospaceship://domains/{domain}Información detallada de un dominio específico
Registros DNSspaceship://domains/{domain}/dnsRegistros DNS de un dominio específico
Contactos del dominiospaceship://domains/{domain}/contactsAsignaciones de contactos para un dominio
Publicaciones de SellerHubspaceship://sellerhubTodas las publicaciones del marketplace de SellerHub

Los clientes que admiten suscripciones a recursos recibirán notificaciones automáticas cuando los datos cambien (sondeo cada 30 segundos).

Prompts MCP

Los prompts proporcionan flujos de trabajo guiados que los clientes pueden presentar como comandos de barra o acciones rápidas.

Flujos de trabajo guiados

PromptDescripción
setup-domainRegistrar y configurar un nuevo dominio (verificación de disponibilidad, registro, DNS, privacidad)
audit-domainVerificación de salud de un dominio existente (estado, DNS, privacidad, renovación automática, contactos)
setup-emailConfigurar registros DNS de correo para Google Workspace, Microsoft 365, Fastmail o un proveedor personalizado
migrate-dnsGuía paso a paso para migrar registros DNS a Spaceship
list-for-salePublicar un dominio en el marketplace de SellerHub con precio y enlace de pago

Prompts de autocompletado

Estos prompts admiten autocompletado de argumentos para nombres de dominio y valores comunes:

PromptDescripción
domain-lookupConsultar detalles de un dominio con autocompletado de nombre de dominio
dns-recordsListar registros DNS con autocompletado de dominio y tipo de registro
set-privacyEstablecer privacidad WHOIS con autocompletado de dominio y nivel
update-nameserversActualizar servidores de nombres con autocompletado de dominio y proveedor

Filtrado de conjuntos de herramientas

Reduce el uso de la ventana de contexto habilitando solo las categorías de herramientas que necesitas. Establece la variable de entorno SPACESHIP_TOOLSETS a una lista separada por comas:

SPACESHIP_TOOLSETS=dns,domains
Conjunto de herramientasHerramientas incluidas
domainsHerramientas de gestión y ciclo de vida de dominios
dnsRegistros DNS, creadores de registros y análisis
contactsGestión de contactos y privacidad
privacyGestión de privacidad (mismas herramientas que contacts)
nameserversGestión de servidores de nombres personales
sellerhubHerramientas del marketplace de SellerHub
availabilityVerificación de disponibilidad de dominios

Cuando no se establece, todos los conjuntos de herramientas están habilitados. Los nombres no válidos se ignoran; si todos los nombres son no válidos, todos los conjuntos de herramientas se habilitan como respaldo.

Carga dinámica de herramientas

Para agentes con ventanas de contexto limitadas, el modo dinámico reemplaza las 48 herramientas con 3 meta-herramientas ligeras:

SPACESHIP_DYNAMIC_TOOLS=true
Meta-herramientaDescripción
search_toolsBuscar herramientas disponibles por palabra clave para descubrir qué hay disponible
describe_toolsObtener esquemas completos de parámetros para una o más herramientas antes de ejecutarlas
execute_toolEjecutar cualquier herramienta de Spaceship por nombre con argumentos

Flujo de trabajo:

  1. search_tools({ query: "dns" }) — descubrir herramientas relevantes
  2. describe_tools({ tools: ["create_a_record"] }) — obtener el esquema completo de parámetros
  3. execute_tool({ tool: "create_a_record", arguments: { ... } }) — ejecutar

Los recursos, prompts y completados permanecen disponibles en modo dinámico.

Notas de seguridad

  • Modelo de confianza: Cualquier prompt o agente autorizado para llamar a este servidor MCP puede ejecutar acciones de la API de Spaceship con las credenciales configuradas.
  • Credenciales de privilegio mínimo: Usa claves de API de Spaceship separadas por entorno/equipo/caso de uso y habilita solo los ámbitos que necesitas (ver Ámbitos disponibles).
  • Aprobaciones para acciones de escritura: Habilita aprobaciones del lado del host para herramientas de mutación (register_domain, create_*, update_*, delete_*, save_*, set_* y operaciones de ciclo de vida).
  • Gobernanza de configuración del equipo: Mantén la configuración MCP compartida en control de versiones, exige revisión para cambios en comando/args/env/filtrado de conjuntos de herramientas y guarda los secretos en un almacén o gestor de secretos del host (no en archivos de texto plano del repositorio).

Ejemplo de uso

Una vez conectado, puedes interactuar con la API de Spaceship usando lenguaje natural:

  • "Lista todos mis dominios"
  • "Comprueba si example.com está disponible para registro"
  • "Crea un registro A para api.example.com apuntando a 203.0.113.10"
  • "Configura registros MX para example.com para usar Google Workspace"
  • "Activa la privacidad WHOIS en example.com"
  • "Comprueba si mis registros DNS para example.com coinciden con lo esperado"
  • "Lista mis dominios en venta en SellerHub"
  • "Transfiere example.com a Spaceship"

Comunidad

Desarrollo

# Install dependencies
pnpm install

# Run in development mode
pnpm dev

# Build for production
pnpm build

# Run tests
pnpm test

# Type check
pnpm typecheck

Estructura del proyecto

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

Licencia

MIT - ver LICENSE para más detalles.