שרת ה-agent וגשר agent_mcp

הגשר POST /system/agent_mcp/<action> שדרכו שרת ה-agent של Wizzo קורא ומתקן אתרים: שתי שכבות האימות, רשימת הפעולות המלאה, דוגמאות קריאה והסיכונים.

⏱ 4 דק' קריאה 802 מילים ערוך דף זה ב-GitHub

הגשר agent_mcp הוא ממשק HTTP פנימי שדרכו שרת ה-agent של Wizzo (הסשנים של Kringl) עובד על אתר: קורא סכמה, מריץ שאילתות, קורא לוגים, מנקה מטמון, מעדכן את הליבה ופועל בפאנלי האדמין. הוא שונה משרת ה-MCP הרגיל: הוא לא מיועד ללקוחות חיצוניים, ויש לו שתי שכבות אימות שמצמצמות מי יכול לקרוא לו.

שימו לב

הגשר חזק מאוד: הוא מריץ SQL כלשהו ומנפיק סשן אדמין. אין בו הגדרה שמכבה אותו אלא חסימה ברמת הרשת. אם אתם לא עובדים עם Kringl, ודאו שהוא לא נגיש מהאינטרנט בנתיב /system/agent_mcp (למשל חסימה בשרת האינטרנט).

איך קוראים לגשר#

curl -s -X POST "https://example.com/system/agent_mcp/query" \
  -H "Authorization: Bearer $BOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"sql":"SELECT COUNT(*) AS n FROM CRM_adminPanel_panels"}'

תשובה מוצלחת: {"success": true, "data": {...}}. שגיאה: {"success": false, "error": "..."}. הגוף יכול להיות JSON או $_POST. הטוקן יכול להישלח גם בשדה _token בגוף. הכתובת היא תמיד /system/agent_mcp/<action>, ושיטת ה-HTTP היא POST (ה-CORS מרשה POST ו-OPTIONS).

שתי שכבות אימות#

  1. כתובת מקור. WIZZO_NET::is_wizzo() בודקת שהקריאה מגיעה מכתובת IP של Wizzo (שרת ה-agent ב-IPv4 וב-IPv6, והמשרד). הרשימה נמצאת במקום אחד, ב-collections/WIZZO_NET.php. כתובת אחרת מקבלת 403.
  2. טוקן. ה-bearer מאומת ב-HTTP מול המאסטר (check_version/validate_bot_token), בזמן קצוב של 10 שניות. טוקן חסר, לא תקין, או מאסטר שלא ענה, מחזירים 401.
אזהרה

השכבה הראשונה לא מספיקה לבדה: ההשוואה כוללת גם את הכותרות CF-Connecting-IP ו-X-Forwarded-For, שאפשר לזייף כשהשרת נגיש ישירות ולא מאחורי פרוקסי מהימן (ממצא AI-02 בביקורת, חמור). ההגנה האמיתית היא הטוקן ושמירתו. אל תתנו טוקן bot לגורם חיצוני ואל תכתבו אותו בקוד או בדוקומנטציה.

רשימת הפעולות#

הפעולה capabilities מחזירה את הרשימה העדכנית של הפעולות הציבוריות של המחלקה (בהשתקפות), יחד עם כתובת האתר ורשימת פעולות ה-SEO. היא המקור הנכון לבדיקה אם אתר מסוים תומך בפעולה.

מסד נתונים, לוגים ותחזוקה#

actionפרמטריםמה עושה
capabilities-רשימת כל הפעולות הציבוריות
schema-כל הטבלאות עם עמודות ואינדקסים
table_infotableDESCRIBE, SHOW INDEX ו-SHOW CREATE TABLE
querysql או sql_hexSELECT, SHOW, DESCRIBE, EXPLAIN מחזירים {rows, count}. כל פקודה אחרת מבוצעת דרך DB::sql ומחזירה {executed:true} (ועם INSERT גם insert_id)
delete_cacheurlמקדם את attaches_version, מנקה את מטמון הדף והנתונים (params, platforms, table_list), מפעיל את האירוע delete.cache ומרוקן את מטמון external_mcp
error_loglines, filter, from_date, to_dateקריאת לוג השגיאות
log_dataaction (list או read), fileקריאת קבצי לוג של האתר
grep_logspattern, sourceחיפוש בלוגים
wizzo_updatechannel (latest או stable), check_only, forceבדיקה או הרצה של עדכון הליבה עם נעילה .wizzo_update.lock

