−25%

за Windows при годишно плащане, до 31.10. Към плановете

EQVPS
Започни

Предпазители за MCP: безопасни права за AI агенти

Преди да дадете на AI агент токен за сървърите си, разберете точно до какво може да се докосне. Всички 45 MCP инструмента на EQVPS по нива на риск, ограниченията, които сървърът налага, и настройката, която бихме избрали самите ние.

Последна проверка: 2026-10-04 · MCP сървър 1.6.0 · 45 инструмента (клиентски токен)

MCP токенът е паролата на акаунта ви с прикачен API. Дайте го на агент и получавате потребител, който никога не се уморява, чете всяка страница, към която го насочите, и прави точно това, което е казала последната инструкция в контекста му. През повечето време точно това искате. Тази страница е за останалото време.

Всичко по-долу е проверено срещу работещия сървър на датата в началото: списъкът с инструменти идва от tools/list на https://mcp.eqvps.com/mcp, ограниченията от самия API. Ако тепърва започвате, първо вижте свързване на MCP клиент и API токени, после се върнете.

Модел на заплахите: какво наистина се обърква

Три неща, в реда, в който ги виждаме:

  1. Агентът разбира погрешно. „Почисти тестовата машина“ се превръща в преинсталиране на грешния сървър. Без злонамереност, просто модел, който запълва празнина в инструкцията.
  2. Prompt injection. Агентът чете текст, който не сте писали вие (README, отговор от поддръжката, страница от мрежата), и този текст му казва да направи нещо. Ако агентът държи токен с пълни права, вмъкнатата инструкция също ги има.
  3. Токенът изтича. Озовава се в история на shell, в публично хранилище, в споделена MCP конфигурация или в ред от лог.

MCP сървърът проверява дали токенът е валиден и дали сървърът принадлежи на този акаунт (или е делегиран на него). Какво сте имали предвид, не знае. Всеки предпазител по-долу отговаря на един въпрос: колко щета е възможна, ако инструкцията е грешна?

Всички MCP инструменти по нива на риск

Клиентският токен вижда 45 инструмента (MCP сървър 1.6.0). Реселърският токен (rk_…) вижда отделен набор от 30 реселърски инструмента и нито един от тези, така че endpoint-ът има общо 75. Вашият клиент получава от tools/list само своя набор.

Тази страница подрежда инструментите по риск. Параметрите и примерните извиквания на всеки са в справочника с параметри; всички инструменти на един ред, включително 30-те за реселъри, са в пълния списък.

Все още не изпращаме анотации на MCP инструментите (readOnlyHint, destructiveHint), така че клиентът не може сам да ги подреди. Настройте одобренията ръчно по нивата по-долу.

Ниво 0 — публични, без токен (5)

ИнструментКакво прави
get_startedЦелият сценарий в един отговор: кои инструменти и в какъв ред
list_plansПланове, цени, образи на ОС
sandbox_pricingЦени на sandbox средите
register_accountСъздава нов акаунт и връща токена му
loginИмейл + парола → токен

Ниво 1 — четене на акаунта, без странични ефекти (15)

ИнструментКакво правиВнимание
whoamiId, име, имейл на акаунта
get_balanceПредплатен баланс
list_vpsАктивни, създаващи се и спрени сървъри
get_vps_statusСтатус, параметри, данни за достъпС reveal: true връща root паролата
get_vps_metricsCPU, памет, мрежа, диск във времето
get_upgrade_optionsПланове, към които сървърът може да мине без преинсталиране
list_delegationsНа кого сте дали достъп
list_delegated_to_meСървъри, делегирани на вас
list_ticketsВашите тикети към поддръжката
get_ticketЕдин тикет с цялата кореспонденцияТекстът на тикета е недоверен вход за агента
list_sandboxesВашите sandbox среди
get_sandboxЕдна sandbox среда и разходът ѝ
get_taskИзход от фонова задача
download_fileЧете малък файл от sandbox среда
get_download_urlКраткотраен линк към един файл от sandboxВсеки с линка може да изтегли, докато не изтече

Ниво 2 — променят състоянието, не харчат нищо (17)

