−25%

su Windows con pagamento annuale, fino al 31/10. Vai ai piani

EQVPS
Inizia

Protezioni MCP: permessi sicuri per gli agenti IA

Prima di dare a un agente IA un token per i tuoi server, sappi esattamente cosa può toccare. Tutti i 45 strumenti MCP di EQVPS per livello di rischio, i limiti che il server impone e la configurazione che useremmo noi.

Ultima verifica: 2026-10-04 · Server MCP 1.6.0 · 45 strumenti (token cliente)

Un token MCP è la password del tuo account con un'API attaccata. Dallo a un agente e avrai un utente che non si stanca mai, legge ogni pagina che gli indichi e fa esattamente ciò che dice l'ultima istruzione nel suo contesto. Il più delle volte è proprio quello che vuoi. Questa pagina parla delle altre volte.

Tutto ciò che segue è stato verificato sul server in produzione alla data in alto: l'elenco degli strumenti viene da tools/list su https://mcp.eqvps.com/mcp, i limiti dall'API stessa. Se sei nuovo, parti da collegare un client MCP e token API, poi torna qui.

Modello di minaccia: cosa va storto davvero

Tre cose, nell'ordine in cui le vediamo:

  1. L'agente capisce male. «Pulisci la macchina di test» diventa la reinstallazione del server sbagliato. Nessuna malizia, solo un modello che riempie un buco nell'istruzione.
  2. Prompt injection. L'agente legge un testo che non hai scritto tu (un README, una risposta del supporto, una pagina web) e quel testo gli dice di fare qualcosa. Se l'agente ha un token con tutti i diritti, li ha anche l'istruzione iniettata.
  3. Il token trapela. Finisce in una history della shell, in un repository pubblico, in una configurazione MCP condivisa o in una riga di log.

Il server MCP verifica che il token sia valido e che il server appartenga a quell'account (o gli sia delegato). Non sa cosa intendevi. Ogni protezione qui sotto risponde a una sola domanda: quanti danni sono possibili se l'istruzione è sbagliata?

Tutti gli strumenti MCP, per livello di rischio

Un token cliente vede 45 strumenti (server MCP 1.6.0). Un token rivenditore (rk_…) vede un insieme separato di 30 strumenti per rivenditori e nessuno di questi, quindi l'endpoint ne ha 75 in totale. Il tuo client riceve da tools/list solo il proprio insieme.

Questa pagina ordina gli strumenti per livello di rischio. Parametri ed esempi di chiamata di ciascuno sono nel riferimento dei parametri; tutti gli strumenti in una riga, inclusi i 30 per rivenditori, sono nell'elenco completo.

Non pubblichiamo ancora le annotazioni degli strumenti MCP (readOnlyHint, destructiveHint), quindi il client non può ordinarli da solo. Imposta le approvazioni a mano in base ai livelli qui sotto.

Livello 0 — pubblici, senza token (5)

StrumentoCosa fa
get_startedTutto il flusso in una risposta: quali strumenti chiamare e in che ordine
list_plansPiani, prezzi, immagini OS
sandbox_pricingTariffe delle sandbox
register_accountCrea un nuovo account e ne restituisce il token
loginEmail + password → token

Livello 1 — lettura dell'account, senza effetti collaterali (15)

StrumentoCosa faAttenzione
whoamiId, nome, email dell'account
get_balanceSaldo prepagato
list_vpsServer attivi, in creazione e sospesi
get_vps_statusStato, specifiche, dati di accessoCon reveal: true restituisce la password root
get_vps_metricsCPU, memoria, rete, disco nel tempo
get_upgrade_optionsPiani a cui il server può passare senza reinstallare
list_delegationsA chi hai dato accesso
list_delegated_to_meServer che altri ti hanno delegato
list_ticketsI tuoi ticket di supporto
get_ticketUn ticket con la sua conversazioneIl testo del ticket è input non attendibile per l'agente
list_sandboxesLe tue sandbox
get_sandboxUna sandbox e il suo consumo
get_taskOutput di un task in background
download_fileLegge un piccolo file da una sandbox
get_download_urlLink temporaneo a un file della sandboxChiunque abbia il link può scaricare finché non scade

Livello 2 — cambiano lo stato, non spendono nulla (17)

