VPSnet

Gestiona tu nube VPSnet: VPS KVM y Firecracker, aplicaciones, Functions, redes definidas por software, DNS, dominios y certificados TLS. Tú eliges los permisos y a qué servidores puede acceder la conexión.

Servidor MCP alojado

npx add-mcp 'https://mcp.vpsnet.com/mcp'

Se instala en Claude Code, Codex, Cursor y más

Documentación

vpsnet-mcp

Model Context Protocol (MCP) servidor para gestionar los servicios de VPSnet.com. Proporciona a los asistentes de IA acceso a operaciones del ciclo de vida de VPS, aplicaciones gestionadas, zonas DNS, registro de dominios y contactos, facturación, metadatos de claves API, aprovisionamiento de claves SSH y herramientas de cuenta relacionadas a través de la API de VPSNet.

Características

  • Más de 280 herramientas que cubren la gestión de servicios VPSNet, aplicaciones gestionadas, certificados TLS gratuitos y de pago, suscripciones SSL automáticas, DNS, dominios, facturación, claves API y operaciones de cuenta
  • Gestión de cuenta y perfil
  • Ciclo de vida de VPS (iniciar, detener, reiniciar, reinstalar sistema operativo)
  • Cambios de plan (actualizaciones/descensos gratuitos; los discos KVM/Firecracker no se pueden reducir)
  • DNS inverso del servicio (registros rDNS/PTR)
  • Zonas DNS directas, registros, DNSSEC, plantillas, importación/exportación y tokens DDNS
  • Disponibilidad de dominios, contactos, cotizaciones de registro/transferencia/renovación/restauración y confirmaciones de pago
  • Aplicaciones gestionadas con publicación controlada, que incluyen instalación, estado, eventos y acciones de ciclo de vida tipadas
  • Gestión de claves SSH: implementar claves y obtener acceso directo al servidor
  • Inspección de metadatos de claves API (la creación, cambios y revocación de claves siguen siendo solo de sesión)
  • Copias de seguridad, facturación, recibos
  • Solicitud de nuevas instancias VPS
  • Estado del sistema y precios

Conector OAuth remoto

El perfil remoto también incluye gestión de DNS, dominios y certificados con alcance limitado, claves SSH públicas, recuperación de servidores y exploración de copias de seguridad. Utiliza las mismas API de cliente que el panel; los permisos se aplican en el backend en cada solicitud.

El conector remoto utiliza https://mcp.vpsnet.com/mcp y el consentimiento del cliente a través de VPSnet. Consulte Conexiones de IA remotas para la configuración de la conexión, permisos y operaciones admitidas.

El README del plugin distribuible, los manifiestos y las habilidades están en inglés. Consulte preparación del directorio para la validación de paquetes y requisitos del editor, y casos de uso admitidos para escenarios de servidor, aplicación y red. La publicación en el directorio y la disponibilidad de la cuenta del proveedor son independientes de la instalación de este código fuente.

Consulte Configuración de clientes de IA para Gemini CLI, Cursor, Kimi Code, Kiro, Cline y otros clientes OAuth remotos. Sus paquetes comparten el mismo punto de conexión de VPSnet y las habilidades de tareas. El paquete npm proporciona el servidor MCP local; los paquetes de plugin instalables también incluyen el manifiesto y las habilidades de la aplicación de IA.

Compile todos los paquetes de clientes con python3 scripts/package-distribution.py. La salida incluye sumas de verificación e identifica cada formato. Los materiales de presentación al directorio público están en el kit de catálogo.

Realizar pedidos utiliza la conexión VPSnet existente, con permisos de compra controlados por el cliente y límites de gasto. La IA muestra el precio final y solicita aprobación antes de cargar el saldo de la cuenta. La disponibilidad sigue las reglas de distribución de la aplicación.

Las instrucciones a continuación describen el cliente local existente de stdio/clave API.

Requisitos previos

Antes de instalar, asegúrese de tener:

  1. Node.js 20 o más reciente

    • Verificar: node --version
    • Linux/macOS: nodejs.org o su gestor de paquetes
    • Windows: winget install OpenJS.NodeJS.LTS o descargue desde nodejs.org
    • Después de instalar Node.js, reinicie su terminal/editor
  2. Para usuarios de Claude Code (extensión CLI o VS Code):

    • CLI de Claude Code instalado globalmente: npm install -g @anthropic-ai/claude-code
    • Verificar: claude --version
  3. Cuenta activa de VPSnet.com con una clave API (consulte Cómo obtener una clave API)

Rutas de configuración de credenciales

VPSNET_API_KEY es la credencial preferida por lanzamiento y tiene prioridad sobre los archivos. Para la configuración basada en archivos, establezca VPSNET_CONFIG_DIR en el directorio absoluto que contiene .vpsnet-mcp-key o .mcp.json. El archivo de claves tiene prioridad sobre mcpServers.vpsnet.env.VPSNET_API_KEY en ese archivo JSON. Alternativamente, VPSNET_API_KEY_FILE selecciona una ruta absoluta de archivo de claves; un archivo explícito ilegible o inválido provoca un fallo al iniciar en lugar de elegir otra cuenta.

Sin VPSNET_CONFIG_DIR, los archivos se leen solo desde el directorio de lanzamiento del proceso (cwd). Esto es lo mismo para node /path/to/vpsnet-mcp/build/index.js y npx vpsnet-mcp: el directorio de instalación/caché del paquete y los directorios principales nunca se buscan. Establezca el directorio explícitamente cuando un editor o cliente MCP se inicie desde un directorio de trabajo diferente. Mantenga los archivos de credenciales fuera del control de versiones. VPSNET_API_URL tiene prioridad sobre la URL en ese mismo .mcp.json; las comprobaciones existentes de host de confianza y HTTPS se aplican a cualquiera de las dos fuentes.

Aplicaciones gestionadas

Las aplicaciones gestionadas, SSH manual, DNS, API y otras superficies de implementación son capacidades pares. Su orden en este documento y en la lista de herramientas no es una recomendación. Elija la ruta que mejor se adapte al resultado solicitado por el usuario, al soporte objetivo, al estado existente y a las restricciones explícitas. Una entrada de catálogo es una ruta gestionada disponible, no una razón para anular una solicitud de implementación manual o personalizada válida. Las aplicaciones del catálogo se ejecutan como contenedores Docker en el servidor del cliente y utilizan herramientas de instalación y ciclo de vida tipadas.

Las lecturas de aplicaciones requieren applications:read. La instalación y los cambios del ciclo de vida requieren applications:manage y una clave de idempotencia; los cambios ordinarios del ciclo de vida de aplicaciones no son operaciones de clave API de pago. Las cifras de CPU, RAM y disco son recomendaciones de tamaño, no requisitos de instalación: una aplicación admitida permanece seleccionable durante el pedido y se puede instalar por debajo de esas cifras. La compatibilidad de producto, sistema operativo, arquitectura y tiempo de ejecución siguen siendo requisitos estrictos. Los cambios son asíncronos, así que verifíquelos con get_application_installation y get_application_events. Utilice get_application_health para una inspección nueva del estado del contenedor y get_application_logs para registros de solución de problemas recientes con límite de tamaño, opcionalmente limitados a un servicio Compose exacto. Las inspecciones de registros aceptan como máximo 500 líneas y 131,072 bytes. Estas dos inspecciones de solo lectura crean trabajos de inspección de corta duración, por lo que la clave API debe permitir solicitudes POST.

El detalle de instalación incluye historial limitado de CPU, memoria, red, reinicio y almacenamiento de la aplicación y por contenedor cuando el trabajador lo informa. Los contenedores se identifican solo por servicio Compose y ordinal. Utilice configure_application_resource_thresholds después de confirmación explícita para reemplazar los umbrales de visualización opcionales. Los valores omitidos borran un umbral; los umbrales solo resaltan mediciones y no imponen recursos, activan acciones del servidor ni afectan la facturación. Establezca email_enabled después de confirmación explícita para enviar un correo electrónico de cuenta cuando se alcanza un umbral y uno cuando se recupera; las mediciones repetidas por encima del mismo umbral no se reenvían.

Utilice configure_application_access para cambiar cómo se accede a una aplicación instalada. Lea primero la instalación y pase su revisión actual con una nueva clave de idempotencia. platform_https asigna un nombre de host VPSnet opaco con DNS y HTTPS automáticos, private no tiene listener público, public_http utiliza la IP pública del servidor sobre HTTP y managed_https utiliza una zona DNS gestionada por VPSnet elegible. external_https registra una dirección HTTPS existente gestionada por el cliente; VPSnet no configura ni valida su DNS, certificado TLS ni proxy inverso.

Un acceso managed_https también puede listar additional_addresses (hasta 4 por punto de conexión, 8 por aplicación): otros nombres en las zonas DNS de VPSnet del propio cliente, cada uno con zone_id, name, action y approve_dns: true. Un name o "@" vacío es el dominio desnudo de la zona, por lo que example.com puede estar junto a www.example.com. action es redirect (predeterminado; un 301 a la dirección principal que conserva la ruta y la consulta) o serve (abre la misma aplicación). Agregar o eliminar una dirección adicional nunca cambia la dirección principal. La lista es el conjunto deseado completo: un cambio de acceso que omita additional_addresses elimina las guardadas, así que pásalas de nuevo para conservarlas. Las direcciones adicionales se rechazan en cualquier otro modo de acceso, y VPSnet no cobra nada por ellas.

list_application_registry_credentials expone solo metadatos de credenciales de registros privados. La creación y rotación de tokens de registro no son intencionalmente herramientas MCP: utilice el panel de VPSnet o la API REST directa para que un token nunca entre en un prompt de modelo o argumento de herramienta. Los metadatos pueden identificar Docker Hub, GHCR o un nombre de host de registro HTTPS personalizado exacto.

