# שַׁגֵּר בתוך Cursor: קובץ mcp.json אחד, והסוכן שבונה את דף הנחיתה גם מפיץ אותו

_2026-08-25 · מדריך לחיבור שַׁגֵּר אל Cursor דרך .cursor/mcp.json: כתובת השרת, כותרת Authorization עם משתנה סביבה, הבדל בין הגדרה לפרויקט לגלובלית, ותרחיש עבודה שלם מהקוד להפצה._

כדי לחבר את שַׁגֵּר אל Cursor יוצרים קובץ `.cursor/mcp.json` בפרויקט (או `~/.cursor/mcp.json` לכל הפרויקטים), מגדירים בו שרת בשם `shager` עם `"url": "https://app.shager.ai/api/mcp"`, ומוסיפים אובייקט `headers` עם `"Authorization": "Bearer ${env:SHAGER_API_KEY}"`. Cursor קורא את המפתח ממשתנה הסביבה, מתחבר לשרת דרך Streamable HTTP, והכלים של שַׁגֵּר זמינים לסוכן בצ'אט. מהרגע הזה אותו סוכן שעורך לכם את הקוד יכול גם להכין טיוטות הפצה לעשרות חשבונות.

למה זה מעניין דווקא בעורך Cursor? כי הרבה עבודה שיווקית מתחילה בקוד: דף נחיתה לקמפיין, עמוד מוצר חדש, מאמר בבלוג. ברגע שהדף עולה, מישהו צריך להפיץ אותו. כשהסוכן שבנה את הדף יודע גם מה המסר, מה הקהל ומה הקישור, חבל להעביר את כל זה ידנית לכלי אחר.

## איך נראית ההגדרה?