StrumentoCosa faAttenzione
power_vpsstart / stop / rebootUno stop è uno stop: i servizi si fermano
set_hostnameRinomina il serverCambia il valore che confirm controlla
undo_cancelRimuove una disdetta programmata a fine periodo
refresh_tokenNuovo token, il vecchio viene revocato subitoAggiorna dopo ogni configurazione statica
set_passwordImposta la password dell'account se non esisteChi ha il token può impostarla prima di te
topup_balanceFattura di ricarica + link di pagamento cryptoPer pagarla serve un wallet
pay_invoiceLink di pagamento per una fattura non pagataIdem
accept_delegationAccetta un invito
revoke_delegationTermina una delega
create_ticket / reply_ticket / close_ticketTicket di supportoL'agente scrive al supporto a tuo nome
run_code / exec_commandEsegue codice in una sandboxSolo nella sandbox, non sul tuo VPS
kill_taskFerma un task in background della sandbox
upload_file / get_upload_urlMette un file nella sandbox

Livello 3 — spendono, distruggono dati o concedono accesso (8)

StrumentoCosa faControllo lato server
order_vpsOrdina un server, pagato dal saldoSaldo insufficiente → fattura non pagata, nessun addebito
change_planCambio piano senza reinstallare, differenza addebitata sul saldoconfirm: true; saldo insufficiente → 402
create_sandboxAvvia una sandbox a pagamentoSaldo vuoto → 402
reinstall_vpsCancella il disco e installa un nuovo OSconfirm = hostname esatto o DELETE; 4 chiamate/min
reset_passwordNuova password root, la vecchia smette di funzionareconfirm = hostname o DELETE; 6 chiamate/min
cancel_serviceend_of_period (predefinito, annullabile) o immediate (distrugge subito il server)immediate richiede confirm = hostname
kill_sandboxElimina una sandbox e i suoi filenessuno
delegate_serviceDà a un'altra persona accesso da operatore a un serverSolo il proprietario; l'altra persona deve accettare

Changelog dell'insieme di strumenti

DataVersione del serverModificaImpatto sul rischio
2026-10-031.6.0Aggiunto refresh_token; i token durano 1 anno per impostazione predefinitaLivello 2
2026-10-031.5.0undo_cancel, get_upgrade_options, change_planchange_plan spende saldo → livello 3
2026-10-031.1.013 strumenti per le sandboxcreate_sandbox spende, kill_sandbox distrugge → livello 3

La versione in esecuzione è pubblica: curl -s https://mcp.eqvps.com/healthz. Quando cambia, cambia anche questa tabella.

Il saldo è il tetto di spesa

EQVPS è prepagato. Nessuna carta salvata, nessuna linea di credito, nessuno scoperto: il massimo che un agente può spendere è ciò che si trova sul saldo. Spendono tre strumenti: order_vps, change_plan e create_sandbox. Anche i rinnovi dei tuoi server esistenti escono dallo stesso saldo.

L'agente può creare richieste di denaro, non pagarle. topup_balance e pay_invoice restituiscono un link di pagamento crypto, e un link senza un wallet dietro non fa nulla. Non c'è nemmeno un endpoint di prelievo: il denaro sul saldo può comprare servizi nel tuo account, non uscirne. Anche i rimborsi di una disdetta immediata tornano sul saldo.

Un'avvertenza, ed è seria. Se tieni il saldo molto basso per frenare l'agente, iniziano a fallire i tuoi stessi rinnovi e i server entrano nel periodo di grazia. La nostra regola pratica: un ciclo di rinnovo di ciò che hai già in funzione, più il budget del compito attuale dell'agente. La guida al budget per agenti spiega il calcolo. E se dai all'agente un wallet suo con dei fondi, quel wallet diventa un secondo tetto da tenere d'occhio.

Privilegio minimo: un token in sola lettura (ancora) non c'è

Risposta diretta: ogni token cliente ha gli stessi diritti dell'account nella dashboard. Nome e durata di un token si configurano, gli scope no.

La cosa più ristretta disponibile oggi è la delega. Dai all'agente un account suo, con saldo zero, e gli deleghi un server:

delegate_service  { "service_id": "EQ-XXXX", "email": "agent@yourdomain.com", "expires_days": 30 }

Lo stesso via REST:

curl -s -X POST "https://api.eqvps.com/api/v1/eqvps/services/EQ-XXXX/delegations" \
  -H "Authorization: Bearer $EQVPS_TOKEN" -H "Content-Type: application/json" \
  -d '{"email":"agent@yourdomain.com","expires_days":30}'

L'invito va accettato dopo aver effettuato l'accesso con quell'email (accept_delegation), e expires_days va da 1 a 365. Passo per passo con screenshot: delegare l'accesso e l'accesso nella documentazione.

Un account delegato puòUn account delegato non può
Vedere stato, metriche e cronologia di quell'unico serverVedere gli altri tuoi server, il saldo o le fatture
Avviare, fermare, riavviareDisdire, rinnovare o cambiare piano
Impostare hostname e DNS inversoAcquistare add-on o IP
Reimpostare la password rootAprire la console web
Reinstallare il sistema operativoDelegare il server a qualcun altro

