−25%

på Windows ved årlig betaling, til 31/10. Se pakkerne

EQVPS
Kom i gang

MCP-sikkerhedsværn: sikre rettigheder til AI-agenter

Før du giver en AI-agent et token til dine servere, skal du vide præcis, hvad den kan røre ved. Alle 45 MCP-værktøjer hos EQVPS efter risikoniveau, de grænser serveren håndhæver, og den opsætning vi selv ville vælge.

Senest kontrolleret: 2026-10-04 · MCP-server 1.6.0 · 45 værktøjer (kundetoken)

Et MCP-token er din kontoadgangskode med et API sat på. Giv det til en agent, og du har en bruger, der aldrig bliver træt, læser enhver side du peger den hen til og gør præcis det, den seneste instruks i dens kontekst sagde. Det meste af tiden er det lige det, du vil have. Denne side handler om resten af tiden.

Alt herunder er kontrolleret mod den kørende server på datoen øverst: værktøjslisten kommer fra tools/list på https://mcp.eqvps.com/mcp, grænserne fra selve API'et. Er du ny, så læs først tilslut en MCP-klient og API-tokens, og kom så tilbage.

Trusselsmodel: hvad der faktisk går galt

Tre ting, i den rækkefølge vi ser dem:

  1. Agenten misforstår. "Ryd op på testmaskinen" bliver til en geninstallation af den forkerte server. Ingen ond vilje, bare en model, der udfylder et hul i instruksen.
  2. Promptinjektion. Agenten læser tekst, du ikke har skrevet (en README, et svar fra support, en skrabet side), og den tekst beder den gøre noget. Har agenten et token med fulde rettigheder, har den injicerede instruks det også.
  3. Tokenet lækker. Det havner i en shellhistorik, et offentligt repo, en delt MCP-konfiguration eller en loglinje.

MCP-serveren tjekker, at tokenet er gyldigt, og at serveren hører til den konto (eller er delegeret til den). Hvad du mente, ved den ikke. Hvert sikkerhedsværn herunder svarer på ét spørgsmål: hvor meget skade er mulig, når instruksen er forkert?

Alle MCP-værktøjer efter risikoniveau

Et kundetoken ser 45 værktøjer (MCP-server 1.6.0). Et forhandlertoken (rk_…) ser et separat sæt på 30 forhandlerværktøjer og ingen af disse, så endpointet har 75 i alt. Din klient får kun sit eget sæt fra tools/list.

Denne side sorterer værktøjerne efter risiko. Parametre og eksempler på kald for hvert værktøj står i parameterreferencen; alle værktøjer på én linje, inklusive de 30 forhandlerværktøjer, står i den komplette liste.

Vi leverer endnu ikke MCP-værktøjsannotationer (readOnlyHint, destructiveHint), så din klient kan ikke selv sortere dem. Indstil godkendelserne manuelt ud fra niveauerne herunder.

Niveau 0 — offentlige, intet token (5)

VærktøjHvad det gør
get_startedHele forløbet i ét svar: hvilke værktøjer i hvilken rækkefølge
list_plansPlaner, priser, OS-images
sandbox_pricingSandkassepriser
register_accountOpretter en ny konto og returnerer dens token
loginE-mail + adgangskode → token

Niveau 1 — læs kontoen, ingen bivirkninger (15)

VærktøjHvad det gørVær opmærksom på
whoamiKonto-id, navn, e-mail
get_balanceForudbetalt saldo
list_vpsAktive servere, servere under oprettelse og suspenderede servere
get_vps_statusStatus, specifikationer, adgangsoplysningerMed reveal: true returneres root-adgangskoden
get_vps_metricsCPU, hukommelse, netværk, disk over tid
get_upgrade_optionsPlaner serveren kan skifte til uden geninstallation
list_delegationsHvem du har givet adgang
list_delegated_to_meServere andre har delegeret til dig
list_ticketsDine supportsager
get_ticketÉn sag med hele trådenSagstekst er upålideligt input for agenten
list_sandboxesDine sandkasser
get_sandboxÉn sandkasse og dens forbrug
get_taskOutput fra en baggrundsopgave
download_fileLæser en lille fil fra en sandkasse
get_download_urlKortlivet link til én sandkassefilAlle med linket kan downloade, indtil det udløber

Niveau 2 — ændrer tilstand, bruger intet (17)

