דלגו לתוכן

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

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

דוגמה — חיבור לקוח MCP

עודכן 30.08.2026

שרת ה‑MCP חושף את המערכת כאוסף כלים לסוכני AI. החיבור עצמו הוא קובץ קונפיגורציה קטן עם כתובת אחת ושתי כותרות — מה שמשתנה בין לקוח ללקוח הוא רק המעטפת שבה הקובץ יושב, ואיפה המפתח נשמר.

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

הערך מה זה מאיפה
Application Id מזהה המערכת. מזהה ציבורי, לא סוד תפריט המשתמש ← סביבת פיתוח (siteadmin.mbapps.co.il) ← Databases ← המערכת שלכם ← לשונית Settings ← כפתור Copy
API Key מפתח גישה מלא לבסיס הנתונים אותו מסך ← טבלת API Keys ← + Add Key ← העתקה. Save נדרש רק כדי לשמור את ה‑Name

התוסף הרשמי כבר נושא בתוכו את הגדרת השרת. ארבע פקודות:

/plugin marketplace add AviMYB/mybusiness-plugins
/plugin install mybusiness-implementor@mybusiness
/plugin configure mybusiness-implementor@mybusiness
/reload-plugins

הפקודה השלישית פותחת טופס עם שני שדות. הם מוגדרים במניפסט של התוסף, ב‑.claude-plugin/plugin.json:

JSON
{
"name": "mybusiness-implementor",
"version": "1.1.0",
"userConfig": {
"application_id": {
"type": "string",
"title": "Application Id",
"required": true
},
"api_key": {
"type": "string",
"title": "API key",
"sensitive": true,
"required": true
}
}
}
השדה type required sensitive איפה הערך נשמר
application_id String קובץ ההגדרות של הלקוח
api_key String הכספת של מערכת ההפעלה

הדגל sensitive הוא ההבדל שקובע: הערך נשלח לכספת ולא נכתב לקובץ הגדרות. קובץ ה‑MCP שבתוך התוסף מפנה אליו בהצבעה, ולא מכיל את הערך עצמו:

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

התקנה בשורה אחת — אותם ערכים כבר בהתקנה (הדגל --config <key=value> אומת ב‑Claude Code 2.1.241):

Bash
claude plugin install mybusiness-implementor@mybusiness \
--config application_id=YOUR_APPLICATION_ID \
--config api_key=YOUR_API_KEY

או בלי התוסף בכלל — חיבור ידני לאותו שרת (--transport http ו‑--header אומתו ב‑claude mcp add --help):

Bash
claude mcp add --transport http MyBusiness https://mcp.mbapps.co.il/ \
--header "X-Parse-Application-Id: YOUR_APPLICATION_ID" \
--header "X-Parse-API-Key: YOUR_API_KEY"

שלושת המסלולים זה מול זה

Section titled “שלושת המסלולים זה מול זה”
Claude Code Agent Plugins 1.0 connector ישיר
ערך typehttpstreamable-http לפי הלקוח
איפה המפתח כספת מערכת ההפעלה קובץ טקסט על הדיסק לפי הלקוח
הסקילים של התוסף נטענים אוטומטית נטענים לפי הלקוח; אחרת קובצי Markdown לקריאה לא נטענים
טעינה מחדש נדרשת /reload-plugins הפעלה מחדש של הלקוח לפי הלקוח
OAuth במקום מפתח לא (מגבלת callback מקומי) לא (אותה מגבלה) ✔ בלקוחות דפדפן

בדיקת השפיות — למה “סטטוס ירוק” אינו הוכחה

Section titled “בדיקת השפיות — למה “סטטוס ירוק” אינו הוכחה”

שלוש קריאות, בסדר הזה:

# הקריאה תשובה תקינה מה זה מוכיח
1 Usage-Guide טקסט ההוראות של השרת התעבורה עובדת ואתם מדברים עם שרת MyBusiness
2 Get-Current-User משתמש אמיתי · או Master (אומת עם API Key: {"objectId":"Master","username":"Master","name":"User name not found",…}) האימות עובד — ובאיזה מצב אתם
3 Count-Data על טבלה אמיתית שה‑CLP שלה סגור {"count":661} הגעתם לבסיס נתונים אמיתי, וההרשאות מאפשרות קריאה. על טבלה עם CLP ציבורי גם מפתח שגוי מחזיר מספר — ראו האזהרה למטה

