פרק 9
פרוטוקול MCP ואינטגרציית כלים חיצוניים
פרוטוקול MCP (ראשי תיבות של Model Context Protocol) הוא תקן פתוח המאפשר למודלי שפה להתחבר בצורה מאובטחת וסטנדרטית למקורות מידע וכלים חיצוניים: מאגרי GitHub, ניהול משימות ב-Linear או Jira, מסדי נתונים (PostgreSQL, SQLite), שירותי ניטור (Sentry), מערכות ענן ושרתי קבצים.
במקום להעתיק ידנית נתונים ממערכות ארגוניות לתוך הטרמינל, שרת MCP מעניק ל-Grok CLI גישה מובנית לפעולות ולנתונים הנחוצים ישירות במהלך הסשן.
#הוספת שרתי MCP משורת הפקודה
Grok CLI תומך בשני אופני תקשורת (Transports) עיקריים: HTTP מרוחק ו-stdio מקומי.
#א. שרת HTTP מרוחק (מומלץ לשירותי ענן ו-SaaS)
grok mcp add --transport http sentry https://mcp.sentry.dev/mcpעם כותרת אימות (Authorization Header):
grok mcp add --transport http api https://mcp.example.com/mcp \
--header "Authorization: Bearer YOUR_TOKEN_HERE"#ב. שרת stdio מקומי (תהליך מקומי הרץ במחשבכם)
בפקודות stdio, כל מה שמופיע לאחר התווים -- נחשב כפקודת ההרצה של השרת עצמו:
grok mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/allowed-dirלהגדרת משתני סביבה (ניתן לציין את הדגל -e מספר פעמים):
grok mcp add postgres -e DATABASE_URL=postgres://localhost:5432/mydb -- \
npx -y @modelcontextprotocol/server-postgres#ג. קביעת היקף השרת (Scope) ואבטחת סודות
כברירת מחדל, שרת מתווסף בהיקף משתמש (--scope user) ונשמר בקובץ ~/.grok/config.toml.
כדי לשתף את הגדרת השרת עם שאר חברי הצוות בפרויקט:
grok mcp add --scope project --transport http linear https://mcp.linear.app/mcpההגדרה תישמר בקובץ .grok/config.toml בתיקיית הפרויקט. לעולם אין להדביק סודות ומפתחות ישירות לקבצים הנשמרים ב-Git. במקום זאת, השתמשו בתבנית ${ENV_VAR}:
[mcp_servers.linear]
url = "https://mcp.linear.app/mcp"
headers = { "Authorization" = "Bearer ${LINEAR_API_KEY}" }#הגדרת שרתי MCP בקובץ config.toml
ניתן לערוך ולהגדיר שרתים ישירות בקובץ התצורה:
# ~/.grok/config.toml (הגדרות משתמש גלובליות)
# או .grok/config.toml (הגדרות ספציפיות לפרויקט)
[mcp_servers.github]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-github"]
env = { GITHUB_PERSONAL_ACCESS_TOKEN = "${GITHUB_TOKEN}" }
startup_timeout_sec = 30
enabled = true
[mcp_servers.internal-docs]
url = "https://mcp.internal.company.com/v1"
headers = { "Authorization" = "Bearer ${INTERNAL_DOCS_KEY}" }
enabled = true#סדר קדימויות בין קבצי תצורה
כאשר מוגדר שרת באותו שם במספר מקומות, סדר הקדימויות הוא:
.grok/config.tomlבתיקיית העבודה הנוכחית (CWD).grok/config.tomlבשורש מאגר הקוד (Repository Root)~/.grok/config.tomlשל המשתמש
[!NOTE] שרת בעל שם זהה ברמת הפרויקט מחליף לחלוטין את השרת הגלובלי (אינו מתמזג עימו).
#פקודות ניהול שרתי MCP
שורת הפקודה מספקת סט פקודות מקיף לניהול שרתים:
# הצגת רשימת כל השרתים המוגדרים ומצבם
grok mcp list
# הצגת הרשימה במבנה JSON לעיבוד בסקריפטים
grok mcp list --json
# השבתה זמנית של שרת
grok mcp disable github
# הפעלה מחדש של שרת מושבת
grok mcp enable github
# מחיקת שרת
grok mcp remove github
# בדיקת תקינות, חיבור ואימות עבור כל השרתים
grok mcp doctor
# בדיקת תקינות עבור שרת ספציפי
grok mcp doctor github#ממשק TUI לניהול MCP
בתוך ממשק ה-TUI, הפקודה /mcps פותחת חלונית ניהול אינטראקטיבית:
- מקש
Space: הפעלה או כיבוי (Enable/Disable) של השרת הנבחר. - מקש
i: התחלת תהליך אימות OAuth בדפדפן (לשרתים התומכים בכך). - מקש
a: הוספת שרת חדש. - מקש
x: מחיקת שרת. - מקש
r: רענון רשימת הכלים לאחר עריכת קובץ תצורה.
אסימוני OAuth נשמרים בקובץ המאובטח ~/.grok/mcp_credentials.json בהרשאות משתמש בלבד (0600).
#מבנה שמות הכלים (Namespacing)
כדי למנוע התנגשויות בין כלים שונים, Grok CLI מוסיף את שם השרת כקידומת לכל כלי בפורמט server__tool_name:
- שרת בשם
githubהמספק כלי בשםcreate_issueיונגש למודל בשםgithub__create_issue. - שרת בשם
linearהמספק כליsave_issueיונגש בשםlinear__save_issue.
המודל מאתר כלים אלו באופן דינמי באמצעות כלי החיפוש search_tool ומפעיל אותם באמצעות use_tool.
#תאימות לקובצי תצורה של כלים מקבילים
Grok CLI מזהה וטוען אוטומטית שרתי MCP המוגדרים בקובצי תצורה של סביבות אחרות:
config.tomlשל Grok.claude.json.cursor/mcp.json.mcp.jsonשל הפרויקט
ניתן להשבית טעינה מקבצי Claude באמצעות הגדרת [compat.claude] mcps = false בקובץ config.toml.
#אבחון ופתרון תקלות
במקרה של בעיה בחיבור לשרת MCP:
- בדיקת לוגי שגיאות: שגיאות הרצה נכתבות לקובצי לוג ייעודיים תחת
~/.grok/logs/mcp/<server-name>.stderr.log. - זמני אתחול (Timeout): פקודות כמו
npxמורידות חבילות בהרצה הראשונה. אם השרת אינו מספיק לעלות, הגדילו אתstartup_timeout_sec = 60בהגדרת השרת, או הגדירו משתנה סביבה גלובליexport GROK_MCP_STARTUP_TIMEOUT_SECS=60. - חיתוך פלט גדול: תוצאות כלי MCP הגדולות מ-20,000 בתים נחתכות כברירת מחדל. ניתן להגדיל תקרה זו ב-
~/.grok/config.tomlתחת[mcp] max_output_bytes = 50000.
בפרק הבא נלמד כיצד להגדיר ולהפעיל סקילז (Skills) מותאמים אישית לביצוע זרימות עבודה מורכבות.