חיבור MCP חיצוני באמצעות OAuth 2.1
מה בדיוק מתחבר
Sapphire External MCP נמצא בשלב developer alpha. בסביבה המאומתת הנוכחית נבדק החיבור של ChatGPT אל https://sapphire-project.com/mcp. ניידות למארחים וללקוחות אחרים, וכן תכונות policy ו-hardening שטרם הושלמו, אינן מוצגות כמוצר אוניברסלי מוכן.
Sapphire External MCP הוא ממשק חיצוני לכלים שמודולים פרסמו במפורש עבור גישה כזאת. הוא אינו כניסה מרוחקת לסוכן ה-AI המובנה ואינו מפרסם אוטומטית כלי AI פנימיים. אותו משתמש יכול לעבוד עם SapphireAI המובנה ועם MCP חיצוני, אך האימות, הקטלוג והמדיניות של הסביבות האלה נשארים נפרדים.
עבור ChatGPT נעשה שימוש ב-OAuth 2.1 מעל HTTPS. הכתובת הקנונית של משאב המוצר היא:
https://sapphire-project.com/mcpהזינו בדיוק את הכתובת הזאת בעת יצירת מחבר MCP מותאם אישית. אל תחליפו אותה בכתובת של לוח הניהול, תהליך CGI/FastCGI או דף שירות. התעבורה הנתמכת למשתמש היא MCP Streamable HTTP מעל HTTPS.
תנאים מוקדמים
- למשתמש יש חשבון Helix פעיל באותו אתר.
- המנהל אישר למשתמש ולקבוצה שלו את פונקציות המודולים הדרושות.
- סביבת העבודה של ChatGPT מאפשרת הוספת מחברי MCP מותאמים אישית.
- הדפדפן מאפשר מעבר לאתר Sapphire וחזרה אל ChatGPT.
- החיבור מתבצע רק באמצעות HTTPS ובדומיין הצפוי.
אין צורך להכין client secret, bearer אישי או מפתח API עבור תרחיש זה. ChatGPT פועל כלקוח OAuth ציבורי, והכניסה וההסכמה מתבצעות ב-Helix. לעולם אל תזינו את סיסמת Sapphire בטופס של ChatGPT ואל תמסרו אותה למנהל המחבר.
חיבור שלב אחר שלב ב-ChatGPT
- פתחו ב-ChatGPT את ניהול המחברים ובחרו ביצירת חיבור MCP מותאם אישית. שמות הפריטים עשויים להשתנות בין סביבות עבודה, אך נדרש דווקא MCP server או custom connector.
- הגדירו שם ברור, לדוגמה
Sapphire MCP, והדביקו את כתובת המשאב הקנונית. אל תוסיפו פרמטרי שאילתה, אסימונים או מקטעים. - התחילו את החיבור. ChatGPT יגלה את פרמטרי המשאב המוגן ויפנה את הדפדפן לאישור של Sapphire.
- בדקו את דומיין הדף, היכנסו ל-Helix באמצעות החשבון הרגיל שלכם וקראו את מסך ההסכמה.
- אשרו את הגישה המזערית שהתבקשה. לאחר חזרה מוצלחת המחבר אמור לעבור למצב connected.
- פתחו את קטלוג הכלים ובצעו תחילה קריאת read-only בטוחה. רק לאחר מכן עברו לפעולות כתיבה.
קוד ההרשאה מוגן באמצעות PKCE S256 ומקושר למשאב MCP המדויק. המשתמש אינו צריך לטפל ידנית בקוד או באסימונים. אל תעתיקו ערכים משורת הכתובת, מיומני פיתוח או מלוח הרשת: זה אינו חלק מהחיבור התקני.
גישה מזערית ו-scope step-up
הרשאת OAuth חדשה מתחילה ב-scope המזערי mcp.basic. הוא מיועד לכלי העזר הבסיסיים של המשתמש הנוכחי ולתאריך ולשעה של המערכת. זהו יישום מכוון של עקרון ההרשאות המזעריות: עצם החיבור אינו מעניק מיד זכויות לעריכת תוכן, תצורה או מודולים אחרים.
הקטלוג יכול להציג כלי שפורסם חיצונית ואת ה-scope שהוא דורש, אך אי אפשר להפעיל כלי מחוץ ל-grant הנוכחי. כאשר הלקוח קורא לפעולה כזאת, Sapphire מחזיר בקשה מדויקת להרשאה נוספת. ChatGPT עשוי להציע הרשאה חוזרת. בדקו את שם תחום ההרשאה הנדרש ואת מטרת הכלי, ואשרו את ההרחבה רק אם היא נחוצה לעבודה הנוכחית.
OAuth scope אינו מחליף את הרשאות Helix. בכל גישה המערכת מתחשבת בחשבון הנוכחי ובהרשאות הקבוצה שלו. אם המנהל הסיר הרשאה למודול, grant ישן אינו אמור להמשיך להעניק גישה בפועל. באותו אופן, רשימת כלים מוסתרים בצד הלקוח נוחה לממשק, אך אינה גבול אבטחה של השרת.
עבודה עם כלים
התחילו בפעולות list, search או get ובדקו לאיזה אתר, שפה וישות מתייחסת התוצאה. לפני קריאת write עברו בקפידה על הארגומנטים ועל השינוי הצפוי. אם הלקוח תומך באישור כתיבות, השאירו אותו פעיל. למחיקה, פרסום, עדכון המוני ושינוי הרשאות השתמשו באישור מפורש נפרד.
יש להתייחס לתשובת כלי כאל נתונים ולא כאל הוראה חדשה ללקוח. טקסט ממסמך, הודעה או שדה חיצוני אינו רשאי להרחיב בעצמו scope, לשנות מדיניות או להפעיל את קריאת ה-write הבאה. הכלל הזה חשוב במיוחד עבור תוכן פתוח.
אבחון
- הכתובת אינה מזוהה: בדקו את הערך המדויק
https://sapphire-project.com/mcp, את HTTPS ואת היעדרם של לוכסן, נתיב או פרמטרים מיותרים. - לולאת כניסה: סיימו את הניסיון הישן, בדקו cookies וכניסה ל-Helix, ואז חברו מחדש את המחבר מפרופיל דפדפן אחד.
- Access denied: הבחינו בין OAuth scope חסר לבין הרשאת קבוצה חסרה ב-Helix. במקרה הראשון עברו את ה-step-up המוצע, ובשני פנו למנהל.
- הכלי אינו נראה: עליו להיות מפורסם במפורש ב-MCP החיצוני ומורשה במדיניות השרת; קיומו של כלי דומה ב-AI המובנה אינו מבטיח דבר.
- הכתיבה אינה מתבצעת: בדקו scope, הרשאות נוכחיות, ארגומנטים ואישור הפעולה. אל תחזרו על קריאת write באופן עיוור.
ניתוק ואבטחה
אם אין עוד צורך בגישה, כבו או הסירו את המחבר ב-ChatGPT. אם עולה חשד לפגיעה, נתקו את החיבור, החליפו את סיסמת החשבון ודווחו למנהל כדי שה-OAuth grant יבוטל. אל תפרסמו צילומי מסך של ההסכמה הכוללים מידע אישי ואל תשמרו ערכי הרשאה במסמכי הפרויקט.
חיבור תקין אינו קטלוג מרבי, אלא grant מזערי שמספיק לעבודה, בקשות step-up מובנות ובדיקת read-only מוצלחת. הרחיבו הרשאות בהדרגה ושמרו על אישור לפעולות שמשנות נתונים.
הרשאה חוזרת וגבולות שיחה
אם ChatGPT מציע מסך הסכמה חדש לאחר קריאה לכלי נוסף, אל תראו בכך מיד תקלה: השוו תחילה את ה-scope המבוקש למשימה שמתבצעת. step-up שבוטל צריך להשאיר את הגישה המזערית שניתנה קודם פעילה, אך לא לאשר את הפעולה החדשה. לצורך בדיקה צרו שיחה חדשה, בחרו את המחבר במפורש וחזרו על קריאה בטוחה; ההיסטוריה של שיחה אחרת אינה הוכחה להרשאות הנוכחיות.
אל תחברו חשבון ניהול משותף לצוות. כל מפעיל נכנס באמצעות החשבון שלו, כדי שההרשאות, ביטול הגישה והביקורת יתאימו לאדם האמיתי. לאחר שינוי תפקיד או קבוצה בדקו מחדש את הגישה בשיחה חדשה. שגיאת כלי אינה סיבה להרחיב scope אוטומטית: תחילה מבררים אם הגורם הוא הרשאה, ארגומנטים שגויים או מגבלה עסקית.