מדריך גרוק CLI בעברית

פרק 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

#סדר קדימויות בין קבצי תצורה

כאשר מוגדר שרת באותו שם במספר מקומות, סדר הקדימויות הוא:

  1. .grok/config.toml בתיקיית העבודה הנוכחית (CWD)
  2. .grok/config.toml בשורש מאגר הקוד (Repository Root)
  3. ~/.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 המוגדרים בקובצי תצורה של סביבות אחרות:

  1. config.toml של Grok
  2. .claude.json
  3. .cursor/mcp.json
  4. .mcp.json של הפרויקט

ניתן להשבית טעינה מקבצי Claude באמצעות הגדרת [compat.claude] mcps = false בקובץ config.toml.

#אבחון ופתרון תקלות

במקרה של בעיה בחיבור לשרת MCP:

  1. בדיקת לוגי שגיאות: שגיאות הרצה נכתבות לקובצי לוג ייעודיים תחת ~/.grok/logs/mcp/<server-name>.stderr.log.
  2. זמני אתחול (Timeout): פקודות כמו npx מורידות חבילות בהרצה הראשונה. אם השרת אינו מספיק לעלות, הגדילו את startup_timeout_sec = 60 בהגדרת השרת, או הגדירו משתנה סביבה גלובלי export GROK_MCP_STARTUP_TIMEOUT_SECS=60.
  3. חיתוך פלט גדול: תוצאות כלי MCP הגדולות מ-20,000 בתים נחתכות כברירת מחדל. ניתן להגדיל תקרה זו ב-~/.grok/config.toml תחת [mcp] max_output_bytes = 50000.

בפרק הבא נלמד כיצד להגדיר ולהפעיל סקילז (Skills) מותאמים אישית לביצוע זרימות עבודה מורכבות.