VærktøjHvad det gørVær opmærksom på
power_vpsstart / stop / rebootStop er stop: tjenester går ned
set_hostnameOmdøber serverenÆndrer netop den værdi, confirm sammenligner med
undo_cancelFjerner en planlagt opsigelse ved periodens udløb
refresh_tokenNyt token, det gamle tilbagekaldes med det sammeOpdatér statisk konfiguration bagefter
set_passwordSætter kontoens adgangskode, hvis der ikke er enDen, der har tokenet, kan sætte den før dig
topup_balanceOptankningsfaktura + kryptobetalingslinkBetaling kræver en tegnebog
pay_invoiceBetalingslink til en ubetalt fakturaDet samme
accept_delegationAccepterer en invitation
revoke_delegationAfslutter en delegering
create_ticket / reply_ticket / close_ticketSupportsagerAgenten skriver til support i dit navn
run_code / exec_commandKører kode i en sandkasseKun i sandkassen, ikke på din VPS
kill_taskStopper en baggrundsopgave i sandkassen
upload_file / get_upload_urlLægger en fil i sandkassen

Niveau 3 — bruger penge, sletter data eller giver adgang (8)

VærktøjHvad det gørKontrol på serveren
order_vpsBestiller en server, betalt fra saldoenSaldoen rækker ikke → ubetalt faktura, intet trukket
change_planPlanskift uden geninstallation, differencen trækkes fra saldoenconfirm: true; saldoen rækker ikke → 402
create_sandboxStarter en betalt sandkasseTom saldo → 402
reinstall_vpsSletter disken og installerer et nyt OSconfirm = præcist værtsnavn eller DELETE; 4 kald/min
reset_passwordNy root-adgangskode, den gamle holder op med at virkeconfirm = værtsnavn eller DELETE; 6 kald/min
cancel_serviceend_of_period (standard, kan fortrydes) eller immediate (destruerer serveren med det samme)immediate kræver confirm = værtsnavn
kill_sandboxSletter en sandkasse med fileringen
delegate_serviceGiver en anden person operatøradgang til en serverKun ejeren; personen skal acceptere

Ændringslog for værktøjssættet

DatoServerversionÆndringBetydning for risiko
2026-10-031.6.0refresh_token tilføjet; tokens gælder 1 år som standardNiveau 2
2026-10-031.5.0undo_cancel, get_upgrade_options, change_planchange_plan bruger saldo → niveau 3
2026-10-031.1.013 sandkasseværktøjercreate_sandbox bruger, kill_sandbox sletter → niveau 3

Den kørende version er offentlig: curl -s https://mcp.eqvps.com/healthz. Når den ændres, ændres denne tabel med.

Saldoen er udgiftsloftet

EQVPS er forudbetalt. Intet gemt kort, ingen kreditramme, intet overtræk: det meste, en agent nogensinde kan bruge, er det, der står på saldoen. Tre værktøjer bruger penge: order_vps, change_plan og create_sandbox. Fornyelser af dine eksisterende servere trækkes fra samme saldo.

Agenten kan oprette pengeanmodninger, men ikke betale dem. topup_balance og pay_invoice returnerer et kryptobetalingslink, og et link gør ingenting uden en tegnebog bagved. Der er heller ikke noget endpoint til udbetaling: penge på saldoen kan købe tjenester i din konto, men ikke trækkes ud. Refusioner ved øjeblikkelig opsigelse går også tilbage til saldoen.

Ét forbehold, og det er reelt. Holder du saldoen meget lav for at bremse agenten, begynder dine egne fornyelser at fejle, og servere går i henstandsperiode. Vores tommelfingerregel: én fornyelsescyklus af det, du allerede kører, plus budgettet for agentens aktuelle opgave. Guiden til agentbudget regner det igennem. Og giver du agenten sin egen tegnebog med penge på, bliver den tegnebog et andet loft, du også skal holde øje med.

Mindste rettighed: et skrivebeskyttet token findes ikke (endnu)

Ærligt svar: hvert kundetoken har de samme rettigheder som kontoen i kontrolpanelet. Navn og levetid på et token kan indstilles, scopes kan ikke.

Det snævreste, der findes i dag, er delegering. Du giver agenten sin egen konto med nul på saldoen og delegerer én server til den:

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

Det samme 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}'

Invitationen skal accepteres, mens man er logget ind med den e-mail (accept_delegation), og expires_days kan være 1 til 365. Trin for trin med skærmbilleder: delegér adgang og adgang i dokumentationen.