Las recetas de cliente son definiciones Compose propiedad del cliente, separadas de los planos del catálogo de VPSnet. Pueden validarse en el trabajador objetivo, guardarse como revisiones inmutables, instalarse a través del ciclo de vida gestionado y exportarse sin valores secretos. Las recetas del catálogo de VPSnet nunca son exportables. El descubrimiento de contenedores es limitado y de solo lectura: informa contenedores de cliente y gestionados sin devolver valores de entorno ni montajes, y nunca adopta ni modifica contenedores detectados. La adopción controlada es un flujo separado de preparación, inspección y confirmación explícita para un proyecto Compose elegible. La toma de control inicial es única, pero su enlace exacto de volumen externo permanece firmado en acciones posteriores del ciclo de vida. La recuperación reinicia la fuente solo después de que el reemplazo gestionado esté concluyentemente contenido; los resultados inciertos fallan de forma segura.

Una actualización inmutable está disponible solo cuando get_application_installation devuelve una entrada available_actions con type: "update". Después de la confirmación explícita del usuario, llame a update_application con el expected_blueprint_version y expected_upstream_version anunciados exactos, y una nueva clave de idempotencia. Las claves son globales del cliente: reutilice una clave solo para reproducir la misma solicitud exacta, nunca para otro servicio u operación. El backend selecciona y congela la versión publicada elegible; el llamador no envía una imagen, etiqueta o versión objetivo.

No se crea una copia de seguridad de aplicación separada. En servicios Firecracker admitidos, list_application_restore_points devuelve puntos nocturnos opacos de VM completa con consistencia de aplicación para la revisión de instalación actual exacta. Ver puntos es gratuito, pero las claves API requieren applications:manage, operaciones de pago habilitadas, applications:restore de alcance de pago y acceso completo porque la respuesta incluye el saldo de la cuenta. quote_application_data_restore congela el cargo exacto sin debitar la cuenta. restore_application_data requiere el token de cotización devuelto, la misma clave de idempotencia y confirmación explícita de tanto el pago como el reemplazo de datos. Las claves API de pago también requieren applications:restore, operaciones de pago habilitadas y límites de gasto diarios/mensuales. Reemplaza solo datos de aplicación declarados derivados del trabajador, excluye secretos y datos no relacionados de Docker/servidor, y requiere capacidad de reversión. Consulte get_application_data_restore; needs_attention permanece bloqueado y no debe tratarse como éxito. Estas herramientas nunca aceptan ni exponen credenciales PBS, nombres de archivo, dispositivos o rutas de sistema de archivos.

Las respuestas de lista y detalle de instalación incluyen un bloque capabilities por plataforma — data_restore, console, compose_adoption, custom_projects y log_service_filter — más un indicador access.capabilities.can_configure separado. Trate esos indicadores como la autoridad sobre lo que admite una instalación en lugar de intentar una acción y leer el fallo.

La desinstalación elimina permanentemente los contenedores gestionados, la configuración, las credenciales guardadas y los datos de la aplicación; las copias de seguridad existentes del servidor se conservan. La llamada uninstall_application requiere acknowledge_data_loss=true, y solo debe establecerse después de la confirmación explícita del usuario.

La superficie MCP está orientada a tareas en lugar de ser un espejo uno a uno de cada ruta REST. Las integraciones heredadas de devolución de llamada de micro-pagos y macro-pagos por SMS siguen disponibles a través de la API REST documentada y el panel de control, pero intencionalmente no se exponen como herramientas MCP. Las rutas públicas de pedido previo al inicio de sesión y búsqueda de dominios también tienen equivalentes MCP autenticados donde una operación de cuenta los necesita.

Certificados TLS y SSL automático

Los productos de certificados no se limitan a aplicaciones gestionadas. Los pedidos portátiles de DV, OV y EV pueden instalarse en servidores web controlados por el cliente, proxies, servidores de correo, balanceadores de carga, APIs u otros sistemas compatibles con TLS. Las suscripciones SSL automáticas, en cambio, conectan un cliente ACME compatible en VPSnet u otro proveedor y mantienen actualizados los certificados de corta duración durante el período de pago.

Las cuentas elegibles también pueden solicitar certificados DV portátiles sin costo a través de get_free_certificate_eligibility → preflight_free_certificate → create_free_certificate. Para implementación con API o asistente, cree una CSR en el destino y conserve su clave privada allí; MCP acepta solo la CSR pública y posteriormente devuelve solo la cadena de certificados pública. Las claves gestionadas por VPSnet admiten la renovación anticipada sin supervisión, pero su exportación sigue siendo solo a través del portal, protegida por verificación de dos factores. Los certificados gratuitos, los archivos de certificados de pago, el SSL automático de pago y el HTTPS gestionado de aplicaciones son productos y superficies de ciclo de vida separados.

Use list_certificate_catalog para distinguir portable_certificate de las ofertas acme_subscription. El SSL automático sigue quote_automatic_ssl_subscription → order_automatic_ssl_subscription, con la solicitud exacta sin cambios, el token de cotización, la clave de idempotencia y la aprobación explícita de pago. Lea el estado con list_automatic_ssl_subscriptions y get_automatic_ssl_subscription. Los nombres adicionales usan quote_automatic_ssl_domain → order_automatic_ssl_domain; la API evita pagar dos veces por nombres ya cubiertos por las reglas base/www o comodín/base. Durante los últimos 30 días, un término siguiente elegible usa quote_automatic_ssl_renewal → order_automatic_ssl_renewal y se paga por adelantado solo desde el saldo de la cuenta después de que se apruebe el total exacto en EUR. La cancelación, la eliminación de dominios y la corrección del mismo tipo usan cancel_automatic_ssl_subscription, remove_automatic_ssl_domain y replace_automatic_ssl_domain; el estado ambiguo se reconcilia con refresh_automatic_ssl_subscription, nunca inventando una segunda mutación. El servidor ACME privado y las credenciales EAB permanecen en el portal del cliente protegido por dos factores y no están disponibles intencionalmente para claves API y MCP, por lo que no pueden entrar en el contexto del modelo.

Restaurar un servicio completo

request_restore es de pago y destructivo: cobra el precio de restauración del saldo de la cuenta y sobrescribe el disco del servicio completo con el punto de respaldo, perdiendo todo lo escrito desde entonces. Es una llamada de confirmación, no una consulta de precio: la API rechaza un cuerpo que no incluya una confirmación explícita, y rechaza el cargo directamente si el precio ha cambiado desde que se informó.

No hay ningún diálogo en esta superficie para recopilar esa confirmación, por lo que la herramienta no la fabrica. acknowledge_data_replacement y acknowledge_restore_charge deben ser cada uno true, y solo deben establecerse después de que el usuario haya aprobado realmente el reemplazo del disco y el cargo, la misma regla que acknowledge_data_loss en uninstall_application. Omitir cualquiera de ellos es un error de esquema, por lo que un llamador sin supervisión no puede caer en un cargo: ni siquiera se cotiza nada.

expected_total_charged es el total_charged con IVA incluido que leyó de get_restore_status y mostró al usuario, devuelto sin cambios. No lo vuelva a leer justo antes de la llamada: se supone que es la cifra que el cliente aceptó, y un número recién obtenido coincidiría con el precio actual y anularía la verificación por completo. Si el precio ha cambiado, la restauración se rechaza como restoreQuoteChanged con el total actual y no se cobra nada; informe la nueva cifra, obtenga la aprobación nuevamente y reintente.

Navegar dentro de un respaldo

Mirar dentro de un respaldo es gratuito y completamente separado de pagar por restaurarlo. list_restore_file_points, browse_restore_files y get_restore_file_browse solo leen el listado de directorios de un respaldo: nunca cobran a la cuenta, nunca sobrescriben el disco y nunca devuelven un archivo al servidor. Inicialmente compatible con Firecracker VPS.

La navegación es asíncrona. browse_restore_files crea un trabajo persistente y pone en cola la actividad del trabajador, por lo que su anotación MCP es readOnlyHint: false aunque el respaldo y el servidor en ejecución no cambien. Devuelve un ID de navegación en estado pendiente; consulte get_restore_file_browse hasta que state sea succeeded. Las entradas existen solo en ese estado: una navegación failed lleva un errorCode y sin listado, y no debe presentarse como un directorio vacío.

Los directorios pueden contener una cantidad enorme de archivos, por lo que el servidor selecciona páginas de 200 o 1,000 entradas según la capacidad del trabajador. Cuando result.nextOffset no sea nulo, llame nuevamente con el mismo sourceBrowseId y directoryEntryId y establezca offset a ese cursor. Use result.pageSize en lugar de asumir 200 al retroceder. Los subdirectorios se ingresan con el id opaco de una entrada type: "directory"; las rutas de archivos nunca se aceptan. Los tipos de entrada son file, directory, symlink y unsupported.

La búsqueda de carpetas (el argumento filter) coincide con los nombres de las entradas en el único directorio que se está listando: subcadena sin distinción de mayúsculas y minúsculas, nunca una ruta, nunca recursiva. Depende de una capacidad del trabajador que los nodos más antiguos no informan, por lo que list_restore_file_points devuelve searchAvailable. browse_restore_files verifica esa marca antes de enviar un filtro y falla con serviceFileBrowseSearchUnavailable cuando la búsqueda no es compatible, en lugar de devolver silenciosamente un listado sin filtrar que podría confundirse con resultados de búsqueda. La navegación simple sigue funcionando en esos nodos.

Restaurar archivos seleccionados en el servidor es una operación de pago y deliberadamente no está expuesta aquí; use el panel de VPSnet para ello.

Flujo de trabajo de acceso SSH

Este servidor MCP gestiona su infraestructura VPS a través de la API de VPSnet.com, incluido el aprovisionamiento de claves SSH. Una vez que una clave SSH se implementa en un VPS, el asistente de IA puede conectarse directamente usando la terminal de su entorno (por ejemplo, la herramienta Bash de Claude Code, la terminal de Cline).

Flujo típico:

  1. La IA lee la clave pública de la máquina local (~/.ssh/id_rsa.pub)
  2. La sube a VPSnet.com a través de create_ssh_key
  3. La implementa en un VPS a través de deploy_ssh_key con permiso explícito de vm:exec para OAuth remoto (o la pasa al hacer el pedido con order_service)
  4. Se conecta directamente: ssh root@<vps_ip>

