MCP שרת — מדריך משתמש

מה זה?

שרת MCP (Model Context Protocol) עבור meni.ge מאפשר לחבר עוזרי AI (Claude, ChatGPT, Cursor, VS Code Copilot ועוד) לנתוני המסעדה שלכם. ה-AI מקבל גישה לתפריט, מיקומים, הזמנות, תמונות ויכול לנהל אותם בשמכם.

התחלה מהירה

1. קבלו מפתח API

מפתח API נוצר בפאנל הניהול של המסעדה שלכם.

שלב אחר שלב:

  1. התחברו לפאנל הניהול בכתובת admin.meni.ge
  2. בתפריט הצד פתחו ⚙️ הגדרות🔑 גישה
  3. בעמוד מצאו את החלק 🤖 MCP API מפתחות
  4. לחצו על הכפתור «צור מפתח חדש»
  5. הזינו שם למפתח (למשל, «Claude Desktop», «Cursor», «ה-GPT שלי») — זה יעזור להבדיל בין המפתחות
  6. העתיקו את המפתח מיד — הוא מוצג רק פעם אחת!

💡 באותו עמוד מוצג גם כתובת השרת (https://api.meni.ge/mcp), שניתן להעתיק בלחיצה אחת.

ניהול מפתחות

  • ניתן ליצור עד 10 מפתחות לחשבון
  • כל מפתח ניתן לבטל בכל רגע — כפתור «בטל» ליד המפתח
  • לאחר ביטול המפתח מפסיק לעבוד מיד
  • אם המפתח אבד — בטלו אותו וצרו חדש

2. חברו עוזר AI

Claude Desktop / Claude Code

קובץ תצורה claude_desktop_config.json:

{
  "mcpServers": {
    "meni": {
      "url": "https://api.meni.ge/mcp",
      "headers": {
        "Authorization": "Bearer המפתח_API_שלכם"
      }
    }
  }
}

Cursor

בהגדרות Cursor → MCP Servers → Add, או קובץ .cursor/mcp.json:

{
  "mcpServers": {
    "meni": {
      "url": "https://api.meni.ge/mcp",
      "headers": {
        "Authorization": "Bearer המפתח_API_שלכם"
      }
    }
  }
}

VS Code (GitHub Copilot)

ב.vscode/mcp.json של הפרויקט:

{
  "servers": {
    "meni": {
      "type": "http",
      "url": "https://api.meni.ge/mcp",
      "headers": {
        "Authorization": "Bearer המפתח_API_שלכם"
      }
    }
  }
}

כלים אחרים של AI

הוראות מפורטות שלב אחר שלב עבור Claude Desktop, Claude Code, Cursor, VS Code, Windsurf, Cline, Continue, ChatGPT ואחרים — במדריך נפרד:

👉 חיבור כלים של AI ל-MCP


מה יכול עוזר AI לעשות?

עבור בעלי מסעדות (משתמשים רגילים)

פקודה תיאור
whoami הצגת נתוני החשבון (userId, email, תפקיד)
my_profile קבלת פרופיל המשתמש שלכם
update_my_profile עדכון שדות בפרופיל שלכם
my_locations רשימת כל המיקומים שלכם
my_orders רשימת ההזמנות שלכם
my_images רשימת התמונות שלכם (תפריט, קטגוריות, מיקומים)

פרופילים של משתמשים

פקודה תיאור
get_user_profile קבלת פרופיל משתמש לפי userId
update_user_profile עדכון שדות בפרופיל המשתמש
list_users [ADMIN] רשימת כל המשתמשים
search_user_by_email [ADMIN] חיפוש משתמש לפי email דרך Cognito

עבודה עם מיקומים

פקודה תיאור
list_locations כל המיקומים של המשתמש
get_location_profile פרופיל המיקום (שם, כתובת, שעות פעילות, הגדרות)
update_location_profile עדכון הגדרות המיקום (מסונכרן אוטומטית עם CDN)
get_location_menu תפריט מלא של המיקום עם קטגוריות ופריטים

עבודה עם תפריט

פקודה תיאור
list_menu_items כל פריטי התפריט (עם categoryId — נתונים מלאים, בלי — זוגות item/category ID)
get_menu_item קבלת פריט עם נתונים מלאים (כולל תרגומים, אפשרויות, תוספות)
update_menu_item עדכון פריט בתפריט (מחיר, תיאור, סטטוס, תגיות, אפשרויות, תוספות)
create_menu_item יצירת פריט חדש בתפריט בקטגוריה
create_menu_category יצירת קטגוריה חדשה בתפריט
update_menu_category עדכון קטגוריה (שם, תרגומים, סטטוס, סדר מיון)
move_menu_item העברת פריט מקטגוריה אחת לאחרת
merge_categories מיזוג שתי קטגוריות (כל הפריטים מועברים, המקורית נמחקת)
delete_menu_category מחיקת קטגוריה (עם force: true — יחד עם כל הפריטים)

הזמנות

פקודה תיאור
list_orders רשימת הזמנות (לפי userId או דומיין)
get_order פרטי הזמנה ספציפית

דומיינים

פקודה תיאור
check_domain_availability בדיקת זמינות שם דומיין
set_location_domain שינוי שם הדומיין של המיקום (מעדכן CDN ומיפויים)
resolve_domain קבלת userId ו-locationId לפי דומיין
list_domains [ADMIN] רשימת כל הדומיינים הרשומים

CDN (נתונים מפורסמים)

פקודה תיאור
get_cdn_profile פרופיל מיקום מפורסם (ב-CDN)
get_cdn_menu תפריט מפורסם בשפה מסוימת
list_cdn_files כל הקבצים המפורסמים של הדומיין
invalidate_cdn_cache [ADMIN] איפוס מטמון CloudFront CDN

תמונות

פקודה תיאור
list_user_images כל התמונות של המשתמש
get_image_upload_url קבלת URL חתום מראש להעלאת תמונה ל-S3 (JPEG/PNG/WebP)
delete_image מחיקת תמונה (משתמשים — רק את שלהם)

גישה ברמה נמוכה ל-S3

פקודה תיאור
s3_read קריאת קובץ מ-S3 (משתמשים — רק את שלהם)
s3_write [ADMIN] כתיבת נתוני JSON ל-S3
s3_list רשימת קבצים ב-S3 (משתמשים — רק את הפריפיקס שלהם)
s3_delete [ADMIN] מחיקת אובייקט מ-S3

Cognito

פקודה תיאור
cognito_list_users [ADMIN] רשימת משתמשים מ-Cognito User Pool
cognito_get_user [ADMIN] מידע מפורט על משתמש Cognito

סטטיסטיקה

פקודה תיאור
get_system_stats [ADMIN] סטטיסטיקה מערכתית כללית

אימות

השרת תומך בשלוש שיטות אימות:

1. מפתח API (מומלץ לעוזרי AI)

Authorization: Bearer המפתח_64_תווים_שלכם

המפתח נוצר בפאנל הניהול. מקושר לחשבון שלכם — ה-AI רואה רק את הנתונים שלכם.

2. Cognito JWT-טוקן

לאינטגרציה תוכנתית ניתן לקבל טוקן דרך התחברות:

# קבלת טוקן
curl -X POST https://api.meni.ge/mcp/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email": "האימייל שלכם", "password": "הסיסמה שלכם"}'

# התשובה מכילה idToken — השתמשו בו:
Authorization: Bearer eyJraWQ...

הטוקן תקף לשעה אחת, ולאחר מכן נדרשת התחברות מחדש.

3. Admin API Key (רק למנהלים)

Authorization: Bearer admin_key

מפתח מנהל נותן גישה מלאה לכל הנתונים של כל המשתמשים.


אבטחה

  • כל מפתח API מקושר לחשבון ספציפי
  • משתמשים רגילים רואים רק את הנתונים שלהם
  • ניתן לבטל מפתח בכל רגע בפאנל הניהול
  • מקסימום 10 מפתחות לחשבון
  • כל הבקשות עוברות דרך HTTPS
  • פקודות עם סימון [ADMIN] אינן זמינות למשתמשים רגילים

דוגמאות לשימוש

בקשו מה-AI לעדכן מחיר של מנה

«עדכן את מחיר המנה «חצ'פורי» בתפריט שלי — עשה 15 לארי במקום 12»

ה-AI יקרא my_locationsget_location_menuupdate_menu_item.

הוספת פריט חדש לתפריט

«הוסף לקטגוריה «קינוחים» מנה חדשה «צ'ורצ'חלה» ב-8 לארי»

ה-AI יקרא my_locationsget_location_menucreate_menu_item.

יצירת קטגוריה חדשה

«צור קטגוריה «משקאות» עם תרגומים לגאורגית ואנגלית»

ה-AI יקרא create_menu_category עם nameTranslations.

העברת מנה בין קטגוריות

«העבר את «לימונדה» מ«משקאות קרים» ל«ללא אלכוהול»»

ה-AI יקרא move_menu_item עם ציון הקטגוריה המקורית והיעד.

הצגת הזמנות להיום

«הראה לי את ההזמנות שלי להיום»

ה-AI יקרא my_orders ויסנן לפי תאריך.

בדיקת תפריט מפורסם

«איך נראה התפריט שלי ברוסית למבקרים?»

ה-AI יקרא resolve_domainget_cdn_menu עם השפה ru.

שינוי דומיין המסעדה

«בדוק אם הדומיין my-restaurant זמין, ואם כן — הגדר אותו»

ה-AI יקרא check_domain_availabilityset_location_domain.

העלאת תמונה של מנה

«תן לי קישור להעלאת תמונה למנה X»

ה-AI יקרא get_image_upload_url ויחזיר URL חתום מראש להעלאה.


נקודות קצה של API

שיטה URL תיאור
GET https://api.meni.ge/mcp מידע על השרת + רשימת כלים
POST https://api.meni.ge/mcp MCP JSON-RPC (הפרוטוקול הראשי)
GET https://api.meni.ge/mcp/health בדיקת תקינות
POST https://api.meni.ge/mcp/auth/login התחברות → JWT-טוקנים
GET https://api.meni.ge/mcp/api/keys רשימת מפתחות ה-API שלכם
POST https://api.meni.ge/mcp/api/keys יצירת מפתח API חדש
DELETE https://api.meni.ge/mcp/api/keys/{id} ביטול מפתח API

ניהול מפתחות

צפייה במפתחות

בפאנל הניהול → הגדרות → גישה → MCP API מפתחות. או דרך API:

curl https://api.meni.ge/mcp/api/keys \
  -H "Authorization: Bearer COGNITO_JWT_TOKEN"

יצירת מפתח

curl -X POST https://api.meni.ge/mcp/api/keys \
  -H "Authorization: Bearer COGNITO_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "Claude Desktop"}'

התשובה מכילה את השדה key — זהו המפתח שלכם. שמרו אותו!

ביטול מפתח

curl -X DELETE https://api.meni.ge/mcp/api/keys/mk_abc123 \
  -H "Authorization: Bearer COGNITO_JWT_TOKEN"

⚠️ יצירה וביטול מפתחות דורשים Cognito JWT-טוקן (לא מפתח API). השתמשו בפאנל הניהול — זה פשוט יותר.


פתרון תקלות

בעיה פתרון
401 Unauthorized בדקו את מפתח ה-API. אם בוטל — צרו חדש
403 user identity required השתמשו ב-Cognito JWT לניהול מפתחות
🔒 admin access required הפקודה זמינה רק למנהלים
🔒 access denied אתם מנסים לגשת לנתונים של משתמש אחר
המפתח לא עובד בדקו שהמפתח לא בוטל, והפורמט: Bearer <מפתח>