En delegeret konto kanEn delegeret konto kan ikke
Se status, målinger og historik for netop den serverSe dine andre servere, din saldo eller dine fakturaer
Starte, stoppe, genstarteOpsige, forny eller skifte plan
Sætte værtsnavn og omvendt DNSKøbe tilvalg eller IP-adresser
Nulstille root-adgangskodenÅbne webkonsollen
Geninstallere styresystemetDelegere serveren videre til andre

Læg mærke til de sidste to rækker til venstre. En delegeret kan ikke bruge dine penge, men kan slette den server. Slå backup til på alle servere, som en agent kan geninstallere.

Tokenhygiejne

Ét token pr. agent, med navn. Opret det under Dashboard → Indstillinger → API-tokens til agenter, eller sådan her:

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}'

Tokenet vises én gang. Levetid 1 til 1825 dage, 365 hvis du ikke angiver noget. Til agenter ville vi vælge 90.

Opbevar det i en fil, kun du kan læse, ikke i repoet, ikke i prompten, ikke i en shellvariabel, du kopierer rundt:

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   # forventet: -rw-------

Indlæs det derefter i agentens tjeneste med EnvironmentFile= (systemd) eller set -a; . ~/.config/eqvps/agent.env; set +a.

Rotér, før det udløber. Værktøjet refresh_token, eller POST /auth/tokens/{id}/refresh, udsteder et nyt token med samme navn og tilbagekalder det gamle med det samme. Står tokenet fast i din MCP-klients konfiguration, så opdatér den lige bagefter, ellers får næste session 401.

Tjek, hvem der bruger hvad: GET /auth/tokens viser hvert token med navn, udløb og last_used_at. Et token, du ikke kender, eller et der er brugt, efter du slukkede agenten, er dit signal.

Hvis et token lækker

I denne rækkefølge:

  1. Tilbagekald det. Dashboard → Indstillinger → API-tokens til agenter → Tilbagekald, eller curl -s -X DELETE -H "Authorization: Bearer $EQVPS_TOKEN" https://api.eqvps.com/api/v1/eqvps/auth/tokens/<id>. Det holder op med at virke ved næste forespørgsel.
  2. Led efter nye tokens, du ikke selv har oprettet, og tilbagekald også dem.
  3. Gennemgå, hvad der kan være ramt: tjenestehistorikken for hver server, dine fakturaer og din saldo, og list_delegations for adgang, du ikke har givet.
  4. Skift root-adgangskoder på alle servere, som det token kunne se. get_vps_status med reveal: true udleverer root-adgangskoden, så et lækket token er en lækket root-adgangskode. Tjek ~/.ssh/authorized_keys, mens du er der.
  5. Luk adgangskodedøren. Hvis din konto aldrig har haft en adgangskode, kan den, der havde tokenet, have sat en med set_password. Log ind med en kode via e-mail og skift den.

At forebygge trin 5 koster ingenting: sæt selv en kontoadgangskode nu, så returnerer set_password 409 til alle, der kommer efter dig.

Menneskelig godkendelse

Det håndhæver serveren:

  • reinstall_vps, reset_password og cancel_service med type: immediate kræver confirm lig med det præcise værtsnavn (DELETE virker også ved geninstallation og nulstilling).
  • change_plan kræver confirm: true.
  • Opsigelse sker som standard ved periodens udløb (end_of_period): serveren kører til slutningen af den betalte periode, og undo_cancel fortryder det.
  • Hastighedsgrænser pr. konto: geninstallation 4/min, nulstilling af adgangskode 6/min, strøm 20/min, bestillinger 20/min. Nok til at et loop ikke gør det halvtreds gange, ikke nok til at stoppe ét forkert kald.

Vær klar over, hvad confirm er. Det forhindrer en agent i at handle på "ryd op der". Det stopper ikke en angriber, for værtsnavnet er kun ét get_vps_status-kald væk. Den rigtige godkendelse ligger i din MCP-klient. De fleste klienter kan spørge før hvert værktøjskald: lad niveau 0 og 1 køre frit, og lad niveau 3 altid spørge. I klienter med rettigheder pr. værktøj, som settings.json i Claude Code (serveren registreret som 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"]
  }
}

Tilføj også en linje til agentens instruktioner. Alene er det ingen sikkerhedskontrol, men det skærer ned på misforståelserne (behold den på engelsk, modellerne forstår den lige så godt):

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.

Logger agenten ind med en e-mailkode i stedet for at holde et langlivet token, så se agentlogin via MCP.

