דלגו לתוכן

או התחילו מנקודה בטוחה: אינדקס הכלים המלא · מפת הטבלאות המרכזיות

מערכת חדשה — 14 יום חינם

שרת ה‑MCP

עודכן 30.08.2026
https://mcp.mbapps.co.il/

MCP (Model Context Protocol) הוא הפרוטוקול שדרכו מודל שפה מקבל כלים לעבוד מולם. שרת ה‑MCP של MyBusiness חושף את המערכת כאוסף כלים — שליפת נתונים, אגרגציות, סכימות, בניית דפים ודשבורדים, טריגרים, הודעות, קבצים, משתמשים והרשאות — כך ש‑Claude, ChatGPT או כל לקוח MCP אחר יכולים לעבוד מול המערכת בשפה חופשית.

השרת רץ מעל אותו Parse Server שמאחורי ה‑REST API. מה שהוא מוסיף הוא שכבת כלים בעלת סמנטיקה של המוצר — כלי שיוצר טבלה כותב גם את התווית בעברית ל‑_Dictionary ומגדיר הרשאות, מה שכתיבה גולמית לסכימה לא עושה.

שרת ה‑MCP הפלאגין לסוכני AI
מה זה נותן 67 כלים גולמיים 22 נהלי עבודה שמפעילים אותם נכון
מה הוא יודע מה אפשר לעשות מה כדאי לעשות, באיזה סדר, ואיפה קל לטעות
נדרש כדי לעבוד חיבור חיבור + התקנה

שימוש בשרת בלי הפלאגין עובד: הסוכן פשוט ילמד תוך כדי, ולעיתים ילמד לא נכון. הפלאגין מקצר את הדרך ומונע את הטעויות הנפוצות.

השיטה מה הלקוח שולח הזהות בשרת מודל ההרשאות
Application Id + API Key X-Parse-Application-Id + X-Parse-API-Key משתמש־על בשם Master אין — עוקף כל הרשאת טבלה
התחברות משתמש (OAuth 2.1) Authorization: Bearer <token> משתמש ה‑CRM שהתחבר התפקיד שלו בתוספת הרשאות ה‑MCP האישיות; ה‑MCP לעולם לא חורג מהתפקיד

שני הערכים של השיטה הראשונה זמינים בשירות עצמי, בסביבת הפיתוח: תפריט המשתמש ב‑CRM ← סביבת פיתוח (נפתח ב‑siteadmin.mbapps.co.il) ← Databases ← המערכת שלכם ← לשונית Settings — שדה Application Id עם כפתור Copy, וטבלת API Keys (עמודות Key / Name / Created Date / Revoke) עם + Add KeySave. המפתח נוצר ומוצג מיד בלחיצה על Add Key; Revoke (סל האשפה בשורה) הורג אותו לאלתר.

JSON
{
"mcpServers": {
"MyBusiness": {
"type": "http",
"url": "https://mcp.mbapps.co.il/",
"headers": {
"X-Parse-Application-Id": "REPLACE_WITH_YOUR_APPLICATION_ID",
"X-Parse-API-Key": "REPLACE_WITH_YOUR_API_KEY"
}
}
}
}

גילוי סטנדרטי: RFC 9728 /.well-known/oauth-protected-resource ו‑RFC 8414 /.well-known/oauth-authorization-server. מסלול /authorize שולח את המשתמש למסך ההתחברות של ה‑CRM — וזה מה שקושר את החיבור למערכת אחת. נתמכים PKCE‏ S256 ו‑refresh_token, עם ה‑scopes mcp:tools mcp:resources.

למשתמשים אין גישת MCP כברירת מחדל (כל התיבות ריקות גם אצל ה‑owner). מעניקים אותה בסביבת הפיתוח: תפריט המשתמש ← סביבת פיתוחDatabases ← המערכת ← לשונית Users ← עיפרון על כרטיס המשתמש ← לשונית MCP Permissions ← Apply, עם הפרדה בין Read / Create / Update. הלשונית עצמה מציינת שההרשאות כפופות לזכויות ברמת הטבלה של המשתמש ולחבילת המנוי, ומציגה את כתובת השרת.

זו השכבה היחידה שבה גבול הרשאות באמת נאכף בשרת. חיבור עם API Key עוקף אותה לגמרי — ראו סוכן במצב קריאה בלבד.

הדגש שיחסוך לכם הכי הרבה זמן

Section titled “הדגש שיחסוך לכם הכי הרבה זמן”

פרטי גישה שגויים לא מופיעים כשגיאת HTTP. הקריאה חוזרת 200, והשגיאה יושבת בתוך תשובת הכלי:

