דלגו לתוכן

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

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

שרת ה‑MCP

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

השרת חושף את המערכת כאוסף כלים — נתונים, אגרגציות, סכימות, דפים ודשבורדים, טריגרים, הודעות, קבצים, משתמשים והרשאות — לכל לקוח 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 Key → Save. המפתח נוצר ומוצג מיד בלחיצה על 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 ו-RFC 8414. מסלול /authorize מפנה למסך ההתחברות של ה-CRM וקושר את החיבור למערכת. ה-scopes הנתמכים הם mcp:tools mcp:resources.

OAuth מחבר את הסוכן לחשבון דרך הדפדפן. החיבור לשרת https://mcp.mbapps.co.il/ אינו דורש כותרות App ID או API Key במסלול הזה. גילוי ההרשאות נעשה דרך /.well-known/oauth-protected-resource ו-/.well-known/oauth-authorization-server; השרת מפרסם PKCE S256 ו-refresh_token.

אם ההתחברות נכשלת לפני פתיחת הדפדפן, פנו לתמיכה עם נוסח השגיאה ושם הלקוח. כשל רישום או callback הוא שלב נפרד מהרשאות MCP של משתמש שכבר התחבר. ב-Claude, כפתור Connect שאינו פעיל אינו חיבור שהושלם.

מדריך התקנה מצולם ב-Codex · מדריך התקנה מצולם ב-Claude Code בדסקטופ

גישת MCP למשתמש אינה מופעלת כברירת מחדל. מנהל פותח הגדרות → משתמשים → עריכת המשתמש → MCP Permissions. ניתן להגיע גם דרך סביבת פיתוח → Databases → המערכת → Users → עריכת המשתמש.

בחיבור OAuth הסוכן פועל בהרשאות המשתמש המחובר, בכפוף לתפקיד ולהרשאות הטבלאות. בממשק האדמין פתחו User Settings → MCP Permissions, אפשרו Read / Create / Update לפי הצורך ולחצו Apply. ההרשאות כפופות גם לחבילת המנוי.

כלים מתקדמים אינם פתוחים כברירת מחדל ב-OAuth. בקשו מ-MyBusiness לפתוח אותם לאדמין. לאחר הפתיחה נדרשים תפקיד Admin והרשאת Edit pages and schema. בחיבור App ID וטוקן API יש גישה מלאה למערכת המחוברת, ואין צורך בשלב הפתיחה הנוסף של OAuth.

פרטי גישה שגויים אינם מופיעים כשגיאת 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, ואז אזור זמן.

  • אין כלי מחיקה. לא לרשומה, לא לטבלה, לא לדף ולא לטריגר. מחיקה נעשית בממשק או ב‑REST.
  • טבלת Config פתוחה ל‑MCP — Get-Data / Create-Data / Create-Many / Update-Data / Get-Schema עליה עובדים, כולל הדלקת דגלי הטפסים (AcceptWebLeads / AcceptWebToTable). 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.
  • עריכות דפים דורשות רענון בדפדפן כדי להופיע.
  • חיבור אחד = מערכת אחת. אין כלי חוצה‑מערכות; ניתוב פרטי הגישה נעשה בהגדרת החיבור, לא בכל קריאה.
  • שרשרת טריגרים מוגבלת ל‑3 רמות — הרביעי נחסם ונרשם ב‑_syslogTriggers כ‑blocked! trigger step is to deep -3. תכננו טעינות המוניות בהתאם. הפירוט בכלי טריגרים.

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