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

תיעוד 33

תוספים

תוסף מאגד skills, פקודות לוכסן (slash commands), סוכנים (agents), hooks ושרתי MCP ליחידה אחת הניתנת להתקנה. מקבלים תוספים מתוך marketplace, מתקינים את אלה שרוצים, ו-Grok טוען את מה שהם מוסיפים. כדי לבנות ולשתף תוספים משלכם, ראו יצירת marketplace משלכם.


#כיצד פועל marketplace

‏marketplace הוא קטלוג של תוספים שמישהו פרסם ושיתף. השימוש בו כולל שני שלבים, בדומה להוספת חנות אפליקציות: הוספת ה-marketplace מאפשרת לעיין בתוספים שלו, ולאחר מכן אתם בוחרים אילו מהם להתקין.

  1. הוסיפו את ה-marketplace כדי ש-Grok יוכל להציג את מה שהוא מציע. שום דבר עדיין לא מותקן.
  2. התקינו את התוספים שאתם רוצים, אחד בכל פעם.

תוספים נשארים כבויים עד שמתקינים ומפעילים אותם, וה-hooks ושרתי ה-MCP של תוסף נשארים מושבתים עד שמעניקים לו אמון.


#הוספת marketplace

מקור של marketplace הוא מאגר GitHub, כתובת git URL בכל מארח, או תיקייה מקומית. הוסיפו מקור משורת הפקודה:

grok plugin marketplace add my-org/team-plugins                  
# GitHub shorthand (owner/repo)
grok plugin marketplace add https://gitlab.com/acme/plugins.git  
# any git host, include https:// and .git
grok plugin marketplace add ./my-marketplace                     
# a local folder

הציגו רשימה, רעננו והסירו מקורות באמצעות grok plugin marketplace list, grok plugin marketplace update [<name>] ו-grok plugin marketplace remove <url>.

ניתן גם להגדיר מקורות בקובץ התצורה (config) כך שיהיו זמינים תמיד.

#ב-config.toml

כל מקור זקוק ל-name ולכתובת git (עם branch אופציונלי) או לנתיב מקומי path:

[[marketplace.sources]]
name = "My Team Plugins"
git = "https://github.com/my-org/plugins.git"

[[marketplace.sources]]
name = "Local Dev"
path = "~/dev/my-plugins"

#ב-settings.json

הוסיפו מקורות תחת extraKnownMarketplaces, לפי מפתח שם. ה-source של כל רשומה הוא אחד מבין git (עם url), github (עם repo), או local (עם path):

{
  "extraKnownMarketplaces": {
    "my-marketplace": {
      "source": { "source": "git", "url": "[email protected]:my-org/plugins.git" }
    }
  }
}

מקמו קובץ זה ב-~/.grok/settings.json או ב-~/.claude/settings.json.


#התקנה ושימוש בתוסף

לאחר שנוסף marketplace, התקינו תוסף לפי שם. ניתן גם להתקין ישירות ממאגר או מנתיב מקומי:

grok plugin install deploy-tools --trust

