تبدأ صفحة خادم MCP وتوقف خادم بروتوكول نموذج السياق المحلي للتطبيق. يتيح MCP لعميل متوافق، مثل مساعد الذكاء الاصطناعي أو أداة الأتمتة، اكتشاف الأدوات المقدمة من التطبيق وطلب تلك الأدوات من خلال نقطة نهاية HTTP محلية.

الخادم مدمج في التطبيق الجاري. إنه ليس خدمة سطر أوامر منفصلة، وليس خدمة إنترنت عامة. ابدأه فقط عندما تريد أن يتصل عميل MCP.

ما يمكن لـ MCP التحكم فيه

يكشف MCP عن قدرات المجال التي ينشرها التطبيق بشكل صريح. إنه ليس سطح تحكم عن بُعد عام لنافذة التطبيق.

بالنسبة لـ ControlMyNikon، فإن الوحدة المفيدة الأولى هي NikonMCP. NikonMCP مخصصة لحالة الكاميرا وإجراءات الكاميرا مثل الالتقاط، العرض المباشر، التحكم في الاتصال، والتركيز التلقائي المتباين.

استخدم NikonMCP لقائمة الأدوات الخاصة بـ Nikon وتفاصيل حالة الكاميرا.

عناصر التحكم في الصفحة

  • يبدأ بدء استضافة نقطة نهاية MCP.
  • يوقف إنهاء نقطة نهاية MCP ويحرر المنفذ.
  • العنوان يحدد العنوان المحلي للاستماع.
  • المنفذ يحدد منفذ TCP.
  • نقطة النهاية المكونة تظهر عنوان URL الذي يجب إعطاؤه لعميل MCP.
  • نسخ URL ينسخ نقطة النهاية المكونة.
  • رمز الحامل هو الرمز الذي يجب على العملاء إرساله مع الطلبات.
  • نسخ الرمز ينسخ الرمز.
  • إعادة توليد الرمز ينشئ رمزًا جديدًا ويجعل الرمز القديم غير صالح بعد إعادة تشغيل الخادم.
  • تدرج الوحدات وحدات MCP المعلنة من قبل التطبيق، مثل NikonMCP.
  • مفعل أو معطل يتحكم فيما إذا كانت الوحدة تساهم بالأدوات في الخادم.
  • السجل يظهر رسائل بدء الخادم، الإيقاف، الطلب، الرفض، واستدعاء الأدوات.
  • مسح في قائمة النقر بزر الماوس الأيمن على السجل يمسح سجل الصفحة المرئي.

نقطة النهاية الافتراضية هي:

http://127.0.0.1:50507/mcp

يبدأ الخادم فقط عندما تكون هناك وحدة واحدة على الأقل مفعلة والرمز الحامل ليس فارغًا. إعدادات العنوان، المنفذ، رمز الحامل، وإعدادات الوحدة مدعومة بالملف الشخصي. إذا كان خادم MCP قيد التشغيل عند حفظ الملف الشخصي أو إغلاق التطبيق، يمكن أن يبدأ ذلك الملف الشخصي مرة أخرى في المرة القادمة.

العنوان والمنفذ

استخدم 127.0.0.1 عندما يعمل عميل MCP على نفس الكمبيوتر. هذا هو الإعداد الأكثر أمانًا وشيوعًا.

استخدم عنوان IPv4 LAN المعين لهذا الكمبيوتر فقط عندما يجب أن يتصل عميل موثوق به على نفس الشبكة الخاصة. يتم رفض التوصيلات العامة، والبث، وغير المحلية، وغير IPv4.

لا تعرض نقطة نهاية MCP من خلال إعادة توجيه منفذ الموجه، أو الواي فاي العامة، أو VPNs غير الموثوقة، أو قواعد جدار الحماية التي تواجه الإنترنت. يمكن لأدوات MCP طلب إجراءات حقيقية من التطبيق، لذا تعامل مع نقطة النهاية والرمز مثل مفتاح تحكم محلي.

الاتصال بعميل

استخدم عميل HTTP MCP قابل للبث. قم بتكوين العميل مع:

  1. عنوان URL لنقطة النهاية: نقطة النهاية المكونة المعروضة على الصفحة.
  2. رأس التفويض: Authorization: Bearer your-token.

تطلب معظم العملاء عنوان URL ورمز حامل أو رأس مخصص. إذا كان عميلك يخزن الرؤوس بشكل منفصل، استخدم:

Header name: Authorization
Header value: Bearer your-token

استبدل your-token بالرمز المعروض على صفحة خادم MCP. لا تتضمن علامات الاقتباس حول الرمز.

شكل الطلب الفني

ترسل عملاء MCP عادةً هذه الطلبات نيابةً عنك. التفاصيل أدناه مفيدة عند تكوين أو تصحيح عميل.

تقبل نقطة النهاية طلبات HTTP POST إلى /mcp. جسم الطلب هو JSON-RPC. يجب على العميل تضمين رمز الحامل عندما يتم تكوين رمز.

