מדריך קרסור בעברית

תיעוד 4

פרוטוקול הקשר למודל (MCP)

#מה זה MCP?

Model Context Protocol (MCP) מאפשר ל-Cursor להתחבר לכלים ולמקורות נתונים חיצוניים. התקינו ונהלו שרתי MCP מעמוד Customize או הגדירו אותם ב-mcp.json.

#למה להשתמש ב-MCP?

MCP מחבר את Cursor למערכות ולנתונים חיצוניים. במקום להסביר שוב ושוב את מבנה הפרויקט, שלבו ישירות עם הכלים שלכם.

כתבו שרתי MCP בכל שפה שיכולה להדפיס ל-stdout או לשרת נקודת קצה של HTTP: Python, JavaScript, Go ועוד.

עיינו בתוספים הרשמיים ב-Cursor Marketplace. לתוספים ולשרתי MCP של הקהילה, עיינו ב-cursor.directory.

#איך זה עובד

שרתי MCP חושפים יכולות דרך הפרוטוקול, ומחברים את Cursor לכלים או למקורות נתונים חיצוניים.

Cursor תומך בשלוש שיטות תעבורה:

תעבורהסביבת הרצהפריסהמשתמשיםקלטאימות
stdioמקומיCursor מנהלמשתמש יחידפקודת shellידני
SSEמקומי/מרוחקפריסה כשרתכמה משתמשיםURL לנקודת קצה של SSEOAuth
Streamable HTTPמקומי/מרוחקפריסה כשרתכמה משתמשיםURL לנקודת קצה של HTTPOAuth

#תמיכה בפרוטוקול ובהרחבות

Cursor תומך ביכולות ובהרחבות האלה של פרוטוקול MCP:

יכולתתמיכהתיאור
Toolsנתמךפונקציות שהמודל של הבינה המלאכותית מריץ
Promptsנתמךהודעות ותהליכי עבודה מבוססי תבנית למשתמשים
Resourcesנתמךמקורות נתונים מובנים שאפשר לקרוא ולהפנות אליהם
Rootsנתמךבירורים שהשרת יוזם לגבי גבולות של URI או של מערכת הקבצים
Elicitationנתמךבקשות שהשרת יוזם למידע נוסף מהמשתמשים
Apps (extension)נתמךתצוגות ממשק אינטראקטיביות שכלי MCP מחזירים

#אפליקציות MCP

Cursor תומך ב-הרחבת MCP Apps. כלי MCP יכולים להחזיר ממשק אינטראקטיבי יחד עם פלט כלי רגיל.

אפליקציות MCP פועלות לפי שיפור הדרגתי. אם מארח לא יכול להציג ממשק של אפליקציה, אותו כלי עדיין עובד דרך תגובות MCP רגילות.

#התקנת שרתי MCP

#התקנה בלחיצה אחת

עיינו ב-Cursor Marketplace בתוספים רשמיים עם התקנה בלחיצה אחת מ-Customize, או הגדירו שרתים מותאמים עם mcp.json. לתוספים ולשרתי MCP של הקהילה, עיינו ב-cursor.directory. לחצו על "Add to Cursor" ברשומה בשוק כדי להתקין אותה ולאמת עם OAuth.

מנהלי צוות יכולים גם להפיץ שרתי MCP דרך שוק צוות. שרתים שהצוות מפיץ מופיעים ב-Customize לצד שרתי MCP אישיים ושל סביבת העבודה.

#שימוש ב-mcp.json

הגדירו שרתי MCP מותאמים עם קובץ JSON:

CLI Server - Node.js

{
  "mcpServers": {
    "server-name": {
      "command": "npx",
      "args": ["-y", "mcp-server"],
      "env": {
        "API_KEY": "value"
      }
    }
  }
}

CLI Server - Python

{
  "mcpServers": {
    "server-name": {
      "command": "python",
      "args": ["mcp-server.py"],
      "env": {
        "API_KEY": "value"
      }
    }
  }
}

Remote Server

// MCP server using HTTP or SSE - runs on a server
{
  "mcpServers": {
    "server-name": {
      "url": "http://localhost:3000/mcp",
      "headers": {
        "API_KEY": "value"
      }
    }
  }
}