המקור שממנו מתקינים מקבל כמה תצורות:

  • owner/repo (קיצור של GitHub), owner/[email protected] (הפניה, ref), owner/repo@<commit-sha> (commit מדויק, מאומת לאחר fetch), או owner/repo#subdir
  • כתובת git URL מלאה (https://github.com/user/repo.git) או SSH ([email protected]:user/repo.git)
  • נתיב מקומי (./local-dir או /absolute/path)

הריצו את grok plugin install <source> ללא --trust ו-Grok יציג את המקור, יזהיר שההתקנה מפעילה את ה-hooks, שרתי ה-MCP וה-skills של התוסף, ולאחר מכן ייעצר. הוסיפו את --trust כדי להמשיך. התקינו תוספים רק ממקורות שאתם בוטחים בהם (ראו אמון ואבטחה).

ה-skills של תוסף מופיעים בתפריט הלוכסן (slash menu). כאשר שם של skill אינו חד-משמעי, Grok מציג את הצורה המלאה עם קידומת של שם התוסף, למשל /deploy-tools:release. כדי לטעון תוסף שהותקן זה עתה, לחצו על r בלשונית ה-Plugins או התחילו הפעלה (session) חדשה.


#ניהול תוספים

#משורת הפקודה

grok plugin list [--json] [--available]   
# installed plugins (--available requires --json)
grok plugin uninstall <name> [--confirm] [--keep-data]   
# aliases: rm, remove
grok plugin update [<name>]               
# omit the name to update every plugin
grok plugin enable <name>
grok plugin disable <name>
grok plugin details <name>                
# show the plugin's component inventory

#בממשק הטרמינל (terminal UI)

פתחו את חלון התוספים באמצעות Ctrl+L (מחוץ למשפחת VS Code) או באמצעות /plugins (בכל טרמינל, ונדרש במשפחת VS Code). יש בו שש לשוניות: Hooks, Plugins, Marketplace, Skills, Workflows ו-MCP Servers. ניתן לעבור ביניהן באמצעות Tab / Shift+Tab. הפקודות /hooks, /marketplace, /skills, /workflows ו-/mcps פותחות את החלון בלשונית המתאימה.

בלשונית Plugins, לחצו על Enter כדי להרחיב תוסף ולראות את שמו, גרסתו, תחום הפעילות שלו (scope: cli, project, user, custom path, או שם המקור של ה-marketplace), ה-skills, ה-agents, ה-hooks, שרתי ה-MCP (מוצגים כ-blocked כאשר התוסף אינו מהימן), תיאורו ונתיבו. לאחר מכן:

מקשפעולה
rטעינה מחדש של כל התוספים
aהוספת תוסף מתוך owner/repo, כתובת URL או נתיב מקומי
Spaceהפעלה או השבתה של התוסף שנבחר
xהסרת התקנה של התוסף שנבחר
fסינון לפי מצב (הכל, מופעל, או מושבת)
/חיפוש לפי שם

בלשונית Marketplace, עיינו והתקינו מתוך המקורות שלכם:

מקשפעולה
iהתקנת התוסף שנבחר
dהסרת התקנה של התוסף שנבחר
aהוספת מקור marketplace
xהסרת המקור שנבחר והתוספים שלו
rרענון מקורות
uעדכון התוסף שנבחר

סיכומי רכיבים בלשונית ה-Marketplace מופיעים רק עבור שווקים שמפרסמים קטלוג plugin-index.json. פעולות הרסניות דורשות אישור: לחצו על y קטנה לאישור, או על כל מקש אחר (כולל Esc) לביטול.

בלשונית Workflows (פתחו אותה ישירות באמצעות /workflows, או בעזרת Tab מהפקודות שלעיל), עיינו בתהליכי העבודה השמורים ש-Grok גילה: מובנים (built-ins), של הפרויקט ב-.grok/workflows/, ושל המשתמש ב-~/.grok/workflows/. כל שורה מציגה את שם תהליך העבודה, המקור והתיאור שלו. לחצו על Enter כדי להרחיב את הנתיב שלו ואת ההערות מתי להשתמש בו, על r כדי לטעון מחדש את הרשימה, ועל / כדי לחפש. השורות מיועדות לעיון בלבד: ניתן להריץ תהליך באמצעות /workflow <name> או פקודת לוכסן ייעודית משלו.

#הפעלה או השבתה של תוספים בקובץ התצורה (config)

הגדירו זאת ב-~/.grok/config.toml:

[plugins]
paths = ["~/my-plugins/custom-tools"]        
# extra plugin directories
disabled = ["user/a1b2c3d4/noisy-plugin"]    
# names or IDs to skip
enabled = ["project/9f8e7d6c/team-tools"]    
# names or IDs to force on

תוספים כבויים כברירת מחדל, לכן ציינו תוסף ב-enabled כדי להפעיל אותו, או ב-disabled כדי לזהות אותו אך לדלג על טעינתו. כל רשומה היא שם תוסף פשוט (מתוך grok plugin list) או מזהה מלא (<scope>/<hash>/<name>).

כדי להסתיר את ממשק התוספים וה-hooks לחלוטין, הגדירו disable_plugins = true ב-~/.grok/pager.toml.


#אמון ואבטחה

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

תוספים מופעלים דורשים אמון כדי לטעון skills, פקודות, hooks, שרתי MCP ושרתי LSP. סוכנים (agents) של תוספים שאינם מהימנים נשארים רשומים עם ה-frontmatter בלבד. Grok בוטח בתוספים ב-~/.grok/plugins/ באופן אוטומטי. תוספי פרויקט ב-.grok/plugins/ דורשים מתן אמון. התקינו עם --trust כדי להעניק אותו:

grok plugin install <source> --trust

שרתי .mcp.json של תוסף מהימן מתחברים להפעלה (session) כמו כל תצורת MCP אחרת, וסוכני-צאצא יורשים אותם. סוכני תוסף (plugin-name:agent-name) משתמשים בשרתי ה-MCP של הפעלת האב כברירת מחדל, בדיוק כמו סוכני משתמש תחת ~/.grok/agents/. הגבילו זאת באמצעות שדה ה-frontmatter בשם mcpInheritance (ראו סוכני משנה). מטעמי בטיחות, ה-frontmatter של סוכן תוסף אינו יכול להצהיר על mcpServers או על hooks, ואינו יכול להגדיר permissionMode: bypassPermissions.


#יצירת marketplace משלכם

‏marketplace הוא מאגר git (או תיקייה מקומית) המפרט קבוצה של תוספים. הוספה של marketplace פועלת כמו הוספת חנות אפליקציות: היא מאפשרת לאנשים לעיין בתוספים שלכם, והם בוחרים אילו מהם להתקין. פרסום marketplace משלכם היא הדרך שבה צוות או ארגון משתפים את ה-skills, הפקודות, הסוכנים, ה-hooks ושרתי ה-MCP שלהם ממקום אחד.

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

#הגדרת המאגר

  1. צרו מאגר git. מאגר פרטי מתאים בהחלט, שכן הגישה משתמשת בפרטי ההזדהות של כל אדם ב-git.
  2. הוסיפו כל תוסף כתיקייה. תיקיית תוסף מכילה כל שילוב של skills/, commands/, agents/, hooks/hooks.json, .mcp.json, ומניפסט אופציונלי plugin.json (ראו מה מכיל תוסף).
  3. רשמו את התוספים בתוך .grok-plugin/marketplace.json. זהו האינדקס ש-Grok קורא.
  4. בצעו push למאגר.

מבנה טיפוסי:

my-org-plugins/
  .grok-plugin/
    marketplace.json      
# the index Grok reads (required)
    plugin-index.json     
# optional catalog for richer browsing
  plugins/
    gdrive/
      plugin.json         
# optional manifest
      skills/gdrive/SKILL.md
      .mcp.json           
# MCP servers this plugin adds

‏Grok קורא את האינדקס מתוך .grok-plugin/marketplace.json. הוא מקבל גם את .grok-plugin/plugin.json ואת המקבילים ב-.claude-plugin/.

#כתיבת האינדקס

הקובץ marketplace.json נותן שם ל-marketplace ומפרט כל תוסף:

{
  "name": "My Org Plugins",
  "description": "Internal skills and tools",
  "owner": { "name": "Platform Team", "email": "[email protected]" },
  "plugins": [
    {
      "name": "gdrive",
      "description": "Search and edit Google Drive, Docs, Sheets, and Slides",
      "category": "productivity",
      "source": { "type": "local", "path": "./plugins/gdrive" }
    }
  ]
}

ה-source של כל תוסף מצביע על הקבצים שלו, באחת משתי דרכים:

  • במאגר זה: { "type": "local", "path": "./plugins/gdrive" }. גם המחרוזת הפשוטה "./plugins/gdrive" עובדת.
  • במאגר נפרד: { "source": "url", "url": "https://github.com/my-org/gdrive.git", "sha": "<full commit sha>" }. הצמידו sha כדי שההתקנות יהיו ניתנות לשחזור מדויק (נדרש כאשר אתם דורשים גרסאות מוצמדות).

שדות אופציונליים לכל תוסף: version, author, homepage, tags ו-keywords.

#הוספת קטלוג (אופציונלי)

קטלוג plugin-index.json מאפשר לדפדפן ה-marketplace להציג את ה-skills, הפקודות, ה-hooks והסוכנים של כל תוסף לפני שמישהו מתקין אותו. הוא מיועד לתצוגה בלבד, התקנות עובדות גם בלעדיו, וצוותים מייצרים אותו בדרך כלל ב-CI:

{
  "version": 1,
  "plugins": {
    "gdrive": {
      "components": {
        "skills": [{ "name": "gdrive", "description": "Google Drive access" }]
      }
    }
  }
}

#בדיקה ושיתוף

בצעו אימות (validate) לתוסף לפני הפרסום באמצעות grok plugin validate [<path>], ותייגו גרסת שחרור (release) מתוך גרסת המניפסט באמצעות grok plugin tag [<path>] [--push]. לאחר מכן, הפנו אנשים למאגר. הם מוסיפים אותו פעם אחת ומתקינים את התוספים הרצויים:

grok plugin marketplace add my-org/my-org-plugins   
# GitHub shorthand, a git URL, or a local path
grok plugin install gdrive --trust

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


#הפצה בארגון

מנהלי מערכת (Admins) שולטים בתוספים, ב-marketplaces ובשרתי MCP באמצעות שכבות ה-TOML של Grok בנוסף לקובץ מדיניות אופציונלי של Claude:

  • managed_config.toml / requirements.toml (ו-MDM ב-macOS) הם מדיניות מקומית (native). הציבו רשימות מורשים (allowlists), רשימות חסומים (denylists) והצמדות (pins) כאן כאשר על Grok לאכוף אותם על כל שרת ו-marketplace, כולל אלה שהוגדרו בתצורה האישית של המשתמש או על ידי תוספים. הקובץ requirements.toml / MDM הוא הרמה העמידה בפני שינויים (tamper-resistant). עותקים ב-~/.grok הניתנים לכתיבה על ידי המשתמש הם בעלי תוקף עצמי בלבד.
  • managed-settings.json של Claude הוא בגדר המלצה בלבד (advisory). מגבלות ה-MCP וה-marketplace שלו מחייבות נושאים זרים (foreign) בלבד: קובצי פרויקט (.grok/config.toml, .mcp.json), תצורות Claude מיובאות, דריסות של שורת הפקודה (CLI overrides) ושרתים שהוזרקו על ידי הלקוח. הן לעולם אינן מחייבות נושאים שהם מקומיים ל-Grok (קובצי config.toml של המשתמש או המערכת, הגדרות המסופקות על ידי תוספים, הצמדות של מנהל מערכת). הוספה של marketplace או התקנת מקור חדש נחשבות תמיד כזרות, ולכן רשימה מחמירה שהיא advisory עדיין תדחה מקורות שאינם רשומים ב-marketplace add / plugin install.

שכבות משתלבות לפי העיקרון המחמיר ביותר מנצח (strictest-wins): כל חסימה (deny) מנצחת, כל מקור מוגבל חייב לאשר (allow), והצמדות בוליאניות רק מחמירות (false נשאר קבוע, true מאוחר יותר אינו יכול לבטל הצמדה). מפתחות CamelCase של Claude ומפתחות snake_case של Grok מתקבלים שניהם ב-TOML.

הפקודה grok inspect (וכן grok inspect --json) מציגה את רשימות ה-MCP וה-marketplace שנטענו, האם allowManagedMcpServersOnly מוגדר כ-off / advisory / enforced, הצמדות נוספות של marketplace, והצמדות להחמרה בלבד תחת Enforced by policy.

#הפצת marketplace לכולם

הוסיפו את המקור והפעילו את התוספים שאתם רוצים בתוך managed_config.toml:

[[marketplace.sources]]
name = "My Org Plugins"
git = "https://github.com/my-org/my-org-plugins.git"

# Plugins stay off until enabled. List plugin names (from `grok plugin list`)
# or full IDs (`<scope>/<hash>/<name>`).
[plugins]
enabled = ["gdrive"]

עבור התקנה ללא התערבות וללא צעד ידני עבור כל אדם, הניחו בנוסף את קובצי התוסף במקום שבו Grok מזהה אותם ובוטח בהם באופן אוטומטי: ~/.grok/plugins/, או בספרייה המנוהלת על ידי כלי ניהול המכשירים שלכם שאתם מפנים אליה באמצעות [plugins].paths. לאחר מכן הפעילו אותם באמצעות [plugins].enabled.

סביבת עבודה מנוהלת (managed workspace) יכולה גם לסנכרן skills ישירות למשתמשים, ללא תוסף. מיומנויות מסונכרנות מופיעות עם תחום (scope) של server ומנוהלות על ידי סביבת העבודה. מיומנות אישית של המשתמש בעלת אותו שם דורסת (shadows) את זו המסונכרנת. ראו Skills.

#הגבלת שוקי התוספים (marketplaces) שניתן להוסיף

רשמו את מקורות ה-git היחידים שאנשים רשאים להוסיף. כל כתובת git URL אחרת תידחה. רשומות מכובדות הן { "source": "git", "url": "…" } וכן { "source": "github", "repo": "owner/repo" } (המומר לצורה קנונית https://github.com/owner/repo.git). שדה אופציונלי ref / branch נשמר בהצמדות נוספות, אך אינו חלק מזהות ה-allowlist. רשומות local ברשימה המחמירה מושמטות עם אזהרה, והן לעולם אינן מאשרות דבר.

עצם נוכחותו של המפתח היא זו שמגבילה: רשימה ריקה (strict_known_marketplaces = []), רשימה שכל רשומה בה אינה נתמכת, או מפתח בעל טיפוס שגוי יוצרים נעילה מלאה (lockdown) הדוחה כל הוספה והתקנה עד לתיקון. השמיטו את המפתח כדי להשאיר את ה-marketplaces ללא הגבלה.

הוספת נתיב מקומי (local path) כאשר קיימת רשימה מחמירה מחייבת תידחה (נתיבים לעולם אינם תואמים ל-allowlist של כתובות git URL, עיקרון fail closed), אלא אם הצמדת extraKnownMarketplaces של מנהל מערכת מציינת במפורש את הנתיב המדויק הזה. הצמדה משכבת ~/.grok הניתנת לכתיבה על ידי המשתמש אינה יכולה ליצור חריגה זו. מקורות git קיימים שאינם עומדים בתנאי הרשימה מושמטים בעת הטעינה (Marketplace source blocked by allowlist).

# /etc/grok/requirements.toml  (native: binds every marketplace)
[[strict_known_marketplaces]]
source = "git"
url = "[email protected]:ACME/my-org-plugins.git"

[[strict_known_marketplaces]]
source = "github"
repo = "ACME/more-plugins"

אותן רשימות פועלות ב-managed-settings.json של Claude (בגדר advisory עבור מקורות מקומיים ל-Grok שכבר הוגדרו). השוואת כתובות URL אינה רגישה לאותיות גדולות/קטנות ב-scheme וב-host בלבד, ומסירה בדיוק סיומת .git נגררת אחת (repo.git.git הוא מאגר שונה). השתמשו ב-grok inspect כדי לראות את ה-allowlist שנטענה.

הקצו מקורות נוספים מתוך המדיניות באמצעות extraKnownMarketplaces / extra_known_marketplaces. שכבת ההצמדה הראשונה זוכה בשם. מקור מוגדר שכבר מחזיק בשם זה עם כתובת URL שונה אינו נדרס (נרשם ביומן). הערך autoUpdate = false בהצמדה נוספת מכבה את העדכון האוטומטי של תוספים בעת תחילת הפעלה ברמה ה-גלובלית (אין ב-Grok מקבילה לכל marketplace בנפרד).

[extra_known_marketplaces.acme]
source = { source = "git", url = "https://github.com/ACME/my-org-plugins.git", ref = "main" }

#הגבלת שרתי ה-MCP שמותר להריץ

‏Grok אוכף רשימות מורשים/חסומים (allow/deny) של MCP מכל שכבת מדיניות TOML מקומית (native) ומתוך managed-settings.json של Claude (בגדר advisory, ראו לעיל). הפקודה grok inspect מדפיסה את הרשימות הממוזגות.

כל רשומת אישור (allow) או חסימה (deny) היא אחת מבין:

שדההתאמה
serverUrl / server_urlכתובת URL של שרת HTTP/SSE. המארח (host) והנתיב (path) פועלים לפי כללי serverUrl של Claude בשתי הרשימות: תווי כוכבית * תואמים למארח ולנתיב בנפרד (https://*.example.com/* אינו יכול להתאים לנתיב בעל מראה דומה במארח אחר). תבנית ללא נתיב (https://mcp.example.com, או עם סלאש / בודד בסוף) מתאימה לכל נתיב במארח זה. תבנית עם נתיב מתאימה אך ורק לנתיב זה, לכן השתמשו ב-/mcp/* כדי להגדיר את היקף ההרשאה. רשומות אישור (allow) מחמירות יותר מ-Claude לגבי scheme ופורט. ה-scheme חייב להיות מילולי מדויק או * בודד (* תואם ל-schemes המרוחקים הנתמכים, http ו-https, ושום דבר אחר). תבנית ללא scheme כמו *.example.com/* או התאמה חלקית כגון http*:// של Claude לעולם אינה מתאימה ורושמת אזהרה בעת ההפעלה. פורטים נשארים מילוליים (ציון מפורש של :443 ב-https והיעדר פורט מכוונים לאותו יעד). פורט כללי כגון http://localhost:*/* של Claude לעולם אינו מתאים ורושם אזהרה בעת ההפעלה: רשמו כל פורט בנפרד. רשומות חסימה (deny) מתאימות לפי מארח ונתיב בכל scheme ופורט: mcp.untrusted.example/* וכן http://mcp.untrusted.example:*/* חוסמים שניהם את אותו מארח בכל scheme ופורט, ללא אזהרה.
commandשם קובץ ההפעלה ב-stdio, התאמה מדויקת לפקודה המוגדרת (לא לשאר ה-argv).
serverCommand / server_commandמערך ה-argv של stdio, התאמה מדויקת ל-[command, args…]. מערך חלקי (שאינו מחרוזת או שהוא ריק) יתאים לפקודה הלא נכונה: ברשימת אישור (allow) הוא אינו מעניק דבר, וברשימת חסימה (deny) הוא נועל את המקור (ראו להלן).
serverName / server_nameשם התצורה בכל סוג תעבורה (transport). ההשוואה אינה רגישה לאותיות גדולות/קטנות לאחר שרווחים מומרים ל-_. קידומת grok_com_ בשם בזמן ריצה מוסרת.

חסימה (deny) מנצחת. שרת התואם ל-deniedMcpServers נחסם גם אם הוא תואם בנוסף ל-allowedMcpServers. אם allowedMcpServers קיים, כל שרת שאינו רשום נחסם. רשימה קיימת אך ריקה (allowed_mcp_servers = []) חוסמת כל שרת שהקובץ מחייב, לכן אל תפיצו אותה כשלד התחלתי (scaffold). קובץ חסימה בלבד חוסם את השרתים הרשומים ואינו נוגע באחרים (רשימת deny ריקה אינה מזיקה). בין כל השכבות, שרת חייב לעבור כל מקור מוגבל.

תצורה שגויה גורמת לנעילה במקום להישאר פתוחה (locks down rather than failing open). מפתח מדיניות בעל טיפוס שגוי (טבלה או מחרוזת במקום שבו נדרשת רשימה), מפתח שנכתב בשני האיותים עם ערכים שונים, רשימת allow שכל רשומה בה אינה נתמכת, או רשומת deny שאינה ניתנת לאכיפה (שדות לא מוכרים, serverCommand חלקי, או serverUrl שלעולם אינו יכול להתאים) נועלים את מדיניות ה-MCP של אותו קובץ: כל שרת שהקובץ מחייב נחסם עם הסיבה locked down by policy (<file>) עד שהקובץ יתוקן. יומני ההפעלה מציינים את שם הקובץ ואת המפתח הבעייתי. רשומת allow בלתי שמישה פשוט אינה מעניקה דבר.

ההגדרה allowManagedMcpServersOnly = true (או allow_managed_mcp_servers_only) מהווה נעילה (lockdown): נדרשת התאמה חיובית לרשומת אישור גם כאשר רשימת ה-allow ריקה. קובץ TOML מקומי (native) מופיע כ-enforced בבדיקת inspect, בעוד הגדרת Claude בלבד מופיעה כ-advisory (שרתים מקומיים ל-Grok פטורים מכך).

ההגדרה enableAllProjectMcpServers = false משמיטה שרתי MCP ברמת הפרויקט, אלא אם השרת תואם בנוסף לרשומת אישור (allow entry).

# /etc/grok/requirements.toml
allow_managed_mcp_servers_only = true
enable_all_project_mcp_servers = false

[[allowed_mcp_servers]]
server_url = "https://*.example.com/*"

[[allowed_mcp_servers]]
command = "npx"

[[allowed_mcp_servers]]
server_command = ["npx", "@corp/mcp"]

[[allowed_mcp_servers]]
server_name = "linear"

[[denied_mcp_servers]]
command = "node"

[[denied_mcp_servers]]
server_url = "https://mcp.untrusted.example/*"

הרשימות מוחלות לאחר ש-Grok ממזג את תצורת ה-MCP של המשתמש, הפרויקט, התוסף והתצורה המיובאת. שרת שנחסם מושמט מההפעלה (נרשם ביומן כ-MCP server blocked by managed settings policy) עם סיבה של התאמה ל-deniedMcpServers, אי-הימצאות ב-allowedMcpServers, נעילה על ידי מדיניות (locked down by policy), או הצמדת project-MCP, בתוספת נתיב קובץ המדיניות (ב-inspect/JSON/יומנים נשמר הנתיב המלא, בעוד הודעות דחייה המוצגות למשתמש מציגות את שם הקובץ).

ההפצה יכולה גם לשלוח שרתי MCP ישירות למשתמשים. רשימות מורשים מקומיות (native allowlists) עדיין מגבילות את מה שכל תצורה, מנוהלת או אישית, מורשית להריץ.

#כיבוי עדכון אוטומטי של תוספים בעת תחילת הפעלה

ההגדרה plugin_auto_update = false / pluginAutoUpdate = false מיועדת להחמרה בלבד. הצמדה גלובלית זו היא מפתח ייחודי של Grok ללא מקבילה ב-Claude. כאשר היא מוצמדת, תחילת הפעלה אינה סורקת marketplaces ואינה מפיצה עדכונים לכל תוסף (ללא הודעת toast). עדכון ידני באמצעות grok plugin update עדיין עובד. ההגדרה extraKnownMarketplaces.<name>.autoUpdate: false של Claude לכל marketplace מצמידה את אותו מתג גלובלי.

#דרישת גרסאות מוצמדות

דחיית כל התקנה או עדכון של תוסף מרוחק שאינו מוצמד ל-sha מלא של commit:

[marketplace]
require_sha = true

ניתן גם להגדיר GROK_MARKETPLACE_REQUIRE_SHA=1. שתי האפשרויות רק מחמירות את המדיניות, ואף אחת מהן אינה מכבה אותה בחזרה. פרסמו ערכי sha ב-plugin-index.json של ה-marketplace שלכם כדי שהתקנות ממנו יעמדו בכלל זה. תוספים הנמצאים ישירות בתוך מאגר ה-marketplace מועתקים מתוך ה-checkout של אותו מאגר, לכן הצמידו אותם באותו אופן, עם ערכי sha ב-plugin-index.json.

#כיבוי ממשק המשתמש של התוספים

כדי להסתיר את ממשק התוספים וה-hooks, הגדירו זאת ב-pager.toml:

disable_plugins = true

#מה שאינו מכוסה כאן

שווקי תוספים (marketplaces) מפיצים תוכן של Grok: הגדרות של skills, פקודות, agents, hooks ושרתי MCP. הם אינם מתקינים תוכנה על גבי המחשב. מיומנות (skill) או שרת MCP המריצים קובץ בינארי מסייע (למשל כלי התחברות מותאם אישית) עדיין זקוקים לכך שאותו קובץ בינארי יסופק בנפרד, כחלק מחבילת ההפצה שלכם או באמצעות כלי ניהול המכשירים שלכם.


#פתרון בעיות

תוסף שהתקנתם אינו מופיע. תוספים כבויים עד להפעלתם. בדקו באמצעות grok plugin list, ולאחר מכן הוסיפו את שם התוסף או את המזהה שלו ל-[plugins].enabled, או לחצו על Space עליו בלשונית ה-Plugins. טענו מחדש באמצעות r בלשונית ה-Plugins או התחילו הפעלה (session) חדשה.

ה-skills, ה-hooks או שרתי ה-MCP של תוסף אינם נטענים. הם נשארים מושבתים עד שהתוסף מוגדר כמהימן. התקינו מחדש עם --trust, או הניחו את התוסף תחת ~/.grok/plugins/ (מהימן אוטומטית). ראו אמון ואבטחה.

חסר skill או שרת MCP מתוך marketplace. רעננו את המקור באמצעות grok plugin marketplace update, ודאו שהתוסף מותקן ומופעל, ואם הארגון שלכם מגביל מקורות, בדקו שה-marketplace עדיין מורשה (ראו הפצה בארגון). שרתי MCP מסוימים דורשים התחברות ולא יופיעו עד שתזדהו.

שרת MCP מוגדר אך אינו מתחיל לפעול. ייתכן שמדיניות הארגון חסמה אותו. הפקודה grok inspect מפרטת את allowedMcpServers / deniedMcpServers, את mcpManagedServersOnly, קובצי מדיניות נעולים, ואת המקור של כל שרת. התאמה ל-deny, רשימת allow / נעילה שאינה מעניקה הרשאה לשרת, קובץ מדיניות נעול, או enableAllProjectMcpServers = false עבור שרת ברמת הפרויקט משמיטים אותו לפני ההפעלה. ראו הגבלת שרתי ה-MCP שמותר להריץ.

הוספת marketplace נדחית. רשימת strictKnownMarketplaces פעילה. ניתן להוסיף רק את כתובות ה-git / GitHub המפורטות. הוספת נתיבים מקומיים נדחית אלא אם הצמדת extraKnownMarketplaces של מנהל מערכת מציינת במפורש את אותו נתיב מדויק. אם grok inspect מציג את הרשימה כנעולה (locked down), המפתח קיים אך ריק, בעל מבנה לא תקין, או מציין מקורות לא נתמכים בלבד, ולא ניתן להוסיף דבר עד לתיקון.

התקנה נדחית בשל היעדר הצמדה (unpinned). מערך ההפצה שלכם דורש גרסאות commit מוצמדות. התקינו commit מדויק (owner/repo@<sha>), או השתמשו ב-marketplace שקובץ ה-plugin-index.json שלו מפרסם ערכי sha. ראו דרישת גרסאות מוצמדות.

ראו בדיוק מה נטען. הריצו את grok inspect (הוסיפו --json לפלט קריא למכונה) כדי להציג את כל התוספים שהתגלו ואת ה-skills, ה-agents, ה-hooks ושרתי ה-MCP שהם מספקים, כאשר כל אחד מתויג עם מקורו בפורמט plugin: <name>.


#סימוכין

#מה מכיל תוסף

תוסף הוא ספרייה הכוללת כל שילוב של:

  • מיומנויות (Skills): ספריית skills/ המכילה קובצי SKILL.md
  • פקודות לוכסן (Slash commands): ספריית commands/
  • סוכנים (Agents): ספריית agents/
  • הוקים (Hooks): קובץ hooks/hooks.json
  • שרתי MCP: קובץ .mcp.json
  • שרתי LSP: קובץ .lsp.json

מניפסט אופציונלי plugin.json יכול לדרוס נתיבים או להוסיף מטא-דאטה. ללא מניפסט, Grok מגלה רכיבים מתוך ספריות סטנדרטיות אלה. לדוגמה, תוסף team-tools עשוי לאגד מיומנות deploy, סוכן code-review, הוקים של pre-commit ושרת MCP של Linear, המותקנים יחד בצעד אחד.

מיומנות (skill) או פקודה יכולות לספק סקריפט עזר (helper script) לצד קובץ ה-SKILL.md שלהן (למשל קובץ Python שהן קוראות לו). מקמו את הסקריפט בתוך התוסף והגדירו ל-skill להריץ אותו לפי נתיב יחסי. הוא מועתק למחשב יחד עם התוסף. סביבת הריצה של הסקריפט וכל החבילות שהוא מייבא חייבות להיות מותקנות כבר: תוספים מספקים קבצים, ולא סביבות ריצה או קבצים בינאריים מקומיים (ראו מה שאינו מכוסה כאן).

#היכן Grok מחפש תוספים

‏Grok מגלה תוספים ממיקומים אלה, לפי סדר עדיפות. המקבילים ב-.claude/plugins/ עובדים גם כן, וכאשר שני תוספים חולקים את אותו שם, זה שבעדיפות הגבוהה יותר מנצח:

מיקוםתחום (Scope)אמון (Trust)
_meta.pluginDirs (session/new / session/load)הפעלה (Session), אותה הפעלה בלבדמהימן אוטומטית
--plugin-dir (הדגל של grok agent … stdio)תהליך (Process), אותו תהליך סוכן בלבדמהימן אוטומטית
.grok/plugins/פרויקט (Project), משותף דרך בקרת גרסאותדורש מתן אמון
~/.grok/plugins/משתמש (User), כל פרויקטמהימן אוטומטית
[plugins].paths (תצורה)ספריות מותאמות אישית שאתם מוסיפיםתלוי במיקום

השדה _meta.pluginDirs בבקשות session/new ו-session/load טוען תוספים עבור הפעלה בודדת. מכיוון שהקורא מספק את הספרייה, תוספים אלה מהימנים אוטומטית ואינם נשמרים לאחר סיום ההפעלה. הדגל --plugin-dir הוא המקבילה ברמת התהליך עבור תהליך ייעודי של grok agent … stdio. ניתן לחזור עליו מספר פעמים (grok agent --no-leader --plugin-dir A --plugin-dir B stdio), והוא זוכה להתעלמות במצב leader, שבו ה-leader המשותף מגלה את התוספים שלו בעצמו.

#משתני סביבה ב-hooks של תוסף

ה-hooks של תוסף מקבלים שני משתנים מעבר לסביבת ה-hook הרגילה:

משתנהתיאור
GROK_PLUGIN_ROOTנתיב מוחלט לספריית ההתקנה של התוסף.
GROK_PLUGIN_DATAנתיב מוחלט לספריית הנתונים הניתנת לכתיבה של התוסף, עבור מצב (state), מטמונים (caches) ויומנים (logs).

‏Grok מגדיר משתנים אלה ודורס כל ערך בעל שם זהה במפת ה-env של ה-hook (הכינויים CLAUDE_PLUGIN_ROOT ו-CLAUDE_PLUGIN_DATA מוגדרים גם הם). ראו את מדריך ה-Hooks לכל המשתנים המועברים ל-hooks.

#קיצורי מקשים

מקשים אלה פועלים בכל לשונית בחלון התוספים:

מקשפעולה
Tab / Shift+Tabלשונית הבאה / הקודמת
j / k או מקשי חיציםהזזת הבחירה
Enterהרחבה או כיווץ של הפריט שנבחר
/חיפוש בלשונית הנוכחית לפי שם
Escניקוי החיפוש, או סגירת החלון