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

פרק 6

שמות כלים וגילוי

בפרוטוקול MCP, היכולות הביצועיות של שרת מוגדרות באמצעות כלים (Tools). האינטראקציה בין המארח (Host) לשרת מתבצעת בשני שלבים עיקריים:

  1. tools/list: הלקוח שולח שאילתה לשרת ומקבל רשימה של כל הכלים הנתמכים, כולל שמותיהם, תיאור מילולי שלהם וסכמת הקלט המלאה (JSON Schema).
  2. tools/call: המודל מחליט להפעיל כלי מסוים, והלקוח שולח לשרת הודעת הפעלה עם שם הכלי והארגומנטים המדויקים.

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

#מרחבי שמות (Namespacing) ומבנה השמות

כאשר מחוברים מספר שרתים שונים, ייתכן שכמה מהם יחשפו כלי בעל שם פנימי זהה (למשל search, get_status או create).

כדי למנוע התנגשויות:

  • כלי מארח כמו Grok CLI מצמידים את שם השרת לשם הכלי באמצעות שני קווים תחתונים: server__tool_name.
  • לדוגמה, שרת בשם github עם כלי פנימי create_issue יזוהה במערכת כ-github__create_issue.
  • שרת בשם linear עם כלי פנימי create_issue יזוהה כ-linear__create_issue.

#שימוש בשם המלא במערכות אבטחה ו-Hooks

כאשר אתם מגדירים חוקי הרשאות, כללי חסימה (Deny) או הוקים (Hooks), עליכם להשתמש תמיד בשם המלא המנורמל:

# חסימת מחיקות משרת ה-sales המקומי
[permission]
deny = ["MCPTool(sales__delete_record)"]

#כתיבת תיאור כלי (Description) מנצח

המודל אינו רואה את קוד המקור של השרת שלכם. הוא בוחר להפעיל כלי אך ורק לפי התיאור המילולי שנמסר בשדה ה-description. תיאור מעורפל או כללי מדי יוביל לשתי תקלות נפוצות:

  1. המודל יתעלם מהכלי גם כשהמשתמש מבקש פעולה רלוונטית.
  2. המודל יפעיל את הכלי בטעות עבור משימות לא קשורות.

#השוואה בין תיאורים גרועים למעולים

סוג כליתיאור גרועתיאור מקצועי ומדויק
חיפוש באגיםSearch issuesSearch Linear issues in the active workspace by keyword, state, or assignee. Use when the user asks about bugs, tasks, or issue status.
הרצת שאילתת SQLRun SQL queryExecute a read-only SELECT query against the analytics PostgreSQL database. Returns up to 50 rows in JSON format. Do not use for INSERT or DELETE.
שליחת הודעהSend SlackSend a formatted notification to a designated Slack channel. Requires channel_id and text message.

#כללי אצבע לכתיבת תיאור

  • מה הכלי עושה (Action): הסבירו בקצרה את מהות הפעולה.
  • מתי להפעיל (Trigger): ציינו באילו שאלות או בקשות של המשתמש כדאי להפעיל את הכלי.
  • מגבלות וסייגים (Constraints): ציינו במפורש אם הכלי מוגבל לקריאה בלבד, מה הגודל המקסימלי של נתונים שהוא מקבל וכדומה.

#ניהול עומס וחלון ההקשר (Context Window)

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

  • ב-Claude Code: הקלידו /context כדי לראות כמה טוקנים צורכות הגדרות הכלים הפעילות.
  • ב-Grok CLI: הקלידו /session-info או השתמשו ב-grok inspect כדי לבחון את פירוט הכלים והמשאבים.
  • השביתו שרתים שאינם בשימוש שוטף באמצעות /mcps או claude mcp remove.

#מגבלות גודל פלט וקטום תוצאות (Output Truncation)

שרת MCP שמחזיר פלט ענק (לדוגמה קריאת טבלה שלמה עם 50,000 שורות) עלול לפוצץ את חלון ההקשר של המודל ולגרום לתקיעת הסשן.

  • כלי המארח מגבילים את גודל הפלט. לדוגמה, Grok CLI קוטם תוצאות MCP שחורגות מכ-20,000 בתים כברירת מחדל.
  • ניתן להגדיל את המגבלה במידת הצורך בקובץ config.toml:
    [mcp]
    max_output_bytes = 50000
  • שיטת העבודה הנכונה: תכננו את השרתים שלכם כך שיחזירו תמיד סיכום, רשימה מעומדת (Paginated עם דגלי limit ו-offset) או מזהים ספציפיים, במקום פליטה גולמית של נתוני עתק.