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 برای سرورهای MCP عمل میکند که زمانهای اجرای آن ممکن است بعداً مصرف کنند
زمانی از openclaw acp استفاده کنید که OpenClaw باید خودش یک نشست هارنس کدنویسی را میزبانی کند و آن زمان اجرا را از طریق ACP مسیریابی کند.
انتخاب مسیر درست MCP
OpenClaw چندین سطح 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 از مرورگر | Control UI /mcp |
این صفحه موجودی، فعالسازی، خلاصههای OAuth/فیلتر، راهنمای فرمانها و یک ویرایشگر محدود به دامنه mcp را نشان میدهد. |
| دادن یک سرور MCP بومی محدود به دامنه به app-server کدکس | mcp.servers.<name>.codex |
بلوک codex فقط بر تزریق رشته app-server کدکس اثر میگذارد و پیش از تحویل پیکربندی بومی حذف میشود. |
| اجرای نشستهای هارنس میزبانیشده توسط ACP | openclaw acp و عاملهای ACP |
حالت پل ACP تزریق سرور MCP برای هر نشست را نمیپذیرد؛ بهجای آن پلهای gateway/Plugin را پیکربندی کنید. |
OpenClaw بهعنوان سرور MCP
این مسیر openclaw mcp serve است.
چه زمانی از serve استفاده کنید
از openclaw mcp serve استفاده کنید وقتی:
- Codex، Claude Code یا یک کلاینت MCP دیگر باید مستقیماً با گفتوگوهای کانالی پشتیبانیشده توسط OpenClaw صحبت کند
- از قبل یک OpenClaw Gateway محلی یا راهدور با نشستهای مسیریابیشده دارید
- یک سرور MCP میخواهید که روی بکاندهای کانالی OpenClaw کار کند، بهجای اجرای پلهای جداگانه برای هر کانال
زمانی بهجای آن از openclaw acp استفاده کنید که OpenClaw باید خودش زمان اجرای کدنویسی را میزبانی کند و نشست عامل را داخل OpenClaw نگه دارد.
نحوه کار
openclaw mcp serve یک سرور stdio MCP راهاندازی میکند. کلاینت MCP مالک آن فرایند است. تا زمانی که کلاینت نشست stdio را باز نگه دارد، پل از طریق WebSocket به یک OpenClaw Gateway محلی یا راهدور متصل میشود و گفتوگوهای کانالی مسیریابیشده را از طریق MCP ارائه میکند.
کلاینت پل را ایجاد میکند
کلاینت MCP، openclaw mcp serve را ایجاد میکند.
پل به Gateway متصل میشود
پل از طریق WebSocket به OpenClaw Gateway متصل میشود.
نشستها به گفتوگوهای MCP تبدیل میشوند
نشستهای مسیریابیشده به گفتوگوهای MCP و ابزارهای رونوشت/تاریخچه تبدیل میشوند.
صف رویدادهای زنده
رویدادهای زنده تا زمانی که پل متصل است در حافظه صف میشوند.
ارسال اختیاری Claude
اگر حالت کانال Claude فعال باشد، همان نشست میتواند اعلانهای ارسالی ویژه Claude را نیز دریافت کند.
رفتار مهم
- وضعیت صف زنده هنگام اتصال پل شروع میشود
- تاریخچه رونوشت قدیمیتر با
messages_readخوانده میشود - اعلانهای ارسالی Claude فقط تا زمانی وجود دارند که نشست MCP زنده باشد
- وقتی کلاینت قطع میشود، پل خارج میشود و صف زنده از بین میرود
- نقاط ورود عامل یکباره مانند
openclaw agentوopenclaw infer model runهر زمان اجرای MCP همراهی را که باز میکنند پس از کامل شدن پاسخ بازنشسته میکنند، بنابراین اجراهای اسکریپتی تکراری فرایندهای فرزند stdio MCP را انباشته نمیکنند - سرورهای stdio MCP که توسط 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ابزارهای پل
پل فعلی این ابزارهای MCP را ارائه میکند:
conversations_list
گفتوگوهای اخیر پشتیبانیشده توسط نشست را که از قبل فراداده مسیر در وضعیت نشست Gateway دارند فهرست میکند.
فیلترهای مفید:
limitsearchchannelincludeDerivedTitlesincludeLastMessage
conversation_get
یک گفتوگو را بر اساس session_key با استفاده از جستوجوی مستقیم نشست Gateway برمیگرداند.
messages_read
پیامهای رونوشت اخیر را برای یک گفتوگوی پشتیبانیشده توسط نشست میخواند.
attachments_fetch
بلوکهای محتوای غیرمتنی پیام را از یک پیام رونوشت استخراج میکند. این یک نمای فراداده روی محتوای رونوشت است، نه یک مخزن مستقل و بادوام برای blob پیوست.
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
اعلانهای کانال Claude
پل میتواند اعلانهای کانال ویژه Claude را نیز ارائه کند. این معادل OpenClaw برای آداپتر کانال Claude Code است: ابزارهای استاندارد MCP همچنان در دسترس میمانند، اما پیامهای ورودی زنده میتوانند بهصورت اعلانهای MCP ویژه Claude نیز برسند.
خاموش
--claude-channel-mode off: فقط ابزارهای استاندارد MCP.
روشن
--claude-channel-mode on: اعلانهای کانال Claude را فعال میکند.
خودکار (پیشفرض)
--claude-channel-mode auto: پیشفرض فعلی؛ همان رفتار پل مانند on.
وقتی حالت کانال Claude فعال است، سرور قابلیتهای آزمایشی Claude را اعلام میکند و میتواند اینها را منتشر کند:
notifications/claude/channelnotifications/claude/channel/permission
رفتار فعلی پل:
- پیامهای رونوشت ورودی
userبهصورتnotifications/claude/channelارسال میشوند - درخواستهای مجوز Claude که از طریق MCP دریافت میشوند در حافظه ردیابی میشوند
- اگر مالک فرمان در گفتوگوی پیوندشده بعداً
yes abcdeیاno abcdeرا ارسال کند، پل آن را به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نشانی WebSocket Gateway.
--tokenstringتوکن Gateway.
--token-filestringخواندن توکن از فایل.
--passwordstringگذرواژه Gateway.
--password-filestringخواندن گذرواژه از فایل.
--claude-channel-mode"auto" | "on" | "off"حالت اعلان Claude.
-v, --verbosebooleanلاگهای تفصیلی روی stderr.
مرز امنیت و اعتماد
پل، مسیریابی را از خود ابداع نمیکند. فقط گفتگوهایی را در معرض دسترس قرار میدهد که Gateway از قبل میداند چگونه مسیریابی کند.
یعنی:
- فهرستهای مجاز فرستنده، جفتسازی، و اعتماد در سطح کانال همچنان متعلق به پیکربندی کانال OpenClaw زیربنایی هستند
messages_sendفقط میتواند از طریق یک مسیر ذخیرهشده موجود پاسخ دهد- وضعیت تأیید فقط برای نشست فعلی پل، زنده/درونحافظهای است
- احراز هویت پل باید از همان کنترلهای توکن یا گذرواژه Gateway استفاده کند که برای هر کلاینت Gateway راهدور دیگر به آن اعتماد میکنید
اگر گفتگویی در conversations_list وجود ندارد، علت معمولاً پیکربندی MCP نیست. علت، نبودن یا ناقص بودن فراداده مسیر در نشست Gateway زیربنایی است.
آزمون
OpenClaw برای این پل یک دودآزمایی Docker قطعی ارائه میکند:
pnpm test:docker:mcp-channelsاین دودآزمایی:
- یک کانتینر Gateway با داده اولیه راهاندازی میکند
- کانتینر دومی را راهاندازی میکند که
openclaw mcp serveرا اجرا میکند - کشف گفتگو، خواندن رونوشت، خواندن فراداده پیوست، رفتار صف رویداد زنده، و مسیریابی ارسال خروجی را راستیآزمایی میکند
- اعلانهای کانال و مجوز به سبک Claude را روی پل MCP واقعی stdio اعتبارسنجی میکند
این سریعترین راه برای اثبات کارکرد پل بدون اتصال یک حساب واقعی Telegram، Discord، یا iMessage به اجرای آزمون است.
برای زمینه گستردهتر آزمون، آزمون را ببینید.
عیبیابی
هیچ گفتگویی برگردانده نمیشود
معمولاً یعنی نشست Gateway از قبل قابل مسیریابی نیست. تأیید کنید که نشست زیربنایی فراداده مسیرِ کانال/ارائهدهنده، گیرنده، و حساب/رشته اختیاری را ذخیره کرده است.
events_poll یا events_wait پیامهای قدیمیتر را از دست میدهد
مورد انتظار است. صف زنده وقتی پل متصل میشود شروع میشود. تاریخچه رونوشت قدیمیتر را با messages_read بخوانید.
اعلانهای Claude نمایش داده نمیشوند
همه این موارد را بررسی کنید:
- کلاینت، نشست MCP stdio را باز نگه داشته است
--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 نمیخوانند.
این تعریفهای ذخیرهشده برای runtimeهایی هستند که OpenClaw بعداً راهاندازی یا پیکربندی میکند، مانند OpenClaw توکار و adapterهای runtime دیگر. OpenClaw تعریفها را بهصورت مرکزی ذخیره میکند تا آن runtimeها نیاز نداشته باشند فهرستهای تکراری سرور MCP خودشان را نگه دارند.
رفتار مهم
- این فرمانها فقط پیکربندی OpenClaw را میخوانند یا مینویسند
status،list،show،doctorبدون--probe،set،configure،tools،logout،reload، وunsetبه سرور MCP هدف وصل نمیشوندloginجریان شبکه OAuth MCP را برای سرور HTTP پیکربندیشده اجرا میکند و اعتبارنامههای local حاصل را ذخیره میکندstatus --verboseبدون اتصال، transport، احراز هویت، timeout، filter، و راهنماییهای فراخوانی موازی ابزار را چاپ میکندdoctorتعریفهای ذخیرهشده را برای مشکلات راهاندازی local مانند فرمانهای stdio گمشده، دایرکتوریهای کاری نامعتبر، فایلهای TLS گمشده، سرورهای غیرفعال، مقادیر حساس header/env بهصورت literal، و مجوز OAuth ناقص بررسی میکندdoctor --probeپس از موفقیت بررسیهای ایستا، همان اثبات اتصال زندهprobeرا اضافه میکندprobeبه سرور انتخابشده یا همه سرورهای پیکربندیشده وصل میشود، ابزارها را فهرست میکند، و قابلیتها/عیبیابیها را گزارش میدهدaddاز flagها یک تعریف میسازد و پیش از ذخیره آن را probe میکند، مگر اینکه--no-probeتنظیم شده باشد یا ابتدا به مجوز OAuth نیاز باشد- adapterهای runtime در زمان اجرا تصمیم میگیرند واقعاً از کدام شکلهای transport پشتیبانی کنند
enabled: falseسرور را ذخیره نگه میدارد اما آن را از کشف runtime توکار کنار میگذاردtimeoutوconnectTimeoutمهلتهای درخواست و اتصال هر سرور را بر حسب ثانیه تنظیم میکنندsupportsParallelToolCalls: trueسرورهایی را علامتگذاری میکند که adapterها میتوانند همزمان فراخوانی کنند- سرورهای HTTP میتوانند از headerهای ایستا، ورود OAuth، کنترل راستیآزمایی TLS، و مسیرهای گواهی/کلید mTLS استفاده کنند
- OpenClaw توکار، ابزارهای MCP پیکربندیشده را در پروفایلهای ابزار معمول
codingوmessagingدر معرض دسترس قرار میدهد؛minimalهمچنان آنها را پنهان میکند، وtools.deny: ["bundle-mcp"]آنها را صریحاً غیرفعال میکند toolFilter.includeوtoolFilter.excludeبرای هر سرور، ابزارهای MCP کشفشده را پیش از تبدیل شدن به ابزارهای OpenClaw فیلتر میکنند- سرورهایی که resources یا prompts را اعلام میکنند، ابزارهای کمکی برای فهرست/خواندن resources و فهرست/واکشی prompts نیز ارائه میکنند؛ آن نامهای کمکی تولیدشده (
resources_list،resources_read،prompts_list،prompts_get) از همان filter include/exclude استفاده میکنند - تغییرات پویا در فهرست ابزار MCP، catalog کششده آن نشست را نامعتبر میکند؛ کشف/استفاده بعدی از سرور تازهسازی میکند
- شکستهای تکراری درخواست/پروتکل ابزار MCP آن سرور را برای مدت کوتاهی متوقف میکند تا یک سرور خراب کل نوبت را مصرف نکند
- runtimeهای MCP بستهبندیشده با دامنه نشست، پس از
mcp.sessionIdleTtlMsمیلیثانیه زمان بیکاری جمعآوری میشوند (پیشفرض ۱۰ دقیقه؛ برای غیرفعال کردن،0تنظیم کنید) و اجراهای توکار یکباره آنها را در پایان اجرا پاکسازی میکنند
adapterهای runtime ممکن است این رجیستری مشترک را به شکلی normalize کنند که کلاینت پاییندستی آنها انتظار دارد. برای مثال، OpenClaw توکار مقادیر transport OpenClaw را مستقیماً مصرف میکند، در حالی که Claude Code و Gemini مقادیر type بومی CLI مانند http، sse، یا stdio را دریافت میکنند.
app-server Codex همچنین یک بلوک اختیاری codex را روی هر سرور رعایت میکند. این
فراداده projection OpenClaw فقط برای رشتههای app-server Codex است؛ نشستهای ACP،
پیکربندی عمومی harness Codex، یا adapterهای runtime دیگر را تغییر نمیدهد.
از codex.agents غیرخالی استفاده کنید تا یک سرور را فقط به idهای عامل مشخص
OpenClaw project کنید. فهرستهای عامل خالی، blank، یا نامعتبر توسط اعتبارسنجی
پیکربندی رد میشوند و بهجای global شدن، توسط مسیر projection runtime حذف میشوند.
از codex.defaultToolsApprovalMode (auto، prompt، یا approve) استفاده کنید
تا default_tools_approval_mode بومی Codex را برای یک سرور مورد اعتماد صادر کنید.
OpenClaw پیش از تحویل پیکربندی بومی mcp_servers به Codex، فراداده codex را حذف میکند.
تعریفهای ذخیرهشده سرور MCP
OpenClaw همچنین یک رجیستری سبک سرور MCP را برای سطحهایی که تعریفهای MCP مدیریتشده توسط OpenClaw میخواهند، در پیکربندی ذخیره میکند.
فرمانها:
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 پیکربندیشده را چاپ میکند.statustransportهای پیکربندیشده را بدون اتصال دستهبندی میکند.--verboseجزئیات راهاندازی، timeout، OAuth، filter، و فراخوانی موازی resolveشده را شامل میشود.doctorبررسیهای ایستا را بدون اتصال انجام میدهد. وقتی فرمان باید وصل شدن سرورهای فعال را نیز راستیآزمایی کند،--probeرا اضافه کنید.probeوصل میشود و تعداد ابزارها، پشتیبانی resources/prompts، پشتیبانی list-change، و عیبیابیها را گزارش میدهد.addflagهای stdio مانند--command،--arg،--env، و--cwd، یا flagهای HTTP مانند--url،--transport،--header،--auth oauth، TLS، timeout، و flagهای انتخاب ابزار را میپذیرد.setانتظار دارد یک مقدار شیء JSON روی خط فرمان دریافت کند.configureفعالسازی، filterهای ابزار، timeoutها، OAuth، TLS، و راهنماییهای فراخوانی موازی ابزار را بدون جایگزین کردن کل تعریف سرور بهروزرسانی میکند.toolsfilterهای ابزار هر سرور را بهروزرسانی میکند. ورودیهای include/exclude نام ابزارهای MCP و globهای ساده*هستند.loginجریان OAuth را برای سرورهای HTTP پیکربندیشده باauth: "oauth"اجرا میکند. اجرای اول یک URL مجوز چاپ میکند؛ پس از تأیید، با--codeدوباره اجرا کنید.logoutاعتبارنامههای OAuth ذخیرهشده را برای سرور نامگذاریشده پاک میکند، بدون اینکه تعریف ذخیرهشده سرور را حذف کند.reloadruntimeهای MCP درونفرایندی کششده را dispose میکند. فرایندهای Gateway یا عامل در فرایندی دیگر همچنان به مسیر reload یا restart خودشان نیاز دارند.- برای سرورهای Streamable HTTP MCP از
transport: "streamable-http"استفاده کنید.openclaw mcp setهمچنین برای سازگاری،type: "http"بومی CLI را به همان شکل پیکربندی canonical normalize میکند. - اگر سرور نامگذاریشده وجود نداشته باشد،
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اگر سرور ابزارهای نوشتنی ارائه میکند که نباید برای عاملهای معمولی در دسترس باشند، از filter ابزار استفاده کنید.
اسکریپت local
openclaw mcp add local-tools \ --command node \ --arg ./dist/mcp-server.js \ --cwd /srv/openclaw-tools \ --env API_BASE=https://internal.exampleopenclaw mcp status --verbosedoctor بررسی میکند که cwd وجود دارد و فرمان از محیط پیکربندیشده resolve میشود.
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 پشتیبانی میکند، از OAuth استفاده کنید. اگر سرور به سرآیندهای ایستا نیاز دارد، از commit کردن توکنهای حاملِ لفظی خودداری کنید.
دسکتاپ/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": false, "path": "/home/user/.openclaw/openclaw.json", "servers": [ { "name": "docs", "ok": false, "issues": [ { "level": "error", "message": "OAuth credentials are not authorized; run openclaw mcp login docs" } ] } ]}وقتی هر سرور فعالِ بررسیشده خطا داشته باشد، doctor --json با کد غیرصفر خارج میشود. هشدارها گزارش میشوند، اما بهتنهایی باعث شکست فرمان نمیشوند.
probe --json
{ "path": "/home/user/.openclaw/openclaw.json", "generatedAt": "2026-05-31T09:00:00.000Z", "servers": { "docs": { "launch": "streamable-http https://mcp.example.com/mcp", "tools": 2, "resources": true, "prompts": false, "listChanged": { "tools": true, "resources": false, "prompts": false } } }, "tools": ["docs__read_page", "docs__search"], "diagnostics": []}probe یک نشست زنده کلاینت MCP باز میکند. از آن برای اثبات دسترسپذیری و قابلیتها استفاده کنید، نه برای ممیزیهای پیکربندی ایستا.
نمونه شکل پیکربندی:
{ "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
از طریق HTTP Server-Sent Events به یک سرور MCP راهدور متصل میشود.
| فیلد | توضیح |
|---|---|
url |
URL از نوع HTTP یا HTTPS برای سرور راهدور (الزامی) |
headers |
نگاشت اختیاری کلید-مقدار از سرآیندهای HTTP (برای مثال توکنهای احراز هویت) |
connectionTimeoutMs |
مهلت اتصال برای هر سرور بر حسب میلیثانیه (اختیاری) |
connectTimeout |
مهلت اتصال برای هر سرور بر حسب ثانیه (اختیاری) |
timeout / requestTimeoutMs |
مهلت درخواست MCP برای هر سرور بر حسب ثانیه یا میلیثانیه |
auth: "oauth" |
از ذخیرهسازی توکن OAuth برای MCP و openclaw mcp login استفاده کنید |
sslVerify |
فقط برای endpointهای خصوصی HTTPS که صراحتاً مورد اعتمادند، روی false تنظیم کنید |
clientCert / clientKey |
مسیرهای گواهی و کلید کلاینت mTLS |
supportsParallelToolCalls |
اشاره میکند که فراخوانیهای همزمان برای این سرور ایمن هستند |
نمونه:
{ "mcp": { "servers": { "remote-tools": { "url": "https://mcp.example.com", "auth": "oauth", "timeout": 20, "headers": { "Authorization": "Bearer <token>" } } } }}مقادیر حساس در url (userinfo) و headers در گزارشها و خروجی وضعیت redact میشوند. openclaw mcp doctor وقتی ورودیهای ظاهراً حساس در headers یا env شامل مقادیر لفظی باشند هشدار میدهد، تا اپراتورها بتوانند آن مقادیر را از پیکربندی commitشده بیرون ببرند.
گردشکار OAuth
OAuth برای سرورهای HTTP MCP است که جریان OAuth مربوط به MCP را اعلام میکنند. وقتی auth: "oauth" برای یک سرور فعال باشد، سرآیندهای ایستای Authorization برای آن سرور نادیده گرفته میشوند.
ذخیره سرور
سرور را با auth: "oauth" و هر فراداده اختیاری OAuth اضافه یا بهروزرسانی کنید.
openclaw mcp set docs '{"url":"https://mcp.example.com/mcp","transport":"streamable-http","auth":"oauth","oauth":{"scope":"docs.read"}}'شروع ورود
login را اجرا کنید تا درخواست مجوز ساخته شود.
openclaw mcp login docsOpenClaw نشانی URL مجوز را چاپ میکند و وضعیت موقت verifier مربوط به OAuth را زیر دایرکتوری وضعیت OpenClaw ذخیره میکند.
پایان با کد
پس از تأیید در مرورگر، کد برگشتی را به OpenClaw بدهید.
openclaw mcp login docs --code abc123بررسی مجوز
از status یا doctor استفاده کنید تا تأیید کنید توکنها حاضر هستند.
openclaw mcp status --verboseopenclaw mcp doctor docs --probeپاک کردن اعتبارنامهها
Logout اعتبارنامههای ذخیرهشده OAuth را حذف میکند، اما تعریف ذخیرهشده سرور را نگه میدارد.
openclaw mcp logout docsاگر ارائهدهنده توکنها را rotate میکند یا وضعیت مجوز گیر میکند، 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" |
از ذخیرهسازی توکن OAuth برای MCP و openclaw mcp login استفاده کنید |
sslVerify |
فقط برای endpointهای خصوصی HTTPS که صراحتاً مورد اعتمادند، روی false تنظیم کنید |
clientCert / clientKey |
مسیرهای گواهی و کلید کلاینت mTLS |
supportsParallelToolCalls |
اشاره میکند که فراخوانیهای همزمان برای این سرور ایمن هستند |
پیکربندی OpenClaw از transport: "streamable-http" بهعنوان املای canonical استفاده میکند. مقدارهای type: "http" مربوط به MCP بومی CLI وقتی از طریق 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 در /mcp دارد. این صفحه شمارش سرورهای پیکربندیشده، خلاصههای فعال/OAuth/فیلتر، ردیفهای انتقال برای هر سرور، کنترلهای فعال/غیرفعال کردن، فرمانهای رایج CLI، و یک ویرایشگر محدود به دامنه برای بخش پیکربندی mcp را نشان میدهد.
از این صفحه برای ویرایشهای اپراتور و inventory سریع استفاده کنید. وقتی به اثبات زنده سرور نیاز دارید، از openclaw mcp doctor --probe یا openclaw mcp probe استفاده کنید.
گردشکار اپراتور:
- رابط کاربری کنترل را باز کنید و MCP را انتخاب کنید.
- کارتهای خلاصه را برای سرورهای کل، فعالشده، OAuth، و پالایششده بررسی کنید.
- از ردیف هر سرور برای نکات انتقال، احراز هویت، پالایه، وقفه زمانی، و فرمان استفاده کنید.
- وقتی میخواهید یک تعریف را نگه دارید اما آن را از کشف در زمان اجرا کنار بگذارید، فعالسازی را تغییر دهید.
- بخش پیکربندی محدودهدار
mcpرا برای تغییرات ساختاری مانند سرورهای جدید، سرآیندها، TLS، فراداده OAuth، یا پالایههای ابزار ویرایش کنید. - ذخیره را برای ماندگار کردن فقط پیکربندی انتخاب کنید، یا ذخیره و انتشار را برای اعمال از مسیر پیکربندی Gateway انتخاب کنید.
- وقتی به اثبات زنده نیاز دارید که سرور ویرایششده شروع میشود و ابزارها را فهرست میکند،
openclaw mcp doctor --probeرا اجرا کنید.
یادداشتها:
- قطعههای فرمان نام سرورها را داخل نقلقول میگذارند تا نامهای غیرمعمول در shell همچنان قابل کپی باشند
- مقادیر شبیه URL نمایشدادهشده، وقتی اعتبارنامههای جاسازیشده داشته باشند، پیش از رندر پنهانسازی میشوند
- این صفحه خودش انتقالهای MCP را شروع نمیکند
- اجراهای فعال بسته به اینکه کدام فرایند مالک کلاینتهای MCP است، ممکن است به
openclaw mcp reload، انتشار پیکربندی Gateway، یا راهاندازی مجدد فرایند نیاز داشته باشند
محدودیتهای فعلی
این صفحه پل را همانطور که امروز ارائه شده مستند میکند.
محدودیتهای فعلی:
- کشف گفتگو به فراداده مسیر نشست موجود Gateway وابسته است
- هیچ پروتکل push عمومی فراتر از آداپتور اختصاصی Claude وجود ندارد
- هنوز ابزارهای ویرایش پیام یا واکنش وجود ندارند
- انتقال HTTP/SSE/streamable-http به یک سرور راهدور واحد وصل میشود؛ هنوز upstream چندگانه وجود ندارد
permissions_list_openفقط تأییدهایی را شامل میشود که هنگام اتصال پل مشاهده شدهاند