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:
-
Node.js 20 o más reciente
- Verificar:
node --version - Linux/macOS: nodejs.org o su gestor de paquetes
- Windows:
winget install OpenJS.NodeJS.LTSo descargue desde nodejs.org - Después de instalar Node.js, reinicie su terminal/editor
- Verificar:
-
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
- CLI de Claude Code instalado globalmente:
-
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:
- La IA lee la clave pública de la máquina local (
~/.ssh/id_rsa.pub) - La sube a VPSnet.com a través de
create_ssh_key - La implementa en un VPS a través de
deploy_ssh_keycon permiso explícito devm:execpara OAuth remoto (o la pasa al hacer el pedido conorder_service) - 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:
- Claude Code (CLI) — Codificación de IA basada en terminal
- Claude Code para VS Code — Extensión de VS Code
- Claude Desktop — Aplicación de escritorio
- VS Code con GitHub Copilot — Modo agente de Copilot
- Cline / Cursor / Windsurf / Roo Code / Codex — Otros clientes
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-mcpNO 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.LTSo 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
envdentro de.claude.json, NO en las variables de entorno del sistema
Variables de entorno
| Variable | Requerida | Descripción |
|---|---|---|
VPSNET_API_KEY | Sí | Su clave API de VPSnet.com |
VPSNET_API_URL | No | URL base de la API (por defecto https://api.vpsnet.com); cualquier host https://*.vpsnet.com configurado para su implementación |
VPSNET_AI_URL | No | Runtime SSH delegado; producción usa https://ai.vpsnet.com. No producción requiere el origen API aprobado seguido de /ai-control. |
VPSNET_AI_API_ORIGIN | Solo SSH no producción | Origen 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_MS | No | Tiempo 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) oread(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 incluyeauth_problemcon 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:manageincluyeX:read. La red es la excepción:networking:read/networking:manage/networking:ordernunca están implícitos enfulloready deben otorgarse explícitamente. - Las operaciones de pago son una puerta separada. Una herramienta marcada como
PaidoQuoteen las tablas siguientes necesita una clave de accesofull,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 unidempotencyKeyestable (reutiliza la misma clave para reproducir un intento incierto, nunca una nueva). Los pedidos se ejecutan con presupuesto y luego se confirman con elquoteTokendevuelto; revela el total exacto en EUR al usuario antes de confirmar. Usalist_api_keyspara 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_limitenlist_api_keys, solicitudes por minuto). En HTTP429, retrocede y reintenta después deretry_aftersegundos 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
| Herramienta | Descripción | Ámbito | Pago |
|---|---|---|---|
get_account | Obtener información de la cuenta (ID de usuario, correo, saldo, tasa de IVA) | ninguno | gratis |
get_profile | Obtener detalles del perfil de usuario (nombre, dirección, empresa) | account:read | gratis |
Servicios
| Herramienta | Descripción | Ámbito | Pago |
|---|---|---|---|
list_services | Listar todos los servicios VPS activos | services:read | gratis |
get_service | Obtener información detallada de un servicio | services:read | gratis |
get_service_graphs | Obtener una serie de gráfico: métrica (cpu, ram, ssd, net, io, …) y período (5m … 1y) | services:read | gratis |
get_event | Leer el estado de una acción asíncrona por su id event o UUID noty | services:read o account:read | gratis |
wait_for_event | Consultar una acción asíncrona hasta que se complete o falle (o un tiempo de espera) | services:read o account:read | gratis |
get_service_history | Obtener el historial de acciones de un servicio | services:read | gratis |
Aplicaciones gestionadas
| Herramienta | Descripción | Ámbito | Pago |
|---|---|---|---|
list_application_catalog | Listar aplicaciones publicadas compatibles con un servicio | applications:read | gratis |
list_service_applications | Listar aplicaciones instaladas y selección de pago pendiente | applications:read | gratis |
get_application_installation | Obtener estado observado, salud, desviación, endpoints, componentes, historial de recursos y umbrales | applications:read | gratis |
get_application_events | Obtener eventos de instalación limitados y seguros para el cliente | applications:read | gratis |
get_application_health | Ejecutar y consultar una inspección de salud de contenedores nueva | applications:read | gratis |
get_application_logs | Ejecutar y consultar una inspección de registros recientes con límite de tamaño | applications:read | gratis |
get_application_inspection | Consultar la inspección de salud o registros persistida exacta devuelta por get_application_health o get_application_logs cuando sigue pendiente. | applications:read | gratis |
list_application_restore_points | Listar puntos nocturnos elegibles para la revisión exacta de la aplicación | applications:manage | Necesita ámbito de pago: applications:restore |
quote_application_data_restore | Congelar el cargo de saldo de restauración selectiva exacto sin pago | applications:manage | Presupuesto: applications:restore |
restore_application_data | Pagar y poner en cola la sustitución selectiva confirmada de los datos declarados de la aplicación | applications:manage | Pago: applications:restore |
get_application_data_restore | Consultar una restauración selectiva de datos vinculada a un inquilino | applications:read | gratis |
list_application_registry_credentials | Listar metadatos de credenciales de registro privado no secretos | applications:read | gratis |
validate_application_recipe | Validar el Compose del cliente contra la política del trabajador objetivo | applications:manage | gratis |
get_application_recipe_validation | Consultar la validación de receta de cliente persistida exacta devuelta por validate_application_recipe o una creación/revisión de receta pendiente. | applications:read | gratis |
list_application_recipes | Listar proyectos de recetas inmutables propiedad del cliente | applications:read | gratis |
list_application_recipe_revisions | Listar revisiones inmutables de una receta de cliente | applications:read | gratis |
create_application_recipe | Validar y guardar una nueva receta de cliente sin instalarla | applications:manage | gratis |
create_application_recipe_revision | Validar y guardar una revisión de receta de cliente inmutable posterior | applications:manage | gratis |
export_application_recipe | Exportar solo una receta propiedad del cliente sin valores secretos | applications:read | gratis |
install_application_recipe | Instalar una revisión de receta de cliente validada exacta | applications:manage | gratis |
discover_service_containers | Descubrir metadatos de contenedor de solo lectura limitados | applications:read | gratis |
get_service_container_discovery | Consultar el descubrimiento de contenedores de servicio persistido exacto devuelto por discover_service_containers cuando sigue pendiente. | applications:read | gratis |
prepare_application_compose_adoption | Preparar y consultar un candidato depurado para un proyecto Compose descubierto | applications:manage | gratis |
get_application_compose_adoption | Consultar un candidato de adopción de Compose vinculado a un inquilino | applications:read | gratis |
confirm_application_compose_adoption | Confirmar la toma de control de la fuente exacta después de la aprobación explícita | applications:manage | gratis |
install_application | Poner en cola una instalación gestionada confirmada con versión fijada | applications:manage | gratis |
configure_application_access | Poner en cola un cambio de acceso confirmado de hostname de plataforma, privado, IP pública, HTTPS gestionado o HTTPS externo gestionado por el cliente | applications:manage | gratis |
configure_application_resource_thresholds | Reemplazar umbrales de recursos de aplicación no vinculantes confirmados y preferencia de correo de alcanzado/recuperado | applications:manage | gratis |
manage_application | Herramienta de compatibilidad para clientes antiguos; usa las acciones individuales a continuación | applications:manage | gratis |
reconcile_application | Reconciliar una aplicación con su configuración declarada | applications:manage | gratis |
repair_application | Reparar el tiempo de ejecución de una aplicación | applications:manage | gratis |
restart_application | Reiniciar una aplicación después de confirmar la interrupción | applications:manage | gratis |
start_application | Iniciar una aplicación detenida | applications:manage | gratis |
stop_application | Detener una aplicación después de confirmar la interrupción | applications:manage | gratis |
uninstall_application | Eliminar una aplicación después de la aprobación explícita de pérdida de datos | applications:manage | gratis |
update_application | Aplicar la actualización inmutable elegible con condiciones previas de versión exactas | applications:manage | gratis |
rollback_application | Poner en cola la transición inversa exacta anunciada como type=rollback por get_application_installation. | applications:manage | gratis |
cancel_application_action | Cancelar la última acción en cola exacta solo mientras el backend la anuncia como cancelable | applications:manage | gratis |
Acciones de servicio
| Herramienta | Descripción | Ámbito | Pago |
|---|---|---|---|
start_service | Iniciar un VPS detenido | services:manage | gratis |
stop_service | Detener un VPS en ejecución | services:manage | gratis |
restart_service | Reiniciar un VPS | services:manage | gratis |
console_service | Solicitar una sesión de consola fuera de banda para un VPS en ejecución | services:manage | gratis |
suspend_service | Suspender un Cloud VPS en ejecución | services:manage | gratis |
resume_service | Reanudar un Cloud VPS suspendido | services:manage | gratis |
Configuración del servicio
| Herramienta | Descripción | Ámbito | Pago |
|---|---|---|---|
get_hostname | Obtener el estado actual y automático del hostname del servicio | services:read | gratis |
get_guest_nameservers | Obtener 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:read | gratis |
change_hostname | Cambiar el hostname del VPS | services:manage | gratis |
reset_hostname | Restaurar el hostname automático gestionado por VPSnet | services:manage | gratis |
set_guest_nameservers | Cambiar los resolvers DNS dentro de un servidor Linux compatible. | services:manage | gratis |
change_root_password | Cambiar la contraseña raíz del VPS | services:manage | gratis |
get_rdns | Obtener registros rDNS actuales | services:read | gratis |
change_rdns | Cambiar el registro de DNS inverso (PTR) | services:manage | gratis |
clear_rdns | Borrar una anulación de PTR y restaurar el valor automático | services:manage | gratis |
flush_iptables | Vaciar reglas de iptables (útil cuando se está bloqueado) | services:manage | gratis |
get_title | Obtener el título de visualización actual del servicio | services:read | gratis |
change_title | Cambiar el título de visualización del servicio | services:manage | gratis |
toggle_ipv6 | Habilitar o deshabilitar IPv6 | services:manage | gratis |
toggle_extra_settings | Alternar ppp, fuse, tuntap o nfs | services:manage | gratis |
deploy_ssh_key | Implementar una clave SSH en un VPS; OAuth remoto también requiere vm:exec | services:manage | gratis |
Reinstalación del sistema operativo
| Herramienta | Descripción | Ámbito | Pago |
|---|---|---|---|
get_os_options | Obtener plantillas de sistema operativo disponibles | services:read | gratis |
reinstall_os | Reinstalar 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:manage | gratis |
Cambios de plan (gratis)
| Herramienta | Descripción | Ámbito | Pago |
|---|---|---|---|
get_plan_options | Obtener planes disponibles para actualizar/degrada; los objetivos KVM/Firecracker que reducirían el disco no están disponibles | services:read | gratis |
get_plan_resources | Obtener recursos configurables para un plan | services:read | gratis |
calculate_plan_change | Vista previa de un cambio de plan: sin pago, el valor restante se convierte, por lo que una actualización adelanta la fecha de vencimiento | services:read | gratis |
change_plan | Cambiar el plan del VPS | services:manage | gratis |
Renovación y facturación
| Herramienta | Descripción | Alcance | De pago |
|---|---|---|---|
get_period_options | Obtener el período de facturación y las opciones de renovación automática | services:read | gratis |
set_auto_renew | Activar o desactivar la renovación automática | services:manage | De pago (renovaciones futuras) |
renew_service | Renovar manualmente un servicio | services:manage | De pago |
list_invoices | Listar facturas | payments:read | gratis |
get_invoice | Obtener una factura específica | payments:read | gratis |
list_payments | Listar el historial de pagos | payments:read | gratis |
get_usage_statements | Listar los estados de uso medido detallados por separado de las facturas | payments:read | gratis |
Pedidos
| Herramienta | Descripción | Alcance | De pago |
|---|---|---|---|
get_order_plans | Obtener los planes disponibles para un producto de servicio seleccionado explícitamente | ninguno | gratis |
get_order_options | Obtener las opciones configurables para un plan | ninguno | gratis |
order_service | Cotizar 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 privateNetworkId | ninguno | De pago: vps:order, vds:order, ds:order o fc:order (según el producto) |
Copias de seguridad
| Herramienta | Descripción | Alcance | De pago |
|---|---|---|---|
get_backup_status | Obtener el estado y la configuración de las copias de seguridad | services:read | gratis |
get_firecracker_backup_status | Obtener 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:read | gratis |
get_backup_history | Obtener el historial de copias de seguridad | services:read | gratis |
get_firecracker_backup_history | Obtener el historial de copias de seguridad nocturnas retenidas de VPS Firecracker, incluidos los intentos fallidos/en ejecución y la procedencia de consistencia. | services:read | gratis |
create_backup | Recuperar el contenido histórico de las copias de seguridad de VPS de contenedor con consentimiento de pago explícito y una clave de solicitud estable | services:manage | De pago |
Restauración
| Herramienta | Descripción | Alcance | De pago |
|---|---|---|---|
get_restore_status | Obtener la retención, el precio de restauración y cualquier restauración en curso | services:read | Requiere alcance de pago: services:restore |
list_restore_points | Listar los puntos de restauración de todo el servicio | services:read | gratis |
request_restore | De pago y destructivo: restaurar el disco completo del servicio desde un punto | services:read | De pago: services:restore |
list_restore_file_points | Listar los puntos de copia de seguridad navegables y si la búsqueda de carpetas está disponible (gratis) | services:read | gratis |
browse_restore_files | Poner en cola un trabajo de listado de directorio de copia de seguridad sin restaurar archivos | services:read | gratis |
get_restore_file_browse | Consultar un listado de directorio de copia de seguridad en cola (gratis, solo lectura) | services:read | gratis |
Claves SSH
| Herramienta | Descripción | Alcance | De pago |
|---|---|---|---|
list_ssh_keys | Listar todas las claves SSH | account:read | gratis |
get_ssh_key | Obtener una clave SSH específica | account:read | gratis |
create_ssh_key | Agregar una nueva clave SSH | account:manage | gratis |
delete_ssh_key | Eliminar una clave SSH | account:manage | gratis |
Claves de API
| Herramienta | Descripción | Alcance | De pago |
|---|---|---|---|
list_api_keys | Mostrar la clave de API que autentica esta conexión MCP | ninguno | gratis |
get_api_key | Obtener los metadatos no secretos de una clave activa | ninguno | gratis |
get_api_key_activity | Obtener la actividad de solicitudes retenida y limitada de la clave que llama y los totales registrados | ninguno | gratis |
get_api_key_inference_usage | Obtener el uso exacto de pago de VPSnet AI de la clave de inferencia que llama y el estado del límite | ninguno | gratis |
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
| Herramienta | Descripción | Alcance | De pago |
|---|---|---|---|
get_free_certificate_eligibility | Verificar la elegibilidad de la cuenta, la cuota, los modos de clave y las CA públicas actualmente listas | certificates:read | gratis |
preflight_free_certificate | Planificar nombres exactos, validación, entrega, custodia y CA sin emitir | certificates:read | gratis |
list_free_certificates | Listar las solicitudes de certificados sin costo propiedad del cliente y el estado del ciclo de vida | certificates:read | gratis |
get_free_certificate | Obtener una solicitud propia, el programa de renovación y el cronograma seguro | certificates:read | gratis |
get_free_certificate_instruction | Leer el estado de DNS automático o cada CNAME de DNS externo requerido | certificates:read | gratis |
create_free_certificate | Crear una solicitud DV sin costo, explícitamente aprobada e idempotente | certificates:manage | gratis |
download_free_certificate | Recuperar solo la hoja pública emitida y la cadena, nunca una clave privada | certificates:read | gratis |
manage_free_certificate | Herramienta de compatibilidad para clientes antiguos; use las acciones individuales a continuación | certificates:manage | gratis |
renew_free_certificate | Solicitar renovación anticipada para los nombres de certificado autorizados | certificates:manage | gratis |
revoke_free_certificate | Revocar un certificado propio después de la aprobación explícita | certificates:manage | gratis |
recheck_free_certificate | Volver a verificar la validación de un certificado pendiente | certificates:manage | gratis |
cancel_free_certificate | Cancelar una solicitud de certificado pendiente elegible | certificates:manage | gratis |
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
| Herramienta | Descripción | Alcance | De pago |
|---|---|---|---|
list_automatic_ssl_subscriptions | Listar las suscripciones SSL automáticas propiedad del cliente sin exponer las credenciales ACME | certificates:read | gratis |
get_automatic_ssl_subscription | Obtener una suscripción propia, su conjunto de dominios, el estado de renovación y la preparación | certificates:read | gratis |
quote_automatic_ssl_subscription | Cotizar un conjunto de dominios exacto en EUR sin cobrar | certificates:read | Cotización: certificates:order |
order_automatic_ssl_subscription | Confirmar y pagar la cotización de suscripción explícitamente aprobada | certificates:read | De pago: certificates:order |
list_automatic_ssl_actions | Listar los cambios visibles para el cliente en suscripciones y nombres DNS | certificates:read | gratis |
refresh_automatic_ssl_subscription | Programar una actualización de estado autoritativa de solo lectura | certificates:manage | gratis |
quote_automatic_ssl_domain | Cotizar un nombre DNS adicional en EUR sin cobrar | certificates:read | Cotización: certificates:order |
order_automatic_ssl_domain | Confirmar y pagar la cotización de nombre DNS explícitamente aprobada | certificates:read | De pago: certificates:order |
quote_automatic_ssl_renewal | Cotizar el siguiente término de suscripción elegible en EUR | certificates:read | Cotización: certificates:order |
order_automatic_ssl_renewal | Pagar por adelantado el siguiente término explícitamente aprobado desde el saldo de la cuenta | certificates:read | De pago: certificates:order |
manage_automatic_ssl_subscription | Herramienta de compatibilidad para clientes antiguos; use las acciones individuales a continuación | certificates:manage | gratis |
cancel_automatic_ssl_subscription | Cancelar una suscripción SSL automática propia | certificates:manage | gratis |
remove_automatic_ssl_domain | Eliminar un nombre DNS elegible de una suscripción | certificates:manage | gratis |
replace_automatic_ssl_domain | Corregir un nombre DNS elegible dentro de su ventana de corrección | certificates:manage | gratis |
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
| Herramienta | Descripción | Alcance | De pago |
|---|---|---|---|
list_certificate_catalog | Listar los productos DV/OV/EV publicados y las ofertas finales al cliente en EUR | certificates:read | gratis |
get_certificate_catalog_product | Obtener un producto publicado, sus capacidades y las ofertas actuales | certificates:read | gratis |
list_certificates | Listar los pedidos de certificados de pago propiedad del cliente y el estado de emisión | certificates:read | gratis |
get_certificate | Obtener un pedido de certificado de pago propio | certificates:read | gratis |
quote_certificate | Cotizar un certificado o renovación exacto sin cobrar | certificates:read | Cotización: certificates:order |
order_certificate | Confirmar y pagar una cotización de certificado explícitamente aprobada | certificates:read | De pago: certificates:order |
get_certificate_validation | Leer el estado de validación por nombre y un desafío pendiente visible para el propietario | certificates:read | gratis |
download_certificate | Descargar la hoja pública emitida y la cadena; las claves privadas nunca se devuelven | certificates:read | gratis |
list_certificate_actions | Listar las acciones de gestión duraderas visibles para el cliente | certificates:read | gratis |
refresh_certificate | Programar una reconciliación de estado de la autoridad certificadora de solo lectura | certificates:manage | gratis |
manage_certificate | Herramienta de compatibilidad para clientes antiguos; use las acciones individuales a continuación | certificates:manage | gratis |
cancel_certificate | Cancelar un pedido de certificado pendiente elegible | certificates:manage | gratis |
recheck_certificate_validation | Volver a verificar la validación del certificado | certificates:manage | gratis |
resend_certificate_validation | Reenviar un mensaje de validación de certificado después de la aprobación | certificates:manage | gratis |
change_certificate_validation | Cambiar el método de validación para un nombre de certificado | certificates:manage | gratis |
reissue_certificate | Solicitar una reemisión con el mismo nombre con una nueva CSR pública | certificates:manage | gratis |
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
| Herramienta | Descripción | Alcance | De pago |
|---|---|---|---|
list_domains | Listar dominios propiedad de la cuenta | domains:read | gratis |
get_domain | Obtener un dominio propio y su acción pendiente | domains:read | gratis |
list_domain_tlds | Listar TLDs actualmente habilitados para pedidos | domains:read | gratis |
check_domain_availability | Comprobar disponibilidad de dominio sin realizar pedido | domains:read | gratis |
get_domain_ordering_status | Obtener preparación de pedido de dominio no secreta | domains:read | gratis |
set_domain_nameservers | Poner en cola un cambio de servidor de nombres para un dominio propio | domains:manage | gratis |
list_domain_glue_records | Listar registros de direcciones de servidor de nombres del mismo dominio | domains:read | gratis |
create_domain_glue_record | Poner en cola la creación o actualización de un registro de direcciones de servidor de nombres | domains:manage | gratis |
delete_domain_glue_record | Poner en cola la eliminación de un registro de direcciones de servidor de nombres | domains:manage | gratis |
get_domain_parent_ds | Listar registros DS DNSSEC de la zona padre | domains:read | gratis |
add_domain_parent_ds | Poner en cola la adición de registros DS de la zona padre | domains:manage | gratis |
delete_domain_parent_ds | Poner en cola la eliminación de registros DS de la zona padre | domains:manage | gratis |
list_domain_contacts | Listar contactos de dominio propiedad de la cuenta | domains:read | gratis |
create_domain_contact | Crear un contacto de dominio | domains:manage | gratis |
update_domain_contact | Actualizar un contacto de dominio existente | domains:manage | gratis |
delete_domain_contact | Eliminar un contacto de dominio no utilizado | domains:manage | gratis |
quote_domain_register | Cotizar un registro de dominio sin cobrar | domains:read | Cotización: domains:order |
confirm_domain_register | Confirmar y pagar una cotización de registro exacta | domains:manage | De pago: domains:order |
quote_domain_transfer | Cotizar una transferencia de dominio sin cobrar | domains:read | Cotización: domains:transfer |
confirm_domain_transfer | Confirmar y pagar una cotización de transferencia exacta | domains:manage | De pago: domains:transfer |
quote_domain_renew | Cotizar la renovación de un dominio propio sin cobrar | domains:read | Cotización: domains:renew |
confirm_domain_renew | Confirmar y pagar una cotización de renovación exacta | domains:manage | De pago: domains:renew |
quote_domain_restore | Cotizar la restauración de un dominio en redención sin cobrar | domains:read | Cotización: domains:renew |
confirm_domain_restore | Confirmar y pagar una cotización de restauración exacta | domains:manage | De pago: domains:renew |
set_domain_auto_renew | Activar o desactivar la renovación automática de un dominio propio | domains:manage | De pago (renovaciones futuras) |
get_registrar_lock | Obtener el estado del bloqueo de transferencia del registrador; los cambios permanecen solo en el panel | domains:read | gratis |
DNS
| Herramienta | Descripción | Alcance | De pago |
|---|---|---|---|
list_service_dns_options | Listar zonas propias y direcciones de servicio disponibles para adjuntar DNS | dns:read | gratis |
attach_service_dns_record | Apuntar un nombre de zona propia a una dirección de servicio | dns:write | gratis |
list_dns_zones | Listar zonas DNS directas propiedad de la cuenta | dns:read | gratis |
create_dns_zone | Crear una zona nativa o secundaria en espera de verificación TXT de propiedad | dns:write | gratis |
get_dns_zone | Obtener registros deseados con IDs y un valor TXT de propiedad recuperable | dns:read | gratis |
reapply_dns_zone | Reintentar la publicación de una zona DNS publicada cuyo apply_state haya fallado. | dns:write | gratis |
get_dns_zone_diagnostics | Inspeccionar delegación, SOA, DNSSEC e higiene de registros | dns:read | gratis |
export_dns_zone | Exportar una zona nativa como archivo de zona estilo BIND | dns:read | gratis |
import_dns_zone | Importar registros limitados estilo BIND en una zona nativa | dns:write | gratis |
list_dns_templates | Listar plantillas de registros DNS definidas por el backend | dns:read | gratis |
apply_dns_template | Previsualizar o aplicar una plantilla de registros DNS | dns:write | gratis |
delete_dns_zone | Eliminar una zona DNS directa | dns:write | gratis |
verify_dns_zone | Verificar propiedad y publicar una zona pendiente o con verificación expirada | dns:write | gratis |
reissue_dns_zone_verification | Rotar TXT de propiedad para una zona pendiente o con verificación expirada tras comprobar su valor recuperable | dns:write | gratis |
get_dnssec | Obtener estado DNSSEC y material público DNSKEY/DS | dns:read | gratis |
set_dnssec | Activar o desactivar de forma segura la firma DNSSEC | dnssec:manage | gratis |
upsert_dns_record | Añadir una tupla nombre/tipo/contenido; una tupla idéntica actualiza TTL/comentario y reactiva el registro | dns:write | gratis |
update_dns_record | Reemplazar el contenido de un registro DNS no sistémico existente por ID de registro exacto | dns:write | gratis |
delete_dns_record | Eliminar un registro de estado deseado DNS directo | dns:write | gratis |
get_dns_service_status | Obtener estado del clúster DNS gestionado y endpoints publicados | dns:read | gratis |
get_dns_zone_history | Obtener historial reciente de cambios de zona y registros | dns:read | gratis |
list_ddns_tokens | Listar metadatos de tokens DDNS y ACME no secretos | dns:read | gratis |
create_ddns_token | Crear un token de actualización DDNS o ACME restringido | dns:write | gratis |
revoke_ddns_token | Revocar un token de actualización DDNS o ACME | dns:write | gratis |
Instantáneas
| Herramienta | Descripción | Alcance | De pago |
|---|---|---|---|
list_snapshots | Listar instantáneas de disco de Cloud VPS y política de facturación | services:read | gratis |
create_snapshot | Crear una instantánea de disco de Cloud VPS | services:manage | Facturado mientras se conserve |
rollback_snapshot | Revertir destructivamente un Cloud VPS a una instantánea | services:manage | gratis |
delete_snapshot | Eliminar una instantánea de disco de Cloud VPS y detener su facturación de conservación | services:manage | gratis |
list_firecracker_snapshots | Listar instantáneas temporales de Firecracker VPS y su expiración | services:read | gratis |
create_firecracker_snapshot | Crear una instantánea temporal de Firecracker VPS | services:manage | Facturado mientras se conserve |
rollback_firecracker_snapshot | Revertir destructivamente un Firecracker VPS a una instantánea | services:manage | gratis |
delete_firecracker_snapshot | Eliminar una instantánea de Firecracker VPS y detener su facturación de conservación | services:manage | gratis |
Rescate de Servicio
| Herramienta | Descripción | Alcance | De pago |
|---|---|---|---|
get_service_rescue | Obtener capacidad de rescate y sesión de rescate duradera actual | services:read | gratis |
enter_service_rescue | Reiniciar un servicio elegible en una imagen de rescate anunciada | services:rescue | gratis |
exit_service_rescue | Restaurar la configuración y estado de arranque exactos previos al rescate | services:rescue | gratis |
Funciones Firecracker
| Herramienta | Descripción | Alcance | De pago |
|---|---|---|---|
list_functions | Listar Funciones Firecracker facturadas por uso | services:read | gratis |
list_function_history | Leer historial paginado de invocaciones de Funciones Firecracker de toda la cuenta. | services:read | gratis |
get_function | Obtener una función, incluido el estado de integridad y valores protegidos cuando sean legibles | services:read | gratis |
create_function | Crear una Función Firecracker | services:manage | gratis |
update_function | Actualizar una función; los valores protegidos ilegibles requieren aprobación explícita de reemplazo | services:manage | gratis |
delete_function | Eliminar una Función Firecracker | services:manage | gratis |
invoke_function | Invocar una función con uso medido de CPU y memoria; una Idempotency-Key estable evita que reintentos exactos se ejecuten o facturen dos veces | services:manage | De pago: fn:invoke |
list_function_invocations | Listar invocaciones de una función, estado, duración y costo | services:read | gratis |
get_function_invocation | Obtener salida, registros y costo de uso de una invocación | services:read | gratis |
Servidores bajo demanda
| Herramienta | Descripción | Alcance | De pago |
|---|---|---|---|
get_temp_vm_options | Obtener estado de lanzamiento, perfiles, entradas de precios de compatibilidad y política exacta de almacenamiento/red | services:read | gratis |
quote_temp_vm | Inspeccionar la operación de cotización deshabilitada y su respuesta de próximamente | services:manage | Deshabilitado (próximamente) |
list_temp_vms | Listar sesiones de servidores bajo demanda de la cuenta y opciones actuales | services:read | gratis |
create_temp_vm | Inspeccionar la operación de creación deshabilitada; no se realiza pago ni asignación mientras el producto esté próximamente | services:manage | Deshabilitado (próximamente) |
get_temp_vm | Obtener una sesión de servidor bajo demanda propiedad del inquilino | services:read | gratis |
delete_temp_vm | Eliminar permanentemente un servidor bajo demanda tras reconocimiento explícito de pérdida de datos; no se inicia reembolso al cliente | services:manage | gratis |
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
| Herramienta | Descripción | Alcance | De pago |
|---|---|---|---|
get_guest_agent_status | Comprobar disponibilidad del agente invitado QEMU en un Cloud VPS | services:read | gratis |
Historial
| Herramienta | Descripción | Alcance | De pago |
|---|---|---|---|
get_login_history | Obtener historial de inicio de sesión de la cuenta | account:read | gratis |
get_management_history | Obtener historial de gestión/actividad | account:read | gratis |
Público
| Herramienta | Descripción | Alcance | De pago |
|---|---|---|---|
get_pricing | Obtener precios públicos | ninguno | gratis |
get_system_status | Obtener estado del sistema de VPSnet.com | ninguno | gratis |
get_faq | Obtener preguntas frecuentes | ninguno | gratis |
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.
| Herramienta | Descripción | Alcance | De pago |
|---|---|---|---|
get_network_payment_methods | Leer metadatos del método de pago sin iniciar el pago | ninguno | gratis |
get_networking_capabilities | Leer disponibilidad de red de la cuenta, cuota, opciones de creación y adjuntos elegibles al realizar el pedido | networking:read | gratis |
get_networking_features | Leer los límites de funciones de red actuales, opciones de DNS y extensiones de contrato admitidas. | networking:read | gratis |
get_networking_overview | Leer redes propias, cuota y instantánea de operaciones | networking:read | gratis |
get_networking_topology | Leer la topología de la cuenta con identidades con ámbito de red | networking:read | gratis |
list_networking_operations | Leer operaciones de red recientes y operations_has_more | networking:read | gratis |
get_networking_operation | Leer una operación de red o puerto aceptada | networking:read | gratis |
list_private_networks | Listar redes privadas propias, incluidas las que están pendientes de eliminación verificada. | networking:read | gratis |
get_private_network | Leer una red propia, incluidas las reservas DHCP, el progreso del cambio de DNS, la generación y project_id. | networking:read | gratis |
create_private_network | Crear una intención de red privada | networking:manage | gratis |
delete_private_network | Solicitar la eliminación de una red vacía | networking:manage | gratis |
retry_private_network | Reintentar solo la operación de red actual fallida; conservar su generación actual | networking:manage | gratis |
set_private_network_dns | Cambiar los servidores DNS de DHCP en el lugar | networking:manage | gratis |
set_private_network_names | Reemplazar la etiqueta completa de la zona DNS interna y la lista de alias | networking:manage | gratis |
list_private_network_ports | Leer los puertos de red propios, sus direcciones DHCP fijas, generaciones y estados de adjunto | networking:read | gratis |
list_service_private_ports | Leer puertos privados y estado de recuperación de adjuntos de pedido para un número de pedido de servicio propio. | networking:read | gratis |
list_network_attachment_candidates | Leer servicios adjuntables y cada attachment_mode | networking:read | gratis |
attach_private_network_port | Adjuntar un servicio propio; omitir ipv4 para asignación automática o pasar una dirección fija utilizable | networking:manage | gratis |
detach_private_network_port | Desadjuntar el puerto del servidor propio | networking:manage | gratis |
retry_private_network_port | Reintentar la operación de puerto actual fallida con la generación PORT y cualquier aprobación de reinicio requerida. | networking:manage | gratis |
get_network_vpn_summary | Leer el resumen de VPN de la red, incluida la ausencia veraz | networking:read | gratis |
get_network_routed_egress | Leer el acceso NAT/internet de esta red, la dirección pública y el estado de calificación. | networking:read | gratis |
set_network_routed_egress | Solicitar la transición NAT actualmente admitida para una red propia; el backend puede rechazar cambios de modo | networking:manage | gratis |
get_security_group_capabilities | Leer la disponibilidad de grupos de seguridad y si se puede cambiar la política predeterminada de la red. | networking:read | gratis |
list_network_security_groups | Listar grupos en el proyecto propio | networking:read | gratis |
create_network_security_group | Crear un conjunto de reglas de permiso con nombre | networking:manage | gratis |
update_network_security_group | Reemplazar el nombre completo del grupo y la lista de reglas en su revisión esperada | networking:manage | gratis |
delete_network_security_group | Eliminar un grupo de cliente no referenciado en su revisión esperada; los grupos referenciados son rechazados. | networking:manage | gratis |
clone_network_security_group | Clonar un grupo propio con un nombre nuevo; usar la revisión actual del grupo de origen. | networking:manage | gratis |
get_network_security_policy | Leer la política predeterminada, los grupos asignados y el estado de aplicación de la política | networking:read | gratis |
set_network_default_security_policy | Cambiar aceptar/rechazar para servidores sin grupos personalizados | networking:manage | gratis |
set_private_port_security_groups | Reemplazar la lista completa de grupos de cliente del puerto | networking:manage | gratis |
retry_network_security_policy | Reintentar la política de seguridad de red fallida usando su estado deseado actual. | networking:manage | gratis |
retire_network_security_policy | Retirar la política solo después de que sus puertos de servidor hayan desaparecido | networking:manage | gratis |
get_network_appliance_capabilities | Leer proveedores/niveles de balanceador de carga disponibles, calificación pública, capacidades de VPN y cuota | networking:read | gratis |
list_network_appliances | Leer balanceadores de carga y puertas de enlace VPN propios con un cursor de flujo. | networking:read | gratis |
get_network_appliance_billing | Leer líneas de dispositivos recurrentes visibles para el cliente y moneda actuales. | networking:read | gratis |
get_network_appliance_operation | Consultar una operación de dispositivo aceptada | networking:read | gratis |
list_network_load_balancers | Listar balanceadores de carga privados y públicos y estado de salud/calificación seguro para el cliente. | networking:read | gratis |
get_network_load_balancer | Leer un balanceador de carga propio, oyentes, miembros, generación y salud | networking:read | gratis |
estimate_network_load_balancer | Leer una estimación técnica del balanceador de carga para esta configuración exacta | networking:read | gratis |
delete_network_load_balancer | Solicitar el desmontaje del dispositivo en su generación actual; esto no es un reembolso ni una cancelación del período de pago | networking:manage | gratis |
add_network_load_balancer_member | Agregar una dirección de servidor privado adjunta al oyente seleccionado; el backend valida la membresía en esta red. | networking:manage | gratis |
remove_network_load_balancer_member | Eliminar un miembro de la rotación usando la generación del balanceador de carga. | networking:manage | gratis |
add_network_load_balancer_listener | Agregar un oyente y miembros iniciales opcionales usando las capacidades de protocolo ofrecidas actualmente | networking:manage | gratis |
remove_network_load_balancer_listener | Eliminar un oyente y sus miembros; se rechaza eliminar el último oyente. | networking:manage | gratis |
list_network_vpn_gateways | Listar puertas de enlace VPN propias, sus pares de dispositivos y estado seguro | networking:read | gratis |
get_network_vpn_gateway | Leer una puerta de enlace VPN propia, generación actual, pares de dispositivos, candidatos de concesión y capacidad de adjunto. | networking:read | gratis |
delete_network_vpn_gateway | Solicitar el desmontaje de una puerta de enlace VPN propia; todos los dispositivos pierden conectividad | networking:manage | gratis |
attach_network_vpn_gateway | Adjuntar o mover una VPN de cuenta a una red propia solo cuando se anuncie el adjunto independiente | networking:manage | gratis |
detach_network_vpn_gateway | Desadjuntar una VPN de cuenta de su red cuando sea compatible; conserva su período de pago y dispositivos, pero recrea la puerta de enlace | networking:manage | gratis |
set_vpn_server_access | Elegir accept o groups_only para el acceso de la VPN a los servidores adjuntos cuando esta capacidad esté disponible | networking:manage | gratis |
create_network_vpn_peer | Agregar un dispositivo con una clave de revelación PÚBLICA de un solo uso generada externamente | networking:manage | gratis |
take_network_vpn_peer_config | Consumir la configuración sellada del dispositivo UNA VEZ | networking:manage | gratis |
revoke_network_vpn_peer | Revocar un dispositivo usando la generación de la PUERTA DE ENLACE VPN | networking:manage | gratis |
set_network_vpn_peer_grants | Reemplazar la lista completa de servidores alcanzables del dispositivo cuando la VPN independiente esté disponible | networking:manage | gratis |
get_network_vpn_egress_options | Leer las salidas de Internet de VPN admitidas y la calificación | networking:read | gratis |
set_network_vpn_peer_egress | Establecer la política de salida elegida de un dispositivo: solo privada, NAT heredado o anunciada | networking:manage | gratis |
list_network_products | Leer 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:read | gratis |
list_network_product_periods | Leer períodos de producto propios, disponibilidad de renovación y hechos del ciclo de vida. | networking:read | gratis |
quote_network_product | Crear la cotización de pago exacta del producto de red para COMMON CHECKOUT | networking:manage | Cotización: networking:order |
quote_account_vpn | Crear una cotización de VPN de cuenta para el pago común cuando se anuncie vpn_account_order | networking:manage | Cotización: networking:order |
order_network_product | Confirmar una compra de pago común desde una cotización exacta aprobada | networking:manage | De pago: networking:order |
get_network_product_order | Leer el estado de pago y cumplimiento de un pedido de pago común propio | networking:read | gratis |
find_network_product_order | Recuperar 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:read | gratis |
quote_network_product_renewal | Cotizar el próximo mes de pago para un producto de red; sin cargo | networking:manage | Cotización: networking:order |
renew_network_product | Pagar la renovación exacta previamente divulgada desde el saldo de la cuenta | networking:manage | De pago: networking:order |
disable_network_product_auto_renew | Deshabilitar la renovación automática | networking:manage | gratis |
quote_vpn_period_renewal | Cotizar el próximo mes de la VPN en su alcance de pago real; sin cargo | networking:manage | Cotización: networking:order |
renew_vpn_period | Pagar 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:manage | De pago: networking:order |
disable_vpn_auto_renew | Deshabilitar la renovación automática de la VPN; el período de pago actual permanece | networking:manage | gratis |
list_network_public_addresses | Leer direcciones públicas de pago propias, límites de cuenta, soporte de destino y disponibilidad de compra. | networking:read | gratis |
get_network_public_address | Leer una dirección pública propia, adjunto y estado del período de pago. | networking:read | gratis |
quote_network_public_address | Cotizar una nueva dirección pública de pago para el pago común; sin cargo | networking:manage | Cotización: networking:order |
attach_public_address_to_network | Adjuntar o mover una dirección ya pagada al NAT de una red propia | networking:manage | gratis |
attach_public_address_to_server | Adjuntar o mover una dirección pública de pago propia a un puerto privado elegible de un servidor sin IP pública | networking:manage | gratis |
detach_network_public_address | Desadjuntar una dirección pública propia de su destino actual; permanece en propiedad durante el período de pago | networking:manage | gratis |
quote_public_address_renewal | Cotizar el próximo mes de la dirección sin cobrar; usar la cotización devuelta y esta clave para la confirmación. | networking:manage | Cotización: networking:order |
renew_network_public_address | Pagar la renovación de dirección aprobada desde el saldo con su ID/token de cotización exacto y la clave original. | networking:manage | De pago: networking:order |
disable_public_address_auto_renew | Deshabilitar la renovación automática de la dirección; la propiedad dura hasta paid_until | networking:manage | gratis |
get_network_public_binding | Leer la generación, el estado y la dirección asignada de un enlace público propio existente | networking:read | gratis |
bind_network_public_ip | Vincular un enlace público flotante ya reservado a un puerto privado propio cuando sea compatible | networking:manage | gratis |
move_network_public_ip | Mover un enlace público flotante preparado a otro puerto privado propio; confirmar la interrupción al destino anterior. | networking:manage | gratis |
configure_network_public_forwarding | Configurar los oyentes TCP/UDP de un enlace de reenvío reservado existente | networking:manage | gratis |
delete_network_public_binding | Solicitar la eliminación de un enlace existente usando su generación | networking:manage | gratis |
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.
get_order_planspara el producto, luegoget_order_optionspara el plan elegido (SO, período, IDs de recursos) ylist_ssh_keyspara el ID de la clave.order_serviceconplan,os,period,resources,sshKey(orootPassword, no ambos),payment: { payment: 1, successUrl: '', cancelUrl: '' }y unidempotencyKeyestable. La primera llamada devuelve un presupuesto sin cobrar. La clave API necesitavps:order(ovds:order,ds:order,fc:order) y límites de gasto.- 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
quoteTokendevuelto,expected_total_euryacknowledge_charge: true. Inspecciona el intento original en el panel si su resultado es desconocido; no crees otra clave para reintentarlo. - Consulta
get_servicepara 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.
get_networking_capabilities,list_network_productsyget_network_payment_methods(elige el métodosystem=balance).quote_network_productconkind(private_lb,proxy_lbovpn_gateway),tiery unidempotencyKey; muestra elgross_amounten EUR del presupuesto.- Tras la aprobación,
order_network_productcon el mismoidempotencyKey,quote_id,quoteToken, elpaymentdel saldo yacknowledge_charge: true. Si el resultado es incierto,find_network_product_orderpor elquote_idoriginal, luego consultaget_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.
list_dns_zonespara encontrar elzone_id, luegoget_dns_zonepara inspeccionar los registros existentes y sus IDs (necesitadns:read).- Para añadir un valor A, llama a
upsert_dns_recordconzone_id,name: "www",type: "A",content: "203.0.113.10",ttl: 300(necesitadns: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, usaupdate_dns_recordcon surecord_idexacto y el nombre, tipo, contenido y TTL deseados. get_dns_zonepara leer los registros deseados de vuelta, oget_dns_zone_historypara 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.
list_certificate_catalogyget_certificate_catalog_productpara elegir un producto y leer su oferta actual en EUR.quote_certificateconproduct_id,offer_id,offer_generation,common_name(más cualquieralternative_names), elcsrpúblico PKCS#10, los IDs de contacto propios y unidempotencyKey(necesitacertificates:order, operaciones de pago y límites). Nunca envíes una clave privada.- Tras la aprobación del usuario del total exacto,
order_certificatecon la misma solicitud, el mismoidempotencyKey, elquote_token, elpaymentyacknowledge_exact_quote_and_payment: true. get_certificate_validation(publica el desafío, por ejemplo a través deupsert_dns_record), luegodownload_certificateuna vez emitido.
Obtención de una clave API
- Inicia sesión en vpsnet.com
- Ve a Cuenta > Claves API
- Haz clic en Crear clave API
- 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
- Instala la CLI de Claude Code:
npm install -g @anthropic-ai/claude-code - Verifica:
claude --versiondebería mostrar un número de versión - Añade el servidor mediante la CLI:
claude mcp add vpsnet -- npx -y vpsnet-mcp - Reinicia VS Code por completo (no solo recargar la ventana)
- Revisa
~/.claude.jsonpara 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 ves | Qué significa | Solució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
rootcomo 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