API da Vixpi Portal de desenvolvedores, versão v1

Painel do desenvolvedor

Servidor MCP

O servidor MCP deixa um assistente de IA (Claude, Cursor e outros clientes MCP) consultar e operar a sua conta Vixpi, com as permissões que você aprovar.

Como conectar

O servidor usa o transporte Streamable HTTP neste endereço. Não há chave para colar: o login é por OAuth (veja abaixo).

URL
https://mcp.vixpi.host/mcp

Claude

Em Settings → Connectors → Add custom connector, dê um nome (Vixpi), cole a URL acima e confirme. O Claude abre a tela de login e consentimento da Vixpi.

Claude Code

terminal
claude mcp add --transport http vixpi https://mcp.vixpi.host/mcp

Depois, dentro do Claude Code, rode /mcp e escolha vixpi para entrar.

Cursor

Em ~/.cursor/mcp.json (ou .cursor/mcp.json do projeto):

mcp.json
{
  "mcpServers": {
    "vixpi": {
      "url": "https://mcp.vixpi.host/mcp"
    }
  }
}

VS Code

Em .vscode/mcp.json do projeto, ou pelo comando MCP: Add Server:

mcp.json
{
  "servers": {
    "vixpi": {
      "type": "http",
      "url": "https://mcp.vixpi.host/mcp"
    }
  }
}

ChatGPT

Ative o modo desenvolvedor em Settings → Connectors → Advanced, depois crie um conector com a URL acima. Os nomes dos menus mudam com frequência; se não achar, procure por "connector" ou "MCP" nas configurações.

Login automático por OAuth

Na primeira conexão o cliente se registra sozinho (registro dinâmico de cliente, RFC 7591), abre a tela de login e consentimento da Vixpi e mostra os escopos que ele pede. Depois de aprovar, o cliente guarda o token e renova sozinho. Detalhes do fluxo em Autenticação.

O registro automático só cria clientes públicos, que usam PKCE e nunca recebem client_secret, e nunca concede hosting:deploy nem acesso à caixa de e-mail.

Se o assistente tentar uma ferramenta cujo escopo você não aprovou, o servidor responde 403 com WWW-Authenticate: Bearer error="insufficient_scope" e o escopo que falta. Clientes que suportam isso pedem só a permissão nova; nos outros, reconecte o app. Os escopos que as ferramentas usam estão em scopes_supported do documento /.well-known/oauth-protected-resource, e são exatamente os que o registro automático consegue conceder: o conjunto anunciado não inclui hosting:deploy. Por isso vixpi_deploy_hosting só funciona em apps criados em Painel → Desenvolvedor com esse escopo; o escopo é a fronteira de segurança, não o endereço (audience) do token.

O desafio (401 e 403) e o scopes_supported também pedem offline_access. Com ele o app recebe um refresh token: o access token vale 15 minutos, e o app o renova sozinho por até 30 dias sem pedir login de novo.

Segurança

  • Revogue quando quiser. Cada app conectado aparece em Painel → Desenvolvedor → Apps autorizados.
  • Escopos mínimos. Aprove só o que a tarefa precisa; vixpi_whoami mostra o que o app tem.
  • Ações destrutivas pedem confirmação. Cancelar serviço, ligar/desligar VPS, deploy e pagar fatura com crédito só rodam com confirm igual ao id do recurso. O confirm é uma trava técnica contra chamada acidental: o servidor não diz qual é o valor esperado quando erra. A pergunta ao usuário é feita pelo cliente (as ferramentas destrutivas levam destructiveHint); o servidor não usa elicitation do MCP, que exige sessão e este servidor responde JSON sem estado.
  • Texto de terceiros é dado. Assunto e mensagens de ticket, nomes e logs chegam dentro de <dado_de_terceiro> (inclusive o texto do campo message de erros 4xx da API, motivos de crédito, regras de firewall e nomes de domínio); o servidor neutraliza tags parecidas dentro do texto e instrui o assistente a nunca obedecer ordens escritas ali.
  • Apps de navegador. Requisições com cabeçalho Origin só passam se a origem estiver na lista do servidor (MCP_ALLOWED_ORIGINS). Clientes nativos e CLIs não enviam Origin e não são afetados. O corpo é limitado a 1 MiB e lotes JSON-RPC a 10 mensagens.

Ferramentas de leitura

O MCP chama a mesma API desta documentação, então vale o escopo de cada rota. Se o token não tiver o escopo, o servidor pede a permissão (veja acima).

