טוקן MCP הוא סיסמת החשבון שלכם עם API מחובר אליה. תנו אותו לסוכן ויהיה לכם משתמש שאף פעם לא מתעייף, קורא כל עמוד שתפנו אותו אליו, ועושה בדיוק מה שאמרה ההוראה האחרונה בהקשר שלו. רוב הזמן זה בדיוק מה שאתם רוצים. העמוד הזה עוסק בשאר הזמן.
כל מה שמופיע כאן נבדק מול השרת החי בתאריך שבראש העמוד: רשימת הכלים לקוחה מ-tools/list בכתובת https://mcp.eqvps.com/mcp, והמגבלות מה-API עצמו. אם אתם חדשים, קראו קודם חיבור לקוח MCP וטוקני API, ואז חזרו.
מודל איומים: מה באמת משתבש
שלושה דברים, לפי הסדר שבו אנחנו רואים אותם:
- הסוכן מבין לא נכון. "תנקה את מכונת הבדיקות" הופך להתקנה מחדש של השרת הלא נכון. בלי כוונה רעה, פשוט מודל שהשלים חור בהוראה.
- הזרקת פרומפט. הסוכן קורא טקסט שלא אתם כתבתם (README, תשובה מהתמיכה, עמוד שנגרד מהרשת), והטקסט אומר לו לעשות משהו. אם בידי הסוכן טוקן עם הרשאות מלאות, גם להוראה המוזרקת יש אותן.
- הטוקן דולף. הוא מגיע להיסטוריית shell, למאגר ציבורי, להגדרת MCP משותפת או לשורת לוג.
שרת ה-MCP בודק שהטוקן תקף ושהשרת שייך לחשבון הזה (או הואצל לו). הוא לא יודע מה התכוונתם. כל מעקה בטיחות למטה עונה על שאלה אחת: כמה נזק אפשרי כשההוראה שגויה?
כל כלי ה-MCP לפי רמת סיכון
טוקן לקוח רואה 45 כלים (שרת MCP 1.6.0). טוקן משווק (rk_…) רואה סט נפרד של 30 כלי משווקים ואף אחד מאלה, כך שבנקודת הקצה יש בסך הכול 75. הלקוח שלכם מקבל מ-tools/list רק את הסט שלו.
העמוד הזה ממיין את הכלים לפי רמת סיכון. הפרמטרים ודוגמאות הקריאה של כל כלי נמצאים במדריך הפרמטרים; כל הכלים בשורה אחת, כולל 30 כלי המשווקים, נמצאים ברשימה המלאה.
אנחנו עדיין לא שולחים הערות כלים של MCP (readOnlyHint, destructiveHint), כך שהלקוח שלכם לא יכול למיין אותם בעצמו. הגדירו את האישורים ידנית לפי הרמות שלמטה.
רמה 0 — ציבוריים, בלי טוקן (5)
| כלי | מה הוא עושה |
|---|---|
get_started | כל התהליך בתשובה אחת: אילו כלים לקרוא ובאיזה סדר |
list_plans | חבילות, מחירים, אימג'ים של מערכות הפעלה |
sandbox_pricing | מחירי sandbox |
register_account | יוצר חשבון חדש ומחזיר את הטוקן שלו |
login | אימייל + סיסמה ← טוקן |
רמה 1 — קריאת החשבון, בלי תופעות לוואי (15)
| כלי | מה הוא עושה | שימו לב |
|---|---|---|
whoami | מזהה חשבון, שם, אימייל | |
get_balance | יתרה בתשלום מראש | |
list_vps | שרתים פעילים, בהקמה ומושעים | |
get_vps_status | מצב, מפרט, פרטי גישה | עם reveal: true מחזיר את סיסמת ה-root |
get_vps_metrics | CPU, זיכרון, רשת, דיסק לאורך זמן | |
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_vps | start / stop / reboot | stop זה 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 = שם מארח מדויק או DELETE; 4 קריאות לדקה |
reset_password | סיסמת root חדשה, הישנה מפסיקה לעבוד | confirm = שם המארח או DELETE; 6 קריאות לדקה |
cancel_service | end_of_period (ברירת מחדל, הפיך) או immediate (הורס את השרת מיד) | immediate דורש confirm = שם המארח |
kill_sandbox | מוחק sandbox יחד עם הקבצים | אין |
delegate_service | נותן לאדם אחר גישת מפעיל לשרת | רק הבעלים; הצד השני צריך לאשר |
יומן שינויים של סט הכלים
| תאריך | גרסת שרת | שינוי | השפעה על הסיכון |
|---|---|---|---|
| 2026-10-03 | 1.6.0 | נוסף refresh_token; טוקנים תקפים לשנה כברירת מחדל | רמה 2 |
| 2026-10-03 | 1.5.0 | undo_cancel, get_upgrade_options, change_plan | change_plan מוציא מהיתרה ← רמה 3 |
| 2026-10-03 | 1.1.0 | 13 כלי sandbox | create_sandbox מוציא, kill_sandbox מוחק ← רמה 3 |
הגרסה הרצה ציבורית: curl -s https://mcp.eqvps.com/healthz. כשהיא משתנה, הטבלה הזו משתנה איתה.
היתרה היא תקרת ההוצאה
EQVPS עובדת בתשלום מראש. אין כרטיס שמור, אין מסגרת אשראי ואין יתרה שלילית: המקסימום שסוכן יכול להוציא אי פעם הוא מה שיש ביתרה. שלושה כלים מוציאים כסף: order_vps, change_plan ו-create_sandbox. גם חידושי השרתים הקיימים שלכם יורדים מאותה יתרה.
הסוכן יכול ליצור בקשות תשלום, אבל לא לשלם אותן. topup_balance ו-pay_invoice מחזירים קישור תשלום בקריפטו, וקישור בלי ארנק מאחוריו לא עושה כלום. אין גם נקודת קצה למשיכה: כסף ביתרה יכול לקנות שירותים בחשבון שלכם, לא לצאת ממנו. החזרים מביטול מיידי חוזרים גם הם ליתרה.
הסתייגות אחת, והיא רצינית. אם תשאירו את היתרה נמוכה מאוד כדי לרסן את הסוכן, החידושים של השרתים שלכם עצמכם יתחילו להיכשל, והשרתים ייכנסו לתקופת חסד. כלל האצבע שלנו: מחזור חידוש אחד של מה שכבר רץ אצלכם, ועוד התקציב של המשימה הנוכחית של הסוכן. המדריך לתקציב סוכנים מפרט את החישוב. ואם תיתנו לסוכן ארנק משלו עם כסף, הארנק הזה הופך לתקרה שנייה שצריך לעקוב גם אחריה.
הרשאה מינימלית: אין (עדיין) טוקן לקריאה בלבד
תשובה ישירה: לכל טוקן לקוח יש אותן הרשאות כמו לחשבון בלוח הבקרה. אפשר לקבוע לטוקן שם ותוקף, אבל לא היקף הרשאות (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. צעד אחר צעד עם צילומי מסך: האצלת גישה וגישה בתיעוד.
| חשבון מואצל יכול | חשבון מואצל לא יכול |
|---|---|
| לראות מצב, מדדים והיסטוריה של השרת האחד הזה | לראות את השרתים האחרים שלכם, היתרה או החשבוניות |
| להפעיל, לכבות, לאתחל | לבטל, לחדש או להחליף חבילה |
| לקבוע שם מארח ו-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. טוקן שאתם לא מכירים, או טוקן שהיה בשימוש אחרי שכיביתם את הסוכן, הוא האות שלכם.
אם טוקן דלף
בסדר הזה:
- בטלו אותו. לוח בקרה ← הגדרות ← טוקני API לסוכנים ← ביטול, או
curl -s -X DELETE -H "Authorization: Bearer $EQVPS_TOKEN" https://api.eqvps.com/api/v1/eqvps/auth/tokens/<id>. הוא מפסיק לעבוד מהבקשה הבאה. - חפשו טוקנים חדשים שלא אתם יצרתם, ובטלו גם אותם.
- בדקו מה עלול היה להיפגע: היסטוריית השירות של כל שרת, החשבוניות והיתרה, ו-
list_delegationsלגישה שלא נתתם. - החליפו סיסמאות root בכל שרת שהטוקן הזה ראה.
get_vps_statusעםreveal: trueמוסר את סיסמת ה-root, כך שטוקן שדלף הוא סיסמת root שדלפה. בדקו גם את~/.ssh/authorized_keysכשאתם שם. - סגרו את דלת הסיסמה. אם לחשבון שלכם מעולם לא הייתה סיסמה, מי שהחזיק בטוקן יכול היה לקבוע אחת עם
set_password. התחברו עם קוד במייל והחליפו אותה.
המניעה לשלב 5 לא עולה כלום: קבעו בעצמכם סיסמה לחשבון עכשיו, ו-set_password יחזיר 409 לכל מי שיבוא אחריכם.
אישור אנושי
מה השרת אוכף:
reinstall_vps,reset_passwordו-cancel_serviceעםtype: immediateדורשים ש-confirmיהיה שם המארח המדויק (DELETEעובד גם בהתקנה מחדש ובאיפוס).change_planדורשconfirm: true.- ביטול ברירת המחדל הוא
end_of_period: השרת רץ עד סוף התקופה ששולמה, ו-undo_cancelמבטל את הביטול. - מגבלות קצב לכל חשבון: התקנה מחדש 4 לדקה, איפוס סיסמה 6 לדקה, הפעלה וכיבוי 20 לדקה, הזמנות 20 לדקה. מספיק כדי שלולאה לא תעשה את זה חמישים פעם, לא מספיק כדי לעצור קריאה שגויה אחת.
היו ברורים לגבי מה זה confirm. הוא מונע מסוכן לפעול על סמך "תנקה שם". הוא לא עוצר תוקף, כי שם המארח נמצא במרחק קריאה אחת ל-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: למי יש גישה למה, ועד מתי.
הפער הזה בהיסטוריית השירות הוא היום הגבול הכן של ביקורת בצד השרת. אם אתם צריכים לדעת איזה סוכן עשה מה, תעדו כל קריאה לכלי עם הארגומנטים שלה (בלי סודות) בצד של הסוכן.
ההגדרה שהיינו בוחרים
לסוכן שמנהל שרת ייצור אחד:
- חשבון נפרד לסוכן, יתרה אפס, השרת מואצל עם
expires_days: 90. - טוקן הבעלים נשאר אצלכם, ולא נמצא באף הגדרה של סוכן.
- גיבויים על השרת הזה, כי מואצל יכול להתקין מחדש.
- כלי רמה 3 על "ask" או "deny" בלקוח.
- הטוקן של הסוכן בקובץ
600, מתחדש לפני שהתוקף פג.
לסוכן שצריך להזמין שרתים או להריץ sandbox, האצלה לא מספיקה, כי הוא צריך יתרה. שם היתרה היא התקרה שלכם: טענו לפי משימה, תנו לטוקן שם, והציצו ב-last_used_at פעם בשבוע. אם טוקן לקריאה בלבד היה משנה את הדרך שבה אתם מפעילים סוכנים, ספרו לנו בתמיכה: בדיוק משוב כזה קובע מה נבנה בהמשך.
תגובות
אין עדיין תגובות. היו הראשונים.