#OAuth סטטי לשרתים מרוחקים

לשרתי MCP שמשתמשים ב-OAuth, אפשר לספק פרטי לקוח סטטיים של OAuth ב-mcp.json במקום רישום לקוח דינמי. השתמשו בזה כאשר:

  • ספק ה-MCP נותן לכם Client ID קבוע (ואפשר גם Client Secret)
  • הספק דורש הוספת URL להפניה לרשימת ההיתר (למשל Figma, Linear)
  • הספק לא תומך ב-OAuth 2.0 Dynamic Client Registration

הוסיפו אובייקט auth לרשומות של שרת מרוחק שמשתמשות ב-url:

Remote Server with Static OAuth

{
  "mcpServers": {
    "oauth-server": {
      "url": "https://api.example.com/mcp",
      "auth": {
        "CLIENT_ID": "your-oauth-client-id",
        "CLIENT_SECRET": "your-client-secret",
        "scopes": ["read", "write"]
      }
    }
  }
}
שדהחובהתיאור
CLIENT_IDכןמזהה לקוח OAuth 2.0 מספק ה-MCP
CLIENT_SECRETלאסוד לקוח OAuth 2.0 (אם הספק משתמש בלקוחות חסויים)
scopesלאהיקפי OAuth לבקשה. אם משמיטים, Cursor ישתמש ב-/.well-known/oauth-authorization-server כדי לגלות את scopes_supported

#URL הפניה סטטי

Cursor משתמש בכתובות הפניה קבועות של OAuth לשרתי MCP. רשמו את ה-callback לכל משטח שהמשתמשים שלכם מאמתים ממנו:

https://www.cursor.com/agents/mcp/oauth/callback
http://localhost:8787/callback
  • Web ו-Cursor Agents: https://www.cursor.com/agents/mcp/oauth/callback
  • אפליקציית שולחן העבודה: http://localhost:8787/callback

בעת הגדרת אפליקציית ה-OAuth של ספק ה-MCP, רשמו את שתי הכתובות כ-URI הפניה מותרים אם משתמשים מאמתים גם מהרשת וגם משולחן העבודה. השרת מזוהה דרך פרמטר ה-OAuth state, ולכן כתובות ההפניה האלה עובדות לכל שרתי ה-MCP.

עם רישום לקוח דינמי, אפליקציית שולחן העבודה רושמת את שתי הכתובות ויכולה לשלוח לספק את ה-callback של הרשת. הדף הזה מעביר את ההתחברות בחזרה לאפליקציית שולחן העבודה. כדי לשמור אפליקציית OAuth שמתירה רק את כתובת ההפניה של אפליקציית שולחן העבודה, הגדירו CLIENT_ID סטטי ב-auth. אפליקציית שולחן העבודה שולחת אז לספק רק את הכתובת הזאת.

#שילוב עם אינטרפולציה של הגדרות

ערכי auth תומכים באותה אינטרפולציה כמו שדות אחרים:

{
  "mcpServers": {
    "oauth-server": {
      "url": "https://api.example.com/mcp",
      "auth": {
        "CLIENT_ID": "${env:MCP_CLIENT_ID}",
        "CLIENT_SECRET": "${env:MCP_CLIENT_SECRET}"
      }
    }
  }
}

השתמשו במשתני סביבה עבור Client ID ו-Client Secret במקום לקבע אותם בקוד.

#הגדרת שרת STDIO

לשרתי STDIO (שרתי שורת פקודה מקומיים), הגדירו את השדות האלה ב-mcp.json שלכם:

שדהחובהתיאורדוגמאות
typeכןסוג חיבור השרת"stdio"
commandכןפקודה להפעלת קובץ ההרצה של השרת. חייבת להיות זמינה בנתיב המערכת או להכיל את הנתיב המלא."npx", "node", "python", "docker"
argsלאמערך ארגומנטים שמועברים לפקודה["server.py", "--port", "3000"]
envלאמשתני סביבה לשרת{"API_KEY": "${env:api-key}"}
envFileלאנתיב לקובץ סביבה לטעינת משתנים נוספים".env", "${workspaceFolder}/.env"

