CLI commands
MCP
openclaw mcp له مهمتان:
- تشغيل OpenClaw كخادم MCP باستخدام
openclaw mcp serve - إدارة تعريفات خوادم MCP الصادرة التي يديرها OpenClaw باستخدام
listوshowوstatusوdoctorوprobeوaddوsetوconfigureوtoolsوloginوlogoutوreloadوunset
يمثل serve عمل OpenClaw كخادم MCP. أما الأوامر الفرعية الأخرى فتمثل عمل OpenClaw كسجل من جانب عميل MCP للخوادم التي قد تستهلكها بيئات التشغيل الخاصة به لاحقًا.
استخدم openclaw acp عندما ينبغي أن يستضيف OpenClaw جلسة بيئة برمجة بنفسه ويوجّه بيئة التشغيل تلك عبر ACP.
اختيار مسار MCP المناسب
| الهدف | الاستخدام | السبب |
|---|---|---|
| السماح لعميل MCP خارجي بقراءة محادثات قنوات OpenClaw وإرسال الرسائل فيها | openclaw mcp serve |
يكون OpenClaw خادم MCP ويعرض المحادثات المدعومة من Gateway عبر stdio. |
| حفظ خوادم MCP التابعة لجهات خارجية لتشغيلات الوكلاء التي يديرها OpenClaw | openclaw mcp add وset وconfigure وtools وlogin |
يكون OpenClaw سجلًا من جانب عميل MCP، ثم يُسقط تلك الخوادم لاحقًا في بيئات التشغيل المؤهلة. |
| التحقق من خادم محفوظ دون تشغيل دورة وكيل | openclaw mcp status وdoctor وprobe |
يفحص status وdoctor الإعدادات؛ ويفتح probe اتصال MCP مباشرًا ويسرد الإمكانات. |
| تعديل إعدادات MCP من متصفح | واجهة التحكم /settings/mcp (الاسم المستعار /mcp) |
تعرض الصفحة المخزون وحالة التمكين وملخصات OAuth/عوامل التصفية وتلميحات الأوامر ومحرر mcp محدود النطاق. |
| منح خادم تطبيق Codex خادم MCP أصليًا محدود النطاق | mcp.servers.<name>.codex |
لا تؤثر كتلة codex إلا في إسقاط سلاسل خادم تطبيق Codex، وتُزال قبل تسليم الإعدادات الأصلية. |
| تشغيل جلسات بيئة برمجة مستضافة عبر ACP | openclaw acp ووكلاء ACP |
لا يقبل وضع جسر ACP حقن خادم MCP لكل جلسة؛ اضبط جسور Gateway/Plugin بدلًا من ذلك. |
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 مفتوحة، يتصل الجسر بـ Gateway محلي أو بعيد لـ OpenClaw عبر WebSocket ويعرض محادثات القنوات الموجّهة عبر MCP.
العميل يشغّل الجسر
يشغّل عميل MCP openclaw mcp serve.
الجسر يتصل بـ Gateway
يتصل الجسر بـ Gateway الخاص بـ OpenClaw عبر WebSocket.
الجلسات تصبح محادثات MCP
تصبح الجلسات الموجّهة محادثات MCP وأدوات للنصوص المنسوخة/السجل.
إدراج الأحداث المباشرة في قائمة انتظار
توضع الأحداث المباشرة في قائمة انتظار بالذاكرة أثناء اتصال الجسر.
دفع Claude الاختياري
إذا كان وضع قناة Claude مفعّلًا، يمكن للجلسة نفسها أيضًا تلقي إشعارات دفع خاصة بـ Claude.
سلوك مهم
- تبدأ حالة قائمة الانتظار المباشرة عند اتصال الجسر
- يُقرأ سجل النصوص المنسوخة الأقدم باستخدام
messages_read - لا توجد إشعارات دفع Claude إلا أثناء بقاء جلسة MCP نشطة
- عندما ينقطع اتصال العميل، ينهي الجسر عمله وتزول قائمة الانتظار المباشرة
- تنهي نقاط دخول الوكيل أحادية التنفيذ، مثل
openclaw agentوopenclaw infer model run، أي بيئات تشغيل MCP مضمّنة تفتحها عند اكتمال الرد، ولذلك لا تتراكم عمليات MCP الفرعية العاملة عبر stdio مع التشغيلات البرمجية المتكررة - تُنهى خوادم MCP العاملة عبر stdio التي يشغّلها OpenClaw (سواء كانت مضمّنة أو أعدّها المستخدم) كشجرة عمليات عند إيقاف التشغيل، ولذلك لا تستمر العمليات الفرعية التي بدأها الخادم بعد خروج عميل stdio الأب
- يؤدي حذف جلسة أو إعادة تعيينها إلى التخلص من عملاء MCP لتلك الجلسة عبر مسار تنظيف بيئة التشغيل المشترك، ولذلك لا تبقى اتصالات stdio عالقة ومرتبطة بجلسة أُزيلت
اختيار وضع العميل
عملاء MCP العامّون
أدوات MCP القياسية فقط. استخدم conversations_list وmessages_read وevents_poll وevents_wait وmessages_send وأدوات الموافقة.
Claude Code
أدوات MCP القياسية بالإضافة إلى محوّل القناة الخاص بـ Claude. فعّل --claude-channel-mode on أو اترك الإعداد الافتراضي auto.
ما يعرضه serve
يستخدم الجسر بيانات تعريف مسار جلسة Gateway الحالية لعرض المحادثات المدعومة بالقنوات. تظهر المحادثة عندما تكون لدى OpenClaw بالفعل حالة جلسة ذات مسار معروف، مثل:
channel- بيانات تعريف المستلم أو الوجهة
accountIdاختياريthreadIdاختياري
يمنح ذلك عملاء MCP مكانًا واحدًا من أجل:
- سرد المحادثات الموجّهة الحديثة
- قراءة سجل النصوص المنسوخة الحديث
- انتظار الأحداث الواردة الجديدة
- إرسال رد عبر المسار نفسه
- رؤية طلبات الموافقة التي تصل أثناء اتصال الجسر
الاستخدام
Gateway محلي
openclaw mcp serveGateway بعيد (رمز مميز)
openclaw mcp serve --url wss://gateway-host:18789 --token-file ~/.openclaw/gateway.tokenGateway بعيد (كلمة مرور)
openclaw mcp serve --url wss://gateway-host:18789 --password-file ~/.openclaw/gateway.passwordإخراج تفصيلي / تعطيل Claude
openclaw mcp serve --verboseopenclaw mcp serve --claude-channel-mode offأدوات الجسر
conversations_list
يسرد المحادثات الحديثة المدعومة بالجلسات التي لديها بالفعل بيانات تعريف للمسار في حالة جلسة Gateway.
عوامل التصفية: limit (بحد أقصى 500)، وsearch، وchannel، وincludeDerivedTitles، وincludeLastMessage.
conversation_get
يعيد محادثة واحدة حسب session_key باستخدام بحث مباشر عن جلسة Gateway.
messages_read
يقرأ رسائل النصوص المنسوخة الحديثة لمحادثة واحدة مدعومة بجلسة. القيمة الافتراضية لـ limit هي 20، والحد الأقصى 200.
attachments_fetch
يستخرج كتل محتوى الرسالة غير النصية من رسالة واحدة في النص المنسوخ. هذا عرض لبيانات التعريف فوق محتوى النص المنسوخ، وليس مخزنًا مستقلًا ودائمًا لكتل المرفقات.
events_poll
يقرأ الأحداث المباشرة الموضوعة في قائمة الانتظار منذ مؤشر رقمي. الحد الأقصى لـ limit هو 200.
events_wait
يجري استقصاءً طويلًا حتى يصل الحدث المطابق التالي في قائمة الانتظار أو تنتهي المهلة (الافتراضي 30s، والحد الأقصى 300s).
استخدم هذا عندما يحتاج عميل MCP عام إلى تسليم شبه فوري دون بروتوكول دفع خاص بـ Claude.
messages_send
يرسل نصًا عبر المسار نفسه المسجّل بالفعل في الجلسة.
السلوك الحالي:
- يتطلب مسار محادثة موجودًا
- يستخدم قناة الجلسة والمستلم ومعرّف الحساب ومعرّف سلسلة المحادثة
- يرسل النص فقط
permissions_list_open
يسرد طلبات الموافقة المعلقة للتنفيذ/Plugin التي رصدها الجسر منذ اتصاله بـ Gateway.
permissions_respond
يحسم طلب موافقة واحدًا معلقًا للتنفيذ/Plugin باستخدام:
allow-onceallow-alwaysdeny
نموذج الأحداث
يحتفظ الجسر بقائمة انتظار أحداث في الذاكرة أثناء اتصاله.
أنواع الأحداث الحالية:
messageexec_approval_requestedexec_approval_resolvedplugin_approval_requestedplugin_approval_resolvedclaude_permission_request
إشعارات قناة Claude
يمكن للجسر أيضًا عرض إشعارات قناة خاصة بـ Claude. وهذا هو مكافئ OpenClaw لمحوّل قناة Claude Code: تظل أدوات MCP القياسية متاحة، لكن يمكن أن تصل الرسائل الواردة المباشرة أيضًا كإشعارات MCP خاصة بـ Claude.
off
--claude-channel-mode off: أدوات MCP القياسية فقط.
on
--claude-channel-mode on: تفعيل إشعارات قناة Claude.
auto (الافتراضي)
--claude-channel-mode auto: الإعداد الافتراضي الحالي؛ سلوك الجسر نفسه كما في on.
عندما يكون وضع قناة Claude مفعّلًا، يعلن الخادم عن إمكانات Claude التجريبية ويمكنه إصدار:
notifications/claude/channelnotifications/claude/channel/permission
سلوك الجسر الحالي:
- تُعاد توجيه رسائل النصوص المنسوخة الواردة من النوع
userبصفتهاnotifications/claude/channel - يتم تتبع طلبات أذونات Claude الواردة عبر MCP في الذاكرة
- إذا أرسل مالك الأمر في المحادثة المرتبطة لاحقًا
yes <id>أوno <id>(يمثل<id>معرّف الطلب المكوّن من 5 أحرف، باستثناءl) يحوّل الجسر ذلك إلىnotifications/claude/channel/permission - هذه الإشعارات خاصة بالجلسة المباشرة فقط؛ وإذا انقطع اتصال عميل MCP، فلن توجد وجهة للدفع
هذا خاص بالعميل عن قصد. ينبغي أن تعتمد عملاء MCP العامة على أدوات الاستقصاء القياسية.
إعدادات عميل MCP
مثال على إعداد عميل stdio:
{ "mcpServers": { "openclaw": { "command": "openclaw", "args": [ "mcp", "serve", "--url", "wss://gateway-host:18789", "--token-file", "/path/to/gateway.token" ] } }}بالنسبة إلى معظم عملاء MCP العامّين، ابدأ بواجهة الأدوات القياسية وتجاهل وضع Claude. فعّل وضع Claude فقط للعملاء الذين يفهمون فعليًا أساليب الإشعارات الخاصة بـ Claude.
الخيارات
يدعم openclaw mcp serve ما يلي:
--urlstringعنوان URL الخاص بـ WebSocket في Gateway. القيمة الافتراضية هي gateway.remote.url عند ضبطه.
--tokenstringرمز Gateway المميز.
--token-filestringقراءة الرمز المميز من ملف.
--passwordstringكلمة مرور Gateway.
--password-filestringقراءة كلمة المرور من ملف.
--claude-channel-mode"auto" | "on" | "off"وضع إشعارات Claude. القيمة الافتراضية auto.
-v, --verbosebooleanسجلات تفصيلية على stderr.
حدود الأمان والثقة
لا ينشئ الجسر مسارات توجيه من تلقاء نفسه. بل يعرض فقط المحادثات التي يعرف Gateway بالفعل كيفية توجيهها.
وهذا يعني:
- تظل قوائم السماح بالمرسلين والاقتران والثقة على مستوى القناة تابعة لإعداد قناة OpenClaw الأساسية
- لا يستطيع
messages_sendالرد إلا عبر مسار مخزّن موجود - تكون حالة الموافقات مباشرة/في الذاكرة فقط لجلسة الجسر الحالية
- يجب أن تستخدم مصادقة الجسر ضوابط رمز Gateway المميز أو كلمة المرور نفسها التي تثق بها لأي عميل Gateway بعيد آخر
إذا كانت إحدى المحادثات مفقودة من conversations_list، فعادةً لا يكون السبب إعداد MCP، بل بيانات تعريف مسار مفقودة أو غير مكتملة في جلسة Gateway الأساسية.
الاختبار
يتضمن OpenClaw اختبار Docker تمهيديًا حتميًا لهذا الجسر:
pnpm test:docker:mcp-channelsيشغّل هذا الاختبار حاوية واحدة: يهيئ حالة المحادثة، ويبدأ Gateway، ثم ينشئ openclaw mcp serve كعملية stdio فرعية ويتحكم فيه بصفته عميل MCP. ويتحقق من اكتشاف المحادثات، وقراءة النصوص المنسوخة، وقراءة بيانات تعريف المرفقات، وسلوك طابور الأحداث المباشرة، وإشعارات القنوات والأذونات بأسلوب Claude عبر جسر stdio MCP الحقيقي. ويُغطّى توجيه الإرسال الصادر (messages_send الذي يعيد استخدام مسار المحادثة المخزّن) بشكل منفصل بواسطة اختبارات الوحدة في src/mcp/channel-server.test.ts.
هذه أسرع طريقة لإثبات عمل الجسر دون ربط حساب Telegram أو Discord أو iMessage حقيقي بتشغيل الاختبار.
للاطلاع على سياق أوسع للاختبارات، راجع الاختبار.
استكشاف الأخطاء وإصلاحها
لم تُرجع أي محادثات
يعني ذلك عادةً أن جلسة 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 وstatus وdoctor وprobe وadd وset،
وconfigure وtools وlogin وlogout وreload وunset.
لا تعرض هذه الأوامر OpenClaw عبر MCP. بل تدير تعريفات خوادم MCP التي يديرها OpenClaw ضمن mcp.servers في إعداد OpenClaw. وهي لا تقرأ خوادم mcporter من config/mcporter.json.
هذه التعريفات المحفوظة مخصصة لبيئات التشغيل التي يشغّلها OpenClaw أو يضبطها لاحقًا، مثل OpenClaw المضمّن ومهايئات بيئات التشغيل الأخرى. يخزّن OpenClaw التعريفات مركزيًا كي لا تضطر بيئات التشغيل هذه إلى الاحتفاظ بقوائم مكررة خاصة بها لخوادم MCP.
سلوك مهم
- لا تقرأ هذه الأوامر إلا إعداد OpenClaw أو تكتب فيه
- لا يتصل
statusوlistوshowوdoctorمن دون--probeوsetوconfigureوtoolsوlogoutوreloadوunsetبخادم MCP المستهدف - ينفّذ
loginتدفق شبكة OAuth الخاص بـ MCP لخادم HTTP المضبوط ويحفظ بيانات الاعتماد المحلية الناتجة - يطبع
status --verboseتلميحات النقل والمصادقة والمهلة والمرشّح واستدعاء الأدوات المتوازي بعد حلّها، دون اتصال - يفحص
doctorالتعريفات المحفوظة بحثًا عن مشكلات الإعداد المحلي، مثل أوامر stdio المفقودة، وأدلة العمل غير الصالحة، وملفات TLS المفقودة، والخوادم المعطلة، وقيم الترويسات/متغيرات البيئة الحساسة المكتوبة حرفيًا، وتفويض OAuth غير المكتمل - يضيف
doctor --probeإثبات الاتصال المباشر نفسه الذي يضيفهprobeبعد نجاح الفحوصات الثابتة - يتصل
probeبالخادم المحدد أو بجميع الخوادم المضبوطة، ويسرد الأدوات، ويبلغ عن الإمكانات/التشخيصات - ينشئ
addتعريفًا من العلامات ويختبره قبل الحفظ، ما لم يُضبط--no-probeأو يلزم إجراء تفويض OAuth أولًا - تقرر مهايئات بيئات التشغيل أشكال النقل التي تدعمها فعليًا في وقت التنفيذ
- يبقي
enabled: falseالخادم محفوظًا، لكنه يستبعده من اكتشاف بيئة التشغيل المضمّنة - يضبط
timeoutوconnectTimeoutمهلتي الطلب والاتصال لكل خادم بالثواني - يميّز
supportsParallelToolCalls: trueالخوادم التي تستطيع المهايئات استدعاءها بالتزامن - يمكن لخوادم HTTP استخدام ترويسات ثابتة، وتسجيل الدخول عبر OAuth، والتحكم في التحقق من TLS، ومسارات شهادة/مفتاح mTLS
- يعرض OpenClaw المضمّن أدوات MCP المضبوطة ضمن ملفي الأدوات العاديين
codingوmessaging؛ ويظلminimalيخفيها، بينما يعطلهاtools.deny: ["bundle-mcp"]صراحةً - يرشّح
toolFilter.includeوtoolFilter.excludeلكل خادم أدوات MCP المكتشفة قبل أن تصبح أدوات OpenClaw - تعرض الخوادم التي تعلن عن موارد أو مطالبات أيضًا أدوات مساعدة لسرد الموارد/قراءتها ولسرد المطالبات/جلبها؛ وتستخدم أسماء الأدوات المساعدة المُنشأة هذه (
resources_listوresources_readوprompts_listوprompts_get) مرشّح التضمين/الاستبعاد نفسه - تؤدي التغييرات الديناميكية في قائمة أدوات MCP إلى إبطال الكتالوج المخزّن مؤقتًا لتلك الجلسة؛ ويؤدي الاكتشاف/الاستخدام التالي إلى تحديثه من الخادم
- تؤدي حالات الفشل المتكررة في طلبات أدوات MCP/البروتوكول إلى إيقاف ذلك الخادم مؤقتًا لفترة وجيزة، كي لا يستهلك خادم معطّل واحد دورة التفاعل كاملة
- تُنهى بيئات تشغيل MCP المضمّنة ذات نطاق الجلسة بعد
mcp.sessionIdleTtlMsملّي ثانية من الخمول (القيمة الافتراضية 10 دقائق؛ اضبط0للتعطيل)، كما تنظّفها عمليات التشغيل المضمّنة أحادية التنفيذ عند انتهائها
قد تطبّع مهايئات بيئات التشغيل هذا السجل المشترك إلى الشكل الذي يتوقعه عميلها اللاحق. على سبيل المثال، يستهلك OpenClaw المضمّن قيم transport الخاصة بـ OpenClaw مباشرةً، بينما يتلقى Claude Code وGemini قيم type الأصلية للـ CLI، مثل http أو sse أو stdio.
يحترم خادم تطبيق Codex أيضًا كتلة codex اختيارية في كل خادم. هذه
بيانات تعريف إسقاط OpenClaw لسلاسل رسائل خادم تطبيق Codex فقط؛ وهي لا
تغيّر جلسات ACP أو إعداد حاضنة Codex العامة أو مهايئات بيئات التشغيل الأخرى.
استخدم codex.agents غير فارغ لإسقاط خادم في معرّفات وكلاء OpenClaw
المحددة فقط. ترفض عملية التحقق من الإعداد قوائم الوكلاء الفارغة أو الخالية أو غير الصالحة،
ويحذفها مسار إسقاط بيئة التشغيل بدلًا من جعلها
عامة. استخدم codex.defaultToolsApprovalMode (auto أو prompt أو approve)
لإصدار default_tools_approval_mode الأصلي الخاص بـ Codex لخادم موثوق.
يزيل OpenClaw بيانات تعريف codex قبل تسليم إعداد mcp_servers
الأصلي إلى Codex.
تعريفات خوادم MCP المحفوظة
الأوامر:
openclaw mcp listopenclaw mcp show [name]openclaw mcp status [--verbose]openclaw mcp doctor [name] [--probe]openclaw mcp probe [name]openclaw mcp add <name> [flags]openclaw mcp set <name> <json>openclaw mcp configure <name> [flags]openclaw mcp tools <name> [--include csv] [--exclude csv] [--clear]openclaw mcp login <name> [--code code]openclaw mcp logout <name>openclaw mcp reloadopenclaw mcp unset <name>
ملاحظات:
- يرتّب
listأسماء الخوادم. - يطبع
showمن دون اسم كائن خادم MCP المضبوط كاملًا. - يصنّف
statusوسائل النقل المضبوطة دون اتصال. ويتضمن--verboseتفاصيل التشغيل والمهلة وOAuth والمرشّح والاستدعاء المتوازي بعد حلّها. - ينفّذ
doctorفحوصات ثابتة دون اتصال. أضف--probeعندما ينبغي للأمر أيضًا التحقق من اتصال الخوادم المفعّلة. - يتصل
probeويبلغ عن أعداد الأدوات، ودعم الموارد/المطالبات، ودعم تغيّر القوائم، والتشخيصات. - يقبل
addعلامات stdio مثل--commandو--argو--envو--cwd، أو علامات HTTP مثل--urlو--transportو--headerو--auth oauth، إلى جانب علامات TLS والمهلة واختيار الأدوات. - يتوقع
setقيمة كائن JSON واحدة في سطر الأوامر. - يحدّث
configureالتمكين ومرشّحات الأدوات والمهل وOAuth وTLS وتلميحات استدعاء الأدوات المتوازي دون استبدال تعريف الخادم كاملًا. أضف--probeللتحقق من الخادم المحدّث قبل الحفظ. - يحدّث
toolsمرشّحات الأدوات لكل خادم. تكون إدخالات التضمين/الاستبعاد أسماء أدوات MCP وأنماط*عامة بسيطة. - يشغّل
loginتدفق OAuth لخوادم HTTP المضبوطة باستخدامauth: "oauth". تطبع عملية التشغيل الأولى عنوان URL للتفويض؛ أعد التشغيل باستخدام--codeبعد الموافقة. - يمسح
logoutبيانات اعتماد OAuth المخزّنة للخادم المسمى دون إزالة تعريف الخادم المحفوظ. - يتخلص
reloadمن بيئات تشغيل MCP المخبأة داخل العملية لعملية CLI الحالية فقط. ولا تزال عمليات Gateway أو الوكلاء الموجودة في عملية أخرى بحاجة إلى مسار إعادة التحميل أو إعادة التشغيل الخاص بها. - استخدم
transport: "streamable-http"لخوادم Streamable HTTP MCP. كما يطبّعopenclaw mcp setقيمةtype: "http"الأصلية للـ CLI إلى شكل الإعداد القياسي نفسه لأغراض التوافق. - يفشل
unsetإذا لم يكن الخادم المسمى موجودًا.
أمثلة:
openclaw mcp listopenclaw mcp show context7 --jsonopenclaw mcp status --verboseopenclaw mcp doctor --probeopenclaw mcp probe context7 --jsonopenclaw mcp add memory --command npx --arg -y --arg @modelcontextprotocol/server-memoryopenclaw mcp set context7 '{"command":"uvx","args":["context7-mcp"]}'openclaw mcp tools context7 --include 'resolve-library-id,get-library-docs'openclaw mcp set docs '{"url":"https://mcp.example.com","transport":"streamable-http"}'openclaw mcp configure docs --timeout 20 --connect-timeout 5 --include 'search,read_*'openclaw mcp configure docs --auth oauth --oauth-scope 'docs.read'openclaw mcp login docsopenclaw mcp logout docsopenclaw mcp unset context7وصفات شائعة للخوادم
تحفظ هذه الأمثلة تعريفات الخوادم فقط. شغّل openclaw mcp doctor --probe بعدها لإثبات أن الخادم يبدأ ويعرض الأدوات.
نظام الملفات
openclaw mcp add files \ --command npx \ --arg -y \ --arg @modelcontextprotocol/server-filesystem \ --arg "$HOME/Documents" \ --include 'read_file,list_directory,search_files'openclaw mcp doctor files --probeاحصر نطاق خوادم نظام الملفات في أصغر شجرة أدلة ينبغي للوكيل قراءتها أو تعديلها.
الذاكرة
openclaw mcp add memory \ --command npx \ --arg -y \ --arg @modelcontextprotocol/server-memoryopenclaw mcp probe memory --jsonاستخدم مرشح أدوات إذا كان الخادم يعرض أدوات كتابة لا ينبغي إتاحتها للوكلاء العاديين.
برنامج نصي محلي
openclaw mcp add local-tools \ --command node \ --arg ./dist/mcp-server.js \ --cwd /srv/openclaw-tools \ --env API_BASE=https://internal.exampleopenclaw mcp status --verboseيتحقق doctor من وجود cwd ومن إمكانية حل الأمر من البيئة المضبوطة.
HTTP بعيد
openclaw mcp add docs \ --url https://mcp.example.com/mcp \ --transport streamable-http \ --auth oauth \ --oauth-scope docs.read \ --timeout 20 \ --connect-timeout 5 \ --include 'search,read_*'openclaw mcp doctor docs --probeاستخدم OAuth عندما يدعمه الخادم البعيد. إذا كان الخادم يتطلب ترويسات ثابتة، فتجنب إيداع رموز حامل حرفية.
سطح المكتب/CUA
openclaw mcp set cua-driver '{"command":"cua-driver","args":["mcp"]}'openclaw mcp tools cua-driver --include 'list_apps,observe,click,type'openclaw mcp doctor cua-driver --probeترث خوادم التحكم المباشر بسطح المكتب أذونات العملية التي تشغّلها. استخدم مرشحات أدوات ضيقة ومطالبات أذونات على مستوى نظام التشغيل.
أشكال مخرجات JSON
استخدم --json للبرامج النصية ولوحات المعلومات. قد تتوسع مجموعات الحقول بمرور الوقت، لذا ينبغي للمستهلكين تجاهل المفاتيح غير المعروفة.
status --json
{ "path": "/home/user/.openclaw/openclaw.json", "servers": [ { "name": "docs", "configured": true, "enabled": true, "ok": true, "transport": "streamable-http", "launch": "streamable-http https://mcp.example.com/mcp", "auth": "oauth", "authStatus": { "hasTokens": true, "hasClientInformation": true, "hasCodeVerifier": false, "hasDiscoveryState": true, "hasLastAuthorizationUrl": false }, "requestTimeoutMs": 20000, "connectionTimeoutMs": 5000, "toolFilter": { "include": ["search", "read_*"], "exclude": [] }, "supportsParallelToolCalls": true } ]}doctor --json
{ "ok": true, "path": "/home/user/.openclaw/openclaw.json", "servers": [ { "name": "docs", "ok": true, "issues": [ { "level": "warning", "message": "بيانات اعتماد OAuth غير مخوّلة؛ شغّل openclaw mcp login docs" } ] } ]}ينتهي doctor --json برمز غير صفري عندما يحتوي أي خادم مفعّل جرى فحصه على مشكلة بمستوى error. تُبلّغ مشكلات warning وinfo، لكنها لا تتسبب وحدها في فشل الأمر.
probe --json
{ "generatedAt": "2026-05-31T09:00:00.000Z", "servers": { "docs": { "launch": "streamable-http https://mcp.example.com/mcp", "tools": 2, "resources": true, "listChanged": { "tools": true, "resources": false, "prompts": false } } }, "tools": ["docs__read_page", "docs__search"], "diagnostics": []}يفتح probe --json جلسة عميل MCP حية ويطبع نتيجتها مباشرةً؛ وعلى خلاف status/doctor، لا تحتوي المخرجات على حقل path في المستوى الأعلى. لا تظهر مفاتيح resources وprompts إلا عندما يعلن الخادم فعليًا عن تلك الإمكانية (فالخادم الذي لا يدعم المطالبات يحذف مفتاح prompts بدلًا من الإبلاغ عن false). استخدم probe لإثبات إمكانية الوصول والإمكانات، لا لتدقيق الإعدادات الثابتة.
مثال على شكل الإعدادات:
{ "mcp": { "servers": { "context7": { "command": "uvx", "args": ["context7-mcp"] }, "docs": { "url": "https://mcp.example.com", "transport": "streamable-http", "timeout": 20, "connectTimeout": 5, "supportsParallelToolCalls": true, "auth": "oauth", "oauth": { "scope": "docs.read" }, "sslVerify": true, "clientCert": "/path/to/client.crt", "clientKey": "/path/to/client.key", "toolFilter": { "include": ["search_*"], "exclude": ["admin_*"] } } } }}نقل Stdio
يشغّل عملية فرعية محلية ويتواصل عبر stdin/stdout.
| الحقل | الوصف |
|---|---|
command |
الملف التنفيذي المراد تشغيله (مطلوب) |
args |
مصفوفة من معاملات سطر الأوامر |
env |
متغيرات بيئة إضافية |
cwd / workingDirectory |
دليل العمل للعملية |
نقل SSE / HTTP
يتصل بخادم MCP بعيد عبر أحداث HTTP المرسلة من الخادم.
| الحقل | الوصف |
|---|---|
url |
عنوان URL باستخدام HTTP أو HTTPS للخادم البعيد (مطلوب) |
headers |
خريطة اختيارية لأزواج مفاتيح وقيم ترويسات HTTP (مثل رموز المصادقة) |
connectionTimeoutMs |
مهلة اتصال لكل خادم بالمللي ثانية (اختيارية) |
connectTimeout |
مهلة اتصال لكل خادم بالثواني (اختيارية) |
timeout / requestTimeoutMs |
مهلة طلب MCP لكل خادم بالثواني أو المللي ثانية |
auth: "oauth" |
استخدام بيانات اعتماد MCP لـ OAuth المحفوظة بواسطة openclaw mcp login |
sslVerify |
اضبطه على false فقط لنقاط نهاية HTTPS الخاصة الموثوقة صراحةً |
clientCert / clientKey |
مسارا شهادة عميل mTLS ومفتاحه |
supportsParallelToolCalls |
إشارة إلى أن الاستدعاءات المتزامنة آمنة لهذا الخادم |
مثال:
{ "mcp": { "servers": { "remote-tools": { "url": "https://mcp.example.com", "auth": "oauth", "timeout": 20, "headers": { "Authorization": "Bearer <token>" } } } }}تُنقّح القيم الحساسة في url (معلومات المستخدم) وheaders في السجلات ومخرجات الحالة. يحذر openclaw mcp doctor عندما تحتوي إدخالات headers أو env التي تبدو حساسة على قيم حرفية، بحيث يستطيع المشغّلون نقل تلك القيم خارج الإعدادات المودعة.
سير عمل OAuth
يُستخدم OAuth لخوادم MCP عبر HTTP التي تعلن عن تدفق MCP لـ OAuth. تُتجاهل ترويسات Authorization الثابتة للخادم ما دام auth: "oauth" مفعّلًا. تعمل بيانات الاعتماد المحفوظة بواسطة openclaw mcp login مع MCP المضمّن ومشغّلات CLI وخادم تطبيق Codex المحلي.
إلى أن تتوفر بيانات الاعتماد، يحذف OpenClaw خادم MCP ذاك فقط من وقت تشغيل الوكيل بدلًا من إفشال دورة الوكيل. ويمكن للمشغّل، أو لوكيل لديه وصول إلى الصدفة، تشغيل openclaw mcp login <name> ثم استخدام الخادم في دورة لاحقة.
عندما تكون خدمة MCP بعيدة مدعومة بالفعل بملف تعريف مصادقة منفصل في OpenClaw قادر على التحديث، يمكنك اختياريًا ضبط oauth.authProfileId. يحدّث OpenClaw أيًا من مصدري بيانات الاعتماد قبل إسقاط وقت التشغيل، ولا يمرر إلى عميل MCP اللاحق سوى رمز الوصول الحالي.
حفظ الخادم
أضف الخادم أو حدّثه باستخدام auth: "oauth" وأي بيانات وصفية اختيارية لـ OAuth.
openclaw mcp set docs '{"url":"https://mcp.example.com/mcp","transport":"streamable-http","auth":"oauth","oauth":{"scope":"docs.read"}}'لحامل مدعوم بملف تعريف مصادقة، احفظ ربط ملف التعريف:
openclaw mcp set docs '{"url":"https://mcp.example.com/mcp","transport":"streamable-http","auth":"oauth","oauth":{"authProfileId":"docs:mcp"}}'بدء تسجيل الدخول
شغّل تسجيل الدخول لإنشاء طلب التفويض.
openclaw mcp login docsيطبع OpenClaw عنوان URL للتفويض ويخزن حالة متحقق OAuth المؤقتة ضمن دليل حالة OpenClaw.
الإكمال باستخدام الرمز
بعد الموافقة في المتصفح، مرّر الرمز المُعاد إلى OpenClaw.
openclaw mcp login docs --code abc123التحقق من التفويض
استخدم status أو doctor للتأكد من وجود الرموز المميزة.
openclaw mcp status --verboseopenclaw mcp doctor docs --probeمسح بيانات الاعتماد
يزيل تسجيل الخروج بيانات اعتماد OAuth المخزنة، لكنه يُبقي تعريف الخادم المحفوظ.
openclaw mcp logout docsإذا أجرى المزوّد تدويرًا للرموز المميزة أو علقت حالة التفويض، فشغّل openclaw mcp logout <name>، ثم كرر login. يمكن للأمر logout مسح بيانات اعتماد خادم HTTP محفوظ حتى بعد إزالة auth: "oauth" من الإعداد، ما دام اسم الخادم وعنوان URL لا يزالان يحددان إدخال مخزن بيانات الاعتماد.
نقل HTTP القابل للبث
يُعد streamable-http خيار نقل إضافيًا إلى جانب sse وstdio. ويستخدم بث HTTP للاتصال ثنائي الاتجاه بخوادم MCP البعيدة.
| الحقل | الوصف |
|---|---|
url |
عنوان URL لخادم HTTP أو HTTPS البعيد (مطلوب) |
transport |
اضبطه على "streamable-http" لاختيار هذا النقل؛ وعند حذفه، يستخدم OpenClaw sse |
headers |
خريطة اختيارية من أزواج المفتاح والقيمة لترويسات HTTP (مثل رموز المصادقة المميزة) |
connectionTimeoutMs |
مهلة الاتصال لكل خادم بالمللي ثانية (اختياري) |
connectTimeout |
مهلة الاتصال لكل خادم بالثواني (اختياري) |
timeout / requestTimeoutMs |
مهلة طلب MCP لكل خادم بالثواني أو المللي ثانية |
auth: "oauth" |
استخدم بيانات اعتماد MCP OAuth المحفوظة بواسطة openclaw mcp login |
sslVerify |
اضبطه على false فقط لنقاط نهاية HTTPS الخاصة والموثوق بها صراحةً |
clientCert / clientKey |
مسارا شهادة عميل mTLS ومفتاحه |
supportsParallelToolCalls |
تلميح إلى أن الاستدعاءات المتزامنة آمنة لهذا الخادم |
يستخدم إعداد OpenClaw الصيغة transport: "streamable-http" بوصفها الصيغة القياسية. تُقبل قيم MCP الأصلية في CLI type: "http" عند حفظها عبر openclaw mcp set، ويُصلحها openclaw doctor --fix في الإعداد الحالي، لكن transport هو ما يستهلكه OpenClaw المضمّن مباشرةً.
مثال:
{ "mcp": { "servers": { "streaming-tools": { "url": "https://mcp.example.com/stream", "transport": "streamable-http", "connectTimeout": 10, "timeout": 30, "headers": { "Authorization": "Bearer <token>" } } } }}واجهة التحكم
تتضمن واجهة التحكم في المتصفح صفحة مخصصة لإعدادات MCP في /settings/mcp؛ ويظل المسار السابق /mcp اسمًا مستعارًا. تعرض الصفحة أعداد الخوادم المضبوطة، وملخصات التمكين وOAuth والتصفية، وصفوف النقل لكل خادم، وعناصر التحكم في التمكين والتعطيل، وأوامر CLI الشائعة، ومحررًا محدد النطاق لقسم الإعداد mcp.
استخدم الصفحة لإجراء تعديلات المشغّل والجرد السريع. استخدم openclaw mcp doctor --probe أو openclaw mcp probe عندما تحتاج إلى إثبات حي للخادم.
سير عمل المشغّل:
- افتح واجهة التحكم واختر MCP.
- راجع بطاقات الملخص لإجمالي الخوادم والممكّنة منها وخوادم OAuth والخوادم المصفّاة.
- استخدم صف كل خادم للاطلاع على تلميحات النقل والمصادقة والتصفية والمهلة والأوامر.
- بدّل حالة التمكين عندما تريد الاحتفاظ بتعريف مع استبعاده من اكتشاف وقت التشغيل.
- حرّر قسم الإعداد محدد النطاق
mcpلإجراء تغييرات بنيوية، مثل إضافة خوادم أو ترويسات أو TLS أو بيانات OAuth الوصفية أو مرشحات الأدوات. - اختر حفظ للاحتفاظ بالإعداد فقط، أو حفظ ونشر لتطبيقه عبر مسار إعداد Gateway.
- شغّل
openclaw mcp doctor --probeعندما تحتاج إلى إثبات حي على أن الخادم المعدّل يبدأ ويسرد الأدوات.
ملاحظات:
- تضع مقتطفات الأوامر أسماء الخوادم بين علامتي اقتباس لكي تظل الأسماء غير المعتادة قابلة للنسخ في الصدفة
- تُنقّح القيم المعروضة الشبيهة بعناوين URL قبل التصيير عندما تحتوي على بيانات اعتماد مضمنة
- لا تبدأ الصفحة عمليات نقل MCP بنفسها
- قد تحتاج أوقات التشغيل النشطة إلى
openclaw mcp reloadأو نشر إعداد Gateway أو إعادة تشغيل العملية، بحسب العملية المالكة لعملاء MCP
تطبيقات MCP
يمكن لـ OpenClaw تصيير الأدوات التي تنفذ امتداد تطبيقات MCP المستقر. تكون التطبيقات اختيارية لأن HTML الخاص بها يأتي من خادم MCP المضبوط، ويمكنه طلب أدوات أو موارد مرئية للتطبيق من الخادم نفسه.
مكّن جسر المضيف:
openclaw config set mcp.apps.enabled true --strict-jsonأعد تشغيل Gateway بعد تغيير هذا الإعداد. عند التمكين، يبدأ OpenClaw مستمع HTTP(S) خاصًا بصندوق العزل على منفذ Gateway زائد واحد (بالنسبة إلى Gateway الافتراضي، 18790). تحمّل واجهة التحكم التطبيقات من ذلك الأصل المنفصل؛ ولا يقدم المستمع مطلقًا واجهة التحكم أو مسارات Gateway المصادَق عليها أو بيانات المستخدم.
تحتاج الاتصالات المباشرة بـ Gateway إلى الوصول إلى كلا المنفذين. إذا كشف وكيل عكسي أو مُنهي TLS واجهة التحكم، فامنح التطبيقات أصلًا عامًا مخصصًا، ومرّر ذلك الأصل وحده إلى مستمع صندوق العزل:
{ mcp: { apps: { enabled: true, sandboxOrigin: "https://mcp-apps.example.com", sandboxPort: 18790, }, },}يجب أن يختلف أصل صندوق العزل عن أصل واجهة التحكم. لا تستضف عليه أي محتوى آخر مصادَق عليه أو حساس.
على سبيل المثال، يمكن ضبط العرض التوضيحي الرسمي الأساسي المبني باستخدام React على النحو الآتي:
{ mcp: { apps: { enabled: true }, servers: { "basic-react": { command: "npx", args: ["-y", "@modelcontextprotocol/server-basic-react", "--stdio"], }, }, },}السلوك والحدود الأمنية:
- لا يعلن OpenClaw عن امتداد
io.modelcontextprotocol/uiإلا عند تمكين التطبيقات. - لا تُصيّر سوى موارد
ui://ذات نوع MIME المطابق تمامًا لـtext/html;profile=mcp-app. - تُحدد موارد واجهة المستخدم بحد أقصى قدره 2 MiB، وتوضع خلف وكيل ذي إطاري iframe متداخلين على أصل خارجي مخصص، وتُحمّل في أصل تطبيق داخلي مبهم، وتُقيّد بواسطة CSP مشتقة من البيانات الوصفية للمورد.
- تظل الأدوات الخاصة بالتطبيق فقط (
_meta.ui.visibility: ["app"]) خارج قوائم أدوات النموذج. ولا يمكن للتطبيقات استدعاء سوى الأدوات المرئية للتطبيق على الخادم المالك لها، التي تجتاز أيضًا سياسة أدوات OpenClaw الفعلية للتشغيل الذي أنشأ طريقة العرض. - لا تُمنح أذونات التطبيقات المرتبطة بالأصل، مثل الكاميرا والميكروفون والموقع الجغرافي، ما دامت مستندات التطبيقات الداخلية تستخدم أصولًا مبهمة للعزل بين التطبيقات.
- يظل HTML الخاص بالتطبيق ووسائط الأدوات الكاملة والنتائج الأولية ضمن مدة إيجار محدودة لطريقة العرض في الذاكرة مقدارها عشر دقائق، ولا تُكتب إلى القرص ولا تُنسخ إلى بيانات المعاينة الوصفية للنص المنسوخ. لا يخزّن النص المنسوخ سوى واصف محدود للخادم والأداة والمورد مرتبط بمعرّف استدعاء الأداة الأصلي. بعد إعادة تشغيل Gateway، يمكن لواجهة التحكم التحقق من ذلك الواصف مقابل النص المنسوخ للجلسة المصادَق عليها وإعادة جلب مورد
ui://؛ وتكون طرق العرض المُعاد إنشاؤها للقراءة فقط إلى أن ينشئ تشغيل جديد أذونات الأدوات الحالية. - يحذّر
openclaw security auditأثناء تمكين الجسر. عطّله باستخدامopenclaw config set mcp.apps.enabled false --strict-jsonعندما لا تكون هناك حاجة إليه.
الحدود الحالية
توثّق هذه الصفحة الجسر كما هو متاح حاليًا.
الحدود الحالية:
- يعتمد اكتشاف المحادثات على البيانات الوصفية الحالية لمسار جلسة Gateway
- لا يوجد بروتوكول دفع عام يتجاوز المحوّل الخاص بـ Claude
- لا تتوفر بعد أدوات لتعديل الرسائل أو إضافة تفاعلات إليها
- يتصل نقل HTTP/SSE/streamable-http بخادم بعيد واحد؛ ولا تتوفر بعد اتصالات صاعدة متعددة الإرسال
- لا يتضمن
permissions_list_openسوى الموافقات المرصودة أثناء اتصال الجسر