Site Assistant
Hi! How can I help you today?
מדריך OpenAI

7. חיבור לכלים חיצוניים (MCP)

חלק ג׳: הרחבהפרק 7 מתוך 16זמן קריאה: כ-5 דקות

Codex יכול לכתוב ולהריץ קוד, אבל מחוץ לפרויקט שלכם הוא "עיוור" — הוא לא יודע לגשת לתיעוד עדכני, לפיגמה, לדפדפן או ל-GitHub שלכם. MCP (Model Context Protocol) הוא הפרוטוקול שפותח לו את הדלת לכלים ולמידע חיצוניים. בפרק הזה נלמד מה זה, איך מחברים שרת MCP ל-Codex, ואיך שומרים על שליטה ועל בטיחות.

מה זה MCP, בשפה פשוטה

MCP הוא תקן פתוח שמחבר מודלים לכלים ולהקשר (context) חיצוניים. שרת MCP הוא תוכנה קטנה שחושפת בפני Codex יכולות מוגדרות: לדוגמה, "חפש בתיעוד של React", "קרא קובץ מפיגמה" או "פתח דף בדפדפן ועשה לו צילום מסך". Codex מדבר עם השרת דרך הפרוטוקול, מקבל רשימת כלים, ויכול לקרוא להם בדיוק כמו שהוא קורא לכלים המובנים שלו (קריאת קבצים, הרצת פקודות וכו').

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

שני סוגי שרתים

סוגאיך מתחבריםאימות
STDIOCodex מריץ תהליך מקומי (פקודה בטרמינל) ומדבר איתומשתני סביבה, אם צריך
Streamable HTTPCodex מתחבר לכתובת רשת (URL)Bearer token, OAuth (כולל התחברות אוטומטית), או session של ChatGPT לשרתים מהימנים

Codex גם קורא את שדה ה-instructions שהשרת מחזיר באתחול, ומשתמש בו כהנחיה כללית לגבי איך להשתמש בכלים שלו — לצד רשימת הכלים עצמה.

איך מוסיפים שרת MCP

הדרך המהירה היא הפקודה codex mcp add:

codex mcp add <server-name> --env VAR1=VALUE1 --env VAR2=VALUE2 -- <stdio server-command>

לדוגמה, לחבר את Context7 — שרת MCP חינמי לתיעוד מפתחים עדכני:

codex mcp add context7 -- npx -y @upstash/context7-mcp

מכאן, בכל שיחה עם Codex (בטרמינל, ב-IDE או בדסקטופ) הכלים של context7 זמינים לו אוטומטית.

ניהול משורת הפקודה

  • codex mcp list — רשימת השרתים המוגדרים.
  • codex mcp --help — כל הפקודות הזמינות.
  • codex mcp login <server-name> — מתחיל תהליך התחברות OAuth, לשרתים שתומכים בכך (עובד רק עם שרתי HTTP).

מה-TUI (המצב האינטראקטיבי)

בתוך סשן codex רגיל, הפקודה /mcp מציגה את השרתים והכלים הזמינים לשיחה הנוכחית. /mcp verbose מוסיף פרטי אבחון מפורטים לכל שרת.

הגדרה ידנית ב-config.toml

לשליטה מדויקת יותר, עורכים ישירות את ~/.codex/config.toml, או קובץ מקומי לפרויקט .codex/config.toml (רק בפרויקטים מהימנים). כל שרת מקבל טבלת [mcp_servers.<server-name>] משלו.

שרת STDIO

[mcp_servers.context7]
command = "npx"
args = ["-y", "@upstash/context7-mcp"]
env_vars = ["LOCAL_TOKEN"]

[mcp_servers.context7.env]
MY_ENV_VAR = "MY_ENV_VALUE"
שדהמשמעות
command (חובה)הפקודה שמפעילה את השרת
argsארגומנטים לפקודה
envמשתני סביבה קבועים שמוגדרים לשרת
env_varsמשתני סביבה קיימים שמותר להעביר לשרת
cwdתיקיית עבודה להפעלת השרת

שרת Streamable HTTP

[mcp_servers.figma]
url = "https://mcp.figma.com/mcp"
bearer_token_env_var = "FIGMA_OAUTH_TOKEN"
http_headers = { "X-Figma-Region" = "us-east-1" }
שדהמשמעות
url (חובה)כתובת השרת
authoauth (ברירת מחדל) לפרטי OAuth שמורים, או chatgpt לשימוש בסשן ChatGPT הנוכחי לשרתי OpenAI מהימנים
bearer_token_env_varשם משתנה סביבה שמחזיק Bearer token
http_headersכותרות HTTP קבועות
env_http_headersכותרות HTTP שערכן נשאב ממשתני סביבה

אפשרויות נוספות שרלוונטיות לכל שרת

שדהמשמעות
enabledfalse משבית שרת בלי למחוק אותו
requiredtrue גורם להפעלה להיכשל אם השרת הזה לא עולה
enabled_tools / disabled_toolsרשימת היתר / רשימת חסימה לכלים ספציפיים מהשרת (החסימה חלה אחרי ההיתר)
default_tools_approval_modeמדיניות אישור ברירת מחדל לכלי השרת: auto, prompt, writes (שואל רק על כלים שאינם read-only) או approve
tools.<tool>.approval_modeדריסת מדיניות האישור לכלי בודד
startup_timeout_secזמן המתנה עד שהשרת עולה. ברירת מחדל: 10 שניות
tool_timeout_secזמן המתנה להרצת כלי בודד. ברירת מחדל: 60 שניות
[mcp_servers.chrome_devtools]
url = "http://localhost:3000/mcp"
enabled_tools = ["open", "screenshot"]
default_tools_approval_mode = "prompt"
startup_timeout_sec = 20

[mcp_servers.chrome_devtools.tools.open]
approval_mode = "approve"
config.toml הוא מקור אחד לכל הממשקים

אחרי שהגדרתם שרת, הוא זמין גם באפליקציית הדסקטופ וגם בתוסף ה-IDE, בלי להגדיר שוב. אפשר גם לפצל בין הגדרה גלובלית (~/.codex/config.toml) לפרויקט ספציפי (.codex/config.toml), למשל שרת MCP שרלוונטי רק לפרויקט אחד.

שרתי MCP שימושיים להתחלה

שרתמה הוא נותן
OpenAI Docs MCPחיפוש וקריאה בתיעוד המפתחים של OpenAI
Context7גישה לתיעוד מפתחים עדכני של ספריות ופריימוורקים
Figma (מקומי או מרוחק)גישה לעיצובים בפיגמה
Playwrightשליטה ובדיקה של דפדפן
Chrome DevToolsשליטה ובדיקה של כרום
Sentryגישה ללוגים ולשגיאות ב-Sentry
GitHubניהול PR-ים ו-issues, מעבר למה ש-git מאפשר

אבטחה: לסמוך רק על מה שאתם מכירים

שרת MCP רץ בהרשאות שלכם

שרת MCP הוא קוד חיצוני שמקבל גישה לכלים, ולפעמים לטוקנים ולמידע רגיש. Codex לא מבצע ביקורת אבטחה על שרתי צד שלישי. חברו רק שרתים ממקורות ידועים ואמינים, בדקו מה הם דורשים לפני שאתם מזינים מפתחות API, והשתמשו ב-default_tools_approval_mode כדי לשמור על אישור ידני לפעולות כתיבה כשאתם לא בטוחים.

שדה ה-instructions שהשרת שולח, ותוצאות הכלים שלו, הם תוכן שמגיע ממקור חיצוני — בדיוק כמו דף אינטרנט. התייחסו אליהם בזהירות דומה, ואל תניחו שכל מה שהשרת "מבקש" מ-Codex הוא בהכרח לגיטימי.

OAuth: CIMD ו-Dynamic Client Registration

לשרתי HTTP שדורשים OAuth, Codex תומך ב-Client ID Metadata Documents (CIMD) וב-Dynamic Client Registration (DCR). כברירת מחדל הוא בוחר CIMD כשהשרת מפרסם תמיכה מתאימה, ואחרת עובר ל-DCR. אפשר לבחור שיטה באופן ידני להתחברות בודדת:

codex mcp login <server-name> --oauth-client-registration cimd
codex mcp login <server-name> --oauth-client-registration dcr

אם ל-authorization server יש client ID רשום מראש, מוסיפים אותו בהוספת השרת:

codex mcp add example --url https://mcp.example.com --oauth-client-id my-client

Codex מציג את כתובת ה-callback שצריך לרשום אצל הספק, ושומר אותה יחד עם ה-client ID ב-config.toml:

[mcp_servers.example]
url = "https://mcp.example.com"

[mcp_servers.example.oauth]
client_id = "my-client"
callback_url = "http://127.0.0.1/callback"

לכתובת callback מותאמת, למשל כשעובדים מול Devbox מרוחק, אפשר לקבוע כתובת ופורט גלובליים:

mcp_oauth_callback_port = 5555
mcp_oauth_callback_url = "https://devbox.example.internal/callback"

שרתי MCP שמגיעים מ-Plugins

Plugin מותקן יכול לכלול שרת MCP משלו (ראו פרק 8: Skills ו-Plugins). במקרה כזה השרת מופעל על ידי ה-Plugin עצמו, וההגדרות שלכם שולטות רק בהפעלה/כיבוי ובמדיניות הכלים:

[plugins."sample@test".mcp_servers.sample]
enabled = true
default_tools_approval_mode = "prompt"
enabled_tools = ["read", "search"]

מגבלת זמן טעינה לשרתים אופציונליים

ההגדרה הגלובלית mcp_optional_startup_grace_ms (ברירת מחדל: 1000 מילישניות) קובעת כמה זמן Codex ממתין לשרתים לא-חובה בבניית רשימת הכלים הראשונית. שרתים עם required = true תמיד ממתינים לפי startup_timeout_sec שלהם.

בקצרה
  • MCP מחבר את Codex לכלים ולמידע חיצוניים: תיעוד, פיגמה, דפדפן, GitHub ועוד.
  • שני סוגי שרתים: STDIO (תהליך מקומי) ו-Streamable HTTP (כתובת רשת, עם אפשרות OAuth).
  • הוספה מהירה: codex mcp add <name> -- <command>. ניהול: codex mcp list, /mcp בתוך סשן.
  • הגדרה מדויקת יותר דרך config.toml, כולל מדיניות אישור לכל כלי וכלי בנפרד.
  • חברו רק שרתים ממקורות אמינים — הם רצים בהרשאות שלכם ותוכן שהם מחזירים הוא תוכן חיצוני, לא הוראה סמכותית.