mcp
لدىopenclaw mcp مهمتان:
- تشغيل OpenClaw كخادم MCP باستخدام
openclaw mcp serve - إدارة تعريفات خوادم MCP الصادرة والمملوكة لـ OpenClaw باستخدام
listوshow، وset، وunset
serveيعني أن OpenClaw يعمل كخادم MCPlist/show/set/unsetتعني أن OpenClaw يعمل كسجل MCP من جهة العميل لخوادم MCP أخرى قد تستهلكها بيئات تشغيله لاحقًا
openclaw acp عندما يجب أن يستضيف OpenClaw
جلسة حزمة ترميز بنفسه ويوجه وقت التشغيل هذا عبر ACP.
OpenClaw كخادم MCP
هذا هو مسارopenclaw mcp serve.
متى تستخدم serve
استخدم openclaw mcp serve عندما:
- يجب أن يتحدث Codex أو Claude Code أو عميل MCP آخر مباشرةً إلى محادثات القنوات المدعومة من OpenClaw
- يكون لديك بالفعل Gateway محلي أو بعيد لـ OpenClaw مع جلسات موجهة
- تريد خادم MCP واحدًا يعمل عبر واجهات القنوات في OpenClaw بدلًا من تشغيل جسور منفصلة لكل قناة
openclaw acp بدلًا من ذلك عندما يجب على OpenClaw استضافة
وقت تشغيل الترميز نفسه والإبقاء على جلسة الوكيل داخل OpenClaw.
كيف يعمل
يبدأopenclaw mcp serve خادم MCP عبر stdio. يمتلك عميل MCP
هذه العملية. وبينما يُبقي العميل جلسة stdio مفتوحة، يتصل الجسر بـ
OpenClaw Gateway محلي أو بعيد عبر WebSocket ويكشف محادثات القنوات
الموجّهة عبر MCP.
دورة الحياة:
- يشغّل عميل MCP الأمر
openclaw mcp serve - يتصل الجسر بـ Gateway
- تصبح الجلسات الموجّهة محادثات MCP وأدوات النصوص/السجل
- تُصفّ أحداث البث المباشر في الذاكرة بينما يكون الجسر متصلًا
- إذا كان وضع قناة Claude مفعّلًا، يمكن للجلسة نفسها أيضًا تلقي إشعارات دفع خاصة بـ Claude
- تبدأ حالة قائمة الانتظار الحية عندما يتصل الجسر
- يُقرأ سجل النصوص الأقدم باستخدام
messages_read - لا توجد إشعارات دفع Claude إلا أثناء بقاء جلسة MCP حيّة
- عندما ينفصل العميل، يخرج الجسر وتختفي قائمة الانتظار الحية
اختر وضع العميل
استخدم الجسر نفسه بطريقتين مختلفتين:- عملاء MCP العامون: أدوات MCP قياسية فقط. استخدم
conversations_list، وmessages_read، وevents_poll، وevents_wait، وmessages_send، و أدوات الموافقة. - Claude Code: أدوات MCP القياسية بالإضافة إلى مكيّف القناة الخاص بـ Claude.
فعّل
--claude-channel-mode onأو اترك القيمة الافتراضيةauto.
auto بالطريقة نفسها التي يتصرف بها on. لا يوجد اكتشاف
لقدرات العميل بعد.
ما الذي يكشفه serve
يستخدم الجسر بيانات تعريف مسار الجلسة الموجودة في Gateway لكشف
المحادثات المدعومة بالقنوات. تظهر المحادثة عندما يكون لدى OpenClaw بالفعل
حالة جلسة مع مسار معروف مثل:
channel- بيانات تعريف المستلم أو الوجهة
accountIdاختياريthreadIdاختياري
- إدراج المحادثات الموجهة الحديثة
- قراءة سجل النصوص الحديث
- انتظار أحداث واردة جديدة
- إرسال رد عبر المسار نفسه
- رؤية طلبات الموافقة التي تصل بينما يكون الجسر متصلًا
الاستخدام
أدوات الجسر
يكشف الجسر الحالي أدوات MCP التالية:conversations_listconversation_getmessages_readattachments_fetchevents_pollevents_waitmessages_sendpermissions_list_openpermissions_respond
conversations_list
يسرد المحادثات الحديثة المدعومة بالجلسات والتي لديها بالفعل بيانات تعريف
المسار في حالة جلسة Gateway.
مرشحات مفيدة:
limitsearchchannelincludeDerivedTitlesincludeLastMessage
conversation_get
يعيد محادثة واحدة حسب session_key.
messages_read
يقرأ رسائل النصوص الحديثة لمحادثة واحدة مدعومة بالجلسة.
attachments_fetch
يستخرج كتل محتوى الرسائل غير النصية من رسالة نصية واحدة. هذه
رؤية للبيانات الوصفية فوق محتوى النصوص، وليست مخزن كتل مرفقات
دائمًا مستقلًا.
events_poll
يقرأ الأحداث الحية الموجودة في قائمة الانتظار بدءًا من مؤشر رقمي.
events_wait
يجري long-poll حتى يصل الحدث المطابق التالي الموجود في قائمة الانتظار أو
تنتهي المهلة.
استخدم هذا عندما يحتاج عميل MCP عام إلى تسليم شبه فوري دون
بروتوكول دفع خاص بـ Claude.
messages_send
يرسل نصًا مرة أخرى عبر المسار نفسه المسجل بالفعل على الجلسة.
السلوك الحالي:
- يتطلب مسار محادثة موجودًا
- يستخدم القناة الخاصة بالجلسة، والمستلم، ومعرّف الحساب، ومعرّف السلسلة
- يرسل نصًا فقط
permissions_list_open
يسرد طلبات موافقة exec/plugin المعلقة التي لاحظها الجسر منذ
اتصاله بـ Gateway.
permissions_respond
يعالج طلب موافقة exec/plugin معلقًا واحدًا باستخدام:
allow-onceallow-alwaysdeny
نموذج الأحداث
يحتفظ الجسر بقائمة انتظار أحداث داخل الذاكرة أثناء اتصاله. أنواع الأحداث الحالية:messageexec_approval_requestedexec_approval_resolvedplugin_approval_requestedplugin_approval_resolvedclaude_permission_request
- قائمة الانتظار حية فقط؛ تبدأ عندما يبدأ جسر MCP
- لا يعيد
events_pollوevents_waitتشغيل سجل Gateway الأقدم من تلقاء نفسيهما - يجب قراءة التراكم الدائم باستخدام
messages_read
إشعارات قناة Claude
يمكن للجسر أيضًا كشف إشعارات قنوات خاصة بـ Claude. وهذا هو المكافئ في OpenClaw لمكيّف قناة Claude Code: تظل أدوات MCP القياسية متاحة، لكن الرسائل الواردة الحية يمكن أن تصل أيضًا كإشعارات MCP خاصة بـ Claude. العلامات:--claude-channel-mode off: أدوات MCP قياسية فقط--claude-channel-mode on: تمكين إشعارات قناة Claude--claude-channel-mode auto: القيمة الافتراضية الحالية؛ سلوك الجسر نفسه كما فيon
notifications/claude/channelnotifications/claude/channel/permission
- تُعاد توجيه رسائل النصوص الواردة من نوع
userكـnotifications/claude/channel - تُتتبع طلبات أذونات Claude المستلمة عبر MCP داخل الذاكرة
- إذا أرسلت المحادثة المرتبطة لاحقًا
yes abcdeأوno abcde، فإن الجسر يحوّل ذلك إلىnotifications/claude/channel/permission - هذه الإشعارات مخصصة للجلسة الحية فقط؛ إذا انفصل عميل MCP، فلا يوجد هدف دفع
إعداد عميل MCP
مثال على إعداد عميل stdio:الخيارات
يدعمopenclaw mcp serve ما يلي:
--url <url>: عنوان URL لـ Gateway WebSocket--token <token>: رمز Gateway المميز--token-file <path>: قراءة الرمز المميز من ملف--password <password>: كلمة مرور Gateway--password-file <path>: قراءة كلمة المرور من ملف--claude-channel-mode <auto|on|off>: وضع إشعارات Claude-v,--verbose: سجلات مفصلة على stderr
--token-file أو --password-file بدلًا من الأسرار المضمنة متى أمكن.
الأمان وحدود الثقة
لا يخترع الجسر التوجيه. بل يكشف فقط المحادثات التي يعرف Gateway بالفعل كيفية توجيهها. وهذا يعني:- تظل قوائم سماح المرسلين، والاقتران، والثقة على مستوى القناة تابعة لـ إعدادات قناة OpenClaw الأساسية
- يمكن لـ
messages_sendالرد فقط عبر مسار مخزن موجود - تكون حالة الموافقة حية/في الذاكرة فقط لجلسة الجسر الحالية
- يجب أن تستخدم مصادقة الجسر عناصر تحكم الرمز المميز أو كلمة المرور في Gateway نفسها التي ستثق بها لأي عميل Gateway بعيد آخر
conversations_list، فالسبب المعتاد ليس
إعداد MCP. بل هو فقدان بيانات تعريف المسار أو عدم اكتمالها في جلسة
Gateway الأساسية.
الاختبار
يوفر OpenClaw اختبار Docker دخانيًا حتميًا لهذا الجسر:- يبدأ حاوية Gateway مهيأة مسبقًا
- يبدأ حاوية ثانية تشغّل
openclaw mcp serve - يتحقق من اكتشاف المحادثات، وقراءات النصوص، وقراءات بيانات تعريف المرفقات، وسلوك قائمة انتظار الأحداث الحية، وتوجيه الإرسال الصادر
- يتحقق من إشعارات القنوات والأذونات بنمط Claude عبر جسر MCP الحقيقي عبر stdio
استكشاف الأخطاء وإصلاحها
لم يتم إرجاع أي محادثات
هذا يعني عادةً أن جلسة Gateway غير قابلة للتوجيه بالفعل. أكّد أن الجلسة الأساسية تحتوي على بيانات تعريف مسار مخزنة للقناة/الموفر، والمستلم، وبيانات تعريف الحساب/السلسلة الاختيارية.يفوّت events_poll أو events_wait الرسائل الأقدم
هذا متوقع. تبدأ قائمة الانتظار الحية عندما يتصل الجسر. اقرأ سجل
النصوص الأقدم باستخدام messages_read.
لا تظهر إشعارات Claude
تحقق من كل ما يلي:- أبقى العميل جلسة stdio MCP مفتوحة
- كانت قيمة
--claude-channel-modeهيonأوauto - يفهم العميل فعليًا طرق الإشعارات الخاصة بـ Claude
- حدثت الرسالة الواردة بعد اتصال الجسر
الموافقات مفقودة
لا يعرضpermissions_list_open سوى طلبات الموافقة التي تمت ملاحظتها بينما كان الجسر
متصلًا. وهو ليس API لسجل موافقات دائم.
OpenClaw كسجل عميل MCP
هذا هو مسارopenclaw mcp list وshow وset وunset.
لا تكشف هذه الأوامر OpenClaw عبر MCP. بل تدير تعريفات خوادم MCP
المملوكة لـ OpenClaw ضمن mcp.servers في إعدادات OpenClaw.
تلك التعريفات المحفوظة مخصصة لبيئات التشغيل التي يقوم OpenClaw بتشغيلها أو إعدادها
لاحقًا، مثل Pi المضمّن ومكيفات وقت التشغيل الأخرى. يخزّن OpenClaw
التعريفات مركزيًا بحيث لا تحتاج تلك البيئات إلى الاحتفاظ بقوائم MCP
مكررة خاصة بها.
سلوك مهم:
- هذه الأوامر تقرأ أو تكتب إعدادات OpenClaw فقط
- لا تتصل بخادم MCP الهدف
- لا تتحقق مما إذا كان الأمر أو عنوان URL أو النقل البعيد قابلًا للوصول الآن
- تقرر مكيّفات وقت التشغيل أشكال النقل التي تدعمها فعليًا وقت التنفيذ
تعريفات خوادم MCP المحفوظة
يخزن OpenClaw أيضًا سجلًا خفيفًا لخوادم MCP في الإعدادات للأسطح التي تريد تعريفات MCP مُدارة من OpenClaw. الأوامر:openclaw mcp listopenclaw mcp show [name]openclaw mcp set <name> <json>openclaw mcp unset <name>
- يقوم
listبترتيب أسماء الخوادم. - يطبع
showمن دون اسم كائن خادم MCP المهيأ بالكامل. - يتوقع
setقيمة كائن JSON واحدة في سطر الأوامر. - يفشل
unsetإذا لم يكن الخادم المسمى موجودًا.
نقل stdio
يشغّل عملية فرعية محلية ويتواصل عبر stdin/stdout.| الحقل | الوصف |
|---|---|
command | الملف التنفيذي المراد تشغيله (مطلوب) |
args | مصفوفة وسائط سطر الأوامر |
env | متغيرات بيئة إضافية |
cwd / workingDirectory | دليل العمل الخاص بالعملية |
نقل SSE / HTTP
يتصل بخادم MCP بعيد عبر HTTP Server-Sent Events.| الحقل | الوصف |
|---|---|
url | عنوان URL بخاصية HTTP أو HTTPS للخادم البعيد (مطلوب) |
headers | خريطة مفتاح-قيمة اختيارية لترويسات HTTP (مثل رموز المصادقة) |
connectionTimeoutMs | مهلة الاتصال لكل خادم بالمللي ثانية (اختياري) |
url (userinfo) وheaders في السجلات
ومخرجات الحالة.
نقل streamable HTTP
يمثلstreamable-http خيار نقل إضافيًا إلى جانب sse وstdio. ويستخدم بث HTTP للاتصال ثنائي الاتجاه مع خوادم MCP البعيدة.
| الحقل | الوصف |
|---|---|
url | عنوان URL بخاصية HTTP أو HTTPS للخادم البعيد (مطلوب) |
transport | اضبطه على "streamable-http" لاختيار هذا النقل؛ وعند حذفه يستخدم OpenClaw sse |
headers | خريطة مفتاح-قيمة اختيارية لترويسات HTTP (مثل رموز المصادقة) |
connectionTimeoutMs | مهلة الاتصال لكل خادم بالمللي ثانية (اختياري) |
القيود الحالية
توثق هذه الصفحة الجسر كما هو مشحون اليوم. القيود الحالية:- يعتمد اكتشاف المحادثات على بيانات تعريف مسار جلسة Gateway الموجودة
- لا يوجد بروتوكول دفع عام يتجاوز المكيّف الخاص بـ Claude
- لا توجد حتى الآن أدوات لتعديل الرسائل أو التفاعل معها
- يتصل نقل HTTP/SSE/streamable-http بخادم بعيد واحد؛ ولا يوجد upstream متعدد الإرسال بعد
- لا يتضمن
permissions_list_openسوى الموافقات التي تمت ملاحظتها بينما كان الجسر متصلًا