VPSnet
Gerencie sua nuvem VPSnet: VPS KVM e Firecracker, aplicativos, Functions, redes definidas por software, DNS, domínios e certificados TLS. Você escolhe as permissões e quais servidores a conexão pode acessar.
Servidor MCP hospedado
npx add-mcp 'https://mcp.vpsnet.com/mcp'Instala no Claude Code, Codex, Cursor e outros
Documentação
vpsnet-mcp
Model Context Protocol (MCP) servidor para gerenciar serviços da VPSnet.com. Oferece a assistentes de IA acesso a operações do ciclo de vida de VPS, aplicativos gerenciados, zonas DNS, registro de domínios e contatos, cobrança, metadados de chaves de API, provisionamento de chaves SSH e ferramentas relacionadas à conta por meio da API VPSNet.
Recursos
- Mais de 280 ferramentas que cobrem gerenciamento de serviços VPSNet, aplicativos gerenciados, certificados TLS gratuitos e pagos, assinaturas SSL Automático, DNS, domínios, cobrança, chaves de API e operações de conta
- Gerenciamento de conta e perfil
- Ciclo de vida de VPS (iniciar, parar, reiniciar, reinstalar SO)
- Alterações de plano (upgrades/downgrades gratuitos; discos KVM/Firecracker não podem ser reduzidos)
- DNS reverso do serviço (registros rDNS/PTR)
- Zonas DNS diretas, registros, DNSSEC, modelos, importação/exportação e tokens DDNS
- Disponibilidade de domínios, contatos, cotações de registro/transferência/renovação/restauração e confirmações pagas
- Aplicativos gerenciados com publicação controlada, incluindo instalação, saúde, eventos e ações de ciclo de vida tipadas
- Gerenciamento de chaves SSH — implantar chaves e obter acesso direto ao servidor
- Inspeção de metadados de chaves de API (criação, alterações e revogação de chaves permanecem apenas na sessão)
- Backups, cobrança, faturas
- Solicitação de novas instâncias VPS
- Status do sistema e preços
Conector OAuth remoto
O perfil remoto também inclui DNS com escopo, gerenciamento de domínios e certificados, chaves SSH públicas, recuperação de servidor e navegação de backups. Ele usa as mesmas APIs de cliente do painel; as permissões são aplicadas pelo backend em cada solicitação.
O conector remoto usa https://mcp.vpsnet.com/mcp e consentimento do cliente por meio da
VPSnet. Consulte Conexões de IA remotas para configuração de conexão,
permissões e operações suportadas.
O README do plugin distribuível, manifestos e habilidades estão em inglês. Consulte prontidão do diretório para validação de pacotes e requisitos do editor, e casos de uso suportados para cenários de servidor, aplicativos e redes. A publicação no diretório e a disponibilidade da conta do provedor são separadas da instalação deste código-fonte.
Consulte Configuração de clientes de IA para Gemini CLI, Cursor, Kimi Code, Kiro, Cline e outros clientes OAuth remotos. Os pacotes deles compartilham o mesmo endpoint VPSnet e habilidades de tarefas. O pacote npm fornece o servidor MCP local; os pacotes de plugin instaláveis também carregam o manifesto e as habilidades do aplicativo de IA.
Compile todos os pacotes de clientes com python3 scripts/package-distribution.py.
A saída inclui somas de verificação e identifica cada formato. Os materiais de
submissão ao diretório público estão em o kit de catálogo.
Pedidos usam a conexão VPSnet existente, com permissões de compra controladas pelo cliente e limites de gastos. A IA mostra o preço final e pede aprovação antes de cobrar o saldo da conta. A disponibilidade segue as regras de distribuição do aplicativo.
As instruções abaixo descrevem o cliente local existente via stdio/chave de API.
Pré-requisitos
Antes de instalar, certifique-se de ter:
-
Node.js 20 ou mais recente
- Verifique:
node --version - Linux/macOS: nodejs.org ou seu gerenciador de pacotes
- Windows:
winget install OpenJS.NodeJS.LTSou baixe de nodejs.org - Após instalar o Node.js, reinicie seu terminal/editor
- Verifique:
-
Para usuários do Claude Code (extensão CLI ou VS Code):
- CLI do Claude Code instalado globalmente:
npm install -g @anthropic-ai/claude-code - Verifique:
claude --version
- CLI do Claude Code instalado globalmente:
-
Conta ativa na VPSnet.com com uma chave de API (consulte Obtendo uma chave de API)
Caminhos de configuração de credenciais
VPSNET_API_KEY é a credencial preferida por inicialização e tem precedência sobre arquivos.
Para configuração baseada em arquivos, defina VPSNET_CONFIG_DIR para o diretório absoluto
que contém .vpsnet-mcp-key ou .mcp.json. O arquivo de chave tem precedência sobre
mcpServers.vpsnet.env.VPSNET_API_KEY nesse arquivo JSON. Alternativamente,
VPSNET_API_KEY_FILE seleciona um caminho absoluto de arquivo de chave; um arquivo explícito
ilegível ou inválido falha na inicialização em vez de escolher outra conta.
Sem VPSNET_CONFIG_DIR, os arquivos são lidos apenas do diretório de inicialização do processo
(cwd). Isso é o mesmo para node /path/to/vpsnet-mcp/build/index.js e npx vpsnet-mcp: o diretório de instalação/cache do pacote e os diretórios pais nunca são
pesquisados. Defina o diretório explicitamente quando um editor ou cliente MCP iniciar
a partir de um diretório de trabalho diferente. Mantenha os arquivos de credenciais fora do controle de versão.
VPSNET_API_URL tem precedência sobre a URL nesse mesmo .mcp.json; as verificações
existentes de host confiável e HTTPS se aplicam a qualquer fonte.
Aplicativos gerenciados
Aplicativos gerenciados, SSH manual, DNS, APIs e outras superfícies de implantação são capacidades pares. A ordem deles neste documento e na lista de ferramentas não é uma recomendação. Escolha o caminho que melhor corresponda ao resultado solicitado pelo usuário, suporte alvo, estado existente e restrições explícitas. Uma entrada de catálogo é um caminho gerenciado disponível, não um motivo para substituir uma solicitação válida de implantação manual ou personalizada. Os aplicativos de catálogo são executados como contêineres Docker no servidor do cliente e usam ferramentas de instalação e ciclo de vida tipadas.
Leituras de aplicativos exigem applications:read. Alterações de instalação e ciclo de
vida exigem applications:manage e uma chave de idempotência; alterações comuns de ciclo de
vida de aplicativos não são operações pagas de
chave de API. Os valores de CPU, RAM e disco são recomendações de dimensionamento, não
portões de instalação: um aplicativo suportado permanece selecionável durante o pedido
e instalável abaixo desses valores. Compatibilidade de produto, SO, arquitetura e runtime
permanecem requisitos rígidos. As alterações são assíncronas, então verifique-as
com get_application_installation e get_application_events. Use
get_application_health para uma inspeção nova de saúde do contêiner e
get_application_logs para logs de solução de problemas recentes com limite de tamanho, opcionalmente
limitados a um único serviço Compose exato. As inspeções de logs aceitam no máximo 500 linhas
e 131.072 bytes. Essas duas inspeções de leitura criam
trabalhos de inspeção de curta duração, então a chave de API deve permitir solicitações POST.
Os detalhes de instalação incluem histórico limitado de CPU, memória,
rede, reinicialização e armazenamento do aplicativo e por contêiner quando o worker o relata. Os contêineres são
identificados apenas pelo serviço Compose e ordinal. Use
configure_application_resource_thresholds após confirmação explícita para
substituir limites de exibição opcionais. Valores omitidos limpam um limite; os
limites apenas destacam medições e não impõem recursos, acionam
ações no servidor ou afetam a cobrança. Defina email_enabled após confirmação
explícita para enviar um e-mail de conta quando um limite for atingido e um quando
for recuperado; medições repetidas acima do mesmo limite não reenviam.
Use configure_application_access para alterar como um aplicativo instalado é
alcançado. Leia a instalação primeiro e passe sua revisão atual com uma nova
chave de idempotência. platform_https aloca um hostname VPSnet opaco com
DNS e HTTPS automáticos, private não tem listener público, public_http usa
o IP público do servidor via HTTP, e managed_https usa uma zona DNS
gerenciada pela VPSnet elegível. external_https registra um endereço HTTPS existente
gerenciado pelo cliente; a VPSnet não configura nem valida seu DNS, certificado TLS
ou proxy reverso.
Um acesso managed_https também pode listar additional_addresses (até 4 por
endpoint, 8 por aplicativo): outros nomes nas zonas DNS VPSnet do próprio cliente,
cada um com zone_id, name, action e approve_dns: true. Um
name ou "@" vazio é o domínio nu da zona, então example.com pode ficar ao lado de
www.example.com. action é redirect (padrão; um 301 para o endereço principal
que mantém o caminho e a consulta) ou serve (abre o mesmo aplicativo). Adicionar
ou remover um endereço adicional nunca altera o endereço principal. A lista é
o conjunto desejado completo: uma alteração de acesso que omite additional_addresses
remove os salvos, então passe-os novamente para mantê-los. Endereços
adicionais são recusados em todos os outros modos de acesso, e a VPSnet não cobra nada
por eles.
list_application_registry_credentials expõe apenas metadados de credenciais de registro
privado. A criação e rotação de tokens de registro não são intencionalmente ferramentas MCP:
use o painel VPSnet ou a API REST direta para que um token nunca entre em um prompt de modelo ou
argumento de ferramenta. Os metadados podem identificar Docker Hub, GHCR ou um hostname de registro
HTTPS personalizado exato.
Receitas de clientes são definições Compose de propriedade do cliente, separadas dos blueprints de catálogo da VPSnet. Elas podem ser validadas no worker alvo, salvas como revisões imutáveis, instaladas por meio do ciclo de vida gerenciado e exportadas sem valores secretos. Receitas de catálogo da VPSnet nunca são exportáveis. A descoberta de contêineres é limitada e somente leitura: ela relata contêineres de clientes e gerenciados sem retornar valores de ambiente ou montagens, e nunca adota ou modifica contêineres detectados. A adoção controlada é um fluxo separado de preparação, inspeção e confirmação explícita para um projeto Compose elegível. A aquisição inicial é única, mas sua vinculação exata de volume externo permanece assinada em ações posteriores do ciclo de vida. A recuperação reinicia a fonte somente após a substituição gerenciada estar conclusivamente contida; resultados incertos falham de forma segura.
Uma atualização imutável está disponível somente quando get_application_installation
retorna uma entrada available_actions com type: "update". Após confirmação explícita do
usuário, chame update_application com o
expected_blueprint_version e expected_upstream_version anunciados exatos, e uma
nova chave de idempotência. As chaves são globais ao cliente: reutilize uma chave apenas para repetir a
mesma solicitação exata, nunca para outro serviço ou operação. O
backend seleciona e congela a versão publicada elegível; o chamador não
envia uma imagem, tag ou versão alvo.
Nenhum backup separado do aplicativo é criado. Em serviços Firecracker suportados,
list_application_restore_points retorna pontos noturnos opacos de VM inteira consistentes com o aplicativo
para a revisão exata da instalação atual.
Visualizar pontos é gratuito, mas chaves de API exigem applications:manage, operações pagas
habilitadas, escopo pago applications:restore e acesso total porque
a resposta inclui o saldo da conta.
quote_application_data_restore congela a
cobrança exata sem debitar a conta. restore_application_data exige o
token de cotação retornado, a mesma chave de idempotência e confirmação explícita de
pagamento e substituição de dados. Chaves de API pagas também exigem
applications:restore, operações pagas habilitadas e limites de gastos diários/mensais.
Ele substitui apenas
dados de aplicativos declarados derivados do worker, exclui segredos e dados não relacionados
de Docker/servidor, e exige capacidade de reversão. Consulte
get_application_data_restore; needs_attention permanece bloqueado e não deve
ser tratado como sucesso. Essas ferramentas nunca aceitam ou expõem credenciais PBS,
nomes de arquivos, dispositivos ou caminhos de sistema de arquivos.
As respostas de lista e detalhes de instalação carregam um bloco capabilities por plataforma
— data_restore, console, compose_adoption, custom_projects e
log_service_filter — além de um sinalizador access.capabilities.can_configure
separado. Trate esses sinalizadores como a autoridade sobre o que uma instalação suporta
em vez de tentar uma ação e ler a falha.
A desinstalação exclui permanentemente os contêineres gerenciados, configuração, credenciais
salvas e dados do aplicativo; os backups existentes do servidor são retidos. A
chamada uninstall_application exige acknowledge_data_loss=true,
e ela só deve ser definida após confirmação explícita do usuário.
A superfície MCP é orientada a tarefas, em vez de um espelho um-para-um de cada rota REST. Integrações legadas de callback de micro-pagamento e macro-pagamento por SMS permanecem disponíveis por meio da API REST documentada e do painel de controle, mas são intencionalmente não expostas como ferramentas MCP. Rotas públicas de pedido pré-login e busca de domínios também têm equivalentes MCP autenticados onde uma operação de conta precisa deles.
Certificados TLS e SSL Automático
Os produtos de certificado não se limitam a aplicações gerenciadas. Pedidos portáteis de DV, OV e EV podem ser instalados em servidores web controlados pelo cliente, proxies, servidores de e-mail, balanceadores de carga, APIs ou outros sistemas compatíveis com TLS. Assinaturas automáticas de SSL, por outro lado, conectam um cliente ACME compatível na VPSnet ou em outro provedor e mantêm certificados de curta duração atualizados durante o período pago.
Contas elegíveis também podem solicitar certificados DV portáteis sem custo por meio de
get_free_certificate_eligibility → preflight_free_certificate →
create_free_certificate. Para implantação via API ou assistente, crie uma CSR no
destino e mantenha a chave privada lá; o MCP aceita apenas a CSR pública e
posteriormente retorna apenas a cadeia de certificados pública. Chaves gerenciadas pela VPSnet suportam
renovação antecipada não assistida, mas sua exportação permanece somente no portal, protegida por verificação em duas etapas. Certificados gratuitos, arquivos de certificados pagos, SSL automático pago
e HTTPS gerenciado de aplicações são produtos e superfícies de ciclo de vida separados.
Use list_certificate_catalog para distinguir portable_certificate de
ofertas acme_subscription. O SSL automático segue
quote_automatic_ssl_subscription → order_automatic_ssl_subscription, com
a solicitação exata inalterada, token de cotação, chave de idempotência e aprovação explícita de pagamento. Leia o estado com list_automatic_ssl_subscriptions e
get_automatic_ssl_subscription. Nomes adicionais usam
quote_automatic_ssl_domain → order_automatic_ssl_domain; a API impede
pagar duas vezes por nomes já cobertos pelas regras base/www ou curinga/base.
Durante os últimos 30 dias, um próximo termo elegível usa
quote_automatic_ssl_renewal → order_automatic_ssl_renewal e é pré-pago
somente a partir do saldo da conta após a aprovação do total exato em EUR. Cancelamento,
remoção de domínio e correção do mesmo tipo usam cancel_automatic_ssl_subscription,
remove_automatic_ssl_domain e replace_automatic_ssl_domain;
estado ambíguo é reconciliado com refresh_automatic_ssl_subscription, nunca
inventando uma segunda mutação. Credenciais privadas do servidor ACME e EAB permanecem
no portal do cliente protegido por duas etapas e estão intencionalmente indisponíveis
para chaves de API e MCP, portanto não podem entrar no contexto do modelo.
Restaurando um serviço inteiro
request_restore é pago e destrutivo: ele cobra o preço da restauração do
saldo da conta e sobrescreve o disco do serviço inteiro com o ponto de backup,
perdendo tudo o que foi escrito desde então. É uma chamada de confirmação, não uma consulta de preço —
a API recusa um corpo que não contenha uma confirmação explícita,
e recusa a cobrança imediatamente se o preço mudou desde que foi divulgado.
Não há diálogo nesta superfície para coletar essa confirmação, então a ferramenta
não a fabrica. acknowledge_data_replacement e
acknowledge_restore_charge devem ser cada um true, e só devem ser definidos após
o usuário ter realmente aprovado a substituição do disco e a cobrança — a mesma
regra de acknowledge_data_loss em uninstall_application. Omitir qualquer um deles é um
erro de esquema, então um chamador não assistido não pode cair em uma cobrança: nada
é sequer cotado.
expected_total_charged é o total_charged com IVA incluído que você leu de
get_restore_status e mostrou ao usuário, passado de volta inalterado. Não
releia logo antes da chamada: ele deve ser o valor que o cliente
concordou, e um número recém-buscado concordaria com qualquer que seja o preço
atual e anularia a verificação completamente. Se o preço mudou, a restauração é
recusada como restoreQuoteChanged com o total atual e nada é cobrado;
divulgue o novo valor, obtenha aprovação novamente e tente novamente.
Navegando dentro de um backup
Olhar dentro de um backup é gratuito e completamente separado de pagar para restaurar
um. list_restore_file_points, browse_restore_files e
get_restore_file_browse apenas leem a listagem de diretórios de um backup: eles nunca
cobram da conta, nunca sobrescrevem o disco e nunca colocam um arquivo de volta no
servidor. Inicialmente suportado em VPS Firecracker.
A navegação é assíncrona. browse_restore_files cria um trabalho persistido e
enfileira atividade do worker, então sua anotação MCP é readOnlyHint: false mesmo
que o backup e o servidor em execução permaneçam inalterados. Ele retorna um ID de navegação em um
estado pendente; consulte get_restore_file_browse até que state seja succeeded.
As entradas existem apenas nesse estado — uma navegação failed carrega um errorCode e
nenhuma listagem, e não deve ser apresentada como um diretório vazio.
Diretórios podem conter um número enorme de arquivos, então o servidor seleciona páginas
de 200 ou 1.000 entradas de acordo com a capacidade do worker. Quando
result.nextOffset não é nulo, chame novamente com o mesmo sourceBrowseId e
directoryEntryId e defina offset para esse cursor. Use result.pageSize
em vez de assumir 200 ao retroceder. Subdiretórios são acessados
com o id opaco de uma
entrada type: "directory"; caminhos de sistema de arquivos nunca são aceitos. Os tipos de entrada são
file, directory, symlink e unsupported.
A pesquisa de pastas (o argumento filter) corresponde aos nomes das entradas no
diretório que está sendo listado — substring sem diferenciar maiúsculas de minúsculas, nunca um caminho, nunca
recursivo. Ela depende de uma capacidade do worker que nós mais antigos não relatam, então
list_restore_file_points retorna searchAvailable. browse_restore_files
verifica esse sinalizador antes de enviar um filtro e falha com
serviceFileBrowseSearchUnavailable quando a pesquisa não é suportada, em vez de
retornar silenciosamente uma listagem sem filtro que seria confundida com resultados de
pesquisa. A navegação simples continua funcionando nesses nós.
Restaurar arquivos selecionados de volta ao servidor é uma operação paga e é deliberadamente não exposta aqui; use o painel da VPSnet para isso.
Fluxo de trabalho de acesso SSH
Este servidor MCP gerencia sua infraestrutura de VPS por meio da API da VPSnet.com, incluindo provisionamento de chaves SSH. Depois que uma chave SSH é implantada em uma VPS, o assistente de IA pode se conectar diretamente usando o terminal do seu ambiente (por exemplo, a ferramenta Bash do Claude Code, o terminal do Cline).
Fluxo típico:
- A IA lê a chave pública da máquina local (
~/.ssh/id_rsa.pub) - Envia para a VPSnet.com via
create_ssh_key - Implanta em uma VPS via
deploy_ssh_keycom permissão explícita devm:execpara OAuth remoto (ou a passa ao fazer o pedido comorder_service) - Conecta diretamente:
ssh root@<vps_ip>
A maioria dos ambientes de codificação de IA (Claude Code, Cline, Cursor, Codex) tem acesso integrado ao terminal, então a IA pode usar SSH na sua VPS imediatamente após implantar uma chave — sem ferramentas extras necessárias.
Para ambientes sem acesso SSH nativo, combine isso com mcp-server-ssh para conectividade direta ao servidor via ferramentas MCP.
Configuração 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"]
}
}
}
Começando
Escolha seu ambiente:
- Claude Code (CLI) — Codificação de IA baseada em terminal
- Claude Code para VS Code — Extensão do VS Code
- Claude Desktop — Aplicativo de desktop
- VS Code com GitHub Copilot — Modo agente do Copilot
- Cline / Cursor / Windsurf / Roo Code / Codex — Outros clientes
A configuração padrão funciona na maioria dos 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
Defina a variável de ambiente antes de executar:
export VPSNET_API_KEY="your_api_key_here"
export VPSNET_API_TIMEOUT_MS="45000"
Extensão Claude Code para VS Code
Esta seção é para a extensão Claude Code do VS Code, não para o GitHub Copilot. Se você usa VS Code com GitHub Copilot, veja a seção VS Code com GitHub Copilot em vez disso.
Passo 1: Instale o CLI do Claude Code globalmente (necessário para a extensão):
npm install -g @anthropic-ai/claude-code
Passo 2: Adicione o servidor MCP via CLI:
claude mcp add vpsnet -- npx -y vpsnet-mcp
Passo 3: Adicione sua chave de API. Edite ~/.claude.json (ou C:\Users\<username>\.claude.json no Windows), encontre a seção do servidor vpsnet e adicione o bloco 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"
}
}
Passo 4: Reinicie o VS Code completamente (Ctrl+Shift+P > "Recarregar Janela" ou feche e reabra).
Passo 5: Verifique perguntando ao Claude: "Obtenha minhas informações da conta VPSnet"
Usuários do Windows: Use PowerShell ou CMD (não Git Bash) ao executar comandos
claude mcp add.
O comando
code --add-mcpNÃO funciona com a extensão Claude Code — isso é apenas para o VS Code Copilot.
Claude Desktop
Siga o guia de instalação do MCP, use a configuração padrão acima.
Cline
Abra as configurações de MCP do Cline e adicione ao seu 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 o CLI do Codex:
codex mcp add vpsnet --env VPSNET_API_KEY=your_api_key_here -- npx -y vpsnet-mcp
Ou edite ~/.codex/config.toml:
[mcp_servers.vpsnet]
command = "npx"
args = ["-y", "vpsnet-mcp"]
[mcp_servers.vpsnet.env]
VPSNET_API_KEY = "your_api_key_here"
Se o Node.js padrão do seu sistema for mais antigo que 20 (comum com nvm — verifique com node --version), envolva o comando para que o nvm carregue a versão correta:
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: O Codex requer acesso à rede para instalar pacotes via npx. Se você executar o Codex em um sandbox restrito sem rede, as instalações via npx falharão.
Cursor
Vá para Configurações do Cursor > MCP > Adicionar novo servidor MCP. Use o tipo de comando com o comando npx -y vpsnet-mcp. Ou adicione manualmente ao .cursor/mcp.json:
{
"mcpServers": {
"vpsnet": {
"command": "npx",
"args": ["-y", "vpsnet-mcp"],
"env": {
"VPSNET_API_KEY": "your_api_key_here"
}
}
}
}
Roo Code
Abra as configurações de MCP do Roo Code e adicione ao 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 com GitHub Copilot
Instale usando o CLI do VS Code:
code --add-mcp '{"name":"vpsnet","command":"npx","args":["-y","vpsnet-mcp"],"env":{"VPSNET_API_KEY":"your_api_key_here"}}'
Ou adicione à sua configuração MCP do VS Code manualmente usando a configuração padrão acima.
Isso é para o modo agente do GitHub Copilot no VS Code. Para a extensão Claude Code, veja a seção Extensão Claude Code para VS Code.
Windsurf
Siga a documentação MCP do Windsurf. Use a configuração padrão acima.
Usuários do Windows
- Use PowerShell ou CMD (não Git Bash) para comandos
claude mcp add - Local do arquivo de configuração:
C:\Users\<YourUsername>\.claude.json - Instale o Node.js:
winget install OpenJS.NodeJS.LTSou baixe de nodejs.org - Após instalar o Node.js, reinicie seu terminal e o VS Code
- Variáveis de ambiente na extensão Claude Code devem estar no objeto
envdentro de.claude.json, NÃO em variáveis de ambiente do sistema
Variáveis de ambiente
| Variável | Obrigatória | Descrição |
|---|---|---|
VPSNET_API_KEY | Sim | Sua chave de API da VPSnet.com |
VPSNET_API_URL | Não | URL base da API (padrão é https://api.vpsnet.com); qualquer host https://*.vpsnet.com configurado para sua implantação |
VPSNET_AI_URL | Não | Runtime SSH delegado; produção usa https://ai.vpsnet.com. Não produção requer a origem da API aprovada seguida por /ai-control. |
VPSNET_AI_API_ORIGIN | Somente SSH não produção | Origem HTTPS da API VPSnet aprovada pelo operador; deve corresponder exatamente a VPSNET_API_URL. Defina ambas as variáveis de runtime privadamente para uma implantação não produção. |
VPSNET_API_TIMEOUT_MS | Não | Tempo limite por solicitação (padrão 45000) |
As solicitações saem da máquina que executa este servidor, não do seu navegador. Uma
implantação que restringe o acesso por endereço de origem pode responder a uma solicitação
bloqueada com uma página HTML 403 do seu servidor web; o resultado da ferramenta então diz
isso (non_api_response: true, http_status: 403) em vez de passar a página adiante.
Todo resultado de erro carrega http_status; um 429 também carrega retry_after.
Autenticação, escopos e operações pagas
Toda solicitação é enviada com o cabeçalho X-API-KEY (VPSNET_API_KEY).
- Use uma chave de gerenciamento. Seu nível de acesso é
full(leitura e alteração) ouread(somente GET). Uma chave com escopo de IA é emitida apenas para inferência do assistente de IA do VPSnet e é recusada em todas as rotas de conta, então nenhuma ferramenta aqui funciona com ela; o resultado de erro trazauth_problemcom o motivo e a correção. - Escopos granulares apenas restringem uma chave. Uma chave com lista de escopos vazia mantém
tudo o que seu nível de acesso permite; listar escopos (por exemplo,
dns:read,services:manage) a restringe.X:manageincluiX:read. Rede é a exceção:networking:read/networking:manage/networking:ordernunca são implícitos porfulloureade devem ser concedidos explicitamente. - Operações pagas são uma etapa separada. Uma ferramenta marcada como
PaidouQuotenas tabelas abaixo precisa de uma chave com acessofull,paid_operations_enabled, o escopo pago nomeado (vps:order,vds:order,ds:order,fc:order,domains:order,domains:renew,domains:transfer,certificates:order,applications:restore,services:restore,fn:invoke,networking:order), limites de gastos diários e mensais configurados, e umidempotencyKeyestável (reutilize a mesma chave para repetir uma tentativa incerta, nunca uma nova). Pedidos seguem cotação e depois confirmação com oquoteTokenretornado; divulgue o total exato em EUR ao usuário antes de confirmar. Uselist_api_keyspara ver os escopos da sua chave, escopos pagos, limites e taxa de requisições. - Limites de taxa. Requisições são limitadas por chave (
rate_limitemlist_api_keys, requisições por minuto). Em HTTP429, aguarde e tente novamente apósretry_aftersegundos em vez de tentar imediatamente. - Chaves de API nunca podem criar, alterar ou revogar chaves de API, e nunca recebem acesso de administrador.
Ferramentas
As tabelas abaixo são geradas: edite scripts/tool-scopes.json (ou o registro
da ferramenta) e execute npm run docs:tools; npm test falha quando elas divergem.
Escopo é o escopo granular de chave de API que a ferramenta precisa (none = qualquer chave
de gerenciamento; a + b = ambos; a or b = qualquer um, dependendo do objeto). Pago:
Paid: x gasta o saldo da conta e precisa do escopo pago x além das etapas
acima; Quote: x cria uma cotação de preço sem cobrar, mas é limitado da mesma
forma; Paid sozinho cobra o saldo com uma chave de acesso full e sem escopo pago
separado; Needs paid scope: x é uma leitura que expõe dados de saldo ou preço;
Billed while kept significa gratuito por uma janela inicial, depois medido; free é
todo o resto.
Conta
| Ferramenta | Descrição | Escopo | Pago |
|---|---|---|---|
get_account | Obter informações da conta (ID do usuário, e-mail, saldo, taxa de IVA) | nenhum | gratuito |
get_profile | Obter detalhes do perfil do usuário (nome, endereço, empresa) | account:read | gratuito |
Serviços
| Ferramenta | Descrição | Escopo | Pago |
|---|---|---|---|
list_services | Listar todos os serviços VPS ativos | services:read | gratuito |
get_service | Obter informações detalhadas de um serviço | services:read | gratuito |
get_service_graphs | Obter uma série de gráfico: métrica (cpu, ram, ssd, net, io, …) e período (5m … 1y) | services:read | gratuito |
get_event | Ler o estado de uma ação assíncrona pelo seu id event ou UUID noty | services:read ou account:read | gratuito |
wait_for_event | Consultar uma ação assíncrona até concluir ou erro (ou um tempo limite) | services:read ou account:read | gratuito |
get_service_history | Obter histórico de ações de um serviço | services:read | gratuito |
Aplicações Gerenciadas
| Ferramenta | Descrição | Escopo | Pago |
|---|---|---|---|
list_application_catalog | Listar aplicações publicadas compatíveis com um serviço | applications:read | gratuito |
list_service_applications | Listar aplicações instaladas e seleção pendente de checkout | applications:read | gratuito |
get_application_installation | Obter estado observado, saúde, desvio, endpoints, componentes, histórico de recursos e limites | applications:read | gratuito |
get_application_events | Obter eventos de instalação limitados e seguros para o cliente | applications:read | gratuito |
get_application_health | Executar e consultar uma inspeção nova de saúde de contêiner | applications:read | gratuito |
get_application_logs | Executar e consultar uma inspeção de logs recentes com limite de tamanho | applications:read | gratuito |
get_application_inspection | Consultar a inspeção exata persistida de saúde ou logs retornada por get_application_health ou get_application_logs quando permanecer pendente. | applications:read | gratuito |
list_application_restore_points | Listar pontos noturnos elegíveis para a revisão exata da aplicação | applications:manage | Precisa de escopo pago: applications:restore |
quote_application_data_restore | Congelar a cobrança exata de saldo de restauração seletiva sem pagamento | applications:manage | Cotação: applications:restore |
restore_application_data | Pagar e enfileirar substituição seletiva confirmada de dados declarados da aplicação | applications:manage | Pago: applications:restore |
get_application_data_restore | Consultar uma restauração seletiva de dados vinculada ao locatário | applications:read | gratuito |
list_application_registry_credentials | Listar metadados de credenciais de registro privado não secretos | applications:read | gratuito |
validate_application_recipe | Validar Compose do cliente contra a política do worker de destino | applications:manage | gratuito |
get_application_recipe_validation | Consultar a validação exata persistida de receita do cliente retornada por validate_application_recipe ou uma criação/revisão de receita pendente. | applications:read | gratuito |
list_application_recipes | Listar projetos de receita imutáveis de propriedade do cliente | applications:read | gratuito |
list_application_recipe_revisions | Listar revisões imutáveis de uma receita do cliente | applications:read | gratuito |
create_application_recipe | Validar e salvar uma nova receita do cliente sem instalá-la | applications:manage | gratuito |
create_application_recipe_revision | Validar e salvar uma revisão imutável posterior de receita do cliente | applications:manage | gratuito |
export_application_recipe | Exportar apenas uma receita de propriedade do cliente sem valores secretos | applications:read | gratuito |
install_application_recipe | Instalar uma revisão exata validada de receita do cliente | applications:manage | gratuito |
discover_service_containers | Descobrir metadados de contêiner somente leitura limitados | applications:read | gratuito |
get_service_container_discovery | Consultar a descoberta exata persistida de contêineres de serviço retornada por discover_service_containers quando permanecer pendente. | applications:read | gratuito |
prepare_application_compose_adoption | Preparar e consultar um candidato limpo para um projeto Compose descoberto | applications:manage | gratuito |
get_application_compose_adoption | Consultar um candidato de adoção Compose vinculado ao locatário | applications:read | gratuito |
confirm_application_compose_adoption | Confirmar a aquisição exata da fonte após aprovação explícita | applications:manage | gratuito |
install_application | Enfileirar uma instalação gerenciada confirmada com versão fixada | applications:manage | gratuito |
configure_application_access | Enfileirar uma alteração de acesso confirmada de hostname de plataforma, privado, IP público, HTTPS gerenciado ou HTTPS externo gerenciado pelo cliente | applications:manage | gratuito |
configure_application_resource_thresholds | Substituir limites de recursos de aplicação não impositivos confirmados e preferência de e-mail de atingido/recuperado | applications:manage | gratuito |
manage_application | Ferramenta de compatibilidade para clientes antigos; use as ações individuais abaixo | applications:manage | gratuito |
reconcile_application | Reconciliar uma aplicação com sua configuração declarada | applications:manage | gratuito |
repair_application | Reparar o runtime de uma aplicação | applications:manage | gratuito |
restart_application | Reiniciar uma aplicação após confirmar interrupção | applications:manage | gratuito |
start_application | Iniciar uma aplicação parada | applications:manage | gratuito |
stop_application | Parar uma aplicação após confirmar interrupção | applications:manage | gratuito |
uninstall_application | Excluir uma aplicação após aprovação explícita de perda de dados | applications:manage | gratuito |
update_application | Aplicar a atualização imutável elegível com pré-condições exatas de versão | applications:manage | gratuito |
rollback_application | Enfileirar a transição reversa exata anunciada como type=rollback por get_application_installation. | applications:manage | gratuito |
cancel_application_action | Cancelar a ação enfileirada mais recente exata somente enquanto o backend a anunciar como cancelável | applications:manage | gratuito |
Ações de Serviço
| Ferramenta | Descrição | Escopo | Pago |
|---|---|---|---|
start_service | Iniciar um VPS parado | services:manage | gratuito |
stop_service | Parar um VPS em execução | services:manage | gratuito |
restart_service | Reiniciar um VPS | services:manage | gratuito |
console_service | Solicitar uma sessão de console fora de banda para um VPS em execução | services:manage | gratuito |
suspend_service | Suspender um Cloud VPS em execução | services:manage | gratuito |
resume_service | Retomar um Cloud VPS suspenso | services:manage | gratuito |
Configurações de Serviço
| Ferramenta | Descrição | Escopo | Pago |
|---|---|---|---|
get_hostname | Obter estado atual e automático do hostname do serviço | services:read | gratuito |
get_guest_nameservers | Obter a configuração salva do resolvedor DNS do convidado do servidor: nsData.type é own (padrões VPSnet) ou custom, com endereços IP de resolvedor ns1-ns4. | services:read | gratuito |
change_hostname | Alterar hostname do VPS | services:manage | gratuito |
reset_hostname | Restaurar o hostname automático gerenciado pelo VPSnet | services:manage | gratuito |
set_guest_nameservers | Alterar resolvedores DNS dentro de um servidor Linux suportado. | services:manage | gratuito |
change_root_password | Alterar senha root do VPS | services:manage | gratuito |
get_rdns | Obter registros rDNS atuais | services:read | gratuito |
change_rdns | Alterar registro de DNS reverso (PTR) | services:manage | gratuito |
clear_rdns | Limpar uma substituição de PTR e restaurar o valor automático | services:manage | gratuito |
flush_iptables | Limpar regras de iptables (útil quando bloqueado) | services:manage | gratuito |
get_title | Obter o título de exibição atual do serviço | services:read | gratuito |
change_title | Alterar título de exibição do serviço | services:manage | gratuito |
toggle_ipv6 | Habilitar ou desabilitar IPv6 | services:manage | gratuito |
toggle_extra_settings | Alternar ppp, fuse, tuntap ou nfs | services:manage | gratuito |
deploy_ssh_key | Implantar uma chave SSH em um VPS; OAuth remoto também requer vm:exec | services:manage | gratuito |
Reinstalação do SO
| Ferramenta | Descrição | Escopo | Pago |
|---|---|---|---|
get_os_options | Obter modelos de SO disponíveis | services:read | gratuito |
reinstall_os | Reinstalar o SO do VPS (destrói dados existentes). Cloud/Firecracker VPS também excluem snapshots existentes e exigem confirmSnapshotDelete explícito quando snapshots existem; esses snapshots não podem fornecer rollback após a reinstalação. Retorna um evento de aceitação noty; acompanhe o histórico do serviço para conclusão. | services:manage | gratuito |
Alterações de Plano (gratuitas)
| Ferramenta | Descrição | Escopo | Pago |
|---|---|---|---|
get_plan_options | Obter planos disponíveis para upgrade/downgrade; alvos KVM/Firecracker que reduziriam o disco não estão disponíveis | services:read | gratuito |
get_plan_resources | Obter recursos configuráveis para um plano | services:read | gratuito |
calculate_plan_change | Visualizar uma alteração de plano: sem pagamento, o valor restante é convertido, então um upgrade move o vencimento para antes | services:read | gratuito |
change_plan | Alterar plano do VPS | services:manage | gratuito |
Renovação e Cobrança
| Ferramenta | Descrição | Escopo | Pago |
|---|---|---|---|
get_period_options | Obter período de cobrança e opções de renovação automática | services:read | gratuito |
set_auto_renew | Ativar ou desativar a renovação automática | services:manage | Pago (renovações futuras) |
renew_service | Renovar um serviço manualmente | services:manage | Pago |
list_invoices | Listar faturas | payments:read | gratuito |
get_invoice | Obter uma fatura específica | payments:read | gratuito |
list_payments | Listar histórico de pagamentos | payments:read | gratuito |
get_usage_statements | Listar extratos detalhados de uso medido separadamente das faturas | payments:read | gratuito |
Pedidos
| Ferramenta | Descrição | Escopo | Pago |
|---|---|---|---|
get_order_plans | Obter planos disponíveis para um produto de serviço explicitamente selecionado | nenhum | gratuito |
get_order_options | Obter opções configuráveis para um plano | nenhum | gratuito |
order_service | Orçar um novo VPS e confirmar o total exato e o período após aprovação do cliente; opcionalmente anexar uma rede privada com privateNetworkId | nenhum | Pago: vps:order, vds:order, ds:order ou fc:order (por produto) |
Backups
| Ferramenta | Descrição | Escopo | Pago |
|---|---|---|---|
get_backup_status | Obter status e configuração do backup | services:read | gratuito |
get_firecracker_backup_status | Obter status do backup noturno fora do nó para um VPS Firecracker, incluindo contagem em execução e a proveniência de consistência do backup retido mais recente. | services:read | gratuito |
get_backup_history | Obter histórico de backups | services:read | gratuito |
get_firecracker_backup_history | Obter histórico de backups noturnos retidos de VPS Firecracker, incluindo tentativas com falha/em execução e proveniência de consistência. | services:read | gratuito |
create_backup | Recuperar conteúdo histórico de backup de VPS Container com consentimento explícito de pagamento e uma chave de solicitação estável | services:manage | Pago |
Restauração
| Ferramenta | Descrição | Escopo | Pago |
|---|---|---|---|
get_restore_status | Obter retenção, preço de restauração e qualquer restauração em andamento | services:read | Requer escopo pago: services:restore |
list_restore_points | Listar pontos de restauração do serviço inteiro | services:read | gratuito |
request_restore | Pago e destrutivo: restaurar o disco do serviço inteiro a partir de um ponto | services:read | Pago: services:restore |
list_restore_file_points | Listar pontos de backup navegáveis e se a pesquisa de pastas está disponível (gratuito) | services:read | gratuito |
browse_restore_files | Enfileirar um trabalho de listagem de diretório de backup sem restaurar arquivos | services:read | gratuito |
get_restore_file_browse | Consultar uma listagem de diretório de backup enfileirada (gratuito, somente leitura) | services:read | gratuito |
Chaves SSH
| Ferramenta | Descrição | Escopo | Pago |
|---|---|---|---|
list_ssh_keys | Listar todas as chaves SSH | account:read | gratuito |
get_ssh_key | Obter uma chave SSH específica | account:read | gratuito |
create_ssh_key | Adicionar uma nova chave SSH | account:manage | gratuito |
delete_ssh_key | Excluir uma chave SSH | account:manage | gratuito |
Chaves de API
| Ferramenta | Descrição | Escopo | Pago |
|---|---|---|---|
list_api_keys | Mostrar a chave de API que autentica esta conexão MCP | nenhum | gratuito |
get_api_key | Obter metadados não secretos de uma chave ativa | nenhum | gratuito |
get_api_key_activity | Obter a atividade de solicitação retida limitada da chave de chamada e totais registrados | nenhum | gratuito |
get_api_key_inference_usage | Obter o uso exato pago de IA VPSnet da chave de inferência de chamada e o estado do limite | nenhum | gratuito |
A criação, alteração e revogação de chaves de API exigem login por navegador/sessão. Elas não podem ser realizadas por uma conexão MCP autenticada com uma chave de API.
Certificados TLS gratuitos
| Ferramenta | Descrição | Escopo | Pago |
|---|---|---|---|
get_free_certificate_eligibility | Verificar elegibilidade da conta, cota, modos de chave e CAs públicas atualmente prontas | certificates:read | gratuito |
preflight_free_certificate | Planejar nomes exatos, validação, entrega, custódia e CA sem emitir | certificates:read | gratuito |
list_free_certificates | Listar solicitações de certificado sem custo de propriedade e estado do ciclo de vida | certificates:read | gratuito |
get_free_certificate | Obter uma solicitação de propriedade, cronograma de renovação e linha do tempo segura | certificates:read | gratuito |
get_free_certificate_instruction | Ler status de DNS automático ou todos os CNAMEs de DNS externo necessários | certificates:read | gratuito |
create_free_certificate | Criar uma solicitação DV sem custo explicitamente aprovada e idempotente | certificates:manage | gratuito |
download_free_certificate | Recuperar apenas a folha pública emitida e a cadeia, nunca uma chave privada | certificates:read | gratuito |
manage_free_certificate | Ferramenta de compatibilidade para clientes mais antigos; use as ações individuais abaixo | certificates:manage | gratuito |
renew_free_certificate | Solicitar renovação antecipada para os nomes de certificado autorizados | certificates:manage | gratuito |
revoke_free_certificate | Revogar um certificado de propriedade após aprovação explícita | certificates:manage | gratuito |
recheck_free_certificate | Reverificar validação para um certificado pendente | certificates:manage | gratuito |
cancel_free_certificate | Cancelar uma solicitação de certificado pendente elegível | certificates:manage | gratuito |
Para instalação portátil de API ou assistente, use customer_csr e retenha a
chave privada onde o CSR foi gerado. Uma solicitação gerenciada pode renovar sem supervisão,
mas o MCP não pode exportar sua chave privada. A emissão é assíncrona e limitada por cota:
consulte get_free_certificate, siga get_free_certificate_instruction e não
trate uma solicitação enfileirada como emitida.
Assinaturas SSL automáticas
| Ferramenta | Descrição | Escopo | Pago |
|---|---|---|---|
list_automatic_ssl_subscriptions | Listar assinaturas SSL automáticas de propriedade do cliente sem expor credenciais ACME | certificates:read | gratuito |
get_automatic_ssl_subscription | Obter uma assinatura de propriedade, seu conjunto de domínios, estado de renovação e prontidão | certificates:read | gratuito |
quote_automatic_ssl_subscription | Orçar um conjunto exato de domínios em EUR sem cobrar | certificates:read | Orçamento: certificates:order |
order_automatic_ssl_subscription | Confirmar e pagar pelo orçamento de assinatura explicitamente aprovado | certificates:read | Pago: certificates:order |
list_automatic_ssl_actions | Listar alterações de assinatura e nomes DNS visíveis ao cliente | certificates:read | gratuito |
refresh_automatic_ssl_subscription | Agendar uma atualização de status somente leitura autoritativa | certificates:manage | gratuito |
quote_automatic_ssl_domain | Orçar um nome DNS adicional em EUR sem cobrar | certificates:read | Orçamento: certificates:order |
order_automatic_ssl_domain | Confirmar e pagar pelo orçamento de nome DNS explicitamente aprovado | certificates:read | Pago: certificates:order |
quote_automatic_ssl_renewal | Orçar o próximo termo de assinatura elegível em EUR | certificates:read | Orçamento: certificates:order |
order_automatic_ssl_renewal | Pré-pagar o próximo termo explicitamente aprovado do saldo da conta | certificates:read | Pago: certificates:order |
manage_automatic_ssl_subscription | Ferramenta de compatibilidade para clientes mais antigos; use as ações individuais abaixo | certificates:manage | gratuito |
cancel_automatic_ssl_subscription | Cancelar uma assinatura SSL automática de propriedade | certificates:manage | gratuito |
remove_automatic_ssl_domain | Remover um nome DNS elegível de uma assinatura | certificates:manage | gratuito |
replace_automatic_ssl_domain | Corrigir um nome DNS elegível dentro de sua janela de correção | certificates:manage | gratuito |
SSL automático é uma assinatura ACME paga portátil. Funciona com um cliente compatível no VPSnet ou em outro provedor; não se limita a aplicações gerenciadas. A URL privada do servidor ACME e as credenciais EAB são reveladas apenas no portal do cliente protegido por dois fatores. Elas não são intencionalmente uma ferramenta MCP ou resposta de chave de API, então um assistente não pode copiá-las para o contexto do modelo.
Certificados TLS pagos
| Ferramenta | Descrição | Escopo | Pago |
|---|---|---|---|
list_certificate_catalog | Listar produtos DV/OV/EV publicados e ofertas finais ao cliente em EUR | certificates:read | gratuito |
get_certificate_catalog_product | Obter um produto publicado, suas capacidades e ofertas atuais | certificates:read | gratuito |
list_certificates | Listar pedidos de certificado pago de propriedade do cliente e estado de emissão | certificates:read | gratuito |
get_certificate | Obter um pedido de certificado pago de propriedade | certificates:read | gratuito |
quote_certificate | Orçar um certificado ou renovação exato sem cobrar | certificates:read | Orçamento: certificates:order |
order_certificate | Confirmar e pagar por um orçamento de certificado explicitamente aprovado | certificates:read | Pago: certificates:order |
get_certificate_validation | Ler estado de validação por nome e um desafio pendente visível ao proprietário | certificates:read | gratuito |
download_certificate | Baixar a folha pública emitida e a cadeia; chaves privadas nunca são retornadas | certificates:read | gratuito |
list_certificate_actions | Listar ações de gerenciamento duráveis visíveis ao cliente | certificates:read | gratuito |
refresh_certificate | Agendar uma reconciliação de status da autoridade certificadora somente leitura | certificates:manage | gratuito |
manage_certificate | Ferramenta de compatibilidade para clientes mais antigos; use as ações individuais abaixo | certificates:manage | gratuito |
cancel_certificate | Cancelar um pedido de certificado pendente elegível | certificates:manage | gratuito |
recheck_certificate_validation | Reverificar validação de certificado | certificates:manage | gratuito |
resend_certificate_validation | Reenviar uma mensagem de validação de certificado após aprovação | certificates:manage | gratuito |
change_certificate_validation | Alterar o método de validação para um nome de certificado | certificates:manage | gratuito |
reissue_certificate | Solicitar uma reemissão com o mesmo nome com um novo CSR público | certificates:manage | gratuito |
Certificados pagos são produtos de conta portáteis: os clientes podem instalá-los em Nginx, Apache, lighttpd, OpenLiteSpeed, HAProxy, Caddy, correio, API, balanceador de carga ou outros endpoints TLS. Eles são separados de HTTPS automático anexado a uma aplicação gerenciada pelo VPSnet. O MCP aceita apenas um CSR PKCS#10 público; a chave privada deve permanecer sob controle do cliente e nunca deve entrar em um argumento de ferramenta ou contexto de modelo. As respostas de orçamento contêm o preço final ao cliente em EUR, e o pedido requer aprovação explícita mais a mesma chave de idempotência e token de orçamento de curta duração.
Domínios
| Ferramenta | Descrição | Escopo | Pago |
|---|---|---|---|
list_domains | Listar domínios pertencentes à conta | domains:read | gratuito |
get_domain | Obter um domínio pertencente e sua ação pendente | domains:read | gratuito |
list_domain_tlds | Listar TLDs atualmente habilitados para pedido | domains:read | gratuito |
check_domain_availability | Verificar disponibilidade de domínio sem fazer pedido | domains:read | gratuito |
get_domain_ordering_status | Obter prontidão não confidencial para pedido de domínio | domains:read | gratuito |
set_domain_nameservers | Enfileirar alteração de nameserver para um domínio pertencente | domains:manage | gratuito |
list_domain_glue_records | Listar registros de endereço de nameserver do mesmo domínio | domains:read | gratuito |
create_domain_glue_record | Enfileirar criação ou atualização de um registro de endereço de nameserver | domains:manage | gratuito |
delete_domain_glue_record | Enfileirar exclusão de um registro de endereço de nameserver | domains:manage | gratuito |
get_domain_parent_ds | Listar registros DNSSEC DS da zona pai | domains:read | gratuito |
add_domain_parent_ds | Enfileirar adição de registros DS da zona pai | domains:manage | gratuito |
delete_domain_parent_ds | Enfileirar exclusão de registros DS da zona pai | domains:manage | gratuito |
list_domain_contacts | Listar contatos de domínio pertencentes à conta | domains:read | gratuito |
create_domain_contact | Criar um contato de domínio | domains:manage | gratuito |
update_domain_contact | Atualizar um contato de domínio existente | domains:manage | gratuito |
delete_domain_contact | Excluir um contato de domínio não utilizado | domains:manage | gratuito |
quote_domain_register | Orçar registro de domínio sem cobrança | domains:read | Orçamento: domains:order |
confirm_domain_register | Confirmar e pagar um orçamento exato de registro | domains:manage | Pago: domains:order |
quote_domain_transfer | Orçar transferência de domínio sem cobrança | domains:read | Orçamento: domains:transfer |
confirm_domain_transfer | Confirmar e pagar um orçamento exato de transferência | domains:manage | Pago: domains:transfer |
quote_domain_renew | Orçar renovação de um domínio pertencente sem cobrança | domains:read | Orçamento: domains:renew |
confirm_domain_renew | Confirmar e pagar um orçamento exato de renovação | domains:manage | Pago: domains:renew |
quote_domain_restore | Orçar restauração de um domínio em resgate sem cobrança | domains:read | Orçamento: domains:renew |
confirm_domain_restore | Confirmar e pagar um orçamento exato de restauração | domains:manage | Pago: domains:renew |
set_domain_auto_renew | Ativar ou desativar renovação automática para um domínio pertencente | domains:manage | Pago (renovações futuras) |
get_registrar_lock | Obter estado do bloqueio de transferência do registrador; alterações permanecem apenas no painel | domains:read | gratuito |
DNS
| Ferramenta | Descrição | Escopo | Pago |
|---|---|---|---|
list_service_dns_options | Listar zonas pertencentes e endereços de serviço disponíveis para anexação DNS | dns:read | gratuito |
attach_service_dns_record | Apontar um nome de zona pertencente para um endereço de serviço | dns:write | gratuito |
list_dns_zones | Listar zonas DNS diretas pertencentes à conta | dns:read | gratuito |
create_dns_zone | Criar uma zona nativa ou secundária aguardando verificação TXT de propriedade | dns:write | gratuito |
get_dns_zone | Obter registros desejados com IDs e um valor TXT de propriedade recuperável | dns:read | gratuito |
reapply_dns_zone | Repetir publicação de uma zona DNS publicada cujo apply_state falhou. | dns:write | gratuito |
get_dns_zone_diagnostics | Inspecionar delegação, SOA, DNSSEC e higiene de registros | dns:read | gratuito |
export_dns_zone | Exportar uma zona nativa como arquivo de zona estilo BIND | dns:read | gratuito |
import_dns_zone | Importar registros limitados estilo BIND em uma zona nativa | dns:write | gratuito |
list_dns_templates | Listar modelos de registros DNS definidos pelo backend | dns:read | gratuito |
apply_dns_template | Visualizar ou aplicar um modelo de registro DNS | dns:write | gratuito |
delete_dns_zone | Excluir uma zona DNS direta | dns:write | gratuito |
verify_dns_zone | Verificar propriedade e publicar uma zona pendente ou com verificação expirada | dns:write | gratuito |
reissue_dns_zone_verification | Rotacionar TXT de propriedade para uma zona pendente ou com verificação expirada após verificar seu valor recuperável | dns:write | gratuito |
get_dnssec | Obter estado DNSSEC e material público DNSKEY/DS | dns:read | gratuito |
set_dnssec | Ativar ou desativar com segurança a assinatura DNSSEC | dnssec:manage | gratuito |
upsert_dns_record | Adicionar uma tupla nome/tipo/conteúdo; uma tupla idêntica atualiza TTL/comentário e reativa o registro | dns:write | gratuito |
update_dns_record | Substituir o conteúdo de um registro DNS não sistêmico existente pelo ID exato do registro | dns:write | gratuito |
delete_dns_record | Excluir um registro de estado desejado de DNS direto | dns:write | gratuito |
get_dns_service_status | Obter status do cluster DNS gerenciado e endpoints publicados | dns:read | gratuito |
get_dns_zone_history | Obter histórico recente de alterações de zona e registro | dns:read | gratuito |
list_ddns_tokens | Listar metadados não confidenciais de tokens DDNS e ACME | dns:read | gratuito |
create_ddns_token | Criar um token atualizador DDNS ou ACME restrito | dns:write | gratuito |
revoke_ddns_token | Revogar um token atualizador DDNS ou ACME | dns:write | gratuito |
Snapshots
| Ferramenta | Descrição | Escopo | Pago |
|---|---|---|---|
list_snapshots | Listar snapshots de disco de Cloud VPS e política de cobrança | services:read | gratuito |
create_snapshot | Criar um snapshot de disco de Cloud VPS | services:manage | Cobrado enquanto mantido |
rollback_snapshot | Reverter destrutivamente um Cloud VPS para um snapshot | services:manage | gratuito |
delete_snapshot | Excluir um snapshot de disco de Cloud VPS e interromper sua cobrança de manutenção | services:manage | gratuito |
list_firecracker_snapshots | Listar snapshots temporários de Firecracker VPS e expiração | services:read | gratuito |
create_firecracker_snapshot | Criar um snapshot temporário de Firecracker VPS | services:manage | Cobrado enquanto mantido |
rollback_firecracker_snapshot | Reverter destrutivamente um Firecracker VPS para um snapshot | services:manage | gratuito |
delete_firecracker_snapshot | Excluir um snapshot de Firecracker VPS e interromper sua cobrança de manutenção | services:manage | gratuito |
Resgate de Serviço
| Ferramenta | Descrição | Escopo | Pago |
|---|---|---|---|
get_service_rescue | Obter capacidade de resgate e sessão de resgate durável atual | services:read | gratuito |
enter_service_rescue | Reiniciar um serviço elegível em uma imagem de resgate anunciada | services:rescue | gratuito |
exit_service_rescue | Restaurar a configuração e o estado exatos de inicialização pré-resgate | services:rescue | gratuito |
Funções Firecracker
| Ferramenta | Descrição | Escopo | Pago |
|---|---|---|---|
list_functions | Listar Funções Firecracker cobradas por uso | services:read | gratuito |
list_function_history | Ler histórico paginado de invocações de Função Firecracker em toda a conta. | services:read | gratuito |
get_function | Obter uma função, incluindo estado de integridade e valores protegidos quando legíveis | services:read | gratuito |
create_function | Criar uma Função Firecracker | services:manage | gratuito |
update_function | Atualizar uma função; valores protegidos ilegíveis exigem aprovação explícita de substituição | services:manage | gratuito |
delete_function | Excluir uma Função Firecracker | services:manage | gratuito |
invoke_function | Invocar uma função com uso medido de CPU e memória; uma Idempotency-Key estável impede que repetições exatas sejam executadas ou cobradas duas vezes | services:manage | Pago: fn:invoke |
list_function_invocations | Listar invocações de uma função, status, duração e custo | services:read | gratuito |
get_function_invocation | Obter saída, logs e custo de uso de uma invocação | services:read | gratuito |
Servidores sob demanda
| Ferramenta | Descrição | Escopo | Pago |
|---|---|---|---|
get_temp_vm_options | Obter estado de inicialização, perfis, entradas de preço de compatibilidade e política exata de armazenamento/rede | services:read | gratuito |
quote_temp_vm | Inspecionar a operação de orçamento desativada e sua resposta "em breve" | services:manage | Desativado (em breve) |
list_temp_vms | Listar sessões de servidor sob demanda da conta e opções atuais | services:read | gratuito |
create_temp_vm | Inspecionar a operação de criação desativada; nenhum pagamento ou alocação ocorre enquanto o produto estiver "em breve" | services:manage | Desativado (em breve) |
get_temp_vm | Obter uma sessão de servidor sob demanda pertencente ao locatário | services:read | gratuito |
delete_temp_vm | Excluir permanentemente um servidor sob demanda após reconhecimento explícito de perda de dados; nenhum reembolso ao cliente é iniciado | services:manage | gratuito |
O pedido pelo cliente está desativado enquanto o ciclo de vida do servidor sob demanda está sendo validado. As opções atuais informam que backups automáticos e snapshots não estão incluídos e que conexões de saída para portas TCP de entrega de e-mail 25, 2525, 465 e 587 são restritas. Sessões existentes permanecem disponíveis por meio de listar/obter/excluir para limpeza. Campos de TTL fixo e pré-pagos no esquema de compatibilidade desativado não são uma promessa de lançamento; o contrato de duração flexível e cobrança medida deve ser publicado de forma consistente antes que o pedido seja ativado.
Guest Agent
| Ferramenta | Descrição | Escopo | Pago |
|---|---|---|---|
get_guest_agent_status | Verificar disponibilidade do guest-agent QEMU em um Cloud VPS | services:read | gratuito |
Histórico
| Ferramenta | Descrição | Escopo | Pago |
|---|---|---|---|
get_login_history | Obter histórico de login da conta | account:read | gratuito |
get_management_history | Obter histórico de gerenciamento/atividade | account:read | gratuito |
Público
| Ferramenta | Descrição | Escopo | Pago |
|---|---|---|---|
get_pricing | Obter preços públicos | nenhum | gratuito |
get_system_status | Obter status do sistema VPSnet.com | nenhum | gratuito |
get_faq | Obter perguntas frequentes | nenhum | gratuito |
Rede SDN
As permissões de rede devem ser concedidas explicitamente: networking:read ou
networking:manage; os padrões comuns de acesso total/leitura não as incluem.
Comece pelas capacidades, depois leia o recurso pertencente exato e sua geração.
O backend aplica propriedade do locatário, disponibilidade e bloqueios de 2FA
do servidor. Aceito, pago e pronto são estados separados; consulte a operação
ou recurso correspondente. Alterações de DNS são consultadas por meio do
settings.dns_change da rede.
Novos balanceadores de carga privados/públicos, VPNs e endereços públicos usam
um fluxo explícito de orçamento → checkout comum → status do pedido.
Ferramentas de orçamento sempre enviam prepare_after_payment=true: nenhum provisionamento
ocorre antes do pagamento. Mostre o valor exato em EUR gross_amount do
orçamento, obtenha aprovação e passe o mesmo idempotencyKey,
quote_id e quoteToken para order_network_product. Chaves de API
adicionalmente precisam de acesso total, operações pagas habilitadas,
networking:order e limites de gastos. Leia get_network_payment_methods e selecione
system=balance; checkout sem saldo é recusado para chaves de API.
Se a confirmação for incerta, recupere pelo ID e chave do orçamento original.
Para um pedido SDN com status=paid_pending, billing_state=captured e
reason_code=network_product_ip_inventory_wait, o pagamento é retido enquanto o inventário de IP público
estiver indisponível. Consulte get_network_product_order com o mesmo ID do pedido;
o backend retoma automaticamente quando o inventário retorna. Não crie outro
pedido, cobre novamente ou envie uma nova tentativa manual.
manual_review ou network_product_stock_reconciliation_required em vez disso exige revisão do operador;
não autoriza uma nova tentativa automática.
Pedidos comuns de VPS expõem essa espera por meio de
get_service.stateProcess.waitingReason=public_ip_inventory (também espelhado no campo legado stateProccess).
Consulte o mesmo serviço sem refazer o pedido.
stateProcess.attention=true exige atenção do operador. Um pagamento bem-sucedido ou
criação aceita não estabelece que o servidor está pronto.
Camadas públicas de balanceador de carga alb_proxy_3/alb_proxy_5 usam o tipo de solicitação
proxy_lb; a camada privada nlb usa private_lb. Disponibilidade e preços vêm
do catálogo de produtos ao vivo. Um endpoint legado não pago de criação de appliance não é
uma alternativa ao checkout.
A coleta de configuração do dispositivo é uma ação de gerenciamento única, mesmo que seu método HTTP seja GET. Gere o par de chaves de revelação fora do MCP, envie apenas a chave pública X25519, salve o texto cifrado selado retornado e descriptografe-o fora da conversa. Nem chaves privadas nem configuração WireGuard em texto simples são solicitadas ou descriptografadas por essas ferramentas. Nunca repita automaticamente uma coleta após uma resposta incerta.
O backend atual não tem renomeação de rede do cliente, edição de IP fixo em porta existente,
repetição de appliance ou API nativa de site a site nesta versão. Endereços DHCP fixos
são selecionados na anexação; remover/recriar uma anexação requer
aprovação separada e não é representado como uma edição no local. Rotas legadas não pagas
de criação de LB/VPN, compras legadas de estoque antes do pagamento e ativação
de renovação automática por meio de chaves de API não são expostas deliberadamente. O gerenciamento
existente de bindings públicos permanece disponível; novos endereços públicos usam propriedade
de conta e checkout comum. Uma ferramenta listada não habilita um recurso de backend.| Ferramenta | Descrição | Escopo | Pago |
|------|-------------|-------|------|
| get_network_payment_methods | Ler metadados do método de pagamento sem iniciar o pagamento | nenhum | gratuito |
| get_networking_capabilities | Ler disponibilidade de rede da conta, cota, opções de criação e anexos elegíveis no momento do pedido | networking:read | gratuito |
| get_networking_features | Ler os portões de recursos de rede atuais, opções de DNS e extensões de contrato suportadas. | networking:read | gratuito |
| get_networking_overview | Ler redes próprias, cota e instantâneo de operações | networking:read | gratuito |
| get_networking_topology | Ler a topologia da conta com identidades com escopo de rede | networking:read | gratuito |
| list_networking_operations | Ler operações de rede recentes e operations_has_more | networking:read | gratuito |
| get_networking_operation | Ler uma operação de rede ou porta aceita | networking:read | gratuito |
| list_private_networks | Listar redes privadas próprias, incluindo exclusão pendente de limpeza verificada. | networking:read | gratuito |
| get_private_network | Ler uma rede própria, incluindo reservas DHCP, progresso de alteração de DNS, geração e project_id. | networking:read | gratuito |
| create_private_network | Criar uma intenção de rede privada | networking:manage | gratuito |
| delete_private_network | Solicitar exclusão de uma rede vazia | networking:manage | gratuito |
| retry_private_network | Repetir apenas a operação de rede atual com falha; preservar sua geração atual | networking:manage | gratuito |
| set_private_network_dns | Alterar servidores DNS DHCP no local | networking:manage | gratuito |
| set_private_network_names | Substituir o rótulo completo da zona DNS interna e a lista de aliases | networking:manage | gratuito |
| list_private_network_ports | Ler portas de rede próprias, seus endereços DHCP fixos, gerações e estados de anexo | networking:read | gratuito |
| list_service_private_ports | Ler portas privadas e estado de recuperação de anexo de pedido para um número de pedido de serviço próprio. | networking:read | gratuito |
| list_network_attachment_candidates | Ler serviços anexáveis e cada attachment_mode | networking:read | gratuito |
| attach_private_network_port | Anexar um serviço próprio; omitir ipv4 para alocação automática ou passar um endereço utilizável fixo | networking:manage | gratuito |
| detach_private_network_port | Desanexar a porta do servidor próprio | networking:manage | gratuito |
| retry_private_network_port | Repetir a operação de porta atual com falha usando a geração PORT e qualquer aprovação de reinicialização necessária. | networking:manage | gratuito |
| get_network_vpn_summary | Ler o resumo VPN da rede, incluindo ausência verdadeira | networking:read | gratuito |
| get_network_routed_egress | Ler o acesso NAT/internet desta rede, endereço público e estado de qualificação. | networking:read | gratuito |
| set_network_routed_egress | Solicitar a transição NAT atualmente suportada para uma rede própria; o backend pode recusar alterações de modo | networking:manage | gratuito |
| get_security_group_capabilities | Ler disponibilidade de grupos de segurança e se a política padrão da rede pode ser alterada. | networking:read | gratuito |
| list_network_security_groups | Listar grupos no projeto próprio | networking:read | gratuito |
| create_network_security_group | Criar um conjunto de regras de permissão nomeado | networking:manage | gratuito |
| update_network_security_group | Substituir o nome completo do grupo e a lista de regras na revisão esperada | networking:manage | gratuito |
| delete_network_security_group | Excluir um grupo de cliente não referenciado na revisão esperada; grupos referenciados são recusados. | networking:manage | gratuito |
| clone_network_security_group | Clonar um grupo próprio para um novo nome; usar a revisão atual do grupo de origem. | networking:manage | gratuito |
| get_network_security_policy | Ler política padrão, grupos atribuídos e estado de aplicação da política | networking:read | gratuito |
| set_network_default_security_policy | Alterar aceitar/negar para servidores sem grupos personalizados | networking:manage | gratuito |
| set_private_port_security_groups | Substituir a lista completa de grupos de cliente da porta | networking:manage | gratuito |
| retry_network_security_policy | Repetir a política de segurança de rede com falha usando seu estado desejado atual. | networking:manage | gratuito |
| retire_network_security_policy | Aposentar a política somente após as portas do servidor serem removidas | networking:manage | gratuito |
| get_network_appliance_capabilities | Ler provedores/camadas de balanceador de carga disponíveis, qualificação pública, capacidades VPN e cota | networking:read | gratuito |
| list_network_appliances | Ler balanceadores de carga próprios e gateways VPN com um cursor de fluxo. | networking:read | gratuito |
| get_network_appliance_billing | Ler linhas de aparelhos recorrentes visíveis ao cliente e moeda. | networking:read | gratuito |
| get_network_appliance_operation | Consultar uma operação de aparelho aceita | networking:read | gratuito |
| list_network_load_balancers | Listar balanceadores de carga privados e públicos e estado de saúde/qualificação seguro para o cliente. | networking:read | gratuito |
| get_network_load_balancer | Ler um balanceador de carga próprio, listeners, membros, geração e saúde | networking:read | gratuito |
| estimate_network_load_balancer | Ler uma estimativa técnica de balanceador de carga para esta configuração exata | networking:read | gratuito |
| delete_network_load_balancer | Solicitar desmontagem do aparelho na geração atual; isso não é reembolso ou cancelamento de período pago | networking:manage | gratuito |
| add_network_load_balancer_member | Adicionar um endereço de servidor privado anexado ao listener selecionado; o backend valida a associação nesta rede. | networking:manage | gratuito |
| remove_network_load_balancer_member | Remover um membro da rotação usando a geração do balanceador de carga. | networking:manage | gratuito |
| add_network_load_balancer_listener | Adicionar um listener e membros iniciais opcionais usando capacidades de protocolo atualmente oferecidas | networking:manage | gratuito |
| remove_network_load_balancer_listener | Remover um listener e seus membros; excluir o último listener é recusado. | networking:manage | gratuito |
| list_network_vpn_gateways | Listar gateways VPN próprios, seus peers de dispositivo e status seguro | networking:read | gratuito |
| get_network_vpn_gateway | Ler um gateway VPN próprio, geração atual, peers de dispositivo, candidatos a concessão e capacidade de anexo. | networking:read | gratuito |
| delete_network_vpn_gateway | Solicitar desmontagem de um gateway VPN próprio; todos os dispositivos perdem conectividade | networking:manage | gratuito |
| attach_network_vpn_gateway | Anexar ou mover uma VPN de conta para uma rede própria somente quando o anexo autônomo for anunciado | networking:manage | gratuito |
| detach_network_vpn_gateway | Desanexar uma VPN de conta de sua rede quando suportado; ela mantém seu período pago e dispositivos, mas recria o gateway | networking:manage | gratuito |
| set_vpn_server_access | Escolher accept ou groups_only para o acesso da VPN a servidores anexados quando essa capacidade estiver disponível | networking:manage | gratuito |
| create_network_vpn_peer | Adicionar um dispositivo com uma chave de revelação PÚBLICA única gerada externamente | networking:manage | gratuito |
| take_network_vpn_peer_config | Consumir a configuração selada do dispositivo UMA VEZ | networking:manage | gratuito |
| revoke_network_vpn_peer | Revogar um dispositivo usando a geração do GATEWAY VPN | networking:manage | gratuito |
| set_network_vpn_peer_grants | Substituir a lista completa de servidores alcançáveis do dispositivo quando VPN autônoma estiver disponível | networking:manage | gratuito |
| get_network_vpn_egress_options | Ler saídas de Internet VPN suportadas e qualificação | networking:read | gratuito |
| set_network_vpn_peer_egress | Definir a política de saída escolhida do dispositivo: somente privada, NAT herdado ou anunciada | networking:manage | gratuito |
| list_network_products | Ler produtos pagos atuais, nomes de camadas ao vivo, preços e capacidade de compra; ofertas públicas de balanceador de carga proxy 3/5 nós devem vir deste catálogo. | networking:read | gratuito |
| list_network_product_periods | Ler períodos de produtos próprios, disponibilidade de renovação e fatos do ciclo de vida. | networking:read | gratuito |
| quote_network_product | Criar a cotação paga exata do produto de rede para CHECKOUT COMUM | networking:manage | Cotação: networking:order |
| quote_account_vpn | Criar uma cotação de VPN de conta para checkout comum quando vpn_account_order for anunciado | networking:manage | Cotação: networking:order |
| order_network_product | Confirmar uma compra de checkout comum a partir de uma cotação exata aprovada | networking:manage | Pago: networking:order |
| get_network_product_order | Ler o estado de pagamento e cumprimento de um pedido de checkout comum próprio | networking:read | gratuito |
| find_network_product_order | Recuperar um checkout incerto pelo quote_id ORIGINAL; order=null significa que nenhum pedido foi encontrado, não prova para usar uma nova chave de pagamento. | networking:read | gratuito |
| quote_network_product_renewal | Cotar o próximo mês pago para um produto de rede; sem cobrança | networking:manage | Cotação: networking:order |
| renew_network_product | Pagar a renovação exata previamente divulgada do saldo da conta | networking:manage | Pago: networking:order |
| disable_network_product_auto_renew | Desativar renovação automática | networking:manage | gratuito |
| quote_vpn_period_renewal | Cotar o próximo mês da VPN no escopo pago real; sem cobrança | networking:manage | Cotação: networking:order |
| renew_vpn_period | Pagar a renovação aprovada do próximo mês da VPN do saldo da conta usando a cotação exata e a chave original. | networking:manage | Pago: networking:order |
| disable_vpn_auto_renew | Desativar a renovação automática da VPN; o período pago atual permanece | networking:manage | gratuito |
| list_network_public_addresses | Ler endereços públicos pagos próprios, limites da conta, suporte de destino e disponibilidade de compra. | networking:read | gratuito |
| get_network_public_address | Ler um endereço público próprio, anexo e estado do período pago. | networking:read | gratuito |
| quote_network_public_address | Cotar um novo endereço público pago para checkout comum; sem cobrança | networking:manage | Cotação: networking:order |
| attach_public_address_to_network | Anexar ou mover um endereço já pago ao NAT de uma rede própria | networking:manage | gratuito |
| attach_public_address_to_server | Anexar ou mover um endereço público pago próprio para a porta privada elegível de um servidor com zero IP público | networking:manage | gratuito |
| detach_network_public_address | Desanexar um endereço público próprio do destino atual; ele permanece próprio pelo período pago | networking:manage | gratuito |
| quote_public_address_renewal | Cotar o próximo mês do endereço sem cobrar; usar a cotação retornada e esta chave para confirmação. | networking:manage | Cotação: networking:order |
| renew_network_public_address | Pagar a renovação aprovada do endereço do saldo com seu ID/token de cotação exato e chave original. | networking:manage | Pago: networking:order |
| disable_public_address_auto_renew | Desativar renovação automática do endereço; a propriedade dura até paid_until | networking:manage | gratuito |
| get_network_public_binding | Ler a geração, estado e endereço atribuído de um vínculo público próprio existente | networking:read | gratuito |
| bind_network_public_ip | Vincular um vínculo público flutuante já reservado a uma porta privada própria quando suportado | networking:manage | gratuito |
| move_network_public_ip | Mover um vínculo público flutuante preparado para outra porta privada própria; confirmar interrupção ao destino antigo. | networking:manage | gratuito |
| configure_network_public_forwarding | Configurar os listeners TCP/UDP de um vínculo de encaminhamento reservado existente | networking:manage | gratuito |
| delete_network_public_binding | Solicitar exclusão de um vínculo existente usando sua geração | networking:manage | gratuito |
Exemplos trabalhados
Cada exemplo é uma solicitação ao seu assistente e as ferramentas que ele chama.
Pedir um VPS (cotação, depois confirmação)
Pedir o Cloud VPS mais barato com Debian e minha chave SSH, pago do saldo.
get_order_planspara o produto, depoisget_order_optionspara o plano escolhido (SO, período, IDs de recursos) elist_ssh_keyspara o ID da chave.order_servicecomplan,os,period,resources,sshKey(ourootPassword, não ambos),payment: { payment: 1, successUrl: '', cancelUrl: '' }e umidempotencyKeyestável. A primeira chamada retorna um orçamento sem cobrança. A chave de API precisa devps:order(ouvds:order,ds:order,fc:order) e limites de gastos.- Mostre o total exato em EUR bruto e o período de cobrança. Após a aprovação do cliente,
repita o pedido e a chave inalterados com o
quoteTokenretornado,expected_total_eureacknowledge_charge: true. Inspecione a tentativa original no painel se o resultado for desconhecido; não crie outra chave para tentar novamente. - Consulte
get_servicepara o número do pedido retornado; pagamento aceito não é servidor pronto.
Rede (orçamento, depois pedido)
Adicione um balanceador de carga privado à minha rede e pague pelo saldo.
get_networking_capabilities,list_network_productseget_network_payment_methods(escolha o métodosystem=balance).quote_network_productcomkind(private_lb,proxy_lbouvpn_gateway),tiere umidempotencyKey; mostre ogross_amountem EUR do orçamento.- Após a aprovação,
order_network_productcom o mesmoidempotencyKey,quote_id,quoteToken, opaymentdo saldo eacknowledge_charge: true. Se o resultado for incerto,find_network_product_orderpeloquote_idoriginal, depois consulteget_network_product_order. Nunca compre uma segunda cópia.
Atualização de registro DNS
Aponte www.example.com para 203.0.113.10 com TTL de 5 minutos.
list_dns_zonespara encontrar ozone_id, depoisget_dns_zonepara inspecionar os registros existentes e seus IDs (precisa dedns:read).- Para adicionar um valor A, chame
upsert_dns_recordcomzone_id,name: "www",type: "A",content: "203.0.113.10",ttl: 300(precisa dedns:write). Conteúdo diferente adiciona outro registro e mantém os valores existentes. Um tupla nome/tipo/conteúdo idêntica atualiza seu TTL/comentário e o reativa se estiver desabilitado. Para substituir um valor existente, useupdate_dns_recordcom seurecord_idexato e o nome, tipo, conteúdo e TTL desejados. get_dns_zonepara ler os registros desejados de volta, ouget_dns_zone_historypara ver a alteração.
Para uma zona pendente cujo valor TXT de propriedade foi perdido, primeiro leia
get_dns_zone.zone.verification.record.value. Use
reissue_dns_zone_verification somente se esse valor for nulo/irrecuperável ou o
cliente solicitar rotação. Ele suporta tanto pending_verification quanto
verification_expired; o valor anterior deixa de ser aceito. Atualize o TXT
no local fornecido por zone.verification.next_step, depois chame
verify_dns_zone. Reemitir sozinho não verifica a zona nem redefine seu status.
Pedir um certificado pago
Compre um certificado DV de um ano para example.com; eu mesmo gerei o CSR.
list_certificate_catalogeget_certificate_catalog_productpara escolher um produto e ler sua oferta atual em EUR.quote_certificatecomproduct_id,offer_id,offer_generation,common_name(mais qualqueralternative_names), ocsrpúblico PKCS#10, os IDs de contato de propriedade e umidempotencyKey(precisa decertificates:order, operações pagas e limites). Nunca envie uma chave privada.- Após o usuário aprovar o total exato,
order_certificatecom a mesma solicitação, o mesmoidempotencyKey, oquote_token, opaymenteacknowledge_exact_quote_and_payment: true. get_certificate_validation(publique o desafio, por exemplo através deupsert_dns_record), depoisdownload_certificateassim que for emitido.
Obtendo uma chave de API
- Faça login em vpsnet.com
- Vá para Conta > Chaves de API
- Clique em Criar chave de API
- Dê um nome e copie a chave
A chave é mostrada apenas uma vez — armazene-a com segurança.
Solução de problemas
Ferramentas MCP não aparecendo na extensão Claude Code do VS Code
- Instale o CLI do Claude Code:
npm install -g @anthropic-ai/claude-code - Verifique:
claude --versiondeve mostrar um número de versão - Adicione o servidor via CLI:
claude mcp add vpsnet -- npx -y vpsnet-mcp - Reinicie completamente o VS Code (não apenas recarregue a janela)
- Verifique
~/.claude.jsonpara configuração correta
claude: command not found
Instale o CLI do Claude Code globalmente:
npm install -g @anthropic-ai/claude-code
Verifique se seu PATH inclui pacotes globais do npm. No Windows, reinicie o terminal após a instalação.
Variáveis de ambiente não funcionando
Para a extensão do Claude Code, as variáveis de ambiente devem estar no objeto env dentro de .claude.json, NÃO nas variáveis de ambiente do sistema:
"vpsnet": {
"type": "stdio",
"command": "npx",
"args": ["-y", "vpsnet-mcp"],
"env": {
"VPSNET_API_KEY": "your_actual_key_here"
}
}
Erros de chave de API
Este servidor precisa de uma chave de API de gerenciamento. Cada falha abaixo é relatada
pelas ferramentas com um objeto auth_problem contendo a causa e a correção, então
leia isso em vez de adivinhar pelo status HTTP.
Falhas de ferramentas carregam isError: true enquanto preservam os detalhes do erro da API e
orientações de recuperação. Resultados desconhecidos de mutações devem ser verificados antes de outra
tentativa. Números de pedidos de serviço devem ser copiados de list_services; letras
ASCII, dígitos e hífens são suportados, incluindo sufixos de múltiplos pedidos.
Identificadores de URL malformados ou superdimensionados são rejeitados antes de uma solicitação de API.
| O que você vê | O que significa | Correção |
|---|---|---|
aiScopedApiKeyCannotManageAccount (403) | A chave é uma chave com escopo de IA. Elas são emitidas apenas para inferência do assistente de IA do VPSnet e são deliberadamente recusadas em toda a API da conta. Conceder escopos não pode mudar isso — a restrição está no tipo de chave. | Crie uma chave separada com escopo full (ou read para uso somente GET) e use-a aqui. Mantenha a chave com escopo de IA para inferência. |
apiKeyRejected (401) | A chave falhou na autenticação completamente. A API retorna um 401 idêntico para cada causa, então é uma de: desconhecida, revogada, expirada, malformada, ou seu IP de origem não está na lista de permissões de IP da chave. | Verifique se a chave está ativa e copiada por completo, e se qualquer lista de permissões de IP inclui o endereço do qual este servidor chama. |
readOnlyApiKeyCannotWrite (401) | Uma chave com escopo de leitura foi usada para uma escrita; chaves de leitura são limitadas a GET. | Use uma chave com escopo completo, ou fique nas ferramentas somente leitura. |
apiKeyScopeMissing (403) | A chave autenticou, mas não tem o escopo granular nomeado em requiredScope. | Adicione esse escopo em Conta > Chaves de API. |
apiKeyForbidden (403) | O endpoint recusa chaves de API completamente. Chaves de API nunca concedem acesso de administrador. | Use o painel com uma sessão conectada. |
- Verifique se a chave está correta (começa com
vpsnet_seguido de 43 caracteres) - As chaves são mostradas apenas uma vez na criação — se perdida, crie uma nova
- Verifique se a chave não expirou (Conta > Chaves de API)
deploy_ssh_key foi bem-sucedido, mas o SSH ainda falha
- Todos os servidores VPSnet.com usam
rootcomo nome de usuário SSH - A implantação da chave é assíncrona — aguarde 15-30 segundos após implantar antes de tentar SSH
fetch is not defined ou erros inesperados
Este servidor requer Node.js 20+. Se seu node padrão for mais antigo (comum com configurações nvm), ou:
- Defina Node 20+ como padrão:
nvm alias default 20 - Ou use o wrapper nvm mostrado na seção Codex