עם check_only מתקבלים: גרסה נוכחית, גרסה אחרונה, האם יש עדכון, גרסת PHP, מקום פנוי בדיסק ו-5 שורות אחרונות מ-CRM_wizzo_update_log.

קבצים (קריאה בלבד)#

actionפרמטרים עיקרייםמה עושה
files_capabilities-מה מותר ובאילו שורשים
files_listpath, rootרשימת קבצים
files_readpath, root, tail_bytesקריאת קובץ, עם הסתרה של תבניות רגישות (SENSITIVE_PATTERNS)
files_findqueryחיפוש לפי שם
files_searchquery, limitחיפוש בתוכן
files_globpatternחיפוש לפי glob

פאנלי אדמין#

actionשקול ל-toolהערה
admin_panelslist_panels
admin_schemapanel_schema
admin_rowslist_rows
admin_savesave_recordכותב
admin_set_fieldset_fieldכותב
admin_deletedelete_recordכותב

הפעולות האלה רצות דרך admin_mcp_tools בזהות mcp_agent עם הרשאה מלאה (perms=-1). אפיון הכלים ב-כלי ה-MCP.

סשן דפדפן#

actionפרמטריםמה עושה
admin_loginttl_minutes (5 עד 240, ברירת מחדל 60), labelמנפיק סשן אדמין ל-mcp_agent ומחזיר את העוגיות CRM_admin_session ו-CRM_admin_logged, כולל מעבר של שער המדינות
admin_logouttokenמבטל את הסשן
הערה

הסשן שנוצר נרשם ב-CRM_adminPanel_sessions בתווית "Agent browser", וכל הנפקה נרשמת בלוג CRM_safe_sql_log כ-ADMIN_LOGIN.

SEO ו-AI#

  • 16 פעולות seo_*: seo_report, seo_finding, seo_verify, seo_fixed, seo_scan, seo_pull, seo_status, seo_opportunities, seo_sitemaps, seo_sitemap_submit, seo_sitemap_remove, seo_answer, seo_note, seo_report_doc, seo_write_report, seo_changes. כולן עוברות ל-admin_mcp_tools (ראו חבילת ה-SEO).
  • פעולות WizzoAI: ai_dashboard, ai_usage_logs, ai_log_detail, ai_models, ai_test_flight. עוברות ל-external_mcp ככלי wizzoai_<tool>.
  • כלי מוצרים: service_tools (רשימה) ו-service_call (tool, arguments) מפעילים כלי של שירותי המרקט דרך external_mcp.

דוגמה: עדכון ליבה מבוקר#

# 1. בדיקה בלבד
curl -s -X POST "https://example.com/system/agent_mcp/wizzo_update" \
  -H "Authorization: Bearer $BOT_TOKEN" -H "Content-Type: application/json" \
  -d '{"channel":"stable","check_only":true}'

# 2. הרצה
curl -s -X POST "https://example.com/system/agent_mcp/wizzo_update" \
  -H "Authorization: Bearer $BOT_TOKEN" -H "Content-Type: application/json" \
  -d '{"channel":"stable"}'

אם אתר לא מעודכן, update_available יהיה false והעדכון לא ירוץ, אלא אם נשלח force.

הוספת פעולה לגשר#

כל מתודה ציבורית חדשה במחלקה agent_mcp הופכת אוטומטית לפעולה וגם מופיעה ב-capabilities. מתודות private לא נחשפות. פעולה חדשה צריכה להשתמש ב-$this->json_response([...]) ולכתוב ל-log_query() כשהיא משנה מצב. שינוי בליבה דורש פרסום גרסה לצי כולו, ראו ניהול גרסאות.

ראו גם#

מצאתם טעות או חוסר? תקנו את הדף או פתחו Issue בריפו. התיעוד נכתב מתוך הקוד של ליבה 5.0.115.