Get-Current-User הוא כל המבחן: אובייקט משתמש אמיתי ⇒ מצב התחברות, מודע‑הרשאות. Master (או User name not found) ⇒ מצב Application Id + API Key, ברמת master — כלומר שום דבר לא מגן על הנתונים חוץ מכם.

הפרמטרים כאן הם מסכימת הכלים החיה של השרת (אומתו מול tools/list ב‑23.08.2026). הסכימה גוברת על כל מקור אחר — כולל על העמוד הזה, אם השרת ישתנה. דוגמה חיה: עד 23.08.2026 הסכימה של where ו‑data דרשה מפתח מילולי בשם fieldName (באג mcp-data-01 / core-api-02) — ובאותו יום השרת עודכן: ב‑tools/list החי המפתחות הם שמות השדות עצמם, ו‑{"IsAccount":true} עובר. לקוח שנפתח לפני העדכון עדיין מחזיק את הסכימה הישנה. הפעילו מחדש.

Instructions for using MyBusiness MCP tools. LLM should start with this prompt!!

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

Get information about the current authenticated user

בלי פרמטרים.

Count records in a table matching the specified conditions

פרמטר טיפוס חובה הערות
table String שם המחלקה שסופרים בה שורות
where Object תנאי סינון. כל מאפיין הוא שם שדה, וכולם מתחברים ב‑AND. תאריך: {"__type":"Date","iso":"YYYY-MM-DD"} · Pointer: {"__type":"Pointer","className":…,"objectId":…}

Retrieve records from a table

פרמטר טיפוס חובה הערות
table String שם המחלקה
where Object כמו ב‑Count-Data
keys Array of String אילו שדות להחזיר. ברירת מחדל: כל השדות
order String שם שדה; - בהתחלה = סדר יורד
limit Number ברירת מחדל 5 (אומת: בלי limit חזרו 5 שורות) · מינימום 1 · מקסימום 2000 (אומת: 2001Input validation error … limit: Too big)
skip Number ברירת מחדל 0
objectId String שליפת רשומה בודדת. בדיוק 10 תווים (אומת: 9 תווים → Too small: expected string to have >=10 characters)

Get the schema of the database. If a class name is provided, returns the schema of the class. If no class name is provided, returns the schema of all classes.

פרמטר טיפוס חובה הערות
className String שם המחלקה. בלעדיו — כל הסכימה, וזו תשובה גדולה מאוד
tablesNameOnly Boolean true מחזיר רק את שמות הטבלאות — הדרך הזולה לראות מה יש במערכת

לקוח MCP הוא בבסיסו JSON‑RPC 2.0 מעל HTTP. אפשר להריץ את הקריאה בעצמכם — וזו הדרך המהירה ביותר להפריד בין “הלקוח לא מוגדר נכון” ל‑“האישורים לא תקפים”:

Bash
curl -sS -X POST https://mcp.mbapps.co.il/ \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "X-Parse-Application-Id: $MB_APP_ID" \
-H "X-Parse-API-Key: $MB_API_KEY" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "Count-Data",
"arguments": { "table": "Accounts", "where": { "IsAccount": true } }
}
}'

התשובה של קריאת כלי ב‑MCP היא תמיד תוכן טקסטואלי בתוך result:

JSON
{
"jsonrpc": "2.0",
"id": 1,
"result": { "content": [ { "type": "text", "text": "{\"count\":24}" } ] }
}

(תשובה אמיתית מהטננט — שימו לב שהטקסט הוא JSON קטן, {"count":N}, ולא מספר חשוף.) חזר מספר — התעבורה עובדת והגעתם לבסיס נתונים אמיתי.