האפשרות envFile זמינה רק לשרתי STDIO. שרתים מרוחקים (HTTP/SSE) לא תומכים ב-envFile. לשרתים מרוחקים, השתמשו ב-אינטרפולציה של הגדרות עם משתני סביבה שמוגדרים בפרופיל ה-shell או בסביבת המערכת.

#שימוש ב-Extension API

לרישום שרתי MCP באופן תכנותי, Cursor מספק API של הרחבה שמאפשר הגדרה דינמית בלי לשנות קבצי mcp.json. זה שימושי במיוחד לסביבות ארגוניות ולתהליכי הגדרה אוטומטיים.

#חומר עזר ל-Extension API

רשמו שרתי MCP באופן תכנותי באמצעות vscode.cursor.mcp.registerServer()

#מיקומי הגדרה

#הגדרת פרויקט

צרו .cursor/mcp.json בפרויקט שלכם לכלים ייחודיים לפרויקט.

#הגדרה גלובלית

צרו ~/.cursor/mcp.json בתיקיית הבית שלכם לכלים שזמינים בכל מקום.

#אינטרפולציה של הגדרות

השתמשו במשתנים בערכים של mcp.json. Cursor פותר משתנים בשדות האלה: command, args, env, url ו-headers.

תחביר נתמך:

  • ${env:NAME} משתני סביבה
  • ${userHome} נתיב לתיקיית הבית
  • ${workspaceFolder} שורש הפרויקט (התיקייה שמכילה את .cursor/mcp.json)
  • ${workspaceFolderBasename} שם שורש הפרויקט
  • ${pathSeparator} ו-${/} מפריד נתיבים של מערכת ההפעלה

דוגמאות

{
  "mcpServers": {
    "local-server": {
      "command": "python",
      "args": ["${workspaceFolder}/tools/mcp_server.py"],
      "env": {
        "API_KEY": "${env:API_KEY}"
      }
    }
  }
}
{
  "mcpServers": {
    "remote-server": {
      "url": "https://api.example.com/mcp",
      "headers": {
        "Authorization": "Bearer ${env:MY_SERVICE_TOKEN}"
      }
    }
  }
}

#אימות

שרתי MCP משתמשים במשתני סביבה לאימות. העבירו מפתחות API ואסימונים דרך ההגדרה.

Cursor תומך ב-OAuth לשרתים שדורשים אותו. ההתחברות משתמשת בזרימת authorization code עם PKCE. Cursor קורא את המטא-נתונים של המשאב המוגן של השרת (RFC 9728) כדי למצוא את שרת ההרשאה ואת מחוון המשאב (RFC 8707). עם רישום לקוח דינמי, Cursor נרשם כלקוח ציבורי בלי סוד לקוח.

Cursor מחדש אסימון גישה שפג תוקפו באמצעות אסימון הרענון שהשרת הנפיק. אם השרת מחזיר אסימון גישה עם תפוגה (expires_in) ובלי אסימון רענון, התחברו שוב כשהאסימון פג. אם הספק מנפיק אסימוני רענון רק להיקף כמו offline_access, הוסיפו את ההיקף הזה ל-auth.scopes.

#בקרות מנהל ארגוניות

הפצת MCP ומדיניות MCP מוגדרות בנפרד. מנהלי צוות יכולים להפיץ שרתי MCP משותפים. מנהלי ארגון יכולים להגדיר מדיניות MCP.

#הפצת MCP לצוות

הגדירו שרתי Team MCP משותפים תחת Dashboard > Plugins & MCPs. השרתים האלה זמינים ל-Cloud Agents.

ההגדרה של שרת Team MCP והמשתנים של תוסף צוות משותפים לכל הצוות. עריכה שלהם מכל משטח, כולל הגדרות MCP של אוטומציה, משנה את הערך לכל חבר צוות ולכל אוטומציה שמשתמשים בהם. רק מנהלי צוות יכולים לערוך שרת Team MCP או להחליף פרטי גישה שתוסף צוות כבר מחזיק. למנהלי ארגון יש אותה גישה בכל צוות שמקושר ל-Organization שלהם, גם בלי תפקיד מנהל צוות.