Conta e catálogo

FerramentaO que fazEscopo
vixpi_whoamiQuem está conectado, escopos e validade do acessoqualquer token
vixpi_get_profilePerfil da contaaccount:read
vixpi_get_notification_preferencesAvisos que a conta recebe por e-mail e WhatsAppaccount:read
vixpi_list_catalogProdutos à venda e preço inicialpúblico
vixpi_list_catalog_categoriesCategorias do catálogopúblico

Serviços e domínios

FerramentaO que fazEscopo
vixpi_list_servicesLista os serviços da contaservices:read
vixpi_get_serviceDetalha um serviçoservices:read
vixpi_list_domainsDomínios registrados na contadomains:read

Cobrança

FerramentaO que fazEscopo
vixpi_list_invoicesLista as faturasbilling:read
vixpi_get_invoiceDetalha uma faturabilling:read
vixpi_get_creditsSaldo e histórico de créditobilling:read
vixpi_list_ordersPedidos da contabilling:read

Suporte

FerramentaO que fazEscopo
vixpi_list_ticketsLista os ticketstickets:read
vixpi_get_ticketLê um ticket e as respostastickets:read

VPS

FerramentaO que fazEscopo
vixpi_list_vpsVPS de um serviço, com estado ao vivovps:read
vixpi_get_vps_metricsCPU e memória no períodovps:read
vixpi_get_vps_trafficTráfego por mêsvps:read
vixpi_list_vps_backupsBackups da VPSvps:read
vixpi_get_vps_firewallFirewall e regras da VPSvps:read

Hospedagem

FerramentaO que fazEscopo
vixpi_get_hosting_accountConta de hospedagemhosting:read
vixpi_list_hosting_deploymentsDeploys recenteshosting:read
vixpi_get_hosting_deploymentUm deploy e as últimas linhas do loghosting:read
vixpi_list_hosting_domainsDomínios da hospedagemhosting:read
vixpi_list_hosting_backupsBackups da hospedagemhosting:read

Paginação e formato

Toda lista aceita limit (padrão 20, máximo 100, exceto onde a API limita menos) e offset, e responde total, hasMore e nextOffset. Toda ferramenta aceita response_format: markdown (padrão, curto para o modelo) ou json (completo). O resultado também traz structuredContent; nas listas os itens ficam em items. Respostas acima de 30 mil caracteres são cortadas com um aviso.

argumentos de exemplo
{ "limit": 20, "offset": 0, "response_format": "json" }

Ferramentas de escrita e confirmação

As ações destrutivas só rodam com o parâmetro confirm igual ao identificador do recurso. O assistente precisa perguntar a você, receber o "sim" e só então repetir a chamada com o id. Sem isso a ferramenta recusa e não muda nada. As ferramentas de escrita aceitam idempotencyKey opcional: repetir a chamada com a mesma chave devolve o mesmo resultado em vez de duplicar (veja Idempotência).

FerramentaO que fazEscopoExige confirm
vixpi_create_ticketAbre um tickettickets:writenão
vixpi_reply_ticketResponde um tickettickets:writenão
vixpi_close_ticketFecha um tickettickets:writenão (reversível)
vixpi_reopen_ticketReabre um tickettickets:writenão
vixpi_pay_invoice_with_creditQuita uma fatura com o saldo de créditobilling:writesim: id da fatura
vixpi_deploy_hostingDispara um deploy da hospedagemhosting:deploysim: id do serviço
vixpi_cancel_servicePede o cancelamento ao fim do ciclo (o imediato só no painel)services:writesim: id do serviço
vixpi_power_vpsLiga, desliga ou reinicia uma VPSvps:writesim: id da VPS

Não existe ferramenta para comprar, apagar a conta, cancelar na hora ou ler a senha de uma VPS: essas ações ficam só no painel (o cancelamento imediato em /painel/servicos/<id>).

Prompts prontos

Clientes que mostram prompts MCP oferecem estes atalhos em português:

PromptO que faz
resumo_da_contaServiços, faturas em aberto, créditos e tickets numa visão só.
diagnosticar_servicoInvestiga um serviço (VPS ou hospedagem) e sugere o próximo passo.
faturas_em_abertoPendentes e vencidas, o total e quanto o crédito cobre.

Limites e erros

O limite por IP e por token é o da API. Ao exceder, a ferramenta devolve RATE_LIMITED com o tempo de espera em segundos. Token expirado ou revogado devolve 401 e o cliente pede para reconectar.