طلب التهيئة:

{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"local-client","version":"1.0"}}}

إشعار التهيئة:

{"jsonrpc":"2.0","method":"notifications/initialized","params":{}}

قائمة الأدوات:

{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}

استدعاء أداة:

{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"nikon_hello","arguments":{}}}

يعيد الخادم نتائج أدوات منظمة. يتم إرجاع الرفض المتوقع من التطبيق، مثل عدم اتصال الكاميرا، كنتائج أدوات عادية مع ok مضبوط على false.

حالات الخادم

  • متوقف يعني أن نقطة النهاية لا تستمع.
  • بدأ يعني أن نقطة النهاية تستمع على العنوان والمنفذ المكونين.
  • جاهز لبدء خادم MCP يعني أن الصفحة محملة والإعدادات متاحة.
  • تم بدء مضيف MCP يعني أن الخادم بدأ بنجاح.
  • تم إيقاف مضيف MCP يعني أن الخادم توقف بشكل طبيعي.
  • لا يوجد وقت تشغيل MCP مسجل يعني أن التطبيق لم يعلن عن وقت تشغيل MCP لهذه الصفحة.
  • تم تعطيل مضيف MCP بواسطة الملف الشخصي يعني أن الملف الشخصي المحفوظ لديه استضافة معطلة.
  • لم يبدأ مضيف MCP لأن جميع وحدات MCP المعلنة معطلة يعني أن جميع بطاقات الوحدة معطلة.
  • فشل مضيف MCP في البدء يعني أن العنوان أو المنفذ أو البيئة المحلية منعت بدء التشغيل.

تقدم منطقة السجل الرسالة الدقيقة للفشل والطلبات المرفوضة.

ملاحظات الأمان

يستخدم خادم MCP HTTP محلي نصي بالإضافة إلى تفويض رمز الحامل. يحمي الرمز مسار الطلب، لكن الاتصال غير مشفر. استخدم الحلقة للعميل على نفس الكمبيوتر كلما كان ذلك ممكنًا. استخدم الربط LAN فقط على الشبكات والآلات التي تثق بها.

إعادة توليد الرمز إذا تم مشاركته مع عميل لم تعد تثق به. بعد إعادة توليد الرمز، أوقف وابدأ خادم MCP حتى يجب على العملاء استخدام القيمة الجديدة.

استكشاف الأخطاء وإصلاحها

إذا كان بدء التشغيل معطلاً:

  • قم بتمكين وحدة واحدة على الأقل.
  • تأكد من أن العنوان ليس فارغًا.
  • تأكد من أن المنفذ بين 1 و 65535.
  • تأكد من أن رمز الحامل ليس فارغًا.
  • أوقف الخادم قبل تغيير العنوان أو المنفذ أو رمز الحامل.

إذا فشل البدء:

  • قد تكون عملية أخرى تستخدم المنفذ بالفعل.
  • قد لا يكون العنوان معينًا لهذا الكمبيوتر.
  • اختر منفذًا أو عنوانًا آخر وحاول مرة أخرى.
  • تحقق من السجل للحصول على رسالة الفشل الدقيقة.

إذا لم يتمكن العميل من الاتصال:

  • تأكد من أن الخادم يظهر بدأ.
  • تأكد من أن عنوان URL للعميل يتطابق تمامًا مع نقطة النهاية المكونة.
  • استخدم 127.0.0.1 فقط للعملاء على نفس الكمبيوتر.
  • لجهاز كمبيوتر آخر على LAN، استخدم عنوان IPv4 LAN لهذا الكمبيوتر وتأكد من أن قواعد جدار الحماية تسمح بالاتصال.
  • تأكد من أن العميل يدعم HTTP MCP القابل للبث، وليس MCP الخاص بـ stdio فقط.

إذا تلقى العميل 401 Unauthorized :

  • أضف رأس Authorization.
  • تأكد من أن الرأس يبدأ بـ Bearer .
  • تأكد من أن الرمز ليس فارغًا.

إذا تلقى العميل 403 Forbidden :

  • تأكد من أن الرمز يتطابق تمامًا مع رمز الحامل الحالي.
  • إذا قمت بإعادة توليد الرمز، قم بتحديث العميل.
  • إذا كان الطلب يتضمن رأس أصل، تأكد من أنه يأتي من أصل محلي مسموح به.

إذا تلقى العميل 405 Method Not Allowed :

  • من المحتمل أن العميل يستخدم HTTP GET.
  • قم بتكوين العميل لاستدعاءات أدوات HTTP القابلة للبث التي ترسل POST /mcp.

إذا لم تظهر أي أدوات Nikon:

  • تأكد من أن بطاقة وحدة NikonMCP مفعلة.
  • أوقف وابدأ خادم MCP بعد تغيير تمكين الوحدة.
  • تأكد من أن العميل قام بتحديث أو إعادة الاتصال بعد إعادة تشغيل الخادم.