שליטה ב-betool מתוך Claude (שרת MCP)
betool חושפת שרת MCP (Model Context Protocol): לקוח MCP חיצוני — Claude Code, Claude Desktop או כל יישום תואם — יכול לקרוא את תצורת הארגון שלכם ולהציע שינויים בשפה טבעית (יצירה/עריכה של פייפליין, תפקיד, משימה, הערכה…). זה כמו עוזר שמגדיר את betool יחד אתכם, תחת ממשל מלא.
שתי דרכים להתחבר, לאותה נקודת קצה https://platform.betool.ai/mcp:
- מפתח API של MCP בכותרת
Authorization— הפשוט ביותר עבור Claude Code; - OAuth 2.1 + PKCE — ליישומים חיצוניים, בלי לטפל בשום סוד.
דבר אינו מוחל ללא אישור מפורש. כל שינוי עובר דרך הצעה. בהיקף קריאה + הצעות אתם מאשרים אותה בכפתור אישור בתוך betool. בהיקף מלא היישום יכול להכריע את ההצעות שלו עצמו — לאחר הסכמתכם בשיחה שלו; זהו המקבילה המכונית של אותו כפתור, מוגדר להיקף הזה בלבד ומתועד כמו כל השאר. בחרו קריאה + הצעות אם אתם רוצים שהאישור יתרחש בתוך betool, ובשום מקום אחר.
מה Claude יכול לעשות
- קריאה: מצאי המודלים, גרף הפייפליין והצמתים, חוזי תצורת הצמתים, תפקידים/משימות, כלים זמינים, מאגר הידע.
- קריאת הנתונים שלכם: מסדי הנתונים ללא קוד של הארגון — בסיסים, טבלאות, עמודות ושורות. הלקוח מגלה אותם בעצמו; לא ניתן להגביל מפתח לתת-קבוצה של בסיסים.
- הצעה: דרך הכלי
proposals.create, הצעת שינוי ממתינה — אתם מאשרים או דוחים בממשק. - כתיבת נתונים (היקף מלא): יצירה, עדכון או תפיסה של שורה באחד הבסיסים שלכם, לאחר הסכמה מפורשת שלכם בשיחה. בשונה מהתצורה, כתיבת נתונים אינה מנוהלת בגרסאות — אין לה שחזור.
- לדבר עם המודלים שלכם (היקף מלא): לנהל שיחה מרובת תורים עם מודל שפתחתם במפורש לסוכנים חיצוניים — ראו להלן.
Claude מגלה את החוזה המדויק של כל צומת (שדות, ערכים מותרים) לפני שהוא מציע: בלי ניחושים, בלי תצורה לא תקפה.
יצירת מפתח MCP
מיועד למנהלי הארגון בלבד: מפתח נושא סמכות על הארגון כולו.
- ב-betool, פתחו הגדרות → MCP.
- תנו שם למפתח ובחרו את ההיקף שלו:
- קריאה בלבד — קורא תצורה ואת הנתונים שבבסיסים שלכם, קורא מחדש שיחות שנפתחו בערוץ הזה, לא מציע דבר;
- קריאה + הצעות (מומלץ) — קורא ומגיש הצעות, שאתם מאשרים בתוך betool;
- מלא — יכול גם להכריע את הצעותיו, לכתוב לבסיסי הנתונים שלכם ולנהל שיחה עם המודלים שלכם, לאחר הסכמתכם בשיחה של הלקוח.
- המפתח הגולמי מוצג פעם אחת בלבד — העתיקו אותו מיד (לא ניתן לקרוא אותו שוב). ניתן לבטל מפתח בכל עת.
אותם שלושה היקפים קיימים גם ב-OAuth; שם אתם בוחרים אותם במסך ההסכמה.
חיבור Claude Code
הוסיפו את שרת ה-MCP של betool ל-Claude Code (המפתח עובר בכותרת Authorization):
claude mcp add betool \
--transport http \
--header "Authorization: Bearer <your-mcp-key>" \
https://platform.betool.ai/mcp
לאחר מכן בקשו מ-Claude בשפה טבעית: "בדוק את הפייפליין X שלי והצע שלב שמסכם את הכרטיס לפני השליחה". Claude קורא את התצורה, מרכיב הצעה, ואתם מאשרים אותה ב-betool.
לעולם אל תדביקו סודות בטקסט גלוי בצ'אט. ההיקף של Claude מוגבל לפי היקף המפתח, וכל קריאה לכלי נרשמת תחת הגדרות → MCP → יומן (GDPR סעיף 15).
לדבר עם המודלים שלכם
קריאה והצעות הן דרך להגדיר את betool. בינה מלאכותית חיצונית יכולה גם להשתמש בו: לנהל שיחה אמיתית עם אחד המודלים שלכם, תור אחר תור, בדיוק כמו כל מבקר בצ'אט שלכם. שימושי כדי שבינה אחרת תעמיד את העוזר שלכם במבחן, כדי להציב את betool מאחורי סוכן שותף, או כדי שכלי פנימי יתשאל אחד התהליכים שלכם בשפה חופשית.
ארבעה כלים: conversation.open פותח שיחה או מאחזר אותה, conversation.send שולח תור ומחזיר את התשובה, conversation.poll אוסף תשובה שלקחה זמן, ו-conversation.history קורא מחדש את השיחה. השיחה הזאת היא הקשר betool ככל הקשר אחר: היא מופיעה בין השיחות שלכם, המודל רואה את התורים הקודמים, ואתם קוראים הכול בממשק.
המודל הוא שמאשר, לא המפתח. יש להצהיר על המקלט סוכן חיצוני בצומת ה-Start של המודל: בלי ההצהרה הזאת הקריאה נדחית, גם עם מפתח בהיקף מלא. מודלים שנוצרו מאז ההשקה הזאת מצהירים עליו כברירת מחדל (הדרך הרגילה היא הדרך הקלה); לוותיקים יותר צריך להוסיף אותו, ומכל מודל ניתן להסיר אותו. כלומר המודל מחליט, לא המפתח — והמקלט חייב להיות נוכח בגרסה שפורסמה, זו שרצה בפועל. ומכיוון שתור יכול לחולל השפעות אמיתיות — דוא"ל שנשלח, רשומה שנוצרת — הוא צורך את הקרדיטים של הארגון ונרשם ביומן כמו כל קריאת כלי.
תשובה לא נאבדת: אם המודל עובד יותר מזמן ההמתנה שהוקצב, הקריאה מחזירה כרטיס והתור ממשיך בצד השרת — הוא שורד גם פריסה מחדש. לאחר מכן היישום אוסף את התשובה עם conversation.poll. שליחה חוזרת של ההודעה לא מזרזת דבר — וכל עוד התור מתבצע, השליחה נדחית.
לבסוף, הערוץ הזה קורא רק את השיחות שלו. מזהה שיחה שהגיע מכניסה אחרת — צ'אט ציבורי, טלפון, דוא"ל — אינו קריא כאן: השיחות של הלקוחות שלכם אינן נעשות זמינות לקריאה רק מפני שיישום MCP מחובר.
מודל שכבר קיים עובד בלי שינוי. הערוץ הזה מציב את אותם מפתחות שמציב צ'אט: ההודעה מגיעה ב-user_message והאירוע הוא on_message רגיל — כך שהמסננים שלכם והבחירות של הסוכנים ממשיכים לעבוד. אם המודל שאליו פונים נכתב עבור כניסה אחרת (הוא קורא telegram.text, יעד, משתנה עמוד…), היישום יכול לספק את המפתחות האלה בעצמו דרך variables: הם נכנסים לזרימה בדיוק במקום שבו הכניסה האחרת הייתה מציבה אותם. מה שהוא לא יכול לזייף הוא זהות התור — מי דיבר ובאיזה ערוץ: את המפתחות האלה מציב השרת, וכל ניסיון נדחה ומדווח בתשובה.
אם המודל שותק, בדקו את הניתוב שלו. מודל שמשרת כמה ערוצים מסתעף בדרך כלל לפי הכניסה (filter input.entry_kind == chat_widget…): תור שמגיע עם הכניסה « סוכן חיצוני » אינו תואם לשום הסתעפות, ודבר אינו עונה — בלי שתיזרק שגיאה. העבירו as_entry_kind כדי להיות מנותבים כמו אותו ערוץ. זה משנה רק את מפתח הניתוב: מתאר הערוץ ויומן הביקורת ממשיכים לומר שהתור בא מבינה מלאכותית חיצונית, והיכולות האמיתיות של הערוץ עדיין חלות.
שיחה מטפלת בתור אחד בכל פעם. כל עוד התור הקודם לא החזיר את תשובתו, התור הבא נדחה — עם מזהה התור שצריך לקרוא. זו אינה מגבלה שרירותית: תשובה נקשרת לשאלתה לפי מקומה בשיחה, ולכן שני תורים באוויר היו הופכים את השיוך למעורפל — עדיף סירוב ברור מתשובה סבירה ושגויה.
חיבור יישום חיצוני (OAuth 2.1)
מפתח בכותרת מתאים ל-Claude Code. לקוחות אחרים — Claude Desktop, ChatGPT, עורך קוד, היישום שלכם — מתחברים דרך OAuth 2.1 + PKCE, בלי שאף אחד יטפל בסוד. אין מה להכין: אין לקוח להצהיר ואין מזהה לבקש מאיתנו.
מבחינת המשתמש, המסלול הוא שלושה מסכים:
- ביישום, הוסיפו את שרת ה-MCP
https://platform.betool.ai/mcp. - הדפדפן נפתח במסך הסכמה של betool: הוא מציין את היישום המבקש גישה, את הארגון הרלוונטי, ולאן תתבצע החזרה. בדקו את שלושת הפרטים האלה — במיוחד אם אתם שייכים לכמה ארגונים.
- בחרו את ההיקף שאתם מעניקים, ואז אישור. היישום לעולם אינו מקבל יותר ממה שסימנתם, גם אם ביקש יותר.
רק מנהל ארגון יכול לאשר יישום. חיבור יישום יוצר סמכות מתמשכת על הארגון כולו — בדיוק מה שהוא מפתח MCP. לכן חבר עם הרשאות מוגבלות אינו יכול לעקוף את הגבלותיו בדרך הזאת.
עבור מפתחים משלבים, הגילוי אוטומטי לחלוטין ותואם לתקנים: קריאה לא מאומתת ל-/mcp מחזירה 401 עם הכותרת WWW-Authenticate ובה כתובת המטא-נתונים שלנו (RFC 9728), שמצביעים בתורם על ההרשאה, החלפת האסימונים, רישום דינמי של לקוח (RFC 7591) וביטול (RFC 7009). PKCE S256 הוא חובה, אסימוני גישה חיים שעה, ואסימון הרענון מתחלף בכל שימוש.
# מה שלקוח עושה בעצמו — שימושי לבדיקה מהטרמינל.
curl -i -X POST https://platform.betool.ai/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize"}'
# -> 401 + WWW-Authenticate: Bearer ... resource_metadata="..."
curl -s https://platform.betool.ai/.well-known/oauth-authorization-server
אסימון תקף ל-betool בלבד: אם ישתמשו בו במקום אחר, הוא נדחה (RFC 8707). ואם אסימון רענון שכבר נוצל מוצג פעם שנייה — הסימן המובהק לאסימון גנוב — כל ההרשאה מבוטלת והמשתמש נדרש לאשר מחדש.
יישומים מחוברים: לראות ולנתק
תחת הגדרות → MCP, המקטע יישומים מחוברים מציג את מה שמחובר לארגון שלכם: שם היישום, ההיקף שהוענק, מי אישר אותו ומתי נעשה בו שימוש לאחרונה. כפתור ניתוק חוסם את הגישה מיד — כל האסימונים של אותו יישום, עבור הארגון שלכם בלבד.
אותו יישום יכול להיות מחובר בכמה ארגונים: ניתוק אצלכם אינו משפיע על אף אחד אחר. יישום יכול גם לנתק את עצמו.
היקף ובידוד
- כברירת מחדל, מפתח פועל רק על הארגון שלכם — ארגון היעד נכפה בצד השרת; אתם לעולם לא מעבירים מזהה ארגון כארגומנט.
- מפתחות ספק (ארגון backoffice) יכולים לכוון לארגון אחר, בכפוף להסכמה מפורשת של אותו ארגון ועם תיעוד מלא — שימושי למקרה שימוש של ספק רב-דיירים.
יומן ביקורת
כל קריאה לכלי (חיצונית דרך MCP וגם פנימית) כותבת שורת ביקורת: מי, איזה כלי, איזה ערוץ, איזה היקף, תוצאה, זמן תגובה. זמין תחת הגדרות → MCP, מוגבל באופן מחמיר לארגון שלכם.
בקרוב
- שליטה מדויקת, לכל כלי, במשטח החשוף דרך MCP.
- זרימה משרת ללקוח (SSE) עבור הודעות השרת.
ראו גם
- Admin API — אוטומציה של betool מהמערכות שלכם.
- אבטחה ותאימות — מודל ממשל ההצעות.