La mayoría de los entornos de codificación de IA (Claude Code, Cline, Cursor, Codex) tienen acceso integrado a la terminal, por lo que la IA puede conectarse por SSH a su VPS inmediatamente después de implementar una clave, sin necesidad de herramientas adicionales.

Para entornos sin acceso SSH nativo, combine esto con mcp-server-ssh para conectividad directa al servidor a través de herramientas MCP.

Configuración combinada:

{
  "mcpServers": {
    "vpsnet": {
      "command": "npx",
      "args": ["-y", "vpsnet-mcp"],
      "env": {
        "VPSNET_API_KEY": "your_api_key_here"
      }
    },
    "ssh": {
      "command": "npx",
      "args": ["-y", "mcp-server-ssh"]
    }
  }
}

Primeros pasos

Elija su entorno:

La configuración estándar funciona en la mayoría de los clientes MCP:

{
  "mcpServers": {
    "vpsnet": {
      "command": "npx",
      "args": ["-y", "vpsnet-mcp"],
      "env": {
        "VPSNET_API_KEY": "your_api_key_here",
        "VPSNET_API_TIMEOUT_MS": "45000"
      }
    }
  }
}
Claude Code
claude mcp add vpsnet -- npx -y vpsnet-mcp

Establezca la variable de entorno antes de ejecutar:

export VPSNET_API_KEY="your_api_key_here"
export VPSNET_API_TIMEOUT_MS="45000"
Extensión Claude Code para VS Code

Esta sección es para la extensión Claude Code de VS Code, no para GitHub Copilot. Si usa VS Code con GitHub Copilot, consulte la sección VS Code con GitHub Copilot.

Paso 1: Instale la CLI de Claude Code globalmente (requerida para la extensión):

npm install -g @anthropic-ai/claude-code

Paso 2: Agregue el servidor MCP a través de la CLI:

claude mcp add vpsnet -- npx -y vpsnet-mcp

Paso 3: Agregue su clave API. Edite ~/.claude.json (o C:\Users\<username>\.claude.json en Windows), busque la sección del servidor vpsnet y agregue el bloque env:

"vpsnet": {
    "type": "stdio",
    "command": "npx",
    "args": ["-y", "vpsnet-mcp"],
    "env": {
        "VPSNET_API_KEY": "your_api_key_here",
        "VPSNET_API_URL": "https://api.vpsnet.com"
    }
}

Paso 4: Reinicie VS Code por completo (Ctrl+Shift+P > "Recargar ventana" o cierre y vuelva a abrir).

Paso 5: Verifique preguntando a Claude: "Obtén mi información de cuenta de VPSnet"

Usuarios de Windows: Use PowerShell o CMD (no Git Bash) al ejecutar comandos claude mcp add.

El comando code --add-mcp NO funciona con la extensión Claude Code — eso es solo para VS Code Copilot.

Claude Desktop

Siga la guía de instalación de MCP, use la configuración estándar anterior.

Cline

Abra la configuración MCP de Cline y agregue a su cline_mcp_settings.json:

{
  "mcpServers": {
    "vpsnet": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "vpsnet-mcp"],
      "env": {
        "VPSNET_API_KEY": "your_api_key_here"
      },
      "disabled": false
    }
  }
}
Codex

Use la CLI de Codex:

codex mcp add vpsnet --env VPSNET_API_KEY=your_api_key_here -- npx -y vpsnet-mcp

O edite ~/.codex/config.toml:

[mcp_servers.vpsnet]
command = "npx"
args = ["-y", "vpsnet-mcp"]

[mcp_servers.vpsnet.env]
VPSNET_API_KEY = "your_api_key_here"

Si el Node.js predeterminado de su sistema es anterior a la versión 20 (común con nvm — verifique con node --version), envuelva el comando para que nvm cargue la versión correcta:

codex mcp add vpsnet --env VPSNET_API_KEY=your_api_key_here -- bash -lc 'source ~/.nvm/nvm.sh >/dev/null 2>&1 && nvm use --silent 20 && npx -y vpsnet-mcp'

Nota: Codex requiere acceso a la red para instalar paquetes a través de npx. Si ejecuta Codex en un sandbox restringido sin red, las instalaciones de npx fallarán.

Cursor

Vaya a Configuración de Cursor > MCP > Agregar nuevo servidor MCP. Use el tipo de comando con el comando npx -y vpsnet-mcp. O agregue manualmente a .cursor/mcp.json:

{
  "mcpServers": {
    "vpsnet": {
      "command": "npx",
      "args": ["-y", "vpsnet-mcp"],
      "env": {
        "VPSNET_API_KEY": "your_api_key_here"
      }
    }
  }
}
Roo Code

Abra la configuración MCP de Roo Code y agregue a roo_mcp_settings.json:

{
  "mcpServers": {
    "vpsnet": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "vpsnet-mcp"],
      "env": {
        "VPSNET_API_KEY": "your_api_key_here"
      },
      "disabled": false
    }
  }
}
VS Code con GitHub Copilot

Instale usando la CLI de VS Code:

code --add-mcp '{"name":"vpsnet","command":"npx","args":["-y","vpsnet-mcp"],"env":{"VPSNET_API_KEY":"your_api_key_here"}}'

O agregue a su configuración MCP de VS Code manualmente usando la configuración estándar anterior.

Esto es para el modo agente de GitHub Copilot en VS Code. Para la extensión Claude Code, consulte la sección Extensión Claude Code para VS Code.

Windsurf

Siga la documentación MCP de Windsurf. Use la configuración estándar anterior.

Usuarios de Windows

  • Use PowerShell o CMD (no Git Bash) para comandos claude mcp add
  • Ubicación del archivo de configuración: C:\Users\<YourUsername>\.claude.json
  • Instale Node.js: winget install OpenJS.NodeJS.LTS o descárguelo de nodejs.org
  • Después de instalar Node.js, reinicie su terminal y VS Code
  • Las variables de entorno en la extensión Claude Code deben estar en el objeto env dentro de .claude.json, NO en las variables de entorno del sistema

Variables de entorno

