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).
https://mcp.vixpi.host/mcpClaude
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
claude mcp add --transport http vixpi https://mcp.vixpi.host/mcpDepois, dentro do Claude Code, rode /mcp e escolha vixpi para entrar.
Cursor
Em ~/.cursor/mcp.json (ou .cursor/mcp.json do projeto):
{
"mcpServers": {
"vixpi": {
"url": "https://mcp.vixpi.host/mcp"
}
}
}VS Code
Em .vscode/mcp.json do projeto, ou pelo comando MCP: Add Server:
{
"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_whoamimostra 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
confirmigual ao id do recurso. Oconfirmé 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 levamdestructiveHint); 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 campomessagede 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
Originsó passam se a origem estiver na lista do servidor (MCP_ALLOWED_ORIGINS). Clientes nativos e CLIs não enviamOrigine 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
| Ferramenta | O que faz | Escopo |
|---|---|---|
vixpi_whoami | Quem está conectado, escopos e validade do acesso | qualquer token |
vixpi_get_profile | Perfil da conta | account:read |
vixpi_get_notification_preferences | Avisos que a conta recebe por e-mail e WhatsApp | account:read |
vixpi_list_catalog | Produtos à venda e preço inicial | público |
vixpi_list_catalog_categories | Categorias do catálogo | público |
Serviços e domínios
| Ferramenta | O que faz | Escopo |
|---|---|---|
vixpi_list_services | Lista os serviços da conta | services:read |
vixpi_get_service | Detalha um serviço | services:read |
vixpi_list_domains | Domínios registrados na conta | domains:read |
Cobrança
| Ferramenta | O que faz | Escopo |
|---|---|---|
vixpi_list_invoices | Lista as faturas | billing:read |
vixpi_get_invoice | Detalha uma fatura | billing:read |
vixpi_get_credits | Saldo e histórico de crédito | billing:read |
vixpi_list_orders | Pedidos da conta | billing:read |
Suporte
| Ferramenta | O que faz | Escopo |
|---|---|---|
vixpi_list_tickets | Lista os tickets | tickets:read |
vixpi_get_ticket | Lê um ticket e as respostas | tickets:read |
VPS
| Ferramenta | O que faz | Escopo |
|---|---|---|
vixpi_list_vps | VPS de um serviço, com estado ao vivo | vps:read |
vixpi_get_vps_metrics | CPU e memória no período | vps:read |
vixpi_get_vps_traffic | Tráfego por mês | vps:read |
vixpi_list_vps_backups | Backups da VPS | vps:read |
vixpi_get_vps_firewall | Firewall e regras da VPS | vps:read |
Hospedagem
| Ferramenta | O que faz | Escopo |
|---|---|---|
vixpi_get_hosting_account | Conta de hospedagem | hosting:read |
vixpi_list_hosting_deployments | Deploys recentes | hosting:read |
vixpi_get_hosting_deployment | Um deploy e as últimas linhas do log | hosting:read |
vixpi_list_hosting_domains | Domínios da hospedagem | hosting:read |
vixpi_list_hosting_backups | Backups da hospedagem | hosting: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.
{ "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).
| Ferramenta | O que faz | Escopo | Exige confirm |
|---|---|---|---|
vixpi_create_ticket | Abre um ticket | tickets:write | não |
vixpi_reply_ticket | Responde um ticket | tickets:write | não |
vixpi_close_ticket | Fecha um ticket | tickets:write | não (reversível) |
vixpi_reopen_ticket | Reabre um ticket | tickets:write | não |
vixpi_pay_invoice_with_credit | Quita uma fatura com o saldo de crédito | billing:write | sim: id da fatura |
vixpi_deploy_hosting | Dispara um deploy da hospedagem | hosting:deploy | sim: id do serviço |
vixpi_cancel_service | Pede o cancelamento ao fim do ciclo (o imediato só no painel) | services:write | sim: id do serviço |
vixpi_power_vps | Liga, desliga ou reinicia uma VPS | vps:write | sim: 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:
| Prompt | O que faz |
|---|---|
resumo_da_conta | Serviços, faturas em aberto, créditos e tickets numa visão só. |
diagnosticar_servico | Investiga um serviço (VPS ou hospedagem) e sugere o próximo passo. |
faturas_em_aberto | Pendentes 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.