Guarda le ultime due righe a sinistra. Un delegato non può spendere i tuoi soldi, ma può cancellare quel server. Attiva i backup su ogni server che un agente può reinstallare.

Igiene dei token

Un token per agente, con un nome. Crealo in Dashboard → Impostazioni → Token API per agenti, oppure così:

curl -s -X POST "https://api.eqvps.com/api/v1/eqvps/auth/tokens" \
  -H "Authorization: Bearer $EQVPS_TOKEN" -H "Content-Type: application/json" \
  -d '{"name":"backup-agent","expires_in_days":90}'

Il token viene mostrato una sola volta. Durata da 1 a 1825 giorni, 365 se non la indichi. Per gli agenti sceglieremmo 90.

Tienilo in un file che puoi leggere solo tu, non nel repository, non nel prompt, non in una variabile di shell che copi in giro:

mkdir -p ~/.config/eqvps && chmod 700 ~/.config/eqvps
( umask 077; read -rsp 'EQVPS token: ' T; echo; printf 'EQVPS_TOKEN=%s\n' "$T" > ~/.config/eqvps/agent.env )
ls -l ~/.config/eqvps/agent.env   # atteso: -rw-------

Poi caricalo nel servizio dell'agente con EnvironmentFile= (systemd) o set -a; . ~/.config/eqvps/agent.env; set +a.

Ruotalo prima della scadenza. Lo strumento refresh_token, o POST /auth/tokens/{id}/refresh, emette un nuovo token con lo stesso nome e revoca subito il vecchio. Se il client MCP ha il token scritto nella configurazione, aggiornala subito dopo, altrimenti la sessione successiva riceve un 401.

Controlla chi usa cosa: GET /auth/tokens elenca ogni token con nome, scadenza e last_used_at. Un token che non riconosci, o uno usato dopo che hai spento l'agente, è il tuo segnale.

Se un token trapela

In quest'ordine:

  1. Revocalo. Dashboard → Impostazioni → Token API per agenti → Revoca, oppure curl -s -X DELETE -H "Authorization: Bearer $EQVPS_TOKEN" https://api.eqvps.com/api/v1/eqvps/auth/tokens/<id>. Smette di funzionare dalla richiesta successiva.
  2. Cerca token nuovi che non hai creato tu, e revoca anche quelli.
  3. Valuta cosa può essere stato toccato: la cronologia del servizio di ogni server, fatture e saldo, e list_delegations per accessi che non hai concesso.
  4. Cambia le password root di ogni server che quel token poteva vedere. get_vps_status con reveal: true consegna la password root, quindi un token trapelato è una password root trapelata. Già che ci sei, controlla ~/.ssh/authorized_keys.
  5. Chiudi la porta della password. Se il tuo account non ha mai avuto una password, chi aveva il token può averne impostata una con set_password. Accedi con un codice via email e cambiala.

La prevenzione per il punto 5 non costa nulla: imposta tu adesso una password per l'account, e set_password restituirà 409 a chiunque venga dopo.

Approvazione umana

Cosa impone il server:

  • reinstall_vps, reset_password e cancel_service con type: immediate richiedono confirm uguale all'hostname esatto (DELETE vale anche per reinstallazione e reset).
  • change_plan richiede confirm: true.
  • La disdetta predefinita è end_of_period: il server resta attivo fino alla fine del periodo pagato e undo_cancel la annulla.
  • Limiti per account: reinstallazione 4/min, reset password 6/min, accensione 20/min, ordini 20/min. Abbastanza da impedire a un loop di farlo cinquanta volte, non da fermare una singola chiamata sbagliata.

Sii chiaro su cosa sia confirm. Impedisce a un agente di agire su un «sistemalo». Non ferma un attaccante, perché l'hostname è a una chiamata get_vps_status di distanza. La vera approvazione vive nel tuo client MCP. La maggior parte dei client può chiedere prima di ogni chiamata: lascia passare i livelli 0 e 1, fai chiedere sempre per il livello 3. Nei client con permessi per singolo strumento, come il settings.json di Claude Code (server registrato come eqvps):

{
  "permissions": {
    "ask": ["mcp__eqvps__order_vps", "mcp__eqvps__change_plan", "mcp__eqvps__create_sandbox", "mcp__eqvps__reset_password", "mcp__eqvps__delegate_service"],
    "deny": ["mcp__eqvps__reinstall_vps", "mcp__eqvps__cancel_service", "mcp__eqvps__kill_sandbox"]
  }
}

