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 і надає через stdio розмови, підтримувані Gateway. |
| Зберегти сторонні сервери MCP для запусків агентів під керуванням OpenClaw | openclaw mcp add, set, configure, tools, login |
OpenClaw є клієнтським реєстром MCP і згодом передає ці сервери до придатних середовищ виконання. |
| Перевірити збережений сервер без запуску ходу агента | openclaw mcp status, doctor, probe |
status і doctor перевіряють конфігурацію; probe відкриває активне з’єднання MCP і виводить список можливостей. |
| Редагувати конфігурацію MCP у браузері | Control UI /settings/mcp (псевдонім /mcp) |
Сторінка показує перелік, стан увімкнення, зведення OAuth/фільтрів, підказки щодо команд і редактор mcp з обмеженою областю дії. |
| Надати Codex app-server нативний сервер MCP з обмеженою областю дії | mcp.servers.<name>.codex |
Блок 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 запускає сервер MCP через stdio. Цей процес належить клієнту MCP. Поки клієнт утримує сеанс stdio відкритим, міст підключається через WebSocket до локального або віддаленого OpenClaw Gateway і надає маршрутизовані розмови каналів через MCP.
Клієнт запускає міст
Клієнт MCP запускає openclaw mcp serve.
Міст підключається до Gateway
Міст підключається до OpenClaw Gateway через WebSocket.
Сеанси стають розмовами MCP
Маршрутизовані сеанси стають розмовами MCP та інструментами для стенограм і журналу.
Події наживо стають у чергу
Події наживо зберігаються в черзі в пам’яті, доки міст підключений.
Необов’язкові push-сповіщення Claude
Якщо ввімкнено режим каналу Claude, той самий сеанс також може отримувати push-сповіщення, специфічні для Claude.
Важливі особливості
- стан черги подій наживо починається з моменту підключення мосту
- давніша історія стенограм читається за допомогою
messages_read - push-сповіщення 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 serveВіддалений Gateway (токен)
openclaw mcp serve --url wss://gateway-host:18789 --token-file ~/.openclaw/gateway.tokenВіддалений Gateway (пароль)
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 потрібне доставлення майже в реальному часі без протоколу push-сповіщень, специфічного для 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. Це еквівалент адаптера каналу Claude Code в OpenClaw: стандартні інструменти 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 <id>абоno <id>(<id>— це 5-літерний ідентифікатор запиту безl), міст перетворює це наnotifications/claude/channel/permission - ці сповіщення доступні лише протягом активного сеансу; якщо клієнт MCP відключається, ціль для push-сповіщень відсутня
Це навмисно залежить від конкретного клієнта. Універсальні клієнти 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 підтримує:
--urlstringURL-адреса 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 через справжній міст MCP stdio. Маршрутизація вихідного надсилання (messages_send із повторним використанням збереженого маршруту розмови) окремо покривається модульними тестами в src/mcp/channel-server.test.ts.
Це найшвидший спосіб довести працездатність мосту без підключення справжнього облікового запису 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.
Збережені визначення призначені для середовищ виконання, які OpenClaw запускає або налаштовує пізніше, як-от вбудований OpenClaw та інші адаптери середовищ виконання. OpenClaw зберігає визначення централізовано, щоб цим середовищам виконання не доводилося зберігати власні дублікати списків серверів MCP.
Важлива поведінка
- ці команди лише читають або записують конфігурацію OpenClaw
status,list,show,doctorбез--probe,set,configure,tools,logout,reloadтаunsetне підключаються до цільового сервера MCPloginвиконує мережевий потік OAuth MCP для налаштованого HTTP-сервера та зберігає отримані локальні облікові даніstatus --verboseвиводить визначені підказки щодо транспорту, автентифікації, часу очікування, фільтрів і паралельних викликів інструментів без підключенняdoctorперевіряє збережені визначення на локальні проблеми налаштування, як-от відсутні команди stdio, недійсні робочі каталоги, відсутні файли TLS, вимкнені сервери, буквальні конфіденційні значення заголовків/змінних середовища та незавершена авторизація OAuthdoctor --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 безпосередньо споживає значення OpenClaw transport, тоді як Claude Code і Gemini отримують нативні для CLI значення type, як-от http, sse або stdio.
Codex app-server також враховує необов’язковий блок codex на кожному сервері. Це
метадані проєкції OpenClaw лише для гілок Codex app-server; вони не
змінюють сеанси 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"для серверів MCP Streamable HTTP.openclaw mcp setтакож нормалізує нативний для CLItype: "http"до тієї самої канонічної форми конфігурації для сумісності. 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 --verbosedoctor перевіряє, що 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 Server-Sent Events.
| Поле | Опис |
|---|---|
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 docsOpenClaw виводить 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". Значення type: "http", властиві MCP у CLI, приймаються під час збереження через openclaw mcp set і виправляються командою openclaw doctor --fix в наявній конфігурації, але вбудований OpenClaw безпосередньо використовує transport.
Приклад:
{ "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 або фільтрів інструментів. - Виберіть Save, щоб лише зберегти конфігурацію, або Save & Publish, щоб застосувати її через шлях конфігурації Gateway.
- Виконайте
openclaw mcp doctor --probe, коли потрібна перевірка в реальному часі, що відредагований сервер запускається та повертає список інструментів.
Примітки:
- у фрагментах команд імена серверів беруться в лапки, щоб незвичні імена можна було скопіювати в оболонку
- відображувані значення, схожі на URL-адреси, приховуються перед відтворенням, якщо вони містять вбудовані облікові дані
- сторінка сама не запускає транспорти MCP
- активним середовищам виконання може знадобитися
openclaw mcp reload, публікація конфігурації Gateway або перезапуск процесу залежно від того, який процес керує клієнтами MCP
Застосунки MCP
OpenClaw може відтворювати інструменти, які реалізують стабільне розширення MCP Apps. Застосунки потрібно вмикати окремо, оскільки їхній 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містить лише схвалення, зафіксовані під час підключення мосту