מדריך MCP בעברית

פרק 14

מלכודות וטיפים

שילוב שרתי MCP בסביבת הפיתוח משדרג את יכולות הסוכן, אך דורש תשומת לב לפרטים טכניים. להלן שבע המלכודות הנפוצות ביותר שמפתחים נתקלים בהן בעבודה יומיומית, והפתרונות המדויקים לכל אחת מהן.


#1. השמטת המפריד הכפול (--) בהרצת שרתי stdio

המלכודת: הרצת פקודת הוספת שרת ללא מפריד מקפים כפול:

# שגיאה: הדגלים של npx נבלעים על ידי גרוק או קלוד
grok mcp add filesystem npx -y @modelcontextprotocol/server-filesystem /path

התיקון: הציבו תמיד את התו -- לפני פקודת השרת והארגומנטים שלו:

grok mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /path

#2. דחיפת סודות ומפתחות API למאגר ה-Git

המלכודת: שמירת טוקנים סודיים ישירות בתוך קובץ .mcp.json או .grok/config.toml בשורש הפרויקט, וביצוע Commit לקובץ.

התיקון:

  1. השתמשו באינטרפולציה של משתני סביבה בקובץ התצורה:
    headers = { "Authorization" = "Bearer ${MY_SERVICE_TOKEN}" }
  2. לחלופין, שמרו את השרתים בעלי האישורים בהגדרות הגלובליות של המשתמש (~/.claude.json או ~/.grok/config.toml) שאינן משותפות ב-Git.

#3. ניפוח חלון ההקשר (Context Bloat)

המלכודת: חיבור של עשרות שרתי MCP במקביל. כל שרת מוסיף את סכמות הכלים שלו לראשית כל שיחה, מה שגוזל אלפי טוקנים, מאט את זמני המענה ומבלבל את המודל בבחירת הכלים.

התיקון: השאירו מחוברים אך ורק את השרתים הנחוצים לפרויקט הנוכחי. השביתו שרתים לא פעילים באמצעות /mcps (מקש Space) או בפקודת claude mcp remove.


#4. הסתמכות על רשימת השרתים (list) כמדד לתקינות

המלכודת: ראיתם שהשרת מופיע בפלט של grok mcp list או claude mcp list, והנחתם שהוא פועל כשורה, בזמן שבפועל התהליך קורס מיד לאחר העלייה או שרשימת הכלים שלו ריקה.

התיקון:

  • ב-Grok CLI: הריצו grok mcp doctor כדי לבדוק שה-Handshake הושלם בהצלחה.
  • ב-Claude Code: היכנסו למסך /mcp וודאו שרשימת הכלים של השרת מונה לפחות כלי אחד פעיל.

#5. שכחה לרענן את השרתים לאחר שינוי הגדרות

המלכודת: עדכנתם קובץ config.toml, הוספתם כלי חדש לשרת או חידשתם אימות OAuth, אך הסוכן בשיחה עדיין אינו מזהה את השינויים.

התיקון: לקוחות MCP שומרים בזיכרון את רשימת הכלים שנטענה בתחילת הסשן. לחצו על מקש r במסך /mcps לטעינה מחדש, או פתחו סשן שיחה חדש.


#6. התפוצצות פלט הנתונים (Payload Explosion)

המלכודת: בניית כלי MCP שמחזיר בבת אחת אלפי רשומות מתוך בסיס הנתונים, מה שגורם לקטיעת התשובה בגלל מגבלות בתים (כמו מגבלת 20KB בגרוק) או חריגה ממכסת הטוקנים.

התיקון:

  • תכננו כלי שליפה כך שיתמכו בעימוד נתונים (Pagination עם פרמטרים של limit ו-offset).
  • החזירו סיכום תמציתי ומזהים ספציפיים במקום דמפ של טבלאות מלאות.

#7. מתן הרשאות יתר לכלי מחיקה וכתיבה

המלכודת: חיבור שרת מסד נתונים או שרת קבצים עם הרשאות מחיקה מלאות ללא פיקוח, בסביבה שבה הסוכן פועל באישור אוטומטי (Always-Approve).

התיקון: הגדירו כללי חסימה קשיחים בקובץ config.toml:

[permission]
deny = [
  "MCPTool(*__delete_*)",
  "MCPTool(*__drop_*)",
  "MCPTool(*__truncate)"
]

#שלושת הרגלי הברזל של מפתח MCP

  1. תעבורת HTTP לענן, stdio רק למקומי: שרתי ענן יש לחבר ישירות ב---transport http ללא עטיפות מיותרות.
  2. תיאור כלי שמסביר מתי ולא רק מה: תיאור איכותי של כלי מציין תמיד את תנאי ההפעלה והמגבלות, כדי למנוע הפעלות שגויות.
  3. בדיקת שפיות מבודדת ב-Inspector: לפני חיבור שרת שנכתב באופן עצמאי, בדקו אותו באמצעות @modelcontextprotocol/inspector.