Aggiungi anche una riga alle istruzioni dell'agente. Da sola non è un controllo di sicurezza, ma riduce i fraintendimenti (lasciala in inglese, i modelli la capiscono altrettanto bene):

Never call reinstall_vps, reset_password, cancel_service (type=immediate), change_plan,
order_vps, create_sandbox, kill_sandbox or delegate_service unless the human has typed
the target server's hostname in this conversation for that specific action.

Se l'agente accede con un codice via email invece di tenere un token a lunga durata, vedi l'accesso dell'agente via MCP.

Audit: cosa vedi dopo

  • Elenco dei token (GET /auth/tokens, oppure Impostazioni → Token API per agenti): nome, creazione, scadenza, last_used_at. Ecco perché conviene dare un nome ai token per agente.
  • Cronologia del servizio (dashboard, pagina del server): azioni di accensione, reinstallazioni, reset della password, cambi di piano, pagamenti, ciascuno con ora e autore: tu, il supporto o automatico. Non dice quale token o delegato ha agito, solo che l'azione è partita dal tuo lato.
  • Fatture e saldo: ogni addebito e rimborso.
  • list_delegations: chi ha accesso a cosa, e fino a quando.

Quel buco nella cronologia del servizio è oggi il limite onesto dell'audit lato server. Se devi sapere quale agente ha fatto cosa, registra ogni chiamata agli strumenti con i suoi argomenti (senza segreti) dal lato dell'agente.

La configurazione che useremmo

Per un agente che gestisce un server di produzione:

  1. Un account separato per l'agente, saldo zero, il server delegato con expires_days: 90.
  2. Il tuo token da proprietario resta a te, fuori da qualsiasi configurazione dell'agente.
  3. Backup su quel server, perché un delegato può reinstallare.
  4. Gli strumenti di livello 3 su «ask» o «deny» nel client.
  5. Il token dell'agente in un file 600, rinnovato prima della scadenza.

Per un agente che deve ordinare server o avviare sandbox la delega non basta, perché gli serve un saldo. Lì il saldo è il tuo tetto: ricaricalo per singolo lavoro, dai un nome al token e controlla last_used_at una volta a settimana. Se un token in sola lettura cambierebbe il modo in cui usi gli agenti, diccelo nel supporto: è questo tipo di feedback a decidere cosa costruiamo dopo.

Domande frequenti

Posso dare a un agente IA un accesso in sola lettura?

Con un token, per ora no: ogni token cliente ha gli stessi diritti del tuo account nella dashboard. L'opzione più vicina è la delega: dai all'agente un account suo senza saldo e delegagli un server. Potrà vedere e gestire quel server, ma non spendere, disdire, aprire la console o delegare ad altri. Può comunque riavviare, reimpostare la password root e reinstallare, quindi attiva i backup su quel server.

Come limito quanto spende un agente?

Con il saldo prepagato. Solo tre strumenti spendono (order_vps, change_plan, create_sandbox) e attingono al saldo; se non basta restituiscono 402 o una fattura non pagata. L'agente può creare un link di ricarica o di pagamento, ma per pagarlo serve un wallet crypto, quindi lo fa una persona. Nessuna carta salvata, nessuno scoperto.

Cosa impedisce a un agente di cancellare il mio server?

reinstall_vps, reset_password e un cancel_service immediato richiedono confirm uguale all'hostname esatto (oppure DELETE per reinstallazione e reset). La disdetta predefinita è end_of_period: il server continua a funzionare e undo_cancel la annulla. Gli account delegati non possono disdire affatto. Il campo confirm ferma un agente che agisce su un'istruzione vaga, non un attaccante con il tuo token: imposta quindi anche questi strumenti su «chiedi sempre» nel tuo client MCP.

Cosa devo fare se il mio token Bearer è trapelato?

Revocalo subito (Dashboard → Impostazioni → Token API per agenti, oppure DELETE /auth/tokens/{id}). Poi controlla l'elenco dei token per quelli che non riconosci, guarda la cronologia del servizio di ogni server, le fatture e list_delegations, e cambia le password root dei server che il token poteva vedere: get_vps_status con reveal restituisce la password root.

Quanti strumenti ha il server MCP di EQVPS?

45 per un token cliente, alla versione 1.6.0 del server MCP (verificato il 2026-10-04): 5 pubblici, 15 in sola lettura, 17 che cambiano lo stato senza spendere e 8 che spendono, distruggono dati o concedono accesso. I token rivenditore vedono invece un insieme separato di 30 strumenti per rivenditori, 75 in totale sullo stesso endpoint.

Commenti

Ancora nessun commento. Sii il primo.

Lascia un commento

I commenti sono moderati prima di comparire.