חיבור שַׁגֵּר אל Codex CLI: שלוש שורות בקובץ config.toml ומפתח שלא נכנס לקובץ
איך מגדירים את שרת MCP של שַׁגֵּר בכלי Codex CLI של OpenAI: בלוק mcp_servers בקובץ config.toml, bearer_token_env_var במקום מפתח גלוי, הגדרה לפרויקט ובדיקה עם /mcp.
6 דק׳ קריאה

כדי לחבר את שַׁגֵּר אל Codex CLI מוסיפים לקובץ ~/.codex/config.toml בלוק בשם [mcp_servers.shager] עם url = "https://app.shager.ai/api/mcp" ועם bearer_token_env_var = "SHAGER_API_KEY". מגדירים את משתנה הסביבה SHAGER_API_KEY עם המפתח של שַׁגֵּר, מפעילים את codex ומקלידים /mcp כדי לראות שהשרת פעיל. Codex שולח את המפתח בכותרת Authorization בתור Bearer, וזה בדיוק מה שֶׁשַּׁגֵּר מצפה לקבל.
בניגוד לחלק מהכלים, Codex תומך בשרתי MCP מרוחקים עם Streamable HTTP ועם טוקן ממשתנה סביבה באופן מובנה, כך שאין צורך בגשרים או בעקיפות. זה הופך אותו לאחת הדרכים הנקיות ביותר להריץ סוכן OpenAI מול שַׁגֵּר כבר היום, כל עוד OAuth של שַׁגֵּר בפיתוח.
למה דווקא config.toml ולא פקודה?
בכלי Claude Code רוב העבודה נעשית בפקודת claude mcp add. גם בכלי Codex יש פקודה דומה, codex mcp add, והיא מקבלת --url לשרתים מרוחקים. אבל עמוד MCP בתיעוד של Codex מתעד את אפשרויות האימות לשרתי HTTP בתוך קובץ ההגדרות ולא כדגלים של הפקודה. לכן הדרך הבטוחה והברורה היא לערוך את הקובץ ישירות.
לפי אותו עמוד, שרת Streamable HTTP מקבל את השדות הבאים:
| שדה | חובה | מה הוא עושה |
|---|---|---|
url |
כן | כתובת השרת |
bearer_token_env_var |
לא | שם משתנה סביבה שהערך שלו נשלח בתור Bearer בכותרת Authorization |
http_headers |
לא | כותרות עם ערכים קבועים |
env_http_headers |
לא | כותרות שהערך שלהן נלקח ממשתני סביבה |
ההגדרה המלאה לְשַׁגֵּר
פותחים את ~/.codex/config.toml ומוסיפים:
[mcp_servers.shager]
url = "https://app.shager.ai/api/mcp"
bearer_token_env_var = "SHAGER_API_KEY"
ובקובץ ההגדרות של המעטפת (shell) שלכם, למשל ~/.zshrc:
export SHAGER_API_KEY="shgr_live_XXXXXXXXXXXXXXXX"
זהו. אין צורך לכתוב את המילה Bearer בעצמכם, Codex מוסיף אותה. היתרון של bearer_token_env_var על פני http_headers עם ערך קבוע הוא שהמפתח לא יושב בקובץ ההגדרות. זה חשוב כשאתם מגבים את תיקיית הבית, מסנכרנים dotfiles לריפו, או סתם משתפים צילום מסך של הקונפיגורציה בערוץ של הצוות.
מתי בכל זאת להשתמש בשדה http_headers?
כמעט אף פעם, בהקשר של שַׁגֵּר. שַׁגֵּר צריך כותרת אחת בלבד, Authorization, והשדה bearer_token_env_var מכסה אותה. אם בעתיד תעבדו דרך שער פנימי של החברה שדורש כותרת ניתוב נוספת, זה המקום להוסיף אותה, ורצוי עם env_http_headers כדי שגם היא לא תישמר כטקסט גלוי.