מה אתם רואים מה זה אומר התיקון
Authorization header is required הקריאה הגיעה בלי אישורים בכלל — שדות ריקים, או שהתוסף לא נטען מחדש מלאו ואז /reload-plugins (או הפעלה מחדש)
HTTP 200 ובתוכו Error: Permission denied for action find on class … האישור שגוי: שגיאת הקלדה, מפתח שבוטל, מפתח מבסיס נתונים אחר — או המפתח הנכון תחת שם כותרת שגוי (אומת על טבלאות שה‑CLP שלהן סגור: מפתח תחת X-Parse-Master-Key → בדיוק השגיאה הזו, גם ב‑MCP וגם ב‑REST. על טבלה עם CLP ציבורי הקריאה תחזיר 200 עם נתונים והטעות לא תתגלה) ודאו שהכותרת היא X-Parse-API-Key ולא X-Parse-Master-Key
Error: Failed to get admin session with master key אותה סיבה בדיוק — נוסח אחר, מ‑12 כלים אחרים (בהם Get-Current-User, Get-Sites, Create-Form-Page) כנ“ל
Error: Application not found · Error: no user · Error: master key is required · … invalid x-parse-application-id or x-parse-master-key or x-parse-api-key גם אלה אישור שגוי — נוסחים נוספים, לפי הכלי כנ“ל
HTTP 403 … "message":"invalid_token" קיים token של התחברות (Authorization: Bearer או X-Parse-Session-Token) אבל הוא נדחה — פג, בוטל, או הונפק למערכת אחרת (אומת עם token מומצא) אימות מחדש
לשונית ההתחברות מסתיימת ב‑403 callback מקומי של לקוח שולחן עבודה עברו ל‑Application Id + API Key
Error: Table is restricted שרת מלפני 25.08.2026: טבלת Config הייתה חסומה מ‑MCP (web-forms-07). מאז 25.08.2026 היא נפתחה — בשרת עדכני השגיאה לא אמורה להופיע עליה (אומת 2026-08-25) מול שרת ישן: דגלי Config דרך REST; מול שרת עדכני: כלי הנתונים עובדים
המלכודת מה קורה
הגדרה שלא נטענה מחדש הלקוח ממשיך עם הערכים הישנים — לרוב ריקים. תמיד /reload-plugins או הפעלה מחדש
מפתח בתוך גיט מחיקת השורה מהקובץ אינה מבטלת את המפתח. Revoke במסך ה‑Settings, ואז מפתח חדש
שני חיבורים פעילים שני סטים זהים של כלים, ולפעמים תשובות מהמערכת הלא נכונה. השאירו שרת MyBusiness אחד פעיל
שם כותרת שגוי אותו מפתח ב‑X-Parse-Master-Key נחשב אישור שגוי. השם קובע
limit ברירת מחדל 5 תוצאה קטומה נראית כמו טבלה קטנה
חיבור אחד = מערכת אחת אין כלי חוצה‑מערכות; ניתוב האישורים נעשה בהגדרת החיבור, לא בקריאה
הנחה שיש כלי מחיקה אין. לא לרשומה, לא לטבלה, לא לדף ולא לטריגר (אומת: מ‑67 הכלים היחיד עם Delete/Remove בשם הוא Remove-Users-from-Role — מגבלה mcp-data-08; מחיקה היא DELETE /parse/classes/… ב‑REST)
  • ה‑API Key מופיע עם Created Date אחרי רענון, וה‑Name שלו נשמר (אחרי Save) כדי שתדעו למי הוא שייך
  • המפתח הודבק תחת X-Parse-API-Key (ולא תחת X-Parse-Master-Key)
  • הלקוח נטען מחדש אחרי שינוי ההגדרה
  • Usage-Guide מחזיר טקסט
  • Get-Current-User מחזיר משתמש — ואתם יודעים אם אתם ב‑Master או בזהות אישית
  • Count-Data על טבלה אמיתית שה‑CLP שלה סגור מחזיר מספר
  • המשתמש אישר שזהו בסיס הנתונים הנכון — לפני הכתיבה הראשונה
  • קובץ שמכיל את המפתח אינו בתוך repository
  • יש בדיוק חיבור MyBusiness אחד פעיל