CLI commands
MCP
openclaw mcp ma dwa zadania:
- uruchamianie OpenClaw jako serwera MCP za pomocą
openclaw mcp serve - zarządzanie definicjami wychodzących serwerów MCP zarządzanych przez OpenClaw za pomocą
list,show,status,doctor,probe,add,set,configure,tools,login,logout,reloadiunset
serve oznacza OpenClaw działający jako serwer MCP. Pozostałe podpolecenia dotyczą OpenClaw działającego jako rejestr serwerów po stronie klienta MCP, z którego jego środowiska uruchomieniowe mogą później korzystać.
Gdy OpenClaw ma samodzielnie hostować sesję środowiska programistycznego i kierować to środowisko uruchomieniowe przez ACP, należy użyć openclaw acp.
Wybór właściwej ścieżki MCP
| Cel | Użycie | Powód |
|---|---|---|
| Umożliwienie zewnętrznemu klientowi MCP odczytywania i wysyłania konwersacji kanałów OpenClaw | openclaw mcp serve |
OpenClaw jest serwerem MCP i udostępnia przez standardowe wejście i wyjście konwersacje obsługiwane przez Gateway. |
| Zapisywanie serwerów MCP innych firm na potrzeby uruchomień agentów zarządzanych przez OpenClaw | openclaw mcp add, set, configure, tools, login |
OpenClaw jest rejestrem po stronie klienta MCP i później przekazuje te serwery do kwalifikujących się środowisk uruchomieniowych. |
| Sprawdzanie zapisanego serwera bez wykonywania tury agenta | openclaw mcp status, doctor, probe |
status i doctor sprawdzają konfigurację; probe otwiera aktywne połączenie MCP i wyświetla listę możliwości. |
| Edytowanie konfiguracji MCP w przeglądarce | Interfejs sterowania /settings/mcp (alias /mcp) |
Strona przedstawia spis, stan włączenia, podsumowania OAuth i filtrów, podpowiedzi poleceń oraz edytor mcp o ograniczonym zakresie. |
| Udostępnianie serwerowi aplikacji Codex natywnego serwera MCP o ograniczonym zakresie | mcp.servers.<name>.codex |
Blok codex wpływa wyłącznie na projekcję wątków serwera aplikacji Codex i jest usuwany przed przekazaniem natywnej konfiguracji. |
| Uruchamianie sesji środowiska programistycznego hostowanych przez ACP | openclaw acp i Agenci ACP |
Tryb mostu ACP nie obsługuje wstrzykiwania serwerów MCP dla poszczególnych sesji; zamiast tego należy skonfigurować mosty Gateway lub Plugin. |
OpenClaw jako serwer MCP
Jest to ścieżka openclaw mcp serve.
Kiedy używać polecenia serve
Należy użyć openclaw mcp serve, gdy:
- Codex, Claude Code lub inny klient MCP ma komunikować się bezpośrednio z konwersacjami kanałów obsługiwanymi przez OpenClaw
- lokalny lub zdalny OpenClaw Gateway ze skierowanymi sesjami jest już dostępny
- potrzebny jest jeden serwer MCP działający ze wszystkimi backendami kanałów OpenClaw zamiast oddzielnych mostów dla każdego kanału
Zamiast tego należy użyć openclaw acp, gdy OpenClaw ma samodzielnie hostować środowisko programistyczne i przechowywać sesję agenta wewnątrz OpenClaw.
Sposób działania
openclaw mcp serve uruchamia serwer MCP korzystający ze standardowego wejścia i wyjścia. Proces ten należy do klienta MCP. Dopóki klient utrzymuje otwartą sesję standardowego wejścia i wyjścia, most łączy się przez WebSocket z lokalnym lub zdalnym OpenClaw Gateway i udostępnia skierowane konwersacje kanałów przez MCP.
Klient uruchamia most
Klient MCP uruchamia openclaw mcp serve.
Most łączy się z Gateway
Most łączy się przez WebSocket z OpenClaw Gateway.
Sesje stają się konwersacjami MCP
Skierowane sesje stają się konwersacjami MCP oraz narzędziami transkrypcji i historii.
Kolejkowanie zdarzeń na żywo
Zdarzenia na żywo są kolejkowane w pamięci, dopóki most pozostaje połączony.
Opcjonalne powiadomienia push Claude
Jeśli włączono tryb kanału Claude, ta sama sesja może również odbierać powiadomienia push przeznaczone dla Claude.
Ważne zachowanie
- stan kolejki na żywo rozpoczyna się po nawiązaniu połączenia przez most
- starsza historia transkrypcji jest odczytywana za pomocą
messages_read - powiadomienia push Claude istnieją tylko w czasie trwania sesji MCP
- po rozłączeniu klienta most kończy działanie, a kolejka na żywo znika
- jednorazowe punkty wejścia agenta, takie jak
openclaw agentiopenclaw infer model run, zamykają wszystkie otwarte przez siebie dołączone środowiska uruchomieniowe MCP po zakończeniu odpowiedzi, dzięki czemu powtarzane uruchomienia skryptowe nie gromadzą procesów potomnych MCP korzystających ze standardowego wejścia i wyjścia - serwery MCP korzystające ze standardowego wejścia i wyjścia, uruchamiane przez OpenClaw (dołączone lub skonfigurowane przez użytkownika), są podczas zamykania kończone wraz z całym drzewem procesów, dzięki czemu podprocesy uruchomione przez serwer nie pozostają aktywne po zakończeniu nadrzędnego klienta standardowego wejścia i wyjścia
- usunięcie lub zresetowanie sesji zwalnia klientów MCP tej sesji za pośrednictwem wspólnej ścieżki czyszczenia środowiska uruchomieniowego, dzięki czemu nie pozostają żadne aktywne połączenia standardowego wejścia i wyjścia powiązane z usuniętą sesją
Wybór trybu klienta
Ogólni klienci MCP
Tylko standardowe narzędzia MCP. Należy używać conversations_list, messages_read, events_poll, events_wait, messages_send oraz narzędzi zatwierdzania.
Claude Code
Standardowe narzędzia MCP oraz adapter kanału przeznaczony dla Claude. Należy włączyć --claude-channel-mode on lub pozostawić wartość domyślną auto.
Elementy udostępniane przez serve
Most używa istniejących metadanych tras sesji Gateway do udostępniania konwersacji obsługiwanych przez kanały. Konwersacja pojawia się, gdy OpenClaw ma już stan sesji ze znaną trasą, zawierającą na przykład:
channel- metadane odbiorcy lub miejsca docelowego
- opcjonalnie
accountId - opcjonalnie
threadId
Dzięki temu klienci MCP mogą w jednym miejscu:
- wyświetlać listę ostatnich skierowanych konwersacji
- odczytywać ostatnią historię transkrypcji
- oczekiwać na nowe zdarzenia przychodzące
- wysyłać odpowiedź tą samą trasą
- wyświetlać żądania zatwierdzenia przychodzące podczas połączenia mostu
Użycie
Lokalny Gateway
openclaw mcp serveZdalny Gateway (token)
openclaw mcp serve --url wss://gateway-host:18789 --token-file ~/.openclaw/gateway.tokenZdalny Gateway (hasło)
openclaw mcp serve --url wss://gateway-host:18789 --password-file ~/.openclaw/gateway.passwordTryb szczegółowy / Claude wyłączony
openclaw mcp serve --verboseopenclaw mcp serve --claude-channel-mode offNarzędzia mostu
conversations_list
Wyświetla listę ostatnich konwersacji obsługiwanych przez sesje, które mają już metadane tras w stanie sesji Gateway.
Filtry: limit (maks. 500), search, channel, includeDerivedTitles, includeLastMessage.
conversation_get
Zwraca jedną konwersację według session_key, korzystając z bezpośredniego wyszukiwania sesji Gateway.
messages_read
Odczytuje ostatnie wiadomości transkrypcji z jednej konwersacji obsługiwanej przez sesję. Wartość domyślna limit wynosi 20, a maksymalna 200.
attachments_fetch
Wyodrębnia bloki zawartości innej niż tekst z jednej wiadomości transkrypcji. Jest to widok metadanych zawartości transkrypcji, a nie niezależny, trwały magazyn obiektów załączników.
events_poll
Odczytuje zdarzenia na żywo umieszczone w kolejce od pozycji wskazanej kursorem liczbowym. Maksymalna wartość limit wynosi 200.
events_wait
Stosuje długie odpytywanie do czasu nadejścia następnego pasującego zdarzenia w kolejce lub upłynięcia limitu czasu (domyślnie 30s, maksymalnie 300s).
Należy tego użyć, gdy ogólny klient MCP potrzebuje dostarczania niemal w czasie rzeczywistym bez protokołu push przeznaczonego dla Claude.
messages_send
Wysyła tekst tą samą trasą, która jest już zapisana w sesji.
Obecne zachowanie:
- wymaga istniejącej trasy konwersacji
- używa kanału, odbiorcy, identyfikatora konta i identyfikatora wątku sesji
- wysyła wyłącznie tekst
permissions_list_open
Wyświetla oczekujące żądania zatwierdzenia wykonania lub Pluginu zaobserwowane przez most od czasu połączenia z Gateway.
permissions_respond
Rozstrzyga jedno oczekujące żądanie zatwierdzenia wykonania lub Pluginu za pomocą:
allow-onceallow-alwaysdeny
Model zdarzeń
Most utrzymuje kolejkę zdarzeń w pamięci, dopóki pozostaje połączony.
Obecne typy zdarzeń:
messageexec_approval_requestedexec_approval_resolvedplugin_approval_requestedplugin_approval_resolvedclaude_permission_request
Powiadomienia kanału Claude
Most może również udostępniać powiadomienia kanału przeznaczone dla Claude. Jest to odpowiednik adaptera kanału Claude Code w OpenClaw: standardowe narzędzia MCP pozostają dostępne, ale wiadomości przychodzące na żywo mogą również docierać jako powiadomienia MCP przeznaczone dla Claude.
wyłączone
--claude-channel-mode off: tylko standardowe narzędzia MCP.
włączone
--claude-channel-mode on: włącza powiadomienia kanału Claude.
automatycznie (domyślnie)
--claude-channel-mode auto: obecna wartość domyślna; zachowanie mostu jest takie samo jak w przypadku on.
Po włączeniu trybu kanału Claude serwer ogłasza eksperymentalne możliwości Claude i może emitować:
notifications/claude/channelnotifications/claude/channel/permission
Obecne zachowanie mostu:
- przychodzące wiadomości transkrypcji
usersą przekazywane jakonotifications/claude/channel - żądania uprawnień Claude otrzymane przez MCP są śledzone w pamięci
- jeśli właściciel polecenia w połączonej konwersacji wyśle później
yes <id>lubno <id>(<id>to 5-literowy identyfikator żądania, bezl), most przekształca to wnotifications/claude/channel/permission - te powiadomienia są dostępne wyłącznie w aktywnej sesji; po rozłączeniu klienta MCP nie istnieje cel powiadomień push
To zachowanie jest celowo dostosowane do konkretnego klienta. Ogólni klienci MCP powinni korzystać ze standardowych narzędzi odpytywania.
Konfiguracja klienta MCP
Przykładowa konfiguracja klienta korzystającego ze standardowego wejścia i wyjścia:
{ "mcpServers": { "openclaw": { "command": "openclaw", "args": [ "mcp", "serve", "--url", "wss://gateway-host:18789", "--token-file", "/path/to/gateway.token" ] } }}W przypadku większości ogólnych klientów MCP należy zacząć od standardowego zestawu narzędzi i zignorować tryb Claude. Tryb Claude należy włączyć tylko dla klientów, którzy faktycznie obsługują metody powiadomień specyficzne dla Claude.
Opcje
openclaw mcp serve obsługuje:
--urlstringAdres URL WebSocket Gateway. Gdy jest skonfigurowany, wartością domyślną jest gateway.remote.url.
--tokenstringToken Gateway.
--token-filestringOdczytuje token z pliku.
--passwordstringHasło Gateway.
--password-filestringOdczytuje hasło z pliku.
--claude-channel-mode"auto" | "on" | "off"Tryb powiadomień Claude. Wartość domyślna: auto.
-v, --verbosebooleanSzczegółowe dzienniki na stderr.
Granica bezpieczeństwa i zaufania
Most nie tworzy reguł routingu. Udostępnia tylko konwersacje, które Gateway już potrafi przekierować.
Oznacza to, że:
- listy dozwolonych nadawców, parowanie i zaufanie na poziomie kanału nadal należą do bazowej konfiguracji kanału OpenClaw
messages_sendmoże odpowiadać wyłącznie przez istniejącą zapisaną trasę- stan zatwierdzeń jest dostępny tylko na żywo/w pamięci dla bieżącej sesji mostu
- uwierzytelnianie mostu powinno używać tych samych mechanizmów tokenu lub hasła Gateway, którym można zaufać w przypadku każdego innego zdalnego klienta Gateway
Jeśli w conversations_list brakuje konwersacji, zwykle przyczyną nie jest konfiguracja MCP. Powodem są brakujące lub niekompletne metadane trasy w bazowej sesji Gateway.
Testowanie
OpenClaw zawiera deterministyczny test smoke w Dockerze dla tego mostu:
pnpm test:docker:mcp-channelsTen test smoke uruchamia jeden kontener: inicjuje stan konwersacji, uruchamia Gateway, następnie uruchamia openclaw mcp serve jako proces potomny stdio i steruje nim jak klientem MCP. Weryfikuje wykrywanie konwersacji, odczyt transkrypcji, odczyt metadanych załączników, zachowanie kolejki zdarzeń na żywo oraz powiadomienia o kanałach i uprawnieniach w stylu Claude za pośrednictwem rzeczywistego mostu MCP stdio. Routing wysyłania wychodzącego (messages_send ponownie wykorzystujący zapisaną trasę konwersacji) jest oddzielnie objęty testami jednostkowymi w src/mcp/channel-server.test.ts.
Jest to najszybszy sposób na potwierdzenie działania mostu bez podłączania do testu rzeczywistego konta Telegram, Discord lub iMessage.
Szerszy kontekst testowania opisano w sekcji Testowanie.
Rozwiązywanie problemów
Nie zwrócono żadnych konwersacji
Zwykle oznacza to, że sesja Gateway nie obsługuje jeszcze routingu. Należy potwierdzić, że bazowa sesja ma zapisane metadane kanału/dostawcy, odbiorcy oraz opcjonalnie konta/wątku trasy.
events_poll lub events_wait pomija starsze wiadomości
Jest to oczekiwane. Kolejka na żywo zaczyna działać po połączeniu mostu. Starszą historię transkrypcji należy odczytać za pomocą messages_read.
Powiadomienia Claude nie są wyświetlane
Należy sprawdzić wszystkie poniższe kwestie:
- klient utrzymał otwartą sesję MCP stdio
--claude-channel-modema wartośćonlubauto- klient faktycznie obsługuje metody powiadomień specyficzne dla Claude
- wiadomość przychodząca pojawiła się po połączeniu mostu
Brakuje zatwierdzeń
permissions_list_open wyświetla tylko żądania zatwierdzenia zaobserwowane, gdy most był połączony. Nie jest to API trwałej historii zatwierdzeń.
OpenClaw jako rejestr klientów MCP
Jest to ścieżka openclaw mcp list, show, status, doctor, probe, add, set,
configure, tools, login, logout, reload i unset.
Te polecenia nie udostępniają OpenClaw przez MCP. Zarządzają definicjami serwerów MCP obsługiwanymi przez OpenClaw w sekcji mcp.servers konfiguracji OpenClaw. Nie odczytują serwerów mcporter z config/mcporter.json.
Zapisane definicje są przeznaczone dla środowisk uruchomieniowych, które OpenClaw uruchamia lub konfiguruje później, takich jak osadzony OpenClaw i inne adaptery środowiska uruchomieniowego. OpenClaw przechowuje definicje centralnie, dzięki czemu te środowiska nie muszą utrzymywać własnych, zduplikowanych list serwerów MCP.
Ważne zachowanie
- te polecenia wyłącznie odczytują lub zapisują konfigurację OpenClaw
status,list,show,doctorbez--probe,set,configure,tools,logout,reloadiunsetnie łączą się z docelowym serwerem MCPloginwykonuje sieciowy przepływ OAuth MCP dla skonfigurowanego serwera HTTP i zapisuje uzyskane lokalne dane uwierzytelniającestatus --verbosewyświetla wskazówki dotyczące rozpoznanego transportu, uwierzytelniania, limitu czasu, filtrów i równoległych wywołań narzędzi bez nawiązywania połączeniadoctorsprawdza zapisane definicje pod kątem lokalnych problemów z konfiguracją, takich jak brakujące polecenia stdio, nieprawidłowe katalogi robocze, brakujące pliki TLS, wyłączone serwery, jawne wartości poufnych nagłówków/zmiennych środowiskowych i nieukończona autoryzacja OAuthdoctor --probepo pomyślnym przejściu kontroli statycznych dodaje ten sam dowód połączenia na żywo coprobeprobełączy się z wybranym serwerem lub wszystkimi skonfigurowanymi serwerami, wyświetla listę narzędzi oraz raportuje możliwości/diagnostykęaddtworzy definicję na podstawie flag i przeprowadza test przed zapisaniem, chyba że ustawiono--no-probelub najpierw wymagana jest autoryzacja OAuth- adaptery środowiska uruchomieniowego w czasie wykonywania decydują, które kształty transportu faktycznie obsługują
enabled: falsepozostawia serwer zapisany, ale wyklucza go z wykrywania przez osadzone środowisko uruchomieniowetimeouticonnectTimeoutustawiają limity czasu żądań i połączeń dla poszczególnych serwerów w sekundachsupportsParallelToolCalls: trueoznacza serwery, które adaptery mogą wywoływać równolegle- serwery HTTP mogą używać statycznych nagłówków, logowania OAuth, sterowania weryfikacją TLS oraz ścieżek certyfikatu/klucza mTLS
- osadzony OpenClaw udostępnia skonfigurowane narzędzia MCP w zwykłych profilach narzędzi
codingimessaging;minimalnadal je ukrywa, atools.deny: ["bundle-mcp"]jawnie je wyłącza - ustawienia
toolFilter.includeitoolFilter.excludedla poszczególnych serwerów filtrują wykryte narzędzia MCP, zanim staną się narzędziami OpenClaw - serwery, które deklarują zasoby lub monity, udostępniają również narzędzia pomocnicze do wyświetlania/odczytywania zasobów oraz wyświetlania/pobierania monitów; wygenerowane nazwy tych narzędzi pomocniczych (
resources_list,resources_read,prompts_list,prompts_get) korzystają z tego samego filtra uwzględniania/wykluczania - dynamiczne zmiany listy narzędzi MCP unieważniają katalog w pamięci podręcznej dla danej sesji; kolejne wykrycie/użycie odświeża go z serwera
- powtarzające się błędy żądań/protokołu narzędzi MCP na krótko wstrzymują ten serwer, aby jeden uszkodzony serwer nie zużył całej tury
- dołączone środowiska uruchomieniowe MCP o zakresie sesji są usuwane po
mcp.sessionIdleTtlMsmilisekundach bezczynności (domyślnie 10 minut; aby wyłączyć, należy ustawić0), a jednorazowe osadzone uruchomienia czyszczą je po zakończeniu
Adaptery środowiska uruchomieniowego mogą normalizować ten wspólny rejestr do kształtu oczekiwanego przez ich klienta podrzędnego. Na przykład osadzony OpenClaw używa bezpośrednio wartości transport OpenClaw, natomiast Claude Code i Gemini otrzymują natywne dla CLI wartości type, takie jak http, sse lub stdio.
Serwer aplikacji Codex uwzględnia również opcjonalny blok codex na każdym serwerze. Są to
metadane projekcji OpenClaw przeznaczone wyłącznie dla wątków serwera aplikacji Codex; nie
zmieniają sesji ACP, ogólnej konfiguracji środowiska Codex ani innych adapterów środowiska uruchomieniowego.
Niepustego codex.agents należy użyć, aby projektować serwer wyłącznie do określonych
identyfikatorów agentów OpenClaw. Puste, zawierające wyłącznie białe znaki lub nieprawidłowe listy agentów są odrzucane przez
walidację konfiguracji i pomijane przez ścieżkę projekcji środowiska uruchomieniowego, zamiast stawać się
globalne. Należy użyć codex.defaultToolsApprovalMode (auto, prompt lub approve),
aby wyemitować natywne default_tools_approval_mode systemu Codex dla zaufanego serwera.
OpenClaw usuwa metadane codex przed przekazaniem natywnej konfiguracji mcp_servers
do Codex.
Zapisane definicje serwerów MCP
Polecenia:
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>
Uwagi:
listsortuje nazwy serwerów.showbez nazwy wyświetla pełny skonfigurowany obiekt serwera MCP.statusklasyfikuje skonfigurowane transporty bez nawiązywania połączenia.--verboseuwzględnia rozpoznane szczegóły uruchamiania, limitu czasu, OAuth, filtrów i wywołań równoległych.doctorwykonuje kontrole statyczne bez nawiązywania połączenia. Należy dodać--probe, jeśli polecenie ma również sprawdzić, czy włączone serwery nawiązują połączenie.probenawiązuje połączenie i raportuje liczbę narzędzi, obsługę zasobów/monitów, obsługę zmian listy oraz diagnostykę.addprzyjmuje flagi stdio, takie jak--command,--arg,--envi--cwd, albo flagi HTTP, takie jak--url,--transport,--header,--auth oauth, a także flagi TLS, limitu czasu i wyboru narzędzi.setoczekuje w wierszu poleceń jednej wartości będącej obiektem JSON.configureaktualizuje stan włączenia, filtry narzędzi, limity czasu, OAuth, TLS i wskazówki dotyczące równoległych wywołań narzędzi bez zastępowania całej definicji serwera. Należy dodać--probe, aby zweryfikować zaktualizowany serwer przed zapisaniem.toolsaktualizuje filtry narzędzi dla poszczególnych serwerów. Wpisy uwzględniania/wykluczania są nazwami narzędzi MCP i prostymi wzorcami glob*.loginuruchamia przepływ OAuth dla serwerów HTTP skonfigurowanych zauth: "oauth". Pierwsze uruchomienie wyświetla adres URL autoryzacji; po zatwierdzeniu należy ponownie uruchomić polecenie z--code.logoutusuwa zapisane dane uwierzytelniające OAuth dla wskazanego serwera bez usuwania zapisanej definicji serwera.reloadusuwa z pamięci podręcznej środowiska uruchomieniowe MCP działające w procesie wyłącznie dla bieżącego procesu CLI. Procesy Gateway lub agenta działające w innym procesie nadal wymagają własnej ścieżki ponownego wczytania lub ponownego uruchomienia.- Dla serwerów MCP korzystających ze Streamable HTTP należy użyć
transport: "streamable-http".openclaw mcp setnormalizuje również natywne dla CLItype: "http"do tego samego kanonicznego kształtu konfiguracji w celu zapewnienia zgodności. unsetkończy się niepowodzeniem, jeśli wskazany serwer nie istnieje.
Przykłady:
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 context7Typowe konfiguracje serwerów
Te przykłady zapisują tylko definicje serwerów. Następnie uruchom openclaw mcp doctor --probe, aby potwierdzić, że serwer się uruchamia i udostępnia narzędzia.
System plików
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 --probeOgranicz serwery systemu plików do najmniejszego drzewa katalogów, które agent powinien odczytywać lub edytować.
Pamięć
openclaw mcp add memory \ --command npx \ --arg -y \ --arg @modelcontextprotocol/server-memoryopenclaw mcp probe memory --jsonUżyj filtra narzędzi, jeśli serwer udostępnia narzędzia zapisu, które nie powinny być dostępne dla zwykłych agentów.
Skrypt lokalny
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 sprawdza, czy cwd istnieje i czy polecenie jest rozpoznawane w skonfigurowanym środowisku.
Zdalny 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 --probeUżyj OAuth, gdy zdalny serwer go obsługuje. Jeśli serwer wymaga statycznych nagłówków, unikaj zatwierdzania w repozytorium dosłownych tokenów okaziciela.
Pulpit/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 --probeSerwery bezpośredniego sterowania pulpitem dziedziczą uprawnienia uruchamianego procesu. Używaj wąskich filtrów narzędzi i monitów o uprawnienia na poziomie systemu operacyjnego.
Struktury danych wyjściowych JSON
Używaj --json w skryptach i panelach. Zestawy pól mogą z czasem się rozszerzać, dlatego odbiorcy powinni ignorować nieznane klucze.
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": "Poświadczenia OAuth nie są autoryzowane; uruchom openclaw mcp login docs" } ] } ]}doctor --json kończy działanie z niezerowym kodem, gdy którykolwiek włączony i sprawdzony serwer ma problem poziomu error. Problemy warning i info są zgłaszane, ale same w sobie nie powodują niepowodzenia polecenia.
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 otwiera aktywną sesję klienta MCP i bezpośrednio wyświetla jej wynik; w przeciwieństwie do status/doctor dane wyjściowe nie zawierają pola najwyższego poziomu path. Klucze resources i prompts występują tylko wtedy, gdy serwer faktycznie deklaruje daną funkcję (serwer bez monitów pomija klucz prompts, zamiast zgłaszać false). Używaj probe do potwierdzania osiągalności i możliwości, a nie do statycznych audytów konfiguracji.
Przykładowa struktura konfiguracji:
{ "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_*"] } } } }}Transport Stdio
Uruchamia lokalny proces potomny i komunikuje się przez stdin/stdout.
| Pole | Opis |
|---|---|
command |
Plik wykonywalny do uruchomienia (wymagany) |
args |
Tablica argumentów wiersza poleceń |
env |
Dodatkowe zmienne środowiskowe |
cwd / workingDirectory |
Katalog roboczy procesu |
Transport SSE / HTTP
Łączy się ze zdalnym serwerem MCP przez zdarzenia HTTP Server-Sent Events.
| Pole | Opis |
|---|---|
url |
Adres URL HTTP lub HTTPS zdalnego serwera (wymagany) |
headers |
Opcjonalna mapa nagłówków HTTP z parami klucz-wartość (na przykład tokeny uwierzytelniające) |
connectionTimeoutMs |
Limit czasu połączenia dla serwera w ms (opcjonalny) |
connectTimeout |
Limit czasu połączenia dla serwera w sekundach (opcjonalny) |
timeout / requestTimeoutMs |
Limit czasu żądania MCP dla serwera w sekundach lub ms |
auth: "oauth" |
Użyj poświadczeń MCP OAuth zapisanych przez openclaw mcp login |
sslVerify |
Ustaw wartość false tylko dla jawnie zaufanych prywatnych punktów końcowych HTTPS |
clientCert / clientKey |
Ścieżki certyfikatu i klucza klienta mTLS |
supportsParallelToolCalls |
Wskazówka, że równoczesne wywołania są bezpieczne dla tego serwera |
Przykład:
{ "mcp": { "servers": { "remote-tools": { "url": "https://mcp.example.com", "auth": "oauth", "timeout": 20, "headers": { "Authorization": "Bearer <token>" } } } }}Wrażliwe wartości w url (informacjach o użytkowniku) i headers są maskowane w dziennikach i danych wyjściowych stanu. openclaw mcp doctor ostrzega, gdy wpisy headers lub env wyglądające na wrażliwe zawierają wartości literałowe, aby operatorzy mogli usunąć te wartości z konfiguracji zatwierdzanej w repozytorium.
Przepływ pracy OAuth
OAuth jest przeznaczony dla serwerów MCP HTTP, które deklarują obsługę przepływu OAuth MCP. Statyczne nagłówki Authorization są ignorowane dla serwera, gdy włączono auth: "oauth". Poświadczenia zapisane przez openclaw mcp login działają z osadzonym MCP, programami uruchamiającymi CLI i lokalnym serwerem aplikacji Codex.
Dopóki poświadczenia nie będą dostępne, OpenClaw pomija w środowisku uruchomieniowym agenta tylko ten serwer MCP, zamiast powodować niepowodzenie tury agenta. Operator lub agent z dostępem do powłoki może następnie uruchomić openclaw mcp login <name> i użyć serwera w późniejszej turze.
Gdy zdalna usługa MCP jest już obsługiwana przez oddzielny profil uwierzytelniania OpenClaw z możliwością odświeżania, można opcjonalnie ustawić oauth.authProfileId. OpenClaw odświeża jedno ze źródeł poświadczeń przed projekcją środowiska uruchomieniowego i przekazuje klientowi MCP niższego poziomu tylko aktualny token dostępu.
Zapisz serwer
Dodaj lub zaktualizuj serwer za pomocą auth: "oauth" oraz opcjonalnych metadanych OAuth.
openclaw mcp set docs '{"url":"https://mcp.example.com/mcp","transport":"streamable-http","auth":"oauth","oauth":{"scope":"docs.read"}}'W przypadku tokenu okaziciela opartego na profilu uwierzytelniania zapisz powiązanie profilu:
openclaw mcp set docs '{"url":"https://mcp.example.com/mcp","transport":"streamable-http","auth":"oauth","oauth":{"authProfileId":"docs:mcp"}}'Rozpocznij logowanie
Uruchom logowanie, aby utworzyć żądanie autoryzacji.
openclaw mcp login docsOpenClaw wyświetla adres URL autoryzacji i zapisuje tymczasowy stan weryfikatora OAuth w katalogu stanu OpenClaw.
Zakończ przy użyciu kodu
Po zatwierdzeniu w przeglądarce przekaż zwrócony kod z powrotem do OpenClaw.
openclaw mcp login docs --code abc123Sprawdź autoryzację
Użyj polecenia status lub doctor, aby potwierdzić obecność tokenów.
openclaw mcp status --verboseopenclaw mcp doctor docs --probeWyczyść dane uwierzytelniające
Wylogowanie usuwa zapisane dane uwierzytelniające OAuth, ale zachowuje zapisaną definicję serwera.
openclaw mcp logout docsJeśli dostawca rotuje tokeny lub stan autoryzacji się zablokuje, uruchom openclaw mcp logout <name>, a następnie ponownie wykonaj login. Polecenie logout może wyczyścić dane uwierzytelniające zapisanego serwera HTTP nawet po usunięciu auth: "oauth" z konfiguracji, o ile nazwa i adres URL serwera nadal identyfikują wpis w magazynie danych uwierzytelniających.
Transport strumieniowego HTTP
streamable-http jest dodatkową opcją transportu obok sse i stdio. Wykorzystuje strumieniowanie HTTP do dwukierunkowej komunikacji ze zdalnymi serwerami MCP.
| Pole | Opis |
|---|---|
url |
Adres URL HTTP lub HTTPS zdalnego serwera (wymagany) |
transport |
Ustaw na "streamable-http", aby wybrać ten transport; w przypadku pominięcia OpenClaw używa sse |
headers |
Opcjonalna mapa klucz-wartość nagłówków HTTP (na przykład tokenów uwierzytelniających) |
connectionTimeoutMs |
Limit czasu połączenia dla serwera w ms (opcjonalny) |
connectTimeout |
Limit czasu połączenia dla serwera w sekundach (opcjonalny) |
timeout / requestTimeoutMs |
Limit czasu żądania MCP dla serwera w sekundach lub ms |
auth: "oauth" |
Używa danych uwierzytelniających MCP OAuth zapisanych przez openclaw mcp login |
sslVerify |
Ustaw na false tylko w przypadku jawnie zaufanych prywatnych punktów końcowych HTTPS |
clientCert / clientKey |
Ścieżki certyfikatu i klucza klienta mTLS |
supportsParallelToolCalls |
Wskazanie, że równoczesne wywołania są bezpieczne dla tego serwera |
Konfiguracja OpenClaw używa transport: "streamable-http" jako kanonicznej pisowni. Natywne dla CLI wartości MCP type: "http" są akceptowane przy zapisywaniu przez openclaw mcp set i naprawiane przez openclaw doctor --fix w istniejącej konfiguracji, ale osadzony OpenClaw bezpośrednio korzysta z transport.
Przykład:
{ "mcp": { "servers": { "streaming-tools": { "url": "https://mcp.example.com/stream", "transport": "streamable-http", "connectTimeout": 10, "timeout": 30, "headers": { "Authorization": "Bearer <token>" } } } }}Interfejs sterowania
Przeglądarkowy interfejs sterowania zawiera dedykowaną stronę ustawień MCP pod adresem /settings/mcp; poprzednia ścieżka /mcp pozostaje aliasem. Strona wyświetla liczbę skonfigurowanych serwerów, podsumowania włączonych serwerów, OAuth i filtrów, wiersze transportu poszczególnych serwerów, elementy sterujące włączaniem i wyłączaniem, typowe polecenia CLI oraz edytor o zakresie ograniczonym do sekcji konfiguracji mcp.
Strona służy do wprowadzania zmian przez operatora i szybkiego przeglądania zasobów. Gdy wymagane jest potwierdzenie działania serwera na żywo, użyj openclaw mcp doctor --probe lub openclaw mcp probe.
Przepływ pracy operatora:
- Otwórz interfejs sterowania i wybierz MCP.
- Przejrzyj karty podsumowania całkowitej liczby serwerów oraz serwerów włączonych, korzystających z OAuth i filtrowanych.
- W każdym wierszu serwera można znaleźć wskazówki dotyczące transportu, uwierzytelniania, filtra, limitu czasu i poleceń.
- Przełącz stan włączenia, aby zachować definicję, ale wykluczyć ją z wykrywania w środowisku uruchomieniowym.
- Edytuj sekcję konfiguracji
mcpo ograniczonym zakresie, aby wprowadzać zmiany strukturalne, takie jak nowe serwery, nagłówki, TLS, metadane OAuth lub filtry narzędzi. - Wybierz Save, aby tylko zachować konfigurację, lub Save & Publish, aby zastosować ją za pośrednictwem ścieżki konfiguracji Gateway.
- Uruchom
openclaw mcp doctor --probe, gdy potrzebne jest potwierdzenie na żywo, że edytowany serwer uruchamia się i wyświetla listę narzędzi.
Uwagi:
- fragmenty poleceń ujmują nazwy serwerów w cudzysłowy, dzięki czemu nietypowe nazwy można skopiować do powłoki
- wyświetlane wartości przypominające adresy URL są przed renderowaniem redagowane, jeśli zawierają osadzone dane uwierzytelniające
- strona nie uruchamia samodzielnie transportów MCP
- aktywne środowiska uruchomieniowe mogą wymagać
openclaw mcp reload, opublikowania konfiguracji Gateway lub ponownego uruchomienia procesu, zależnie od tego, który proces jest właścicielem klientów MCP
Aplikacje MCP
OpenClaw może renderować narzędzia implementujące stabilne rozszerzenie MCP Apps. Aplikacje są opcjonalne, ponieważ ich kod HTML pochodzi ze skonfigurowanego serwera MCP i może żądać narzędzi lub zasobów widocznych dla aplikacji z tego samego serwera.
Włącz most hosta:
openclaw config set mcp.apps.enabled true --strict-jsonPo zmianie tego ustawienia uruchom ponownie Gateway. Po włączeniu OpenClaw uruchamia przeznaczony wyłącznie dla piaskownicy nasłuch HTTP(S) na porcie Gateway powiększonym o jeden (dla domyślnego Gateway jest to 18790). Interfejs sterowania ładuje aplikacje z tego oddzielnego źródła; nasłuch nigdy nie udostępnia interfejsu sterowania, uwierzytelnionych tras Gateway ani danych użytkownika.
Bezpośrednie połączenia z Gateway wymagają dostępu do obu portów. Jeśli odwrotny serwer proxy lub terminator TLS udostępnia interfejs sterowania, należy przydzielić aplikacjom osobne publiczne źródło i przekazywać tylko to źródło do nasłuchu piaskownicy:
{ mcp: { apps: { enabled: true, sandboxOrigin: "https://mcp-apps.example.com", sandboxPort: 18790, }, },}Źródło piaskownicy musi różnić się od źródła interfejsu sterowania. Nie należy udostępniać w nim innych uwierzytelnionych ani poufnych treści.
Na przykład oficjalne podstawowe demo React można skonfigurować następująco:
{ mcp: { apps: { enabled: true }, servers: { "basic-react": { command: "npx", args: ["-y", "@modelcontextprotocol/server-basic-react", "--stdio"], }, }, },}Zachowanie i granice bezpieczeństwa:
- OpenClaw ogłasza rozszerzenie
io.modelcontextprotocol/uitylko wtedy, gdy aplikacje są włączone. - Renderowane są wyłącznie zasoby
ui://z dokładnym typem MIMEtext/html;profile=mcp-app. - Zasoby interfejsu użytkownika są ograniczone do 2 MiB, umieszczane za dwuetapowym serwerem proxy iframe w dedykowanym źródle zewnętrznym, ładowane do nieprzezroczystego wewnętrznego źródła aplikacji i ograniczane przez CSP wyprowadzoną z metadanych zasobu.
- Narzędzia przeznaczone wyłącznie dla aplikacji (
_meta.ui.visibility: ["app"]) nie trafiają na listy narzędzi modelu. Aplikacje mogą wywoływać wyłącznie narzędzia widoczne dla aplikacji na serwerze, do którego należą, i które przechodzą również efektywne zasady OpenClaw dotyczące narzędzi dla przebiegu, w którym utworzono widok. - Uprawnienia aplikacji powiązane ze źródłem, takie jak dostęp do kamery, mikrofonu i geolokalizacji, nie są przyznawane, gdy wewnętrzne dokumenty aplikacji używają nieprzezroczystych źródeł w celu izolacji między aplikacjami.
- Kod HTML aplikacji, pełne argumenty narzędzi i surowe wyniki znajdują się w ograniczonej, dziesięciominutowej dzierżawie widoku w pamięci i nie są zapisywane na dysku ani kopiowane do metadanych podglądu transkrypcji. Transkrypcja przechowuje tylko ograniczony deskryptor serwera, narzędzia i zasobu powiązany z pierwotnym identyfikatorem wywołania narzędzia. Po ponownym uruchomieniu Gateway interfejs sterowania może zweryfikować ten deskryptor względem transkrypcji uwierzytelnionej sesji i ponownie pobrać zasób
ui://; odtworzone widoki są tylko do odczytu, dopóki nowy przebieg nie ustanowi aktualnych uprawnień do narzędzi. openclaw security auditostrzega, gdy most jest włączony. Gdy nie jest potrzebny, wyłącz go za pomocąopenclaw config set mcp.apps.enabled false --strict-json.
Obecne ograniczenia
Ta strona dokumentuje most w postaci obecnie dostarczanej.
Obecne ograniczenia:
- wykrywanie konwersacji zależy od istniejących metadanych tras sesji Gateway
- brak ogólnego protokołu wypychania poza adapterem przeznaczonym dla Claude
- narzędzia do edycji wiadomości i dodawania reakcji nie są jeszcze dostępne
- transport HTTP/SSE/streamable-http łączy się z jednym zdalnym serwerem; multipleksowane połączenie nadrzędne nie jest jeszcze dostępne
permissions_list_openobejmuje tylko zatwierdzenia zaobserwowane, gdy most jest połączony