MCP (بروتوكول السياق النموذجي)¶
يعرض Solar AI Optimizer خيارًا اختياريًاالعملية التشاورية المتعددة الأطرافالخادم حتى يتمكن وكلاء الذكاء الاصطناعي (المؤشر، وأتمتة SDK) من قراءة حالة المحسن، واستكشاف الأخطاء وإصلاحها، وتطبيق نفس التجاوزات الآمنة مثل لوحة المعلومات.
MCP عبارة عن طائرة تحكم جانبية — وهي لا تحل محل حلقة التحكم في الوقت الفعلي. جميع الكتابات تمر عبر القائمةExecutorووضع الظل وOverrideنموذج السلامة.
متى يتم استخدام MCP مقابل لوحة القيادة¶
| استخدم MCP عندما | استخدم لوحة المعلومات عندما |
|---|---|
| تصحيح أخطاء منطق المحرك باستخدام وكيل AI | التحكم اليومي بالمشغل |
| ربط القرارات بالتاريخ من المؤشر | الرسوم البيانية المرئية وإعدادات واجهة المستخدم |
| تجاوزات البرمجة النصية مع مصادقة حاملها | HA دخول المشاهد/أدوار المشرف |
قائمة التحقق الأمنية¶
- الرمز المميز = المشرف الكامل.
API_TOKENوMCP_TOKENمنح نفس الوصول المتغير كمسؤول محلي. - تعيين
MCP_TOKENبشكل منفصل عنAPI_TOKENحتى تتمكن من إلغاء وصول الوكيل دون كسر البرامج النصية لـ CI. يتم قبول كلا الرمزين المميزين لمصادقة REST وWebSocket؛ com.stdioApiBackendيستدعي REST API مع أي رمز مميز تم تكوينه. - جلسة
MCP_TOKENوحده (بدونAPI_TOKEN) ينشط بوابة المصادقة ويحمي نقاط نهاية REST. - في عمليات النشر المستقلة، مطلقًا يتم التعيين
MCP_ENABLED=trueبدونMCP_TOKENأوAPI_TOKEN. - في الوظيفة الإضافية HA،
mcp_enabledالافتراضي لfalse. تمكين فقط على الشبكات الموثوقة. - HTTP MCP (
/mcp) يقبل الحامل فقط — ولا توجد ملفات تعريف الارتباط للدخول. - يتطلب مفتاح القتل
confirm_kill_switch=true(MCP) أوconfirm=true(استراحة). - التعامل مع مخرجات الأداة على أنها غير موثوقة (يمكن أن تحتوي أسماء الكيانات على نص يتم إدخاله بسرعة).
إعداد المؤشر (stdio)¶
- ابدأ المُحسّن:
docker compose up -d solar - تعيين رمز مميز:
export SOLAR_MCP_TOKEN=your-secret(يجب أن يتطابقAPI_TOKENأوMCP_TOKENعلى الحاوية) - انسخ
.cursor/mcp.json.exampleإلى المستخدم أو تكوين MCP للمشروع وضبط المسارات. - أعد تشغيل المؤشر → الإعدادات → MCP → تحقق
solar-ai-optimizerمتصل.
يستخدم خادم stdiomcpإنشاء ملف تعريف والتحدث إلى واجهة برمجة التطبيقات قيد التشغيل علىhttp://host.docker.internal:8000.
HTTP البعيد (قابل للبث)¶
environment:
MCP_ENABLED: "true"
MCP_TOKEN: "change-me"
# MCP_HTTP_PATH: /mcp # optional, default /mcp
يتم رفض التثبيت بشكل مستقل إذا لم يتم تكوين أي رمز مميز. قم بإنهاء TLS عند الوكيل العكسي أو عند دخول HA.
كتالوج الأدوات¶
المستوى 1 - ابدأ هنا¶
| أداة | الغرض |
|---|---|
solar_get_status |
القياس المباشر، القرار، وضع الظل |
solar_explain_decision |
تتبع الطب الشرعي الكامل (المدخلات → الاستدلال → التنفيذ) |
solar_simulate_decision |
قرار التشغيل الجاف بدون كتابة |
solar_get_engine_config |
التكوين الفعال المنقح |
solar_apply_override |
يتقدمOverrideالحقول |
solar_clear_override |
مسح التجاوزات |
المستوى 2 - التنقيب¶
solar_get_forecast, solar_get_plan, solar_get_grid_statsأدوات التاريخ،solar_get_shed_snapshots.
المستوى 3 - الطفرة¶
solar_trigger_cycle, solar_refresh_forecast, solar_update_config, solar_ask.
استكشاف أخطاء قواعد اللعبة وإصلاحها¶
solar_explain_decision— ابحث عن الطبقة: هل تدهورت التوقعات؟ تجاوز نشط؟ احتياطي لجنة السياسة النقدية؟ تخطي الكتابة؟solar_get_engine_config— التحقق من المخازن المؤقتة الاحتياطية،priority_order، تمكين النظام الفرعي.solar_get_decision_history+solar_get_telemetry_window- خطأ يحركه الإدخال مقابل خطأ منطقي.solar_simulate_decision- اختبر فرضية التكوين دون الكتابة المباشرة.- إذا كانت المفاتيح المنطقية تشير إلى خطأ في القاعدة، فقم بإصلاح الكود
backend/app/engine/.
أمثلة عملت¶
الاحتياطي مرتفع جدًا: في التتبع، قارنdecision.reserve.solar_bridge_socمقابلautonomy_floor_soc. يفحصinputs.forecast.degraded_reasonsوengine.priority_weights.
تم تخطي الكتابة: تحققexecution.results[].skipped_reasonلshadow_mode، HA قديمة، أو القدرة غير المعينة.
الاحتياطي MPC: تحققops.metrics.mpc_fallbacksوengine.mpc_unavailable.
REST نقاط نهاية التصحيح¶
المشرف فقط (نفس البيانات الموجودة في أدوات الطب الشرعي لـ MCP):
GET /api/debug/trace?sections=decision,execution,enginePOST /api/debug/simulate(معدل محدود)
متغيرات البيئة¶
| متغير | الافتراضي | الغرض |
|---|---|---|
MCP_ENABLED |
false |
قم بتثبيت HTTP Streamable على/mcp |
MCP_HTTP_PATH |
/mcp |
مسار HTTP |
MCP_TOKEN |
"" |
رمز حامل الوكيل؛ يعود الىAPI_TOKEN |
SOLAR_API_URL |
http://127.0.0.1:8000 |
عنوان URL الأساسي لواجهة برمجة تطبيقات عميل stdio |
انظر أيضاإعدادات.