Permission denied for action find on class Accounts

רק כותרת אימות חסרה לגמרי מחזירה HTTP 403 עם שגיאת JSON‑RPC {"code":-32000,"message":"Authorization header is required"} — וזה חל גם על Usage-Guide. לעומת זאת עם פרטי גישה שגויים (מפתח לא נכון, או Application Id שאינו קיים) Usage-Guide מצליח, ו‑initialize + tools/list (67 כלים) מצליחות גם בלי אימות — רק tools/call אוכפת.

התוצאה: לקוח יכול להיראות “מחובר”, להציג רשימת כלים מלאה, ולהיכשל בקריאת הנתונים הראשונה.

כלל האבחון: אבחנו מהתשובה של כלי נתונים (Get-Data על טבלה אמיתית) — לא מקוד הסטטוס, לא מנורית החיבור ולא מ‑tools/list.

הקטלוג המלא — כל כלי בשרת, בסדר אלפביתי, עם דגל קריאה/שינוי — נמצא בעמוד אחד: אינדקס הכלים המלא. זו נקודת הכניסה כשאתם מחפשים שם של כלי.

הכלים מחולקים לשתי חבילות לפי מה שהם נוגעים בו:

חבילה א’ — נתונים, אוטומציה ותקשורת

Section titled “חבילה א’ — נתונים, אוטומציה ותקשורת”

מה שסוכן משתמש בו ביום‑יום מול מערכת חיה:

התחום עמוד הכלים
נתונים כלי נתונים Get-Data, Count-Data, Aggregate-Data, Create-Data, Create-Many, Update-Data
טריגרים כלי טריגרים ואוטומציות Get-Triggers, Set-Trigger, Set-Trigger-Action
משתמשים כלי משתמשים Get-Current-User, Get-all-Users, Create-or-Update-User
הצעות מחיר כלי הצעות מחיר Get-Price-Quote-Templates, Create-Update-Price-Quote-Template, Create-Price-Quote
הודעות כלי הודעות Send-WhatsApp-Message, Get-WhatsApp-Template-Params, Get-SMTP-Accounts
קבצים כלי קבצים Upload-Public-File, Get-File-Content, והמשאב get-file

חבילה ב’ — בנייה והתאמה של המערכת

Section titled “חבילה ב’ — בנייה והתאמה של המערכת”

מה שסוכן משתמש בו כשהוא בונה מערכת:

התחום עמוד הכלים
סכימה כלי סכימה Get-Schema, Create-Table, Add-Field-to-Table
אתרים ודפים — קריאה אתרים ודפים Get-Sites, Get-Site-Pages, Get-Page-Content
עריכת דפים עריכת דפים Create-Form-Page, Edit-Page, Add-Container-to-Page, Duplicate-Element
הגדרות וגרסאות של דף Get/Set-Page-Settings, Get-Page-Versions, Get/Set-Page-Version, Edit-Page-CSS-JS
אלמנטי דשבורד Add-Edit-Chart-Element, Add-Edit-Counter-Element, Add-Edit-Text-Element, Add-Edit-Tabs-Element
טבלאות תצוגה Create-Table-View-Page, Edit-Table-View, Add-Table-View-to-Form-Page, Get-Optional-Fields
כללי טופס Get-Form-Rules, Set-Form-Rules, Edit-Form-Rules
תפריטים ודוחות Get-Menus, Get-Menu-Items, Set-Menu-Items, Get-Reports, Create-or-Update-Report
מינוח Get/Set-Terminology-Dictionary, Replace-Terms
תפקידים, הרשאות ורישוי Get-Roles, Create-Role, Get-Role-Users, Add-Users-to-Role, Remove-Users-from-Role, Get/Set-Table-Permissions, Get-Packages, Set-Package-for-User
ציר הזמן (_Timeline) אינדקס הכלים Get-Timeline-Settings, Set-Timeline-Settings

כל אלה מפורטים באינדקס, עם שיוך קטגוריה ודגל קריאה/שינוי לכל כלי.

שני מבנים חוזרים כמעט בכל כלי בשרת. כדאי לקרוא אותם פעם אחת כאן.

JSON
// מבנה A — כללי טופס וכלי דפים
{ "field": "StatusId", "equesition": "equalTo", "value": "abc1234567",
"visibleVal": "בוטל", "condOr": false }
// מבנה B — טריגרים, מונים, גרפים, דוחות, טבלאות תצוגה
{ "F": "StatusId", "C": "equalTo", "T": "Pointer", "V": "abc1234567",
"P": { "targetClass": "CaseStatuses", "visibleVal": "בוטל", "multiple": false } }

