שרת ה‑MCP
השרת חושף את המערכת כאוסף כלים — נתונים, אגרגציות, סכימות, דפים ודשבורדים, טריגרים, הודעות, קבצים, משתמשים והרשאות — לכל לקוח MCP.
הוא רץ מעל אותו Parse Server שמאחורי ה‑REST API, ומוסיף שכבת כלים בעלת סמנטיקה של המוצר: כלי שיוצר טבלה כותב גם את התווית בעברית ל‑_Dictionary ומגדיר הרשאות, מה שכתיבה גולמית לסכימה לא עושה.
הצינור מול הידע
Section titled “הצינור מול הידע”| שרת ה‑MCP | הפלאגין לסוכני AI | |
|---|---|---|
| מה זה נותן | 67 כלים גולמיים | 22 נהלי עבודה שמפעילים אותם נכון |
| מה הוא יודע | מה אפשר לעשות | מה כדאי לעשות, באיזה סדר, ואיפה קל לטעות |
| נדרש כדי לעבוד | חיבור | חיבור + התקנה |
שתי דרכי חיבור
Section titled “שתי דרכי חיבור”| השיטה | מה הלקוח שולח | הזהות בשרת | מודל ההרשאות |
|---|---|---|---|
| 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 (סל האשפה בשורה) הורג אותו לאלתר.
{ "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" } } }}OAuth 2.1
Section titled “OAuth 2.1”גילוי ההרשאות מתבסס על 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 למשתמש
Section titled “הרשאות MCP למשתמש”גישת 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.
אבחון פרטי גישה
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 “מפת הכלים”הקטלוג המלא — כל כלי בשרת, בסדר אלפביתי, עם דגל קריאה/שינוי — ב**אינדקס הכלים המלא**.
חבילה א’ — נתונים, אוטומציה ותקשורת
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 |
שני עמודים רוחביים
Section titled “שני עמודים רוחביים”- סוכן במצב קריאה בלבד — רשימת ההיתר המדויקת שמייצרת סוכן שלא יכול לשנות כלום.
- מתכונים — המשימות הנפוצות, עם הקריאות המדויקות.
אבני הבניין המשותפות
Section titled “אבני הבניין המשותפות”שני מבנים חוזרים כמעט בכל כלי בשרת.
מבנה התנאים
Section titled “מבנה התנאים”// מבנה 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 צר יותר מהרשימה הזו. הפירוט — בעמוד הטריגרים.
Placeholders בהודעות
Section titled “Placeholders בהודעות”{{{FieldName}}} ומסלולי Pointer {{{AccountId.Name}}} מוחלפים מהרשומה המפעילה.
עיצוב תאריך: {{{SaleDate.format(date,he-IL,Asia/Jerusalem)}}} — סוג (date / timehm / datetime), ואז locale, ואז אזור זמן.
מגבלות
Section titled “מגבלות”- אין כלי מחיקה. לא לרשומה, לא לטבלה, לא לדף ולא לטריגר. מחיקה נעשית בממשק או ב‑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. תכננו טעינות המוניות בהתאם. הפירוט בכלי טריגרים.
מספרים ומכסות במקום אחד: מגבלות ומכסות.
- אינדקס הכלים המלא — כל כלי בשרת בטבלה אחת
- מתכונים — משימות נפוצות דרך MCP
- הפלאגין לסוכני AI — חבילה מוכנה שמתקינה את החיבור הזה ומוסיפה מעליו 24 סקילים של ידע יישום
- אימות והרשאות
- שגיאות ופתרון תקלות