Cloudways השיקו לאחרונה שרת MCP רשמי. מאז שחיברתי אותו ל-Claude Code, אני פשוט מבקש מ-Claude מידע על השרתים, האפליקציות, הגדרות ה-PHP וגרפי הניטור שלי, בשפה חופשית ובלי לפתוח את לוח הבקרה של Cloudways.
אבל אותו חיבור יכול גם להפעיל מחדש שירותים, לנקות Cache ואפילו למחוק שרתים. השרת שחיברתי מריץ את הבלוג הזה וגם אתר חי של לקוח, כך שפעולה שגויה אחת עלולה להשבית עסק של מישהו אחר. לכן חיברתי אותו במצב קריאה בלבד (Read-Only), ואימתתי כל תשובה מול SSH לפני שסמכתי עליה.
בפוסט זה אראה בדיוק איך הגדרתי את זה על ה-Mac שלי, כולל שלב שחסר במדריך הרשמי: חסימה של כל הכלים שמבצעים שינויים בשרת, ישירות בתוך Claude Code. בהמשך אראה אילו תשובות תאמו את מה שראיתי בשרת, ואילו לא.
מהו שרת ה-MCP של Cloudways?
שרת ה-MCP של Cloudways הוא Endpoint מרוחק (כלומר שרת שרץ אצל Cloudways ולא אצלכם) שחושף את הפעולות של פלטפורמת Cloudways ככלים שסוכן AI יכול להפעיל. הוא חינמי לכל לקוחות Cloudways, ועובד עם Claude Code, Claude Desktop, Cursor, VS Code Copilot, Gemini CLI ו-Codex.
אם MCP הוא מושג חדש עבורכם, התחילו מהמדריך שלנו על חיבור שרתי MCP ל-Claude Code. בקצרה, MCP הוא סטנדרט לחיבור כלים חיצוניים למודל שפה.
אחרי החיבור, Claude ראה 66 כלים: 62 כלים רגילים ו-4 כלי Discovery, שטוענים את שאר הכלים רק כשצריך אותם (כך רשימת הכלים נשארת קצרה). בסך הכול עומדים מאחוריהם 315 כלים, ב-22 קבוצות כמו שרתים, אפליקציות, ניטור, אבטחה ו-DNS.
מדובר בהמון הרשאות דרך חיבור אחד, ו-Cloudways עצמם כותבים את זה במפורש בשאלות הנפוצות שלהם:
"Yes. Cloudways MCP can perform destructive actions such as server and application deletion. Note that these actions are irreversible."
– מרכז העזרה של Cloudways, How to Use Cloudways MCP Server
בגלל המשפט הזה (בתרגום חופשי: הכלי יכול למחוק שרתים ואפליקציות, ואין דרך חזרה) התחלתי במצב קריאה בלבד, והוספתי שכבת הגנה נוספת בתוך Claude Code.
מה תצטרכו לפני שמתחילים
ההגדרה עצמה לקחה לי כ-15 דקות, והבדיקות לקחו יותר זמן. מה שתצטרכו:
- חשבון Cloudways הראשי. רק בעל החשבון יכול ליצור API tokens, חברי צוות לא.
- Claude Code מותקן ומחובר.
- Mac. ה-token נשמר ב-Keychain של macOS. ב-Linux או Windows השתמשו בכלי ניהול הסיסמאות שלכם או במשתנה סביבה.
אין צורך ב-Node.js. המדריך של Cloudways מציין אותו כדרישה מוקדמת, אבל הוא נחוץ רק ל-clients שצריכים את הגשר mcp-remote, כמו Claude Desktop. Claude Code מתחבר ישירות לשרתי HTTP מרוחקים (בלי גשר), אז דילגתי על ההתקנה.
כיצד לחבר את Claude Code ל-MCP של Cloudways
המדריך הרשמי מציע פקודת claude mcp add אחת, שבה מדביקים את ה-token. זה עובד, אבל ה-token נשמר כטקסט גלוי בקובץ ~/.claude.json. לא רציתי שמפתח גישה לשרתים שלי ישב בקובץ הגדרות פתוח, ולכן שמרתי אותו ב-Keychain.
שלב 1: יצירת Access Token לקריאה בלבד
בלוח הבקרה של Cloudways פתחתי את תפריט הפרופיל בפינה הימנית העליונה ובחרתי ב-״API Integration״. תחת ״Access Token Details״ לחצתי על ״Create Access Token״.
בטופס יש שלושה שדות:
- Name: השתמשתי ב-
Claude Code MCP read only Savvy Mac. בניסיון הראשון השתמשתי בשם עם מקף וסוגריים, והטופס דחה אותו עם ההודעה "Access token name can only contain letters, numbers, and spaces" (כלומר, רק אותיות, מספרים ורווחים). - Expiration: בחרתי בחודש. זה מספיק זמן לבדיקות, ואם אשכח ממנו, הוא יפוג מעצמו. האפשרויות הן יום, חודש, 3 חודשים, 6 חודשים, שנה ו-Never.
- Scope: בחרתי ב-״Read-Only Access״. שתי האפשרויות האחרות הן Limited Access (בגרסת Beta, ועשויה לכלול גם endpoints שמבצעים שינויים) ו-Full Access.

טופס ה-token עם ההגדרות שלי. Limited Access עדיין מסומן כ-Beta.
אחר כך לחצתי על ״Create Access Token״ והעתקתי את ה-token ממסך האישור.
ה-token המלא מוצג פעם אחת בלבד, ואי אפשר לשחזר אותו אחר כך. העתיקו אותו ישירות לשלב הבא, ואל תצלמו את המסך הזה. אם איבדתם אותו, בטלו אותו (Revoke) וצרו חדש.
כשחזרתי לטבלת ה-tokens, בעמודה ״Scopes״ הופיע ״Read-Only Access״. זכרו את זה, כי זה יהיה חשוב בהמשך.

ה-token החדש בטבלת Access Token Details, עם הרשאת Read-Only Access.
שלב 2: שמירת ה-token ב-Keychain של macOS
בשלב הבא שמרתי את ה-token ב-Keychain של macOS. הרצתי את הפקודה בחלון Terminal נפרד ולא דרך Claude, כך שה-token לא עבר בשום שלב דרך הצ'אט:
security add-generic-password -a "$USER" -s cloudways-mcp-token -U -w
בשלב זה macOS מבקש "password data for new item". ההודעה הזו בלבלה אותי בהתחלה: היא מבקשת את ה-token, לא את סיסמת ה-Mac שלכם. הדביקו את ה-token, לחצו Enter, והדביקו אותו שוב כשתתבקשו לאשר. שום דבר לא מוצג על המסך בזמן ההדבקה, וזה תקין.
בכדי לוודא שהוא נשמר בלי להדפיס אותו, ביקשתי רק את האורך שלו:
security find-generic-password -a "$USER" -s cloudways-mcp-token -w | tr -d '\n' | wc -c
שלב 3: יצירת סקריפט Header Helper
השרת של Cloudways מצפה לשני headers בכל בקשה: X-Access-Token עם ה-token שלכם, ו-X-Mcp-Host עם שם ה-client. עבור Claude Code, השם הוא claude-code.
ב-Claude Code יש לשרתי HTTP אפשרות בשם headersHelper: בכל התחברות היא מריצה פקודה, ומשתמשת ב-JSON שהפקודה מדפיסה בתור ה-headers. שמרתי את הסקריפט הבא בנתיב ~/.claude/mcp-helpers/cloudways-headers.sh:
#!/bin/sh
# Prints the Cloudways MCP headers. The token stays in the macOS Keychain.
tok=$(security find-generic-password -a "$USER" -s cloudways-mcp-token -w 2>/dev/null) || exit 1
[ -n "$tok" ] || exit 1
printf '{"X-Access-Token":"%s","X-Mcp-Host":"claude-code"}' "$tok"
אחר כך הפכתי אותו לבר הרצה, והגבלתי את ההרשאות שלו למשתמש שלי בלבד:
chmod 700 ~/.claude/mcp-helpers/cloudways-headers.sh
שלב 4: הוספת השרת ל-Claude Code
רשמתי את השרת ב-user scope, כך שהוא זמין בכל פרויקט. השתמשו בנתיב המלא לסקריפט:
claude mcp add-json -s user cloudways '{"type":"http","url":"https://mcp.cloudways.com/mcp/","headersHelper":"/Users/YOUR_USER/.claude/mcp-helpers/cloudways-headers.sh"}'
אל תסירו את ה-/ שבסוף ה-URL: לפי המדריך של Cloudways, וריאציות אחרות של הכתובת נכשלות בלי שום הודעת שגיאה. אחר כך וידאתי את החיבור:
claude mcp get cloudways
בפלט הופיעו Scope: User config ו-Status: ✔ Connected. הקובץ ~/.claude.json שלי מכיל עכשיו רק את ה-URL ואת נתיב הסקריפט, בלי token.
שלב 5: פתיחת Session חדש
בבדיקה שלי, ה-session של Claude Code שכבר היה פתוח לא ראה את הכלים החדשים, למרות ש-claude mcp get הראה Connected. session חדש טען אותם מיד.
לכן, אחרי שהוספתם את השרת, פתחו session חדש. אבל לפני השאלה הראשונה, השלימו את החסימה שבחלק הבא. אני בדקתי את רשימת הכלים לפני ששאלתי משהו, ומה שמצאתי שינה לי את התוכנית.
חסימת הכלים שמבצעים שינויים ב-Claude Code
זה החלק שהפתיע אותי, והמדריך הרשמי לא מזכיר אותו. גם עם token לקריאה בלבד, רשימת הכלים של השרת כללה את כל הכלים שמבצעים שינויים (Write tools): server_delete, service_restart, app_purge_cache, server_settings_update וכל השאר.
רשימת הכלים לא משתנה לפי הרשאות ה-token. גם token לקריאה בלבד מציג ל-Claude את כל 34 הכלים שמבצעים שינויים. סביר להניח ש-Cloudways חוסמים את השינוי עצמו ברגע שהכלי מופעל, אבל לא בדקתי את זה, כי בשביל לבדוק צריך לנסות לבצע שינוי בשרת חי.
בנוסף, הכלים לא מסומנים כקריאה בלבד או כפעולה הרסנית, כך ש-Claude Code לא יכול להבדיל בעצמו בין כלי שרק מציג מידע לכלי שמשנה משהו. הפתרון שלי היה לחסום את הכלים האלה בתוך Claude Code עצמו.
הוספתי את הכללים הבאים לבלוק permissions בקובץ ~/.claude/settings.json. אם אתם מעתיקים אותם, שלבו אותם עם הכללים הקיימים שלכם:
"deny": [
"mcp__cloudways__server_create",
"mcp__cloudways__server_start",
"mcp__cloudways__server_stop",
"mcp__cloudways__server_restart",
"mcp__cloudways__server_delete",
"mcp__cloudways__server_backup",
"mcp__cloudways__server_scale",
"mcp__cloudways__server_update_label",
"mcp__cloudways__app_create",
"mcp__cloudways__app_delete",
"mcp__cloudways__app_clone",
"mcp__cloudways__app_clone_to_server",
"mcp__cloudways__app_backup",
"mcp__cloudways__app_purge_cache",
"mcp__cloudways__app_update_label",
"mcp__cloudways__app_vulnerabilities_refresh",
"mcp__cloudways__app_credentials",
"mcp__cloudways__service_restart",
"mcp__cloudways__service_start",
"mcp__cloudways__service_stop",
"mcp__cloudways__varnish_manage",
"mcp__cloudways__varnish_app_manage",
"mcp__cloudways__addon_activate",
"mcp__cloudways__addon_deactivate",
"mcp__cloudways__addon_activate_on_server",
"mcp__cloudways__addon_deactivate_on_server",
"mcp__cloudways__cloudflare_add_domain",
"mcp__cloudways__dns_made_easy_add_domains",
"mcp__cloudways__dns_made_easy_delete_domains",
"mcp__cloudways__dns_made_easy_add_records",
"mcp__cloudways__dns_made_easy_delete_records",
"mcp__cloudways__dns_made_easy_update_record",
"mcp__cloudways__server_settings_update",
"mcp__cloudways__server_disk_cleanup_settings_update",
"mcp__cloudways__server_disk_cleanup_execute"
],
"ask": [
"mcp__cloudways__execute_tool"
]
הרשימה כוללת את 34 הכלים שמבצעים שינויים, ועוד את app_credentials. הוא נחשב לכלי שרק מציג מידע, אבל מחזיר סיסמאות SSH ו-SFTP, אז חסמתי גם אותו.
אתם לא חייבים לסמוך על הרשימה שלי. לשרת יש כלי בשם get_write_tools שמחזיר את כל הכלים שלו שמבצעים שינויים, 188 בסך הכול. עבור 62 הכלים הרגילים, הרשימה שלו תאמה לשלי בדיוק.
כלל ה-ask חשוב לא פחות. execute_tool הוא השער לשאר 249 הכלים, כולל כ-150 כלים נוספים שמבצעים שינויים. כשהוא מוגדר ל-ask, Claude Code שואל אותי לפני כל הפעלה שלו, ואני מאשר רק אחרי שבדקתי שמדובר בפעולה שרק מציגה מידע.
בבדיקות שלי, הכלים החסומים נעלמו לגמרי מהרשימה ש-Claude רואה: 31 כלים של Cloudways במקום 66.
מה אפשר לבקש מ-Claude אחרי החיבור
התחלתי בשאלות שיכולתי לבדוק בעצמי. כל אלו עבדו:
- "List my Cloudways servers and every app on each, with its domain."
- "What PHP version does each app run?"
- "Show CPU and memory around the reboot on October 3 at 12:14 UTC."
- "Is Varnish enabled for each app?"
- "Which PHP pages were slowest on my main app in the last day?"
הרצתי כל שאלה ב-session חדש של Claude Code, והשוויתי את התשובה למה ש-SSH הראה על אותו שרת. בעיקר חיפשתי איפה הוא טועה.
בקשות פשוטות קיבלו תשובה תוך 0.3 עד 0.9 שניות לכל הפעלה של כלי, ושאלה מורכבת (מכמה חלקים) לקחה דקה עד שתיים.
| שאלה | מה ה-MCP ענה | מה השרת הראה | תוצאה |
|---|---|---|---|
| שרתים ואפליקציות | שרת אחד, 5 אפליקציות, עם דומיינים | אותן 5 אפליקציות ודומיינים בהגדרות Nginx | תואם |
| PHP לכל אפליקציה | 8.4 בכל 5 האפליקציות | כל 5 ה-pools של PHP-FPM רצים על 8.4 | תואם |
| זיכרון OPcache | 384 MB | 384 בכל קובץ opcache.ini |
תואם |
| זמן האתחול | ה-CPU במצב idle מלא ב-12:15, הזיכרון הפנוי קופץ | אתחול אחרון ב-12:14:36 | תואם |
| Varnish | מופעל בכל האפליקציות | header של x-cache בכל דומיין |
תואם |
| עמודי ה-PHP האיטיים | 7 השורות המובילות עם ספירות וזמנים | ספירות וזמנים זהים בלוג של PHP-FPM | תואם בדיוק |
| גרסת וורדפרס | 6.2.2 בכל אפליקציה | 7.1.2 בכל אפליקציה | שגוי |
התשובה על העמודים האיטיים הייתה השימושית ביותר עבורי. היא תאמה ללוג הגישה של PHP-FPM בשרת שורה אחר שורה, והראתה שהבקשות האיטיות ביותר שלי הן משימות רקע של Action Scheduler שרצות 20 עד 30 שניות כל אחת, ולא עמודים בצד הגולש. זה כבר ברשימת המשימות שלי.
איפה התשובות היו מטעות
רוב התשובות היו נכונות, אבל שלושה שדות היו מטעים אותי אם לא הייתי בודק:
- גרסת וורדפרס לא מעודכנת. פרטי האפליקציה מציגים 6.2.2 בכל אפליקציה, בזמן שכולן מריצות 7.1.2. נראה שזו הגרסה מזמן ההתקנה.
- ה-PHP של השרת הוא לא ה-PHP של האפליקציה. הגדרות השרת מציגות PHP 8.2. זו רק ברירת המחדל של השרת, והגרסה של כל אפליקציה (8.4 במקרה שלי) נמצאת בהגדרות האפליקציה, אליהן מגיעים דרך
execute_tool. - הגרפים הפוכים. בקשה לנתוני CPU מחזירה אחוז idle, ובקשה לזיכרון מחזירה בתים פנויים. מספר גבוה פירושו פחות עומס, לא יותר.
Claude טיפל יפה במקרה של ה-PHP. כשהוא לא הצליח להגיע להגדרות האפליקציה, הוא אמר לי את זה במפורש וסירב לנחש לפי ברירת המחדל של השרת.
מה ה-MCP של Cloudways עדיין לא יודע לעשות
חיפשתי את הנושאים הבאים בשמות ובתיאורים של כל 315 הכלים, ולא מצאתי כלום. בשבילם אני עדיין עובד עם SSH או עם לוח הבקרה:
- תעודות SSL. אין כלי שמחזיר את מנפיק התעודה או את תאריך התפוגה שלה. הפקודה
openssl s_clientעונה על זה תוך שנייה. - היסטוריית גיבויים. מקבלים את הגדרת תדירות הגיבוי, אבל לא יודעים מתי הגיבוי האחרון רץ והאם הוא הצליח.
- שימוש חי ב-OPcache. רואים את הגודל המוגדר של OPcache, לא כמה הוא מלא ולא את ה-hit rate.
- תובנות Copilot. הכלי קיים, אבל הוא מחזיר שגיאת 403 של "subscription required" אם אין לכם מנוי בתשלום ל-Cloudways Copilot.
הוא גם לא יכול לקרוא קבצים, כך שהגדרות ב-wp-config.php, ה-crontab ולוגים שלא מופיעים בתצוגות האנליטיקה שלו נשארים בצד של ה-SSH. בשביל תוסף ה-Cache עצמו אני משתמש ב-WP Rocket MCP, שמכסה את מה שה-MCP של Cloudways לא מגיע אליו.
פתרון בעיות ונקודות שכדאי להכיר
אלו הבעיות שנתקלתי בהן, פחות או יותר לפי הסדר שבו סביר שתיתקלו בהן:
- שני סוגי headers בתיעוד. חלקים במדריך של Cloudways עדיין מציגים
X-CW-Emailו-X-CW-Api-Key. זו שיטת ה-API key הישנה, ש-Cloudways מבטלים באמצע אוקטובר 2026. השתמשו ב-X-Access-Tokenוב-X-Mcp-Host. - שם ה-token נדחה. רק אותיות, מספרים ורווחים.
- הכלים לא מופיעים. פתחו session חדש של Claude Code אחרי הוספת השרת.
- הקריאות הראשונות נכשלות בוולידציה. לפעמים Claude מדלג על ארגומנט חובה, כמו מזהה שרת, ומקבל "Input validation error". הוא קורא את השגיאה ומנסה שוב בצורה נכונה, כך שאפשר להתעלם מזה.
- חלק מהפעולות איטיות. שליפת הגדרות השרת לקחה 5 עד 6 שניות בכל פעם, ובדיקות סטטוס חוזרות לכל אפליקציה הלכו והתארכו, עד 12 שניות.
- חלק מהכלים שרק מציגים מידע מפעילים משימה. כלי האנליטיקה מפעילים פעולת רקע בשרת ומחזירים מזהה ש-Claude בודק שוב ושוב. הם לא משנים שום הגדרה, אבל גם לא פסיביים לגמרי.
- סקריפטים מקבלים 403 מ-Cloudflare. אם אתם קוראים ל-Endpoint מסקריפט Python משלכם, Cloudflare חוסם את ה-user agent שמוגדר כברירת מחדל,
Python-urllib, עם שגיאה 1010. הגדירו header שלUser-Agentמשלכם.
שאלות נפוצות
שאלות נפוצות על חיבור Claude ל-MCP של Cloudways:
server_delete. חסמו אותם בעצמכם עם כללי permissions.deny בקובץ ~/.claude/settings.json, והגדירו את execute_tool ל-ask.
X-Access-Token עם ה-Access Token שלכם וב-X-Mcp-Host עם שם הלקוח, claude-code עבור Claude Code. הצמד X-CW-Email ו-X-CW-Api-Key שייך לשיטת ה-API key הישנה, ש-Cloudways מבטלים באמצע אוקטובר 2026.
claude mcp add-json עלול לא לטעון את השרת החדש. הריצו claude mcp get cloudways בכדי לוודא שהוא מציג Connected.
claude mcp remove cloudways -s user, מחקו את הפריט מה-Keychain עם security delete-generic-password -s cloudways-mcp-token, ובטלו את ה-token ב-Cloudways תחת API Integration, ב-Access Token Details. הביטול נכנס לתוקף מיד.
סיכום
ה-MCP של Cloudways מאפשר לי לקבל מ-Claude מידע על השרתים שלי, במקום לנווט בין מסכים בלוח הבקרה. בבדיקות שלי, התשובות על אפליקציות, PHP, Varnish, הגדרות OPcache, ניטור ועמודים איטיים תאמו למה שהשרת הראה.
אני עדיין ממליץ להגדיר אותו בזהירות: token לקריאה בלבד, שמור ב-Keychain מאחורי סקריפט headersHelper, וחסימה של הכלים שמבצעים שינויים ב-Claude Code, כי ה-token לבדו לא מסתיר אותם.
כמה שדות דורשים תשומת לב, כמו גרסת הוורדפרס הלא מעודכנת וגרף ה-CPU ההפוך. לגבי SSL, גיבויים וקבצים, SSH עדיין מהיר יותר מבחינתי.