כדי להפוך שרת Team MCP עצמאי קיים לזמין ב-Agent Window, ב-IDE וב-CLI, בחרו Add to Team Marketplace תחת Team MCP Servers. Cursor מקשר את השרת לשוק הצוות Default בלי להפסיק את הגישה של Cloud Agent. חברי הצוות יכולים אז להתקין ולהגדיר אותו מ-Customize.

קישור שרת MCP לשוק לא מתקין ולא מפעיל אותו לכולם. הגדירו Marketplace Access ומצבי התקנת תוספים תחת Dashboard > Plugins & MCPs. ראו העברת שרתי Team MCP קיימים לתהליך המלא.

#רשימת היתר של MCP

מנהלי ארגון יכולים לשלוט באילו שרתי MCP משתמשים רשאים להריץ מלוח הבקרה של Cursor. פתחו Team Settings > MCP Configuration כדי להגדיר אילו שרתים וכלים הצוות רשאי להריץ. גם עמוד Plugins & MCPs מקשר לכאן. הוספה לרשימת ההיתר מאשרת הגדרת MCP. היא לא מפיצה ולא מתקינה את השרת.

השתמשו ב-MCP Allowlist כדי להגדיר שרתים מאושרים:

  • רשומות פקודה מאשרות שרתי MCP מקומיים מסוג stdio לפי תבנית פקודה.
  • רשומות URL מאשרות שרתי MCP מרוחקים מסוג HTTP/SSE לפי תבנית רשומת URL.
  • רשימות היתר של כלים מגבילות אילו כלים משרת מאושר יכולים לרוץ אוטומטית. השאירו רשימת היתר של כלים ריקה כדי לאפשר את כל הכלים מהשרת הזה.

#בקרות רשת

כתובות URL של MCP מרוחק מוגבלות לתבנית רשומת ה-URL שהוגדרה.

שרתי MCP מקומיים מבוססי פקודה משתמשים במצב הרשת שלהם לכל שרת:

  • Allow all: מתיר גישת רשת יוצאת.
  • Allowlist: מתיר רק יעדים שברשימה.
  • Deny all: חוסם גישת רשת יוצאת.
  • No sandbox: מריץ בלי ארגז חול של פקודה או של רשת.

#הרחבות MCP של משתמש

מנהלים יכולים לאפשר למשתמשים להגדיר שרתי MCP משלהם מחוץ לתבניות פקודה או URL שהמנהל הגדיר. לשרתי MCP של משתמש שלא תואמים לתבנית שהמנהל הגדיר, User MCP Network Denylist יכול לחסום יעדי רשת תואמים.

#שימוש ב-MCP בצ'אט

Cursor משתמש אוטומטית בכלי MCP שרשומים תחת Available Tools כשזה רלוונטי. זה כולל Plan Mode. בקשו כלי מסוים לפי שם או תארו מה אתם צריכים. הפעילו או השביתו שרתי MCP מ-Customize בסרגל הצד.

#אישור כלי

כברירת מחדל, Cursor מבקש אישור לפני שימוש בכלי MCP. לחצו על החץ ליד שם הכלי כדי לראות ארגומנטים.

בקשת אישור כלי

#Run Mode

MCP פועל לפי אותם מצבי Run Mode כמו פקודות מסוף. לדוגמה, במצב Auto-review, כלי MCP שברשימת ההיתר רצים מיד, וכל השאר מנותב דרך המסווג.

#תגובת כלי

Cursor מציג את התגובה בצ'אט עם תצוגות נפתחות של ארגומנטים ותגובות:

תוצאת קריאה לכלי MCP

#תמונות כהקשר

שרתי MCP יכולים להחזיר תמונות: צילומי מסך, תרשימים ועוד. החזירו אותן כמחרוזות מקודדות ב-base64:

const RED_CIRCLE_BASE64 = "/9j/4AAQSkZJRgABAgEASABIAAD/2w...";
// ^ full base64 clipped for readability

server.tool("generate_image", async (params) => {
  return {
    content: [
      {
        type: "image",
        data: RED_CIRCLE_BASE64,
        mimeType: "image/jpeg",
      },
    ],
  };
});

ראו את שרת הדוגמה הזה לפרטי מימוש. Cursor מצרף תמונות שהוחזרו לצ'אט. אם המודל תומך בתמונות, הוא מנתח אותן.

#שיקולי אבטחה