[התיעוד של Cursor על MCP](https://cursor.com/docs/context/mcp) מתאר שני מיקומים לקובץ ההגדרות ותחביר אחד לשרתים מרוחקים: שדה `url` ואובייקט `headers` אופציונלי, תחת `mcpServers`. עבור שַׁגֵּר:

```json
{
  "mcpServers": {
    "shager": {
      "url": "https://app.shager.ai/api/mcp",
      "headers": {
        "Authorization": "Bearer ${env:SHAGER_API_KEY}"
      }
    }
  }
}
```

התחביר `${env:NAME}` חשוב כאן. לפי התיעוד, Cursor מחליף משתני סביבה בשדות `url` וגם `headers`, כך שהמפתח לא נשמר בקובץ. בלי זה, המפתח היה יושב כטקסט גלוי בתיקייה שבדרך כלל נכנסת למאגר git.

### פרויקט או גלובלי?

| מיקום | מתי לבחור |
|---|---|
| `.cursor/mcp.json` בתוך הפרויקט | כשהחיבור רלוונטי לריפו מסוים, למשל אתר של לקוח, וכל מי שעובד בו צריך אותו |
| `~/.cursor/mcp.json` בתיקיית הבית | כשאתם רוצים את שַׁגֵּר בכל פרויקט שאתם פותחים |

בסוכנות שבה כל לקוח מקבל ריפו משלו לאתר ולדפי הנחיתה, ההגדרה לפרויקט היא הבחירה הטבעית. הקובץ נכנס למאגר git, וכל מפתח בצוות מגדיר אצלו את `SHAGER_API_KEY`. אם תרצו להפריד בין לקוחות גם ברמת המפתח, תנו לכל ריפו שם משתנה אחר, למשל `SHAGER_API_KEY_ACME`, ועדכנו את הקובץ בהתאם.

### המשתנה צריך להיות זמין לעורך Cursor

נקודה שמכשילה אנשים: משתנה סביבה שהגדרתם בטרמינל אחד לא תמיד זמין לאפליקציה שנפתחה מה Dock. אם השרת לא מתחבר, בדקו שהמשתנה מוגדר בקובץ ההגדרות של המעטפת (shell) שנטען בכניסה (למשל `~/.zshrc`), ונסו לפתוח את Cursor מהטרמינל עם הפקודה `cursor .` כדי שיירש את הסביבה. זה פתרון כללי לאפליקציות על macOS, לא משהו ייחודי לְשַׁגֵּר.

## מאיפה מגיע המפתח?

שתי אפשרויות. אדם בצוות נכנס לכתובת `https://app.shager.ai/dashboard/agents`, יוצר מפתח ומגדיר לו הרשאות מתוך `read`, `write` או `publish`. או שהסוכן עצמו נרשם דרך נקודת הקצה (endpoint) של ההרשמה העצמית, מקבל sandbox עם מפתח, ומעביר לאדם קישור לאישור. המסלול השני שימושי כשמתחילים פרויקט חדש ורוצים שהסוכן יכין סביבת עבודה, יעלה מדיה ויכין טיוטות עוד לפני שמישהו פתח חשבון. הפירוט נמצא ב[מדריך ההרשמה העצמית](/blog/agent-self-signup-and-claim), והמתכון הטכני המלא לסוכנים יושב בקובץ [/auth.md](/auth.md).

## בדיקה ראשונה

אחרי שמירת הקובץ, נכנסים להגדרות MCP של Cursor ומוודאים שהשרת `shager` מופיע כמחובר עם רשימת כלים. אחר כך, בצ'אט של הסוכן:

```text
Use the shager tools. Run whoami, then list_workspaces and
list_channels for the workspace named "Acme". Tell me which
accounts are connected and which network each one is on.
```

אם מקבלים רשימה של עמודי פייסבוק, חשבונות אינסטגרם וערוצי יוטיוב שתואמת את מה שמופיע בְּשַׁגֵּר, החיבור תקין.

אם הרשימה ריקה, זה לא בהכרח תקלה. ייתכן שבסביבת העבודה עוד לא חובר אף חשבון. במצב כזה הסוכן יכול להריץ `create_connect_link` ולקבל קישור שהלקוח פותח כדי לחבר בעצמו את הפייסבוק, האינסטגרם או היוטיוב שלו, בלי חשבון בְּשַׁגֵּר ובלי להעביר סיסמאות. שימו לב שהפעולה הזו חסומה בסביבת sandbox שעוד לא אושר על ידי אדם.

ואם הקריאות נכשלות עם 401, כמעט תמיד מדובר באחד משלושה דברים: המשתנה לא נטען, המילה Bearer חסרה בקובץ, או שהמפתח בוטל. כל השגיאות של שַׁגֵּר חוזרות עם `code` וגם `message`, כך שהסוכן יכול להגיד לכם בדיוק מה הבעיה במקום לנחש.

## תרחיש עבודה: מדף נחיתה להפצה בלי לצאת מהעורך

כך נראית זרימה טיפוסית, והיא מדגימה למה Cursor וְשַׁגֵּר משלימים זה את זה:

1. **בונים את הדף.** מבקשים מהסוכן ליצור דף נחיתה לקמפיין, למשל מבצע סתיו של רשת מרפאות שיניים. הסוכן כותב את הקומפוננטה, את הטקסטים ואת הטופס.
2. **מוציאים את המסר מהקוד.** אחרי שהדף עלה, מבקשים מהסוכן לקרוא את הקובץ ולסכם את ההצעה, הקהל וקריאה לפעולה בשלוש שורות. זה הבריף לפוסטים, והוא נגזר ממה שבאמת כתוב בדף ולא מזיכרון.
3. **מכינים מדיה.** אם יש סרטון קצר באחסון ציבורי, הסוכן מריץ `upload_media_from_url` עם `width`, `height` וגם `duration_ms`, כדי שֶׁשַּׁגֵּר יוכל לוודא שהסרטון מתאים לפורמט Reel ולפורמט Short לפני השליחה.
4. **יוצרים טיוטה ברמת החשבון.** `create_post` עם `group_ids` של קבוצת הסניפים, `per_channel` עם כיתוב שונה לכל סניף, `cta_url` שמפנה לדף החדש, וגם `first_comment` שמזמין ללחוץ. שַׁגֵּר יוצר לכל חשבון קישור מקוצר ותגיות UTM משלו, כשהשדה `utm_content` מזהה את החשבון.
5. **שולחים לאישור.** אם הלקוח מאשר תוכן לפני פרסום, `request_approval` שולח לו קישור לאישור בלי צורך להתחבר.

הסוכן לא צריך לדעת איך לבנות UTM או איך לפזר שליחה בין חשבונות. את זה שַׁגֵּר עושה. התפקיד שלו הוא להבין את המסר ולנסח אותו נכון לכל עמוד, וזה בדיוק מה שמודלים טובים בו.

### ניסוח שונה לכל חשבון זה לא קישוט

כשאותו טקסט בדיוק עולה לעשרות עמודים בפרק זמן קצר, זה נראה רע לקוראים וזה דפוס שרשתות חברתיות לא אוהבות. השדה `per_channel` קיים כדי שכל עמוד יקבל ניסוח משלו, וְשַׁגֵּר ממליץ להשתמש בו. בהנחיה לסוכן כדאי לכתוב במפורש: שמור על אותה הצעה ואותו קישור, אבל שנה פתיחה, סדר ודוגמה מקומית לכל סניף. על הנושא הזה בהרחבה, כולל איך שַׁגֵּר מפזר את זמני השליחה, כתבנו ב[מדריך על הימנעות מחסימות בפרסום בהיקף גדול](/blog/avoid-spam-blocks-when-posting-at-scale).

## הרשאות: מה Cursor יכול לעשות בשמכם

Cursor הוא סביבת פיתוח, והסוכן בה רגיל לבצע הרבה פעולות ברצף. זה מצוין לקוד ופחות מתאים לפרסום פומבי. ההמלצה שלנו היא מפתח עם `read` וגם `write` בלבד בשלב הראשון. הסוכן יכין טיוטות, ואדם יעבור עליהן בְּשַׁגֵּר ויתזמן. כשהתהליך מוכיח את עצמו, אפשר להוסיף `publish` ולתת לסוכן לתזמן עם `schedule_at` בפורמט ISO 8601 עם offset.

כל קריאה של הסוכן נרשמת ביומן הביקורת בלוח הסוכנים של שַׁגֵּר, כך שגם אחרי חודש אפשר לראות מי יצר כל פוסט ומתי. אם מפתח דלף לריפו, מבטלים אותו שם ויוצרים חדש.

מי שעובד בחלק מהזמן בטרמינל ימצא את אותו חיבור עם תחביר מעט שונה במדריך [לחיבור שַׁגֵּר אל Claude Code](/blog/connect-shager-to-claude-code). הצעד הבא אחרי חיבור עובד הוא לבחור קמפיין אחד אמיתי, להריץ עליו את חמשת השלבים למעלה עד טיוטה, ולתקן את ההנחיות לפי מה שראיתם בטיוטה הראשונה.

## שאלות נפוצות

### Cursor תומך בשרתי MCP מרוחקים עם כותרות?

כן. לפי התיעוד של Cursor, שרת מרוחק מוגדר עם `url` ועם אובייקט `headers`, ואפשר להשתמש בתחביר `${env:NAME}` כדי לקרוא ערכים ממשתני סביבה. זה כל מה שֶׁשַּׁגֵּר צריך.

### האם אפשר לשים את המפתח ישירות בקובץ mcp.json?

טכנית כן, אבל לא כדאי. הקובץ נמצא בדרך כלל בתוך הריפו, ומפתח שנכנס למאגר git קשה מאוד למחוק מההיסטוריה. משתנה סביבה פותר את זה בלי מאמץ.

### הסוכן בעורך Cursor יכול לפרסם בלי אישור שלי?

רק אם המפתח כולל הרשאת `publish`. מפתח עם `read` וגם `write` מאפשר ליצור טיוטות בלבד, וכל תזמון או פרסום דורש אדם או מפתח אחר. כך שולטים בזה בצד של שַׁגֵּר ולא רק בהגדרות של Cursor.

---
Source: https://shager.ai/blog/connect-shager-to-cursor