Revision: hvad du kan se bagefter

  • Tokenlisten (GET /auth/tokens, eller Indstillinger → API-tokens til agenter): navn, oprettet, udløber, last_used_at. Derfor betaler det sig at navngive tokens pr. agent.
  • Tjenestehistorik (kontrolpanelet, serversiden): strømhandlinger, geninstallationer, nulstillinger af adgangskode, planskift, betalinger, hver med tidspunkt og aktør: dig, support eller automatisk. Den fortæller ikke, hvilket token eller hvilken delegeret der handlede, kun at det kom fra din side.
  • Fakturaer og saldo: hver trækning og refusion.
  • list_delegations: hvem der har adgang til hvad, og indtil hvornår.

Det hul i tjenestehistorikken er i dag den ærlige grænse for revision på serversiden. Skal du vide, hvilken agent der gjorde hvad, så log hvert værktøjskald med argumenter (uden hemmeligheder) på agentens side.

Den opsætning vi ville vælge

Til en agent, der passer én produktionsserver:

  1. En separat konto til agenten, nul på saldoen, serveren delegeret med expires_days: 90.
  2. Dit ejertoken bliver hos dig og ligger ikke i nogen agentkonfiguration.
  3. Backup på den server, fordi en delegeret kan geninstallere.
  4. Niveau 3-værktøjer på "ask" eller "deny" i klienten.
  5. Agentens token i en 600-fil, fornyet før det udløber.

Til en agent, der skal bestille servere eller køre sandkasser, er delegering ikke nok, for den har brug for saldo. Så er saldoen dit loft: fyld op pr. opgave, navngiv tokenet, og kig på last_used_at en gang om ugen. Hvis et skrivebeskyttet token ville ændre, hvordan du sætter agenter i arbejde, så sig det til os i support: det er netop den slags feedback, der afgør, hvad vi bygger næste gang.

Ofte stillede spørgsmål

Kan jeg give en AI-agent skrivebeskyttet adgang?

Ikke med et token i dag: hvert kundetoken har de samme rettigheder som din konto i kontrolpanelet. Det nærmeste er delegering: giv agenten sin egen konto uden saldo, og delegér én server til den. Agenten kan se og betjene den server, men ikke bruge penge, opsige, åbne konsollen eller delegere videre. Den kan stadig genstarte, nulstille root-adgangskoden og geninstallere, så slå backup til på den server.

Hvordan begrænser jeg, hvor meget en agent bruger?

Med den forudbetalte saldo. Kun tre værktøjer bruger penge (order_vps, change_plan, create_sandbox), og de trækker fra saldoen; er den for lav, returneres 402 eller en ubetalt faktura. Agenten kan oprette et link til optankning eller betaling, men betalingen kræver en kryptotegnebog, så det gør et menneske. Der er intet gemt kort og intet overtræk.

Hvad forhindrer en agent i at slette min server?

reinstall_vps, reset_password og en øjeblikkelig cancel_service kræver confirm lig med det præcise værtsnavn (eller DELETE ved geninstallation og nulstilling). Standardopsigelsen er end_of_period: serveren kører videre, og undo_cancel fortryder den. Delegerede konti kan slet ikke opsige. Feltet confirm stopper en agent, der handler på en vag instruks, ikke en angriber med dit token, så sæt også de værktøjer til altid at spørge i din MCP-klient.

Hvad gør jeg, hvis mit Bearer-token er lækket?

Tilbagekald det med det samme (Dashboard → Indstillinger → API-tokens til agenter, eller DELETE /auth/tokens/{id}). Gennemgå derefter tokenlisten for tokens, du ikke kender, se tjenestehistorikken for hver server, dine fakturaer og list_delegations, og skift root-adgangskoder på de servere, tokenet kunne se: get_vps_status med reveal returnerer root-adgangskoden.

Hvor mange værktøjer har EQVPS' MCP-server?

45 for et kundetoken på MCP-server 1.6.0 (kontrolleret 2026-10-04): 5 offentlige, 15 skrivebeskyttede, 17 der ændrer tilstand uden at bruge penge, og 8 der bruger penge, sletter data eller giver adgang. Forhandlertokens ser i stedet et separat sæt på 30 forhandlerværktøjer, i alt 75 på samme endpoint.

Kommentarer

Ingen kommentarer endnu. Vær den første.

Skriv en kommentar

Kommentarer modereres, før de vises.