בעת התקנת שרתי MCP, הביאו בחשבון את נוהלי האבטחה האלה:

  • אמתו את המקור: התקינו שרתי MCP רק ממפתחים וממאגרים מהימנים
  • בדקו הרשאות: בדקו לאילו נתונים ו-API השרת ייגש
  • הגבילו מפתחות API: השתמשו במפתחות API מוגבלים עם ההרשאות המינימליות הנדרשות
  • בקרו קוד: לשילובים קריטיים, עיינו בקוד המקור של השרת

זכרו ששרתי MCP יכולים לגשת לשירותים חיצוניים ולהריץ קוד בשמכם. תמיד הבינו מה שרת עושה לפני ההתקנה.

#דוגמאות מהעולם האמיתי

לדוגמאות מעשיות של MCP בפעולה:

  • שילוב Xcode: חברו את Cursor ל-Xcode 26.3+ לבניות, בדיקות, תצוגות מקדימות של SwiftUI וחיפוש בתיעוד של Apple
  • מדריך פיתוח אתרים: שלבו את Linear, Figma וכלי דפדפן בתהליך הפיתוח

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

#מה המטרה של שרתי MCP?

שרתי MCP מחברים את Cursor לכלים חיצוניים כמו Google Drive, Notion ושירותים אחרים, כדי להכניס מסמכים ודרישות לתהליך הכתיבה של הקוד.

#איך מנפים בעיות בשרת MCP?

הציגו יומני MCP כך:

  1. פתחו את לוח Output ב-Cursor (Cmd+Shift+U)
  2. בחרו "MCP Logs" מהרשימה הנפתחת
  3. בדקו שגיאות חיבור, בעיות אימות או קריסות שרת

היומנים מציגים אתחול שרת, קריאות לכלים והודעות שגיאה.

#למה ההתחברות שלי ל-MCP שונה ב-Cloud Agents?

Cloud Agents שומרים את ההתחברויות שלהם ל-MCP על השרתים של Cursor, בנפרד מההתחברויות במחשב שלכם. התנתקות מקומית לא מנתקת את Cloud Agents. כדי להתנתק עבור Cloud Agents, פתחו Customize והתנתקו בשורת Cloud של השרת, שמסומנת Cursor's servers בחלק מהשרתים.

#האם אפשר להשבית זמנית שרת MCP?

כן! הפעילו או השביתו שרתים בלי להסיר אותם:

  1. פתחו Customize בסרגל הצד
  2. מצאו את שרת ה-MCP שאתם רוצים לשנות
  3. השתמשו במתג כדי להפעיל או להשבית אותו

שרתים מושבתים לא ייטענו ולא יופיעו בצ'אט. זה שימושי לפתרון בעיות או להפחתת עומס כלים.

#מה קורה אם שרת MCP קורס או חורג מזמן ההמתנה?

אם שרת MCP נכשל:

  • Cursor מציג הודעת שגיאה בצ'אט
  • קריאת הכלי מסומנת כנכשלת
  • אפשר לנסות שוב את הפעולה או לבדוק יומנים לפרטים
  • שרתי MCP אחרים ממשיכים לעבוד כרגיל

Cursor מבודד כשלים של שרת כדי למנוע ששרת אחד ישפיע על אחרים.

#איך מעדכנים שרת MCP?

לשרתים מבוססי npm:

  1. הסירו את השרת מ-Customize
  2. נקו את מטמון npm: npm cache clean --force
  3. הוסיפו שוב את השרת כדי לקבל את הגרסה האחרונה

לשרתים מותאמים, עדכנו את הקבצים המקומיים והפעילו מחדש את Cursor.

#האם אפשר להשתמש בשרתי MCP עם נתונים רגישים?

כן, ופעלו לפי נוהלי אבטחה מומלצים:

  • השתמשו במשתני סביבה לסודות, לעולם אל תקבעו אותם בקוד
  • הריצו שרתים רגישים מקומית עם תעבורת stdio
  • הגבילו הרשאות של מפתח API למינימום הנדרש
  • עיינו בקוד השרת לפני חיבור למערכות רגישות
  • שקלו להריץ שרתים בסביבות מבודדות

#קשור

#מפת אתר

סקירה של כל דפי התיעוד