אופרטורים: equalTo, notEqualTo, greaterThan, lessThan, greaterThanOrEqualTo, lessThanOrEqualTo, containedIn, notContainedIn, exists, doesNotExist, startsWith, endsWith, contains (בטבלאות תצוגה נוספים AuthorizedOn, underMyHierarchy, notUnderMyHierarchy). שימו לב לאיות: הליטרל לשלילת קיום הוא doesNotExist. נתקלתם ב‑notExist? הצורה הזו מופיעה בנתונים ישנים, אבל היא אינה ב‑enum של אף כלי חי ותיפסל בוולידציה. ערך Pointer ל‑_User יכול להיות המילה "currentUser". ערך תאריך יכול להיות YYYY-MM-DD, מספר ימים (שלילי מותר), או ביטוי כמו "today", "beginning of this month", "year ago".

שימו לב: הסכימה של Set-Trigger מגדירה enum צר יותר מהרשימה הזו. הפירוט המלא — בעמוד הטריגרים.

{{{FieldName}}} ומסלולי Pointer {{{AccountId.Name}}} מוחלפים מהרשומה המפעילה. עיצוב תאריך: {{{SaleDate.format(date,he-IL,Asia/Jerusalem)}}} — סוג (date / timehm / datetime), ואז locale, ואז אזור זמן.

מגבלות שכדאי לדעת עליהן מראש

Section titled “מגבלות שכדאי לדעת עליהן מראש”
  • אין כלי מחיקה. לא לרשומה, לא לטבלה, לא לדף ולא לטריגר. מחיקה נעשית בממשק או ב‑REST.
  • המפתח המדומה fieldName ש‑where ו‑data דרשו בגרסאות שרת ישנות אינו נדרש עוד. מול שרת ישן ראו את הערת ההיסטוריה בכלי נתונים.
  • טבלת Config פתוחה ל‑MCPGet-Data / Create-Data / Create-Many / Update-Data / Get-Schema עליה עובדים, כולל הדלקת דגלי הטפסים (AcceptWebLeads / AcceptWebToTable). בגרסאות שרת ישנות היא הייתה חסומה לחלוטין (Error: Table is restricted) — שם נדרש REST. שימו לב: Get-Data מחזיר גם את שורת Payment על מבנה הסודות שלה — התייחסו לתוכן הטבלה כרגיש. עמוד Config בממשק ה‑CRM עדיין אינו קיים. ראו דגלי Config.
  • Get-Triggers אינו עובד עם API Key — ראו למעלה.
  • עדכון חלקי של טריגר מתוזמן דרס אותו בגרסאות שרת ישנות; היום השרת ממזג. מול שרת ישן שלחו את כל השדות — ראו כלי טריגרים.
  • currentUser בפעולת טריגר שמופעלת מ‑MCP נשמר מילולית — אין משתמש מאחורי חיבור Master / API Key.
  • כלים שמחליפים ולא ממזגים: Set-Form-Rules מחליף את כל הכללים הקיימים (“דורס”); Edit-Page-CSS-JS מחליף את כל הבלוק; Set-Table-Permissions מחליף את כל ה‑CLP. קראו לפני שאתם כותבים.
  • שני סוגי מזהים. תפריטים ודפים משתמשים ב‑_id של MongoDB (24 תווים הקסדצימליים); רשומות נתונים ב‑objectId של Parse (10 תווים). אל תזינו שם היכן שמצופה מזהה.
  • shcedulerHours — זהו שם הפרמטר של תזמון הטריגרים, בדיוק באיות הזה. העתיקו אותו מהדוגמה ואל תתקנו את האיות: שליחת schedulerHours המאויית נכון מוחזרת ב‑Error: Scheduler hours is required for scheduled trigger והטריגר לא נוצר.
  • fromPhoneNumberId ב‑WhatsApp הוא Channels.Identity ולעולם לא Channels.objectId. זו הטעות הנפוצה ביותר באינטגרציות WhatsApp; בדקו את הערך לפני השליחה הראשונה.
  • עריכות דפים דורשות רענון בדפדפן כדי להופיע.
  • חיבור אחד = מערכת אחת. אין כלי חוצה‑מערכות; ניתוב פרטי הגישה נעשה בהגדרת החיבור, לא בכל קריאה.
  • שרשרת טריגרים מוגבלת ל‑3 רמות — שלושה טריגרים רצים בזה אחר זה; הרביעי נחסם ונרשם ב‑_syslogTriggers כ‑blocked! trigger step is to deep -3. תכננו טעינות המוניות בהתאם. הפירוט בכלי טריגרים.

מספרים ומכסות במקום אחד: מגבלות ומכסות.