הגדרה לפרויקט ספציפי
התיעוד של Codex מאפשר גם להגדיר שרתי MCP ברמת הפרויקט, בקובץ .codex/config.toml בתוך הריפו, בתנאי שהפרויקט מסומן כמהימן. לסוכנות שמחזיקה ריפו לכל לקוח גדול, זה נוח: בריפו של הלקוח מוגדר שרת שַׁגֵּר, ובריפו אחר לא.
כדאי לשלב את זה עם מפתח נפרד לכל לקוח. בְּשַׁגֵּר כל לקוח הוא סביבת עבודה (workspace), ומפתחות נוצרים ברמת הארגון. אם תרצו להפריד ברמת המפתח, צרו מפתח ייעודי לכל פרויקט בכתובת https://app.shager.ai/dashboard/agents ותנו לכל ריפו משתנה סביבה משלו, למשל SHAGER_API_KEY_CLIENT_A. ביומן הביקורת תוכלו לראות איזה מפתח ביצע כל פעולה.
בדיקה ראשונה
מפעילים codex בטרמינל שבו משתנה הסביבה מוגדר, ומקלידים /mcp. השרת shager צריך להופיע ברשימת השרתים הפעילים עם הכלים שלו. אם הוא לא שם, שתי הסיבות הנפוצות הן שהמשתנה לא נטען בחלון הנוכחי, או שגיאת TOML קטנה כמו מירכאות חסרות.
אחרי זה, בקשה ראשונה:
Use the shager MCP server. Run whoami and list_workspaces,
then list_channels for the first workspace. Summarize which
Facebook Pages, Instagram accounts and YouTube channels are connected.
אפשר כמובן לכתוב לסוכן בעברית. כתבתי כאן באנגלית כי הרבה צוותים מעדיפים את ההנחיות הטכניות לסוכן באנגלית ואת התוכן עצמו בעברית. מה שחשוב הוא שהסוכן יחזיר רשימה שתואמת את מה שאתם רואים בְּשַׁגֵּר.
כשמשהו לא עובד
| מה רואים | מה כנראה קרה | מה עושים |
|---|---|---|
השרת לא מופיע בפקודה /mcp |
שגיאת תחביר בקובץ TOML או שם בלוק שגוי | בודקים שהכותרת היא בדיוק [mcp_servers.shager] |
| השרת מופיע, הקריאות נכשלות על אימות | המשתנה ריק בחלון הנוכחי | מריצים echo $SHAGER_API_KEY באותו טרמינל |
create_post עובד, schedule_post נכשל |
למפתח אין publish או שה sandbox לא אושר |
אדם מאשר או יוצר מפתח עם הרשאה מתאימה |
הודעת שגיאה עם הקוד rejected |
הרשת הייתה דוחה את הפוסט | קוראים את הודעת השגיאה (message) ומתקנים פורמט, אורך או מדיה |
השגיאות של שַׁגֵּר חוזרות תמיד עם code וגם message קריאים. סוכן טוב יודע לקרוא את ההודעה, לתקן ולנסות שוב, ולא רק לדווח שהייתה תקלה. שווה לכתוב לו את זה במפורש בהנחיות.
איפה Codex חזק במיוחד בעבודה מול שַׁגֵּר
Codex הוא סוכן קוד, והוא מרגיש הכי בבית כשהעבודה יושבת בריפו. שני דפוסים שעובדים טוב:
- תוכן כקבצים. מחזיקים בריפו תיקייה עם קובץ Markdown לכל קמפיין: בריף, מסרים, קישור לדף נחיתה ורשימת קבוצות חשבונות. מבקשים מהסוכן Codex לקרוא את הקובץ, לנסח כיתוב שונה לכל חשבון ולהעלות טיוטה אחת לְשַׁגֵּר עם
create_postוהשדהper_channel. הבריף נשאר בהיסטוריית git, והטיוטה מחכה בְּשַׁגֵּר לבדיקה. - דף נחיתה ואז הפצה. Codex בונה או מעדכן דף נחיתה בקוד, ואחרי שהוא עולה, אותו סוכן מכין פוסט שהקישור שלו מופיע בשדה
cta_url. שַׁגֵּר יוצר לכל חשבון קישור מקוצר ותגיות UTM משלו, כך שאחרי שבוע אפשר לבקש מהסוכן Codex להריץget_analyticsולראות מאיזה עמוד הגיעו הלחיצות.
אם אתם מעדיפים לכתוב את כל הזרימה כקוד ולא דרך שרת MCP, אותן פעולות זמינות בממשק REST API, וקובץ OpenAPI נמצא בכתובת https://app.shager.ai/api/v1/openapi.json. זה שימושי במיוחד בסביבת CI, כשאין סוכן אינטראקטיבי אלא סקריפט שרץ לפי לוח זמנים.
כמה כללי בטיחות שכדאי להגדיר מראש
את הגבול האמיתי כדאי לשים בצד של שַׁגֵּר ולא רק בהגדרות האישור של הסוכן, כי הוא נשמר גם כשמישהו משנה את הקונפיגורציה המקומית. מפתח עם הרשאות read וגם write בלבד מאפשר לסוכן ליצור טיוטות בלי לתזמן או לפרסם. כשתרצו שהסוכן גם יתזמן, צרו מפתח חדש עם publish, החליפו את הערך של משתנה הסביבה, ובטלו את הישן.
שתי נקודות נוספות. המגבלה היא 120 קריאות בדקה לכל מפתח, וסוכן שמבצע get_post בלולאה על מאות פוסטים יכול להגיע אליה. עדיף לבקש ממנו list_posts עם סינון לפי סטטוס. ובנוסף, כשאתם מבקשים מהסוכן Codex לתזמן, ציינו זמן עם אזור זמן מפורש, למשל 2026-08-24T09:00:00+03:00. שַׁגֵּר מצפה לפורמט ISO 8601 עם offset, וזה חוסך את הטעות הקלאסית של פוסט שעולה בשש בבוקר במקום בתשע.
מי שעובד גם עם Claude Code יראה שההגדרה כמעט זהה, וההבדלים מפורטים במדריך לחיבור שַׁגֵּר אל Claude Code. ומי שמגיע מעולם ChatGPT ותוהה למה שם זה עוד לא עובד, ההסבר נמצא במדריך על שַׁגֵּר וגם ChatGPT. התמונה הכוללת של כל הכלים שמתחברים לְשַׁגֵּר מרוכזת בעמוד הסוכנים.
הצעד הבא אחרי חיבור עובד הוא להחליט מה Codex עושה לבד ומה מחכה לאדם. התחילו בטיוטות בלבד, עברו על עשר הראשונות, ורק אחרי זה תנו למפתח הרשאת publish.
שאלות נפוצות
Codex CLI תומך בשרתי MCP מרוחקים?
כן. לפי התיעוד של OpenAI, Codex תומך בשרתי Streamable HTTP עם השדה url בקובץ config.toml, ומאפשר להעביר טוקן Bearer ממשתנה סביבה דרך bearer_token_env_var. זה מספיק לחיבור מלא לְשַׁגֵּר.
אפשר להוסיף את שַׁגֵּר עם codex mcp add במקום לערוך קובץ?
הפקודה מקבלת --url, אבל התיעוד לא מציג בה דגל להעברת טוקן מסוג Bearer. לכן הדרך המומלצת היא להוסיף את הבלוק בקובץ config.toml ידנית, עם bearer_token_env_var.
המפתח נשמר בתוך config.toml?
לא, אם משתמשים בשדה bearer_token_env_var. הקובץ מכיל רק את שם המשתנה, והערך נקרא מהסביבה בזמן ההפעלה. כך אפשר לשתף את קובץ ההגדרות בלי לחשוף את המפתח.