VariableRequeridaDescripción
VPSNET_API_KEYSíSu clave API de VPSnet.com
VPSNET_API_URLNoURL base de la API (por defecto https://api.vpsnet.com); cualquier host https://*.vpsnet.com configurado para su implementación
VPSNET_AI_URLNoRuntime SSH delegado; producción usa https://ai.vpsnet.com. No producción requiere el origen API aprobado seguido de /ai-control.
VPSNET_AI_API_ORIGINSolo SSH no producciónOrigen API HTTPS de VPSnet aprobado por el operador; debe coincidir exactamente con VPSNET_API_URL. Establezca ambas variables de runtime de forma privada para una implementación no producción.
VPSNET_API_TIMEOUT_MSNoTiempo de espera por solicitud (por defecto 45000)

Las solicitudes salen de la máquina que ejecuta este servidor, no de su navegador. Una implementación que restrinja el acceso por dirección de origen puede responder a una solicitud bloqueada con una página HTML 403 desde su servidor web; el resultado de la herramienta entonces lo indica (non_api_response: true, http_status: 403) en lugar de pasar la página. Cada resultado de error lleva http_status; un 429 también lleva retry_after.

Autenticación, alcances y operaciones de pago

Cada solicitud se envía con el encabezado X-API-KEY (VPSNET_API_KEY).

  • Usa una clave de gestión. Su nivel de acceso es full (lectura y cambios) o read (solo GET). Una clave con ámbito de IA se emite únicamente para la inferencia del asistente de IA de VPSnet y se rechaza en todas las rutas de cuenta, por lo que ninguna herramienta aquí funciona con una; el resultado de error incluye auth_problem con el motivo y la solución.
  • Los ámbitos granulares solo restringen una clave. Una clave con una lista de ámbitos vacía conserva todo lo que su nivel de acceso permite; enumerar ámbitos (por ejemplo dns:read, services:manage) la restringe. X:manage incluye X:read. La red es la excepción: networking:read / networking:manage / networking:order nunca están implícitos en full o read y deben otorgarse explícitamente.
  • Las operaciones de pago son una puerta separada. Una herramienta marcada como Paid o Quote en las tablas siguientes necesita una clave de acceso full, paid_operations_enabled, el ámbito de pago nombrado (vps:order, vds:order, ds:order, fc:order, domains:order, domains:renew, domains:transfer, certificates:order, applications:restore, services:restore, fn:invoke, networking:order), límites de gasto diarios y mensuales configurados, y un idempotencyKey estable (reutiliza la misma clave para reproducir un intento incierto, nunca una nueva). Los pedidos se ejecutan con presupuesto y luego se confirman con el quoteToken devuelto; revela el total exacto en EUR al usuario antes de confirmar. Usa list_api_keys para ver los ámbitos de tu clave, ámbitos de pago, límites y límite de velocidad.
  • Límites de velocidad. Las solicitudes tienen límite de velocidad por clave (rate_limit en list_api_keys, solicitudes por minuto). En HTTP 429, retrocede y reintenta después de retry_after segundos en lugar de reintentar inmediatamente.
  • Las claves de API nunca pueden crear, cambiar o revocar claves de API, y nunca reciben acceso de administrador.

Herramientas

Las tablas siguientes se generan: edita scripts/tool-scopes.json (o el registro de la herramienta) y ejecuta npm run docs:tools; npm test falla cuando se desvían.

Ámbito es el ámbito de clave de API granular que la herramienta necesita (none = cualquier clave de gestión; a + b = ambas; a or b = cualquiera, según el objeto). Pago: Paid: x gasta el saldo de la cuenta y necesita el ámbito de pago x más las puertas anteriores; Quote: x crea un presupuesto sin cobrar pero está limitado de la misma manera; Paid solo carga el saldo con una clave de acceso full y sin ámbito de pago separado; Needs paid scope: x es una lectura que expone datos de saldo o precio; Billed while kept significa gratis durante una ventana inicial, luego medido; free es todo lo demás.

Cuenta

HerramientaDescripciónÁmbitoPago
get_accountObtener información de la cuenta (ID de usuario, correo, saldo, tasa de IVA)ningunogratis
get_profileObtener detalles del perfil de usuario (nombre, dirección, empresa)account:readgratis

Servicios

HerramientaDescripciónÁmbitoPago
list_servicesListar todos los servicios VPS activosservices:readgratis
get_serviceObtener información detallada de un servicioservices:readgratis
get_service_graphsObtener una serie de gráfico: métrica (cpu, ram, ssd, net, io, …) y período (5m … 1y)services:readgratis
get_eventLeer el estado de una acción asíncrona por su id event o UUID notyservices:read o account:readgratis
wait_for_eventConsultar una acción asíncrona hasta que se complete o falle (o un tiempo de espera)services:read o account:readgratis
get_service_historyObtener el historial de acciones de un servicioservices:readgratis

Aplicaciones gestionadas

HerramientaDescripciónÁmbitoPago
list_application_catalogListar aplicaciones publicadas compatibles con un servicioapplications:readgratis
list_service_applicationsListar aplicaciones instaladas y selección de pago pendienteapplications:readgratis
get_application_installationObtener estado observado, salud, desviación, endpoints, componentes, historial de recursos y umbralesapplications:readgratis
get_application_eventsObtener eventos de instalación limitados y seguros para el clienteapplications:readgratis
get_application_healthEjecutar y consultar una inspección de salud de contenedores nuevaapplications:readgratis
get_application_logsEjecutar y consultar una inspección de registros recientes con límite de tamañoapplications:readgratis
get_application_inspectionConsultar la inspección de salud o registros persistida exacta devuelta por get_application_health o get_application_logs cuando sigue pendiente.applications:readgratis
list_application_restore_pointsListar puntos nocturnos elegibles para la revisión exacta de la aplicaciónapplications:manageNecesita ámbito de pago: applications:restore
quote_application_data_restoreCongelar el cargo de saldo de restauración selectiva exacto sin pagoapplications:managePresupuesto: applications:restore
restore_application_dataPagar y poner en cola la sustitución selectiva confirmada de los datos declarados de la aplicaciónapplications:managePago: applications:restore
get_application_data_restoreConsultar una restauración selectiva de datos vinculada a un inquilinoapplications:readgratis
list_application_registry_credentialsListar metadatos de credenciales de registro privado no secretosapplications:readgratis
validate_application_recipeValidar el Compose del cliente contra la política del trabajador objetivoapplications:managegratis
get_application_recipe_validationConsultar la validación de receta de cliente persistida exacta devuelta por validate_application_recipe o una creación/revisión de receta pendiente.applications:readgratis
list_application_recipesListar proyectos de recetas inmutables propiedad del clienteapplications:readgratis
list_application_recipe_revisionsListar revisiones inmutables de una receta de clienteapplications:readgratis
create_application_recipeValidar y guardar una nueva receta de cliente sin instalarlaapplications:managegratis
create_application_recipe_revisionValidar y guardar una revisión de receta de cliente inmutable posteriorapplications:managegratis
export_application_recipeExportar solo una receta propiedad del cliente sin valores secretosapplications:readgratis
install_application_recipeInstalar una revisión de receta de cliente validada exactaapplications:managegratis
discover_service_containersDescubrir metadatos de contenedor de solo lectura limitadosapplications:readgratis
get_service_container_discoveryConsultar el descubrimiento de contenedores de servicio persistido exacto devuelto por discover_service_containers cuando sigue pendiente.applications:readgratis
prepare_application_compose_adoptionPreparar y consultar un candidato depurado para un proyecto Compose descubiertoapplications:managegratis
get_application_compose_adoptionConsultar un candidato de adopción de Compose vinculado a un inquilinoapplications:readgratis
confirm_application_compose_adoptionConfirmar la toma de control de la fuente exacta después de la aprobación explícitaapplications:managegratis
install_applicationPoner en cola una instalación gestionada confirmada con versión fijadaapplications:managegratis
configure_application_accessPoner en cola un cambio de acceso confirmado de hostname de plataforma, privado, IP pública, HTTPS gestionado o HTTPS externo gestionado por el clienteapplications:managegratis
configure_application_resource_thresholdsReemplazar umbrales de recursos de aplicación no vinculantes confirmados y preferencia de correo de alcanzado/recuperadoapplications:managegratis
manage_applicationHerramienta de compatibilidad para clientes antiguos; usa las acciones individuales a continuaciónapplications:managegratis
reconcile_applicationReconciliar una aplicación con su configuración declaradaapplications:managegratis
repair_applicationReparar el tiempo de ejecución de una aplicaciónapplications:managegratis
restart_applicationReiniciar una aplicación después de confirmar la interrupciónapplications:managegratis
start_applicationIniciar una aplicación detenidaapplications:managegratis
stop_applicationDetener una aplicación después de confirmar la interrupciónapplications:managegratis
uninstall_applicationEliminar una aplicación después de la aprobación explícita de pérdida de datosapplications:managegratis
update_applicationAplicar la actualización inmutable elegible con condiciones previas de versión exactasapplications:managegratis
rollback_applicationPoner en cola la transición inversa exacta anunciada como type=rollback por get_application_installation.applications:managegratis
cancel_application_actionCancelar la última acción en cola exacta solo mientras el backend la anuncia como cancelableapplications:managegratis

Acciones de servicio

HerramientaDescripciónÁmbitoPago
start_serviceIniciar un VPS detenidoservices:managegratis
stop_serviceDetener un VPS en ejecuciónservices:managegratis
restart_serviceReiniciar un VPSservices:managegratis
console_serviceSolicitar una sesión de consola fuera de banda para un VPS en ejecuciónservices:managegratis
suspend_serviceSuspender un Cloud VPS en ejecuciónservices:managegratis
resume_serviceReanudar un Cloud VPS suspendidoservices:managegratis

Configuración del servicio

HerramientaDescripciónÁmbitoPago
get_hostnameObtener el estado actual y automático del hostname del servicioservices:readgratis
get_guest_nameserversObtener la configuración guardada del resolver DNS del invitado del servidor: nsData.type es own (valores predeterminados de VPSnet) o custom, con direcciones IP de resolver ns1-ns4.services:readgratis
change_hostnameCambiar el hostname del VPSservices:managegratis
reset_hostnameRestaurar el hostname automático gestionado por VPSnetservices:managegratis
set_guest_nameserversCambiar los resolvers DNS dentro de un servidor Linux compatible.services:managegratis
change_root_passwordCambiar la contraseña raíz del VPSservices:managegratis
get_rdnsObtener registros rDNS actualesservices:readgratis
change_rdnsCambiar el registro de DNS inverso (PTR)services:managegratis
clear_rdnsBorrar una anulación de PTR y restaurar el valor automáticoservices:managegratis
flush_iptablesVaciar reglas de iptables (útil cuando se está bloqueado)services:managegratis
get_titleObtener el título de visualización actual del servicioservices:readgratis
change_titleCambiar el título de visualización del servicioservices:managegratis
toggle_ipv6Habilitar o deshabilitar IPv6services:managegratis
toggle_extra_settingsAlternar ppp, fuse, tuntap o nfsservices:managegratis
deploy_ssh_keyImplementar una clave SSH en un VPS; OAuth remoto también requiere vm:execservices:managegratis

Reinstalación del sistema operativo

HerramientaDescripciónÁmbitoPago
get_os_optionsObtener plantillas de sistema operativo disponiblesservices:readgratis
reinstall_osReinstalar el sistema operativo del VPS (destruye los datos existentes). Los VPS Cloud/Firecracker también eliminan las instantáneas existentes y requieren confirmSnapshotDelete explícito cuando existen instantáneas; esas instantáneas no pueden proporcionar reversión después de la reinstalación. Devuelve un evento de aceptación noty; sigue el historial del servicio para la finalización.services:managegratis

Cambios de plan (gratis)

HerramientaDescripciónÁmbitoPago
get_plan_optionsObtener planes disponibles para actualizar/degrada; los objetivos KVM/Firecracker que reducirían el disco no están disponiblesservices:readgratis
get_plan_resourcesObtener recursos configurables para un planservices:readgratis
calculate_plan_changeVista previa de un cambio de plan: sin pago, el valor restante se convierte, por lo que una actualización adelanta la fecha de vencimientoservices:readgratis
change_planCambiar el plan del VPSservices:managegratis

Renovación y facturación

HerramientaDescripciónAlcanceDe pago
get_period_optionsObtener el período de facturación y las opciones de renovación automáticaservices:readgratis
set_auto_renewActivar o desactivar la renovación automáticaservices:manageDe pago (renovaciones futuras)
renew_serviceRenovar manualmente un servicioservices:manageDe pago
list_invoicesListar facturaspayments:readgratis
get_invoiceObtener una factura específicapayments:readgratis
list_paymentsListar el historial de pagospayments:readgratis
get_usage_statementsListar los estados de uso medido detallados por separado de las facturaspayments:readgratis

Pedidos

HerramientaDescripciónAlcanceDe pago
get_order_plansObtener los planes disponibles para un producto de servicio seleccionado explícitamenteningunogratis
get_order_optionsObtener las opciones configurables para un planningunogratis
order_serviceCotizar un nuevo VPS y luego confirmar el total exacto y el período después de la aprobación del cliente; opcionalmente adjuntar una red privada con privateNetworkIdningunoDe pago: vps:order, vds:order, ds:order o fc:order (según el producto)

Copias de seguridad

HerramientaDescripciónAlcanceDe pago
get_backup_statusObtener el estado y la configuración de las copias de seguridadservices:readgratis
get_firecracker_backup_statusObtener el estado de las copias de seguridad nocturnas fuera del nodo para un VPS Firecracker, incluido el recuento en ejecución y la procedencia de consistencia de la copia de seguridad retenida más reciente.services:readgratis
get_backup_historyObtener el historial de copias de seguridadservices:readgratis
get_firecracker_backup_historyObtener el historial de copias de seguridad nocturnas retenidas de VPS Firecracker, incluidos los intentos fallidos/en ejecución y la procedencia de consistencia.services:readgratis
create_backupRecuperar el contenido histórico de las copias de seguridad de VPS de contenedor con consentimiento de pago explícito y una clave de solicitud estableservices:manageDe pago

Restauración

HerramientaDescripciónAlcanceDe pago
get_restore_statusObtener la retención, el precio de restauración y cualquier restauración en cursoservices:readRequiere alcance de pago: services:restore
list_restore_pointsListar los puntos de restauración de todo el servicioservices:readgratis
request_restoreDe pago y destructivo: restaurar el disco completo del servicio desde un puntoservices:readDe pago: services:restore
list_restore_file_pointsListar los puntos de copia de seguridad navegables y si la búsqueda de carpetas está disponible (gratis)services:readgratis
browse_restore_filesPoner en cola un trabajo de listado de directorio de copia de seguridad sin restaurar archivosservices:readgratis
get_restore_file_browseConsultar un listado de directorio de copia de seguridad en cola (gratis, solo lectura)services:readgratis

Claves SSH

HerramientaDescripciónAlcanceDe pago
list_ssh_keysListar todas las claves SSHaccount:readgratis
get_ssh_keyObtener una clave SSH específicaaccount:readgratis
create_ssh_keyAgregar una nueva clave SSHaccount:managegratis
delete_ssh_keyEliminar una clave SSHaccount:managegratis

Claves de API

HerramientaDescripciónAlcanceDe pago
list_api_keysMostrar la clave de API que autentica esta conexión MCPningunogratis
get_api_keyObtener los metadatos no secretos de una clave activaningunogratis
get_api_key_activityObtener la actividad de solicitudes retenida y limitada de la clave que llama y los totales registradosningunogratis
get_api_key_inference_usageObtener el uso exacto de pago de VPSnet AI de la clave de inferencia que llama y el estado del límiteningunogratis

La creación, los cambios y la revocación de claves de API requieren un inicio de sesión en el navegador/sesión. No pueden realizarse mediante una conexión MCP autenticada con una clave de API.

Certificados TLS gratuitos

HerramientaDescripciónAlcanceDe pago
get_free_certificate_eligibilityVerificar la elegibilidad de la cuenta, la cuota, los modos de clave y las CA públicas actualmente listascertificates:readgratis
preflight_free_certificatePlanificar nombres exactos, validación, entrega, custodia y CA sin emitircertificates:readgratis
list_free_certificatesListar las solicitudes de certificados sin costo propiedad del cliente y el estado del ciclo de vidacertificates:readgratis
get_free_certificateObtener una solicitud propia, el programa de renovación y el cronograma segurocertificates:readgratis
get_free_certificate_instructionLeer el estado de DNS automático o cada CNAME de DNS externo requeridocertificates:readgratis
create_free_certificateCrear una solicitud DV sin costo, explícitamente aprobada e idempotentecertificates:managegratis
download_free_certificateRecuperar solo la hoja pública emitida y la cadena, nunca una clave privadacertificates:readgratis
manage_free_certificateHerramienta de compatibilidad para clientes antiguos; use las acciones individuales a continuacióncertificates:managegratis
renew_free_certificateSolicitar renovación anticipada para los nombres de certificado autorizadoscertificates:managegratis
revoke_free_certificateRevocar un certificado propio después de la aprobación explícitacertificates:managegratis
recheck_free_certificateVolver a verificar la validación de un certificado pendientecertificates:managegratis
cancel_free_certificateCancelar una solicitud de certificado pendiente elegiblecertificates:managegratis

Para instalación portátil de API o asistente, use customer_csr y conserve la clave privada donde se generó la CSR. Una solicitud administrada puede renovarse sin supervisión, pero MCP no puede exportar su clave privada. La emisión es asíncrona y limitada por cuota: consulte get_free_certificate, siga get_free_certificate_instruction y no trate una solicitud en cola como emitida.

Suscripciones SSL automáticas

HerramientaDescripciónAlcanceDe pago
list_automatic_ssl_subscriptionsListar las suscripciones SSL automáticas propiedad del cliente sin exponer las credenciales ACMEcertificates:readgratis
get_automatic_ssl_subscriptionObtener una suscripción propia, su conjunto de dominios, el estado de renovación y la preparacióncertificates:readgratis
quote_automatic_ssl_subscriptionCotizar un conjunto de dominios exacto en EUR sin cobrarcertificates:readCotización: certificates:order
order_automatic_ssl_subscriptionConfirmar y pagar la cotización de suscripción explícitamente aprobadacertificates:readDe pago: certificates:order
list_automatic_ssl_actionsListar los cambios visibles para el cliente en suscripciones y nombres DNScertificates:readgratis
refresh_automatic_ssl_subscriptionProgramar una actualización de estado autoritativa de solo lecturacertificates:managegratis
quote_automatic_ssl_domainCotizar un nombre DNS adicional en EUR sin cobrarcertificates:readCotización: certificates:order
order_automatic_ssl_domainConfirmar y pagar la cotización de nombre DNS explícitamente aprobadacertificates:readDe pago: certificates:order
quote_automatic_ssl_renewalCotizar el siguiente término de suscripción elegible en EURcertificates:readCotización: certificates:order
order_automatic_ssl_renewalPagar por adelantado el siguiente término explícitamente aprobado desde el saldo de la cuentacertificates:readDe pago: certificates:order
manage_automatic_ssl_subscriptionHerramienta de compatibilidad para clientes antiguos; use las acciones individuales a continuacióncertificates:managegratis
cancel_automatic_ssl_subscriptionCancelar una suscripción SSL automática propiacertificates:managegratis
remove_automatic_ssl_domainEliminar un nombre DNS elegible de una suscripcióncertificates:managegratis
replace_automatic_ssl_domainCorregir un nombre DNS elegible dentro de su ventana de correccióncertificates:managegratis

Automatic SSL es una suscripción ACME de pago portátil. Funciona con un cliente compatible en VPSnet u otro proveedor; no se limita a aplicaciones administradas. La URL privada del servidor ACME y las credenciales EAB se revelan solo en el portal del cliente protegido con dos factores. Intencionalmente no son una herramienta MCP ni una respuesta de clave de API, por lo que un asistente no puede copiarlas en el contexto del modelo.

Certificados TLS de pago

HerramientaDescripciónAlcanceDe pago
list_certificate_catalogListar los productos DV/OV/EV publicados y las ofertas finales al cliente en EURcertificates:readgratis
get_certificate_catalog_productObtener un producto publicado, sus capacidades y las ofertas actualescertificates:readgratis
list_certificatesListar los pedidos de certificados de pago propiedad del cliente y el estado de emisióncertificates:readgratis
get_certificateObtener un pedido de certificado de pago propiocertificates:readgratis
quote_certificateCotizar un certificado o renovación exacto sin cobrarcertificates:readCotización: certificates:order
order_certificateConfirmar y pagar una cotización de certificado explícitamente aprobadacertificates:readDe pago: certificates:order
get_certificate_validationLeer el estado de validación por nombre y un desafío pendiente visible para el propietariocertificates:readgratis
download_certificateDescargar la hoja pública emitida y la cadena; las claves privadas nunca se devuelvencertificates:readgratis
list_certificate_actionsListar las acciones de gestión duraderas visibles para el clientecertificates:readgratis
refresh_certificateProgramar una reconciliación de estado de la autoridad certificadora de solo lecturacertificates:managegratis
manage_certificateHerramienta de compatibilidad para clientes antiguos; use las acciones individuales a continuacióncertificates:managegratis
cancel_certificateCancelar un pedido de certificado pendiente elegiblecertificates:managegratis
recheck_certificate_validationVolver a verificar la validación del certificadocertificates:managegratis
resend_certificate_validationReenviar un mensaje de validación de certificado después de la aprobacióncertificates:managegratis
change_certificate_validationCambiar el método de validación para un nombre de certificadocertificates:managegratis
reissue_certificateSolicitar una reemisión con el mismo nombre con una nueva CSR públicacertificates:managegratis

Los certificados de pago son productos de cuenta portátiles: los clientes pueden instalarlos en Nginx, Apache, lighttpd, OpenLiteSpeed, HAProxy, Caddy, correo, API, balanceadores de carga u otros puntos finales TLS. Son independientes del HTTPS automático adjunto a una aplicación administrada por VPSnet. El MCP acepta solo una CSR PKCS#10 pública; la clave privada debe permanecer bajo el control del cliente y nunca debe ingresar en un argumento de herramienta ni en el contexto del modelo. Las respuestas de cotización contienen el precio final al cliente en EUR, y los pedidos requieren aprobación explícita más la misma clave de idempotencia y un token de cotización de corta duración.

Dominios

HerramientaDescripciónAlcanceDe pago
list_domainsListar dominios propiedad de la cuentadomains:readgratis
get_domainObtener un dominio propio y su acción pendientedomains:readgratis
list_domain_tldsListar TLDs actualmente habilitados para pedidosdomains:readgratis
check_domain_availabilityComprobar disponibilidad de dominio sin realizar pedidodomains:readgratis
get_domain_ordering_statusObtener preparación de pedido de dominio no secretadomains:readgratis
set_domain_nameserversPoner en cola un cambio de servidor de nombres para un dominio propiodomains:managegratis
list_domain_glue_recordsListar registros de direcciones de servidor de nombres del mismo dominiodomains:readgratis
create_domain_glue_recordPoner en cola la creación o actualización de un registro de direcciones de servidor de nombresdomains:managegratis
delete_domain_glue_recordPoner en cola la eliminación de un registro de direcciones de servidor de nombresdomains:managegratis
get_domain_parent_dsListar registros DS DNSSEC de la zona padredomains:readgratis
add_domain_parent_dsPoner en cola la adición de registros DS de la zona padredomains:managegratis
delete_domain_parent_dsPoner en cola la eliminación de registros DS de la zona padredomains:managegratis
list_domain_contactsListar contactos de dominio propiedad de la cuentadomains:readgratis
create_domain_contactCrear un contacto de dominiodomains:managegratis
update_domain_contactActualizar un contacto de dominio existentedomains:managegratis
delete_domain_contactEliminar un contacto de dominio no utilizadodomains:managegratis
quote_domain_registerCotizar un registro de dominio sin cobrardomains:readCotización: domains:order
confirm_domain_registerConfirmar y pagar una cotización de registro exactadomains:manageDe pago: domains:order
quote_domain_transferCotizar una transferencia de dominio sin cobrardomains:readCotización: domains:transfer
confirm_domain_transferConfirmar y pagar una cotización de transferencia exactadomains:manageDe pago: domains:transfer
quote_domain_renewCotizar la renovación de un dominio propio sin cobrardomains:readCotización: domains:renew
confirm_domain_renewConfirmar y pagar una cotización de renovación exactadomains:manageDe pago: domains:renew
quote_domain_restoreCotizar la restauración de un dominio en redención sin cobrardomains:readCotización: domains:renew
confirm_domain_restoreConfirmar y pagar una cotización de restauración exactadomains:manageDe pago: domains:renew
set_domain_auto_renewActivar o desactivar la renovación automática de un dominio propiodomains:manageDe pago (renovaciones futuras)
get_registrar_lockObtener el estado del bloqueo de transferencia del registrador; los cambios permanecen solo en el paneldomains:readgratis

DNS

HerramientaDescripciónAlcanceDe pago
list_service_dns_optionsListar zonas propias y direcciones de servicio disponibles para adjuntar DNSdns:readgratis
attach_service_dns_recordApuntar un nombre de zona propia a una dirección de serviciodns:writegratis
list_dns_zonesListar zonas DNS directas propiedad de la cuentadns:readgratis
create_dns_zoneCrear una zona nativa o secundaria en espera de verificación TXT de propiedaddns:writegratis
get_dns_zoneObtener registros deseados con IDs y un valor TXT de propiedad recuperabledns:readgratis
reapply_dns_zoneReintentar la publicación de una zona DNS publicada cuyo apply_state haya fallado.dns:writegratis
get_dns_zone_diagnosticsInspeccionar delegación, SOA, DNSSEC e higiene de registrosdns:readgratis
export_dns_zoneExportar una zona nativa como archivo de zona estilo BINDdns:readgratis
import_dns_zoneImportar registros limitados estilo BIND en una zona nativadns:writegratis
list_dns_templatesListar plantillas de registros DNS definidas por el backenddns:readgratis
apply_dns_templatePrevisualizar o aplicar una plantilla de registros DNSdns:writegratis
delete_dns_zoneEliminar una zona DNS directadns:writegratis
verify_dns_zoneVerificar propiedad y publicar una zona pendiente o con verificación expiradadns:writegratis
reissue_dns_zone_verificationRotar TXT de propiedad para una zona pendiente o con verificación expirada tras comprobar su valor recuperabledns:writegratis
get_dnssecObtener estado DNSSEC y material público DNSKEY/DSdns:readgratis
set_dnssecActivar o desactivar de forma segura la firma DNSSECdnssec:managegratis
upsert_dns_recordAñadir una tupla nombre/tipo/contenido; una tupla idéntica actualiza TTL/comentario y reactiva el registrodns:writegratis
update_dns_recordReemplazar el contenido de un registro DNS no sistémico existente por ID de registro exactodns:writegratis
delete_dns_recordEliminar un registro de estado deseado DNS directodns:writegratis
get_dns_service_statusObtener estado del clúster DNS gestionado y endpoints publicadosdns:readgratis
get_dns_zone_historyObtener historial reciente de cambios de zona y registrosdns:readgratis
list_ddns_tokensListar metadatos de tokens DDNS y ACME no secretosdns:readgratis
create_ddns_tokenCrear un token de actualización DDNS o ACME restringidodns:writegratis
revoke_ddns_tokenRevocar un token de actualización DDNS o ACMEdns:writegratis

Instantáneas

HerramientaDescripciónAlcanceDe pago
list_snapshotsListar instantáneas de disco de Cloud VPS y política de facturaciónservices:readgratis
create_snapshotCrear una instantánea de disco de Cloud VPSservices:manageFacturado mientras se conserve
rollback_snapshotRevertir destructivamente un Cloud VPS a una instantáneaservices:managegratis
delete_snapshotEliminar una instantánea de disco de Cloud VPS y detener su facturación de conservaciónservices:managegratis
list_firecracker_snapshotsListar instantáneas temporales de Firecracker VPS y su expiraciónservices:readgratis
create_firecracker_snapshotCrear una instantánea temporal de Firecracker VPSservices:manageFacturado mientras se conserve
rollback_firecracker_snapshotRevertir destructivamente un Firecracker VPS a una instantáneaservices:managegratis
delete_firecracker_snapshotEliminar una instantánea de Firecracker VPS y detener su facturación de conservaciónservices:managegratis

Rescate de Servicio

HerramientaDescripciónAlcanceDe pago
get_service_rescueObtener capacidad de rescate y sesión de rescate duradera actualservices:readgratis
enter_service_rescueReiniciar un servicio elegible en una imagen de rescate anunciadaservices:rescuegratis
exit_service_rescueRestaurar la configuración y estado de arranque exactos previos al rescateservices:rescuegratis

Funciones Firecracker

HerramientaDescripciónAlcanceDe pago
list_functionsListar Funciones Firecracker facturadas por usoservices:readgratis
list_function_historyLeer historial paginado de invocaciones de Funciones Firecracker de toda la cuenta.services:readgratis
get_functionObtener una función, incluido el estado de integridad y valores protegidos cuando sean legiblesservices:readgratis
create_functionCrear una Función Firecrackerservices:managegratis
update_functionActualizar una función; los valores protegidos ilegibles requieren aprobación explícita de reemplazoservices:managegratis
delete_functionEliminar una Función Firecrackerservices:managegratis
invoke_functionInvocar una función con uso medido de CPU y memoria; una Idempotency-Key estable evita que reintentos exactos se ejecuten o facturen dos vecesservices:manageDe pago: fn:invoke
list_function_invocationsListar invocaciones de una función, estado, duración y costoservices:readgratis
get_function_invocationObtener salida, registros y costo de uso de una invocaciónservices:readgratis

Servidores bajo demanda

HerramientaDescripciónAlcanceDe pago
get_temp_vm_optionsObtener estado de lanzamiento, perfiles, entradas de precios de compatibilidad y política exacta de almacenamiento/redservices:readgratis
quote_temp_vmInspeccionar la operación de cotización deshabilitada y su respuesta de próximamenteservices:manageDeshabilitado (próximamente)
list_temp_vmsListar sesiones de servidores bajo demanda de la cuenta y opciones actualesservices:readgratis
create_temp_vmInspeccionar la operación de creación deshabilitada; no se realiza pago ni asignación mientras el producto esté próximamenteservices:manageDeshabilitado (próximamente)
get_temp_vmObtener una sesión de servidor bajo demanda propiedad del inquilinoservices:readgratis
delete_temp_vmEliminar permanentemente un servidor bajo demanda tras reconocimiento explícito de pérdida de datos; no se inicia reembolso al clienteservices:managegratis

Los pedidos de clientes están deshabilitados mientras se valida el ciclo de vida del servidor bajo demanda. Las opciones actuales revelan que las copias de seguridad automáticas y las instantáneas no están incluidas y que las conexiones salientes a los puertos TCP de entrega de correo 25, 2525, 465 y 587 están restringidas. Las sesiones existentes permanecen disponibles mediante listar/obtener/eliminar para limpieza. Los campos de TTL fijo y prepago en el esquema de compatibilidad deshabilitado no son una promesa de lanzamiento; el contrato de duración flexible y facturación medida debe publicarse de manera consistente antes de habilitar los pedidos.

Agente Invitado

HerramientaDescripciónAlcanceDe pago
get_guest_agent_statusComprobar disponibilidad del agente invitado QEMU en un Cloud VPSservices:readgratis

Historial

HerramientaDescripciónAlcanceDe pago
get_login_historyObtener historial de inicio de sesión de la cuentaaccount:readgratis
get_management_historyObtener historial de gestión/actividadaccount:readgratis

Público

HerramientaDescripciónAlcanceDe pago
get_pricingObtener precios públicosningunogratis
get_system_statusObtener estado del sistema de VPSnet.comningunogratis
get_faqObtener preguntas frecuentesningunogratis

Redes SDN

Los permisos de red deben otorgarse explícitamente: networking:read o networking:manage; los valores predeterminados ordinarios de acceso completo/lectura no los incluyen. Comience con capacidades, luego lea el recurso propio exacto y su generación. El backend aplica propiedad del inquilino, disponibilidad y bloqueos 2FA del servidor. Aceptado, pagado y listo son estados separados; consulte la operación o recurso correspondiente. Los cambios de DNS se consultan a través del settings.dns_change de la red.

Los nuevos balanceadores de carga privados/públicos, VPNs y direcciones públicas utilizan un flujo explícito de cotización → pago común → estado de pedido. Las herramientas de cotización siempre envían prepare_after_payment=true: no se realiza aprovisionamiento antes del pago. Muestre el EUR exacto de la cotización gross_amount, obtenga aprobación y pase el mismo idempotencyKey, quote_id y quoteToken a order_network_product. Las claves API además necesitan acceso completo, operaciones de pago habilitadas, networking:order y límites de gasto. Lea get_network_payment_methods y seleccione system=balance; el pago sin saldo se rechaza para claves API. Si la confirmación es incierta, recupere por el ID de cotización original y la clave. Para un pedido SDN con status=paid_pending, billing_state=captured y reason_code=network_product_ip_inventory_wait, el pago se retiene mientras el inventario de IP públicas no esté disponible. Consulte get_network_product_order con el mismo ID de pedido; el backend se reanuda automáticamente cuando el inventario regresa. No cree otro pedido, cobre nuevamente ni envíe un reintento manual. manual_review o network_product_stock_reconciliation_required en su lugar requiere revisión del operador; no autoriza un reintento automático.

Los pedidos ordinarios de VPS exponen esta espera mediante get_service.stateProcess.waitingReason=public_ip_inventory (también reflejado en el campo heredado stateProccess). Consulte el mismo servicio sin reordenar. stateProcess.attention=true requiere atención del operador. Un pago exitoso o una creación aceptada no establece que el servidor esté listo. Los niveles públicos de balanceador de carga alb_proxy_3/alb_proxy_5 utilizan el tipo de solicitud proxy_lb; el nivel privado nlb utiliza private_lb. La disponibilidad y los precios provienen del catálogo de productos en vivo. Un endpoint heredado de creación de aplicaciones impago no es una alternativa al proceso de pago.

La recogida de configuración del dispositivo es una acción de gestión única, aunque su método HTTP sea GET. Genere el par de claves de revelación fuera de MCP, envíe solo la clave pública X25519, guarde el texto cifrado sellado devuelto y descifrelo fuera de la conversación. Ni las claves privadas ni la configuración de WireGuard en texto plano son solicitadas o descifradas por estas herramientas. Nunca repita automáticamente una recogida después de una respuesta incierta.

El backend actual no tiene cambio de nombre de red de cliente, edición de IP fija en puertos existentes, reintento de aplicaciones ni API nativa de sitio a sitio en esta versión. Las direcciones DHCP fijas se seleccionan al adjuntar; eliminar/recrear un adjunto requiere aprobación por separado y no se representa como una edición en el lugar. Las rutas heredadas de creación de LB/VPN impagas, las compras heredadas de stock antes del pago y la habilitación de renovación automática mediante claves de API no se exponen deliberadamente. La gestión existente de enlaces públicos sigue disponible; las nuevas direcciones públicas utilizan propiedad de cuenta y proceso de pago común. Que una herramienta esté listada no habilita una puerta de función del backend.

HerramientaDescripciónAlcanceDe pago
get_network_payment_methodsLeer metadatos del método de pago sin iniciar el pagoningunogratis
get_networking_capabilitiesLeer disponibilidad de red de la cuenta, cuota, opciones de creación y adjuntos elegibles al realizar el pedidonetworking:readgratis
get_networking_featuresLeer los límites de funciones de red actuales, opciones de DNS y extensiones de contrato admitidas.networking:readgratis
get_networking_overviewLeer redes propias, cuota y instantánea de operacionesnetworking:readgratis
get_networking_topologyLeer la topología de la cuenta con identidades con ámbito de rednetworking:readgratis
list_networking_operationsLeer operaciones de red recientes y operations_has_morenetworking:readgratis
get_networking_operationLeer una operación de red o puerto aceptadanetworking:readgratis
list_private_networksListar redes privadas propias, incluidas las que están pendientes de eliminación verificada.networking:readgratis
get_private_networkLeer una red propia, incluidas las reservas DHCP, el progreso del cambio de DNS, la generación y project_id.networking:readgratis
create_private_networkCrear una intención de red privadanetworking:managegratis
delete_private_networkSolicitar la eliminación de una red vacíanetworking:managegratis
retry_private_networkReintentar solo la operación de red actual fallida; conservar su generación actualnetworking:managegratis
set_private_network_dnsCambiar los servidores DNS de DHCP en el lugarnetworking:managegratis
set_private_network_namesReemplazar la etiqueta completa de la zona DNS interna y la lista de aliasnetworking:managegratis
list_private_network_portsLeer los puertos de red propios, sus direcciones DHCP fijas, generaciones y estados de adjuntonetworking:readgratis
list_service_private_portsLeer puertos privados y estado de recuperación de adjuntos de pedido para un número de pedido de servicio propio.networking:readgratis
list_network_attachment_candidatesLeer servicios adjuntables y cada attachment_modenetworking:readgratis
attach_private_network_portAdjuntar un servicio propio; omitir ipv4 para asignación automática o pasar una dirección fija utilizablenetworking:managegratis
detach_private_network_portDesadjuntar el puerto del servidor propionetworking:managegratis
retry_private_network_portReintentar la operación de puerto actual fallida con la generación PORT y cualquier aprobación de reinicio requerida.networking:managegratis
get_network_vpn_summaryLeer el resumen de VPN de la red, incluida la ausencia veraznetworking:readgratis
get_network_routed_egressLeer el acceso NAT/internet de esta red, la dirección pública y el estado de calificación.networking:readgratis
set_network_routed_egressSolicitar la transición NAT actualmente admitida para una red propia; el backend puede rechazar cambios de modonetworking:managegratis
get_security_group_capabilitiesLeer la disponibilidad de grupos de seguridad y si se puede cambiar la política predeterminada de la red.networking:readgratis
list_network_security_groupsListar grupos en el proyecto propionetworking:readgratis
create_network_security_groupCrear un conjunto de reglas de permiso con nombrenetworking:managegratis
update_network_security_groupReemplazar el nombre completo del grupo y la lista de reglas en su revisión esperadanetworking:managegratis
delete_network_security_groupEliminar un grupo de cliente no referenciado en su revisión esperada; los grupos referenciados son rechazados.networking:managegratis
clone_network_security_groupClonar un grupo propio con un nombre nuevo; usar la revisión actual del grupo de origen.networking:managegratis
get_network_security_policyLeer la política predeterminada, los grupos asignados y el estado de aplicación de la políticanetworking:readgratis
set_network_default_security_policyCambiar aceptar/rechazar para servidores sin grupos personalizadosnetworking:managegratis
set_private_port_security_groupsReemplazar la lista completa de grupos de cliente del puertonetworking:managegratis
retry_network_security_policyReintentar la política de seguridad de red fallida usando su estado deseado actual.networking:managegratis
retire_network_security_policyRetirar la política solo después de que sus puertos de servidor hayan desaparecidonetworking:managegratis
get_network_appliance_capabilitiesLeer proveedores/niveles de balanceador de carga disponibles, calificación pública, capacidades de VPN y cuotanetworking:readgratis
list_network_appliancesLeer balanceadores de carga y puertas de enlace VPN propios con un cursor de flujo.networking:readgratis
get_network_appliance_billingLeer líneas de dispositivos recurrentes visibles para el cliente y moneda actuales.networking:readgratis
get_network_appliance_operationConsultar una operación de dispositivo aceptadanetworking:readgratis
list_network_load_balancersListar balanceadores de carga privados y públicos y estado de salud/calificación seguro para el cliente.networking:readgratis
get_network_load_balancerLeer un balanceador de carga propio, oyentes, miembros, generación y saludnetworking:readgratis
estimate_network_load_balancerLeer una estimación técnica del balanceador de carga para esta configuración exactanetworking:readgratis
delete_network_load_balancerSolicitar el desmontaje del dispositivo en su generación actual; esto no es un reembolso ni una cancelación del período de pagonetworking:managegratis
add_network_load_balancer_memberAgregar una dirección de servidor privado adjunta al oyente seleccionado; el backend valida la membresía en esta red.networking:managegratis
remove_network_load_balancer_memberEliminar un miembro de la rotación usando la generación del balanceador de carga.networking:managegratis
add_network_load_balancer_listenerAgregar un oyente y miembros iniciales opcionales usando las capacidades de protocolo ofrecidas actualmentenetworking:managegratis
remove_network_load_balancer_listenerEliminar un oyente y sus miembros; se rechaza eliminar el último oyente.networking:managegratis
list_network_vpn_gatewaysListar puertas de enlace VPN propias, sus pares de dispositivos y estado seguronetworking:readgratis
get_network_vpn_gatewayLeer una puerta de enlace VPN propia, generación actual, pares de dispositivos, candidatos de concesión y capacidad de adjunto.networking:readgratis
delete_network_vpn_gatewaySolicitar el desmontaje de una puerta de enlace VPN propia; todos los dispositivos pierden conectividadnetworking:managegratis
attach_network_vpn_gatewayAdjuntar o mover una VPN de cuenta a una red propia solo cuando se anuncie el adjunto independientenetworking:managegratis
detach_network_vpn_gatewayDesadjuntar una VPN de cuenta de su red cuando sea compatible; conserva su período de pago y dispositivos, pero recrea la puerta de enlacenetworking:managegratis
set_vpn_server_accessElegir accept o groups_only para el acceso de la VPN a los servidores adjuntos cuando esta capacidad esté disponiblenetworking:managegratis
create_network_vpn_peerAgregar un dispositivo con una clave de revelación PÚBLICA de un solo uso generada externamentenetworking:managegratis
take_network_vpn_peer_configConsumir la configuración sellada del dispositivo UNA VEZnetworking:managegratis
revoke_network_vpn_peerRevocar un dispositivo usando la generación de la PUERTA DE ENLACE VPNnetworking:managegratis
set_network_vpn_peer_grantsReemplazar la lista completa de servidores alcanzables del dispositivo cuando la VPN independiente esté disponiblenetworking:managegratis
get_network_vpn_egress_optionsLeer las salidas de Internet de VPN admitidas y la calificaciónnetworking:readgratis
set_network_vpn_peer_egressEstablecer la política de salida elegida de un dispositivo: solo privada, NAT heredado o anunciadanetworking:managegratis
list_network_productsLeer productos de pago actuales, nombres de niveles en vivo, precios y capacidad de compra; las ofertas públicas de balanceador de carga proxy de 3/5 nodos deben provenir de este catálogo.networking:readgratis
list_network_product_periodsLeer períodos de producto propios, disponibilidad de renovación y hechos del ciclo de vida.networking:readgratis
quote_network_productCrear la cotización de pago exacta del producto de red para COMMON CHECKOUTnetworking:manageCotización: networking:order
quote_account_vpnCrear una cotización de VPN de cuenta para el pago común cuando se anuncie vpn_account_ordernetworking:manageCotización: networking:order
order_network_productConfirmar una compra de pago común desde una cotización exacta aprobadanetworking:manageDe pago: networking:order
get_network_product_orderLeer el estado de pago y cumplimiento de un pedido de pago común propionetworking:readgratis
find_network_product_orderRecuperar un pago incierto por el quote_id ORIGINAL; order=null significa que no se encontró ningún pedido, no una prueba para usar una nueva clave de pago.networking:readgratis
quote_network_product_renewalCotizar el próximo mes de pago para un producto de red; sin cargonetworking:manageCotización: networking:order
renew_network_productPagar la renovación exacta previamente divulgada desde el saldo de la cuentanetworking:manageDe pago: networking:order
disable_network_product_auto_renewDeshabilitar la renovación automáticanetworking:managegratis
quote_vpn_period_renewalCotizar el próximo mes de la VPN en su alcance de pago real; sin cargonetworking:manageCotización: networking:order
renew_vpn_periodPagar la renovación aprobada del próximo mes de la VPN desde el saldo de la cuenta usando la cotización exacta y la clave original.networking:manageDe pago: networking:order
disable_vpn_auto_renewDeshabilitar la renovación automática de la VPN; el período de pago actual permanecenetworking:managegratis
list_network_public_addressesLeer direcciones públicas de pago propias, límites de cuenta, soporte de destino y disponibilidad de compra.networking:readgratis
get_network_public_addressLeer una dirección pública propia, adjunto y estado del período de pago.networking:readgratis
quote_network_public_addressCotizar una nueva dirección pública de pago para el pago común; sin cargonetworking:manageCotización: networking:order
attach_public_address_to_networkAdjuntar o mover una dirección ya pagada al NAT de una red propianetworking:managegratis
attach_public_address_to_serverAdjuntar o mover una dirección pública de pago propia a un puerto privado elegible de un servidor sin IP públicanetworking:managegratis
detach_network_public_addressDesadjuntar una dirección pública propia de su destino actual; permanece en propiedad durante el período de pagonetworking:managegratis
quote_public_address_renewalCotizar el próximo mes de la dirección sin cobrar; usar la cotización devuelta y esta clave para la confirmación.networking:manageCotización: networking:order
renew_network_public_addressPagar la renovación de dirección aprobada desde el saldo con su ID/token de cotización exacto y la clave original.networking:manageDe pago: networking:order
disable_public_address_auto_renewDeshabilitar la renovación automática de la dirección; la propiedad dura hasta paid_untilnetworking:managegratis
get_network_public_bindingLeer la generación, el estado y la dirección asignada de un enlace público propio existentenetworking:readgratis
bind_network_public_ipVincular un enlace público flotante ya reservado a un puerto privado propio cuando sea compatiblenetworking:managegratis
move_network_public_ipMover un enlace público flotante preparado a otro puerto privado propio; confirmar la interrupción al destino anterior.networking:managegratis
configure_network_public_forwardingConfigurar los oyentes TCP/UDP de un enlace de reenvío reservado existentenetworking:managegratis
delete_network_public_bindingSolicitar la eliminación de un enlace existente usando su generaciónnetworking:managegratis

Ejemplos trabajados

Cada ejemplo es una solicitud a tu asistente y las herramientas que llama.

Pedir un VPS (cotizar, luego confirmar)

Pedir el Cloud VPS más barato con Debian y mi clave SSH, pagado desde el saldo.

  1. get_order_plans para el producto, luego get_order_options para el plan elegido (SO, período, IDs de recursos) y list_ssh_keys para el ID de la clave.
  2. order_service con plan, os, period, resources, sshKey (o rootPassword, no ambos), payment: { payment: 1, successUrl: '', cancelUrl: '' } y un idempotencyKey estable. La primera llamada devuelve un presupuesto sin cobrar. La clave API necesita vps:order (o vds:order, ds:order, fc:order) y límites de gasto.
  3. Muestra el total exacto en EUR bruto y el período de facturación. Tras la aprobación del cliente, repite el pedido y la clave sin cambios con el quoteToken devuelto, expected_total_eur y acknowledge_charge: true. Inspecciona el intento original en el panel si su resultado es desconocido; no crees otra clave para reintentarlo.
  4. Consulta get_service para el número de pedido devuelto; el pago aceptado no es servidor listo.

Redes (presupuesto, luego pedido)

Añade un balanceador de carga privado a mi red y paga desde el saldo.

  1. get_networking_capabilities, list_network_products y get_network_payment_methods (elige el método system=balance).
  2. quote_network_product con kind (private_lb, proxy_lb o vpn_gateway), tier y un idempotencyKey; muestra el gross_amount en EUR del presupuesto.
  3. Tras la aprobación, order_network_product con el mismo idempotencyKey, quote_id, quoteToken, el payment del saldo y acknowledge_charge: true. Si el resultado es incierto, find_network_product_order por el quote_id original, luego consulta get_network_product_order. Nunca compres una segunda copia.

Actualización de registros DNS

Apunta www.example.com a 203.0.113.10 con un TTL de 5 minutos.

  1. list_dns_zones para encontrar el zone_id, luego get_dns_zone para inspeccionar los registros existentes y sus IDs (necesita dns:read).
  2. Para añadir un valor A, llama a upsert_dns_record con zone_id, name: "www", type: "A", content: "203.0.113.10", ttl: 300 (necesita dns:write). Un contenido diferente añade otro registro y conserva los valores existentes. Una tupla idéntica de nombre/tipo/contenido actualiza su TTL/comentario y lo reactiva si estaba deshabilitado. Para reemplazar un valor existente, usa update_dns_record con su record_id exacto y el nombre, tipo, contenido y TTL deseados.
  3. get_dns_zone para leer los registros deseados de vuelta, o get_dns_zone_history para ver el cambio.

Para una zona en espera cuyo valor TXT de propiedad se perdió, primero lee get_dns_zone.zone.verification.record.value. Usa reissue_dns_zone_verification solo si ese valor es nulo/irrecuperable o el cliente solicita rotación. Admite tanto pending_verification como verification_expired; el valor anterior deja de aceptarse. Actualiza el TXT en la ubicación indicada por zone.verification.next_step, luego llama a verify_dns_zone. Reemitir solo no verifica la zona ni restablece su estado.

Pedir un certificado de pago

Compra un certificado DV de un año para example.com; generé el CSR yo mismo.

  1. list_certificate_catalog y get_certificate_catalog_product para elegir un producto y leer su oferta actual en EUR.
  2. quote_certificate con product_id, offer_id, offer_generation, common_name (más cualquier alternative_names), el csr público PKCS#10, los IDs de contacto propios y un idempotencyKey (necesita certificates:order, operaciones de pago y límites). Nunca envíes una clave privada.
  3. Tras la aprobación del usuario del total exacto, order_certificate con la misma solicitud, el mismo idempotencyKey, el quote_token, el payment y acknowledge_exact_quote_and_payment: true.
  4. get_certificate_validation (publica el desafío, por ejemplo a través de upsert_dns_record), luego download_certificate una vez emitido.

Obtención de una clave API

  1. Inicia sesión en vpsnet.com
  2. Ve a Cuenta > Claves API
  3. Haz clic en Crear clave API
  4. Ponle un nombre y copia la clave

La clave se muestra solo una vez: guárdala de forma segura.

Solución de problemas

Las herramientas MCP no aparecen en la extensión de Claude Code para VS Code

  1. Instala la CLI de Claude Code: npm install -g @anthropic-ai/claude-code
  2. Verifica: claude --version debería mostrar un número de versión
  3. Añade el servidor mediante la CLI: claude mcp add vpsnet -- npx -y vpsnet-mcp
  4. Reinicia VS Code por completo (no solo recargar la ventana)
  5. Revisa ~/.claude.json para la configuración correcta

claude: command not found

Instala la CLI de Claude Code globalmente:

npm install -g @anthropic-ai/claude-code

Verifica que tu PATH incluya los paquetes globales de npm. En Windows, reinicia tu terminal después de instalar.

Las variables de entorno no funcionan

Para la extensión de Claude Code, las variables de entorno deben estar en el objeto env dentro de .claude.json, NO en las variables de entorno del sistema:

"vpsnet": {
    "type": "stdio",
    "command": "npx",
    "args": ["-y", "vpsnet-mcp"],
    "env": {
        "VPSNET_API_KEY": "your_actual_key_here"
    }
}

Errores de clave API

Este servidor necesita una clave API de gestión. Cada fallo a continuación es informado por las herramientas con un objeto auth_problem que contiene la causa y la solución, así que léelo en lugar de adivinar por el estado HTTP.

Los fallos de herramientas llevan isError: true mientras conservan los detalles del error de la API y la guía de recuperación. Los resultados desconocidos de mutaciones deben verificarse antes de otro intento. Los números de pedido de servicio deben copiarse de list_services; se admiten letras ASCII, dígitos y guiones, incluidos los sufijos de múltiples pedidos. Los identificadores de URL malformados o sobredimensionados se rechazan antes de una solicitud a la API.

Lo que vesQué significaSolución
aiScopedApiKeyCannotManageAccount (403)La clave es una clave con ámbito de IA. Se emiten solo para la inferencia del asistente de IA de VPSnet y se rechazan deliberadamente en toda la API de la cuenta. Otorgar ámbitos no puede cambiar esto: la restricción está en el tipo de clave.Crea una clave separada con el ámbito full (o read para uso solo de GET) y úsala aquí. Mantén la clave con ámbito de IA para inferencia.
apiKeyRejected (401)La clave falló la autenticación por completo. La API devuelve un 401 idéntico para cada causa, así que es una de: desconocida, revocada, expirada, malformada, o tu IP de origen no está en la lista de permitidos de IP de la clave.Verifica que la clave esté activa y copiada completa, y que cualquier lista de permitidos de IP incluya la dirección desde la que este servidor llama.
readOnlyApiKeyCannotWrite (401)Se usó una clave con ámbito de solo lectura para una escritura; las claves de lectura se limitan a GET.Usa una clave de ámbito completo, o quédate en herramientas de solo lectura.
apiKeyScopeMissing (403)La clave se autenticó pero carece del ámbito granular mencionado en requiredScope.Añade ese ámbito en Cuenta > Claves API.
apiKeyForbidden (403)El endpoint rechaza las claves API por completo. Las claves API nunca otorgan acceso de administrador.Usa el panel con una sesión iniciada.
  • Verifica que la clave sea correcta (comienza con vpsnet_ seguido de 43 caracteres)
  • Las claves se muestran solo una vez al crearlas: si se pierden, crea una nueva
  • Comprueba que la clave no haya expirado (Cuenta > Claves API)

deploy_ssh_key se realizó correctamente pero SSH aún falla

  • Todos los servidores de VPSnet.com usan root como nombre de usuario SSH
  • El despliegue de claves es asíncrono: espera 15-30 segundos después de desplegar antes de intentar SSH

fetch is not defined o errores inesperados

Este servidor requiere Node.js 20+. Si tu node predeterminado es más antiguo (común con configuraciones de nvm), ya sea:

  • Establece Node 20+ como predeterminado: nvm alias default 20
  • O usa el envoltorio de nvm que se muestra en la sección Codex

Licencia

MIT