ИнструментКакво правиВнимание
power_vpsstart / stop / rebootStop си е stop: услугите падат
set_hostnameСменя името на сървъраСменя точно стойността, с която сравнява confirm
undo_cancelМаха планирано прекратяване в края на периода
refresh_tokenНов токен, старият се отменя веднагаПосле обновете статичната конфигурация
set_passwordЗадава паролата на акаунта, ако още нямаКойто държи токена, може да я зададе преди вас
topup_balanceФактура за зареждане + линк за криптоплащанеЗа плащане трябва портфейл
pay_invoiceЛинк за плащане на неплатена фактураСъщото
accept_delegationПриема покана
revoke_delegationПрекратява делегиране
create_ticket / reply_ticket / close_ticketТикети към поддръжкатаАгентът пише на поддръжката от ваше име
run_code / exec_commandИзпълнява код в sandboxСамо в sandbox, не на вашия VPS
kill_taskСпира фонова задача в sandbox
upload_file / get_upload_urlКачва файл в sandbox

Ниво 3 — харчат пари, унищожават данни или дават достъп (8)

ИнструментКакво правиПроверка на сървъра
order_vpsПоръчва сървър, плащане от балансаНе стига баланс → неплатена фактура, нищо не е изтеглено
change_planСмяна на плана без преинсталиране, разликата се тегли от балансаconfirm: true; не стига баланс → 402
create_sandboxСтартира платена sandbox средаПразен баланс → 402
reinstall_vpsИзтрива диска и инсталира нова ОСconfirm = точният hostname или DELETE; 4 извиквания/мин
reset_passwordНова root парола, старата спира да работиconfirm = hostname или DELETE; 6 извиквания/мин
cancel_serviceend_of_period (по подразбиране, обратимо) или immediate (унищожава сървъра веднага)immediate изисква confirm = hostname
kill_sandboxИзтрива sandbox средата заедно с файловетеняма
delegate_serviceДава на друг човек операторски достъп до сървърСамо собственикът; другият трябва да приеме

Дневник на промените в набора инструменти

ДатаВерсия на сървъраПромянаЕфект върху риска
2026-10-031.6.0Добавен refresh_token; токените по подразбиране важат 1 годинаНиво 2
2026-10-031.5.0undo_cancel, get_upgrade_options, change_planchange_plan харчи баланс → ниво 3
2026-10-031.1.013 инструмента за sandboxcreate_sandbox харчи, kill_sandbox унищожава → ниво 3

Текущата версия е публична: curl -s https://mcp.eqvps.com/healthz. Когато се смени, ще се смени и тази таблица.

Балансът е таванът на разходите

EQVPS работи с предплата. Няма запазена карта, кредитна линия или овърдрафт: най-много, което агентът изобщо може да похарчи, е това, което стои на баланса. Харчат три инструмента: order_vps, change_plan и create_sandbox. Подновяванията на текущите ви сървъри също се теглят от същия баланс.

Агентът може да създава заявки за пари, но не и да ги плаща. topup_balance и pay_invoice връщат линк за криптоплащане, а линк без портфейл зад него не прави нищо. Няма и endpoint за теглене: парите от баланса могат да купуват услуги в акаунта ви, но не и да излязат навън. Възстановените суми при незабавно прекратяване също се връщат на баланса.

Една уговорка, и тя е сериозна. Ако държите баланса много нисък, за да ограничите агента, започват да се провалят подновяванията на собствените ви сървъри и те влизат в гратисен период. Нашето правило: един цикъл подновяване на това, което вече работи, плюс бюджета на текущата задача на агента. Ръководството за бюджет на агент показва сметката. А ако дадете на агента собствен портфейл с пари, този портфейл става втори таван, който също трябва да следите.

Минимални права: токен само за четене (все още) няма

Направо: всеки клиентски токен има същите права като акаунта в таблото. Името и срокът на токена се настройват, обхватите (scopes) не.

Най-тясното, което има днес, е делегирането. Давате на агента собствен акаунт с нулев баланс и му делегирате един сървър:

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

Същото през 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}'

Поканата трябва да се приеме, докато сте влезли с този имейл (accept_delegation), а expires_days е от 1 до 365. Стъпка по стъпка с екранни снимки: делегиране на достъп и достъп в документацията.

Делегираният акаунт можеДелегираният акаунт не може
Да вижда статуса, метриките и историята на този един сървърДа вижда другите ви сървъри, баланса или фактурите
Да включва, изключва, рестартираДа прекратява, подновява или сменя плана
Да задава hostname и обратен DNSДа купува добавки или IP адреси
Да нулира root паролатаДа отваря уеб конзолата
Да преинсталира ОСДа делегира сървъра на някой друг

Обърнете внимание на последните два реда отляво. Делегатът не може да похарчи парите ви, но може да изтрие този сървър. Включете резервни копия на всеки сървър, който агент може да преинсталира.

Хигиена на токените

Един токен на агент, с име. Създайте го от Табло → Настройки → API токени за агенти или така:

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

Токенът се показва само веднъж. Срок от 1 до 1825 дни, 365, ако не посочите. За агенти бихме избрали 90.

Пазете го във файл, който само вие можете да четете, не в хранилището, не в промпта, не в shell променлива, която копирате насам-натам:

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   # очаквано: -rw-------

След това го заредете в услугата на агента с EnvironmentFile= (systemd) или set -a; . ~/.config/eqvps/agent.env; set +a.

Ротирайте преди изтичане. Инструментът refresh_token или POST /auth/tokens/{id}/refresh издава нов токен със същото име и веднага отменя стария. Ако токенът е записан твърдо в конфигурацията на MCP клиента, обновете я веднага след това, иначе следващата сесия ще получи 401.

Проверявайте кой какво ползва: GET /auth/tokens показва всеки токен с име, срок и last_used_at. Непознат токен или такъв, използван след като сте спрели агента, е вашият сигнал.

Ако токен изтече

В този ред:

  1. Отменете го. Табло → Настройки → API токени за агенти → Отмяна, или curl -s -X DELETE -H "Authorization: Bearer $EQVPS_TOKEN" https://api.eqvps.com/api/v1/eqvps/auth/tokens/<id>. Спира да работи от следващата заявка.
  2. Потърсете нови токени, които не сте създали вие, и ги отменете също.
  3. Проверете какво може да е засегнато: историята на услугата за всеки сървър, фактурите и баланса, и list_delegations за достъп, който не сте давали.
  4. Сменете root паролите на всички сървъри, които този токен е виждал. get_vps_status с reveal: true дава root паролата, така че изтекъл токен означава изтекла root парола. Проверете и ~/.ssh/authorized_keys, докато сте там.
  5. Затворете вратата с паролата. Ако акаунтът ви никога не е имал парола, който е държал токена, е могъл да зададе такава със set_password. Влезте с код по имейл и я сменете.

Превенцията за стъпка 5 не струва нищо: задайте сами парола на акаунта още сега и set_password ще връща 409 на всеки след вас.

Човешко одобрение

Какво налага сървърът:

  • reinstall_vps, reset_password и cancel_service с type: immediate изискват confirm, равно на точния hostname (DELETE работи и при преинсталиране и нулиране).
  • change_plan изисква confirm: true.
  • Прекратяването по подразбиране е end_of_period: сървърът работи до края на платения период, а undo_cancel го връща.
  • Лимити на акаунт: преинсталиране 4/мин, нулиране на парола 6/мин, захранване 20/мин, поръчки 20/мин. Достатъчно, за да не направи зациклен агент едно и също петдесет пъти, но не и за да спре една грешна команда.

Бъдете наясно какво е confirm. То не позволява на агента да действа по „почисти там“. Нападател не спира, защото hostname-ът е на едно извикване get_vps_status разстояние. Истинското одобрение живее във вашия MCP клиент. Повечето клиенти могат да питат преди всяко извикване: пускайте нива 0 и 1 свободно, а ниво 3 винаги с въпрос. В клиенти с права за отделни инструменти, например settings.json на Claude Code (сървърът е регистриран като 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"]
  }
}

Добавете и ред в инструкциите на агента. Сам по себе си не е защита, но намалява случаите на недоразумение (оставете го на английски, моделите го разбират еднакво добре):

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.

Ако агентът влиза с код по имейл, вместо да държи дълготраен токен, вижте вход на агент през MCP.

Одит: какво се вижда после

  • Списък с токени (GET /auth/tokens или Настройки → API токени за агенти): име, създаден, изтича, last_used_at. Ето защо си струва да кръщавате токените по агенти.
  • История на услугата (табло, страница на сървъра): включвания и изключвания, преинсталирания, нулиране на пароли, смени на план, плащания, всяко с час и източник: вие, поддръжката или автоматично. Не казва кой токен или делегат е действал, само че действието е дошло от ваша страна.
  • Фактури и баланс: всяко теглене и възстановяване.
  • list_delegations: кой има достъп, до какво и до кога.

Тази празнина в историята на услугата е честната граница на сървърния одит днес. Ако трябва да знаете кой агент какво е направил, логвайте всяко извикване на инструмент с аргументите (без тайните) от страна на агента.

Настройката, която бихме избрали

За агент, който поддържа един продукционен сървър:

  1. Отделен акаунт за агента, нулев баланс, сървърът е делегиран с expires_days: 90.
  2. Вашият собственически токен остава при вас и не стои в никаква конфигурация на агента.
  3. Резервни копия на този сървър, защото делегатът може да го преинсталира.
  4. Инструментите от ниво 3 в клиента на „ask“ или „deny“.
  5. Токенът на агента във файл с права 600, подновяван преди изтичане.

За агент, който трябва да поръчва сървъри или да пуска sandbox среди, делегирането не стига, защото му трябва баланс. Тогава таванът е балансът: зареждайте го за конкретната задача, дайте име на токена и веднъж седмично поглеждайте last_used_at. Ако токен само за четене би променил начина, по който пускате агенти, пишете ни в поддръжката: точно такава обратна връзка решава какво правим по-нататък.

Често задавани въпроси

Мога ли да дам на AI агент достъп само за четене?

С токен засега не: всеки клиентски токен има същите права като акаунта ви в таблото. Най-близкият вариант е делегирането: дайте на агента отделен акаунт без баланс и му делегирайте един сървър. Агентът ще вижда и управлява този сървър, но няма да може да харчи пари, да прекратява услугата, да отваря конзолата или да делегира нататък. Рестарт, нулиране на root паролата и преинсталиране остават достъпни, затова включете резервни копия на този сървър.

Как да огранича колко харчи агентът?

С предплатения баланс. Пари харчат само три инструмента (order_vps, change_plan, create_sandbox) и те теглят от баланса; ако не стига, връщат 402 или неплатена фактура. Агентът може да създаде линк за зареждане или плащане, но за да се плати, трябва криптопортфейл, така че това прави човек. Няма запазена карта и няма овърдрафт.

Какво пречи на агент да изтрие сървъра ми?

reinstall_vps, reset_password и незабавният cancel_service изискват confirm, равно на точния hostname (или DELETE при преинсталиране и нулиране). Прекратяването по подразбиране е end_of_period: сървърът продължава да работи, а undo_cancel го отменя. Делегираните акаунти изобщо не могат да прекратяват. Полето confirm спира агент, който действа по неясна инструкция, но не и нападател с вашия токен, затова в MCP клиента настройте тези инструменти и на „винаги питай“.

Какво да направя, ако Bearer токенът ми изтече?

Отменете го веднага (Табло → Настройки → API токени за агенти или DELETE /auth/tokens/{id}). След това прегледайте списъка с токени за непознати, вижте историята на услугата за всеки сървър, фактурите и list_delegations, и сменете root паролите на сървърите, които токенът е виждал: get_vps_status с reveal връща root паролата.

Колко инструмента има MCP сървърът на EQVPS?

45 за клиентски токен при MCP сървър 1.6.0 (проверено на 2026-10-04): 5 публични, 15 само за четене, 17, които променят състоянието без разходи, и 8, които харчат пари, унищожават данни или дават достъп. Токените на реселъри виждат вместо тях отделен набор от 30 реселърски инструмента, общо 75 на същия endpoint.

Коментари

Още няма коментари. Бъди първият.

Остави коментар

Коментарите се модерират преди да се появят.