פרק 6
שמות כלים וגילוי
בפרוטוקול MCP, היכולות הביצועיות של שרת מוגדרות באמצעות כלים (Tools). האינטראקציה בין המארח (Host) לשרת מתבצעת בשני שלבים עיקריים:
tools/list: הלקוח שולח שאילתה לשרת ומקבל רשימה של כל הכלים הנתמכים, כולל שמותיהם, תיאור מילולי שלהם וסכמת הקלט המלאה (JSON Schema).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. תיאור מעורפל או כללי מדי יוביל לשתי תקלות נפוצות:
- המודל יתעלם מהכלי גם כשהמשתמש מבקש פעולה רלוונטית.
- המודל יפעיל את הכלי בטעות עבור משימות לא קשורות.
#השוואה בין תיאורים גרועים למעולים
| סוג כלי | תיאור גרוע | תיאור מקצועי ומדויק |
|---|---|---|
| חיפוש באגים | Search issues | Search Linear issues in the active workspace by keyword, state, or assignee. Use when the user asks about bugs, tasks, or issue status. |
| הרצת שאילתת SQL | Run SQL query | Execute 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 Slack | Send 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) או מזהים ספציפיים, במקום פליטה גולמית של נתוני עתק.