mcp
openclaw mcp ma dwa zadania:
- uruchamiać OpenClaw jako serwer MCP za pomocą
openclaw mcp serve - zarządzać wychodzącymi definicjami serwerów MCP należącymi do OpenClaw za pomocą
list,show,setiunset
serveoznacza, że OpenClaw działa jako serwer MCPlist/show/set/unsetoznacza, że OpenClaw działa jako rejestr po stronie klienta MCP dla innych serwerów MCP, z których jego środowiska uruchomieniowe mogą skorzystać później
openclaw acp, gdy OpenClaw ma sam hostować sesję
środowiska programistycznego i kierować to środowisko przez ACP.
OpenClaw jako serwer MCP
To jest ścieżkaopenclaw mcp serve.
Kiedy używać serve
Użyj openclaw mcp serve, gdy:
- Codex, Claude Code lub inny klient MCP ma komunikować się bezpośrednio z rozmowami kanałów obsługiwanych przez OpenClaw
- masz już lokalną lub zdalną bramę OpenClaw Gateway z kierowanymi sesjami
- chcesz mieć jeden serwer MCP, który działa w różnych backendach kanałów OpenClaw, zamiast uruchamiać osobne mosty dla każdego kanału
openclaw acp, gdy OpenClaw ma sam hostować
środowisko uruchomieniowe programowania i utrzymywać sesję agenta wewnątrz OpenClaw.
Jak to działa
openclaw mcp serve uruchamia serwer stdio MCP. Klient MCP zarządza tym
procesem. Dopóki klient utrzymuje otwartą sesję stdio, most łączy się z
lokalną lub zdalną bramą OpenClaw Gateway przez WebSocket i udostępnia
kierowane rozmowy kanałów przez MCP.
Cykl życia:
- klient MCP uruchamia
openclaw mcp serve - most łączy się z Gateway
- kierowane sesje stają się rozmowami MCP oraz narzędziami transkryptu/historii
- zdarzenia na żywo są kolejkowane w pamięci, gdy most jest połączony
- jeśli tryb kanału Claude jest włączony, ta sama sesja może również odbierać powiadomienia push specyficzne dla Claude
- stan kolejki na żywo zaczyna się w momencie połączenia mostu
- starsza historia transkryptu jest odczytywana za pomocą
messages_read - powiadomienia push Claude istnieją tylko wtedy, gdy sesja MCP jest aktywna
- gdy klient się rozłączy, most kończy działanie, a kolejka na żywo znika
Wybór trybu klienta
Tego samego mostu można używać na dwa różne sposoby:- Ogólni klienci MCP: tylko standardowe narzędzia MCP. Używaj
conversations_list,messages_read,events_poll,events_wait,messages_sendoraz narzędzi zatwierdzania. - Claude Code: standardowe narzędzia MCP plus adapter kanału specyficzny dla Claude.
Włącz
--claude-channel-mode onalbo pozostaw domyślneauto.
auto działa tak samo jak on. Wykrywanie możliwości klienta nie jest
jeszcze dostępne.
Co udostępnia serve
Most używa istniejących metadanych tras sesji Gateway, aby udostępniać rozmowy
obsługiwane przez kanały. Rozmowa pojawia się, gdy OpenClaw ma już stan sesji
ze znaną trasą, taką jak:
channel- metadane odbiorcy lub celu
- opcjonalne
accountId - opcjonalne
threadId
- wyświetlać listę ostatnich kierowanych rozmów
- odczytywać ostatnią historię transkryptu
- czekać na nowe zdarzenia przychodzące
- wysyłać odpowiedź z powrotem tą samą trasą
- widzieć żądania zatwierdzenia, które przychodzą, gdy most jest połączony
Użycie
Narzędzia mostu
Obecnie most udostępnia następujące narzędzia MCP:conversations_listconversation_getmessages_readattachments_fetchevents_pollevents_waitmessages_sendpermissions_list_openpermissions_respond
conversations_list
Wyświetla ostatnie rozmowy obsługiwane przez sesje, które mają już metadane tras
w stanie sesji Gateway.
Przydatne filtry:
limitsearchchannelincludeDerivedTitlesincludeLastMessage
conversation_get
Zwraca jedną rozmowę według session_key.
messages_read
Odczytuje ostatnie wiadomości transkryptu dla jednej rozmowy obsługiwanej przez sesję.
attachments_fetch
Wyodrębnia nietekstowe bloki treści wiadomości z jednej wiadomości transkryptu. Jest to
widok metadanych treści transkryptu, a nie niezależny trwały magazyn blobów załączników.
events_poll
Odczytuje zakolejkowane zdarzenia na żywo od wskazanego kursora numerycznego.
events_wait
Wykonuje długie odpytywanie, aż nadejdzie następne pasujące zakolejkowane zdarzenie lub upłynie limit czasu.
Używaj tego, gdy ogólny klient MCP potrzebuje dostarczania zbliżonego do czasu
rzeczywistego bez protokołu push specyficznego dla Claude.
messages_send
Wysyła tekst z powrotem tą samą trasą, która została już zapisana w sesji.
Obecne zachowanie:
- wymaga istniejącej trasy rozmowy
- używa kanału sesji, odbiorcy, identyfikatora konta i identyfikatora wątku sesji
- wysyła tylko tekst
permissions_list_open
Wyświetla oczekujące żądania zatwierdzenia exec/plugin, które most zaobserwował od czasu
połączenia z Gateway.
permissions_respond
Rozstrzyga jedno oczekujące żądanie zatwierdzenia exec/plugin za pomocą:
allow-onceallow-alwaysdeny
Model zdarzeń
Most utrzymuje kolejkę zdarzeń w pamięci, gdy jest połączony. Obecne typy zdarzeń:messageexec_approval_requestedexec_approval_resolvedplugin_approval_requestedplugin_approval_resolvedclaude_permission_request
- kolejka działa tylko na żywo; zaczyna się w momencie uruchomienia mostu MCP
events_pollievents_waitsame z siebie nie odtwarzają starszej historii Gateway- trwały backlog należy odczytywać za pomocą
messages_read
Powiadomienia kanału Claude
Most może również udostępniać powiadomienia kanału specyficzne dla Claude. Jest to odpowiednik adaptera kanału Claude Code w OpenClaw: standardowe narzędzia MCP nadal są dostępne, ale przychodzące wiadomości na żywo mogą również docierać jako powiadomienia MCP specyficzne dla Claude. Flagi:--claude-channel-mode off: tylko standardowe narzędzia MCP--claude-channel-mode on: włącza powiadomienia kanału Claude--claude-channel-mode auto: obecne ustawienie domyślne; takie samo zachowanie mostu jak przyon
notifications/claude/channelnotifications/claude/channel/permission
- przychodzące wiadomości transkryptu
usersą przekazywane jakonotifications/claude/channel - żądania uprawnień Claude otrzymane przez MCP są śledzone w pamięci
- jeśli powiązana rozmowa wyśle później
yes abcdelubno abcde, most przekształca to wnotifications/claude/channel/permission - te powiadomienia działają tylko w sesji na żywo; jeśli klient MCP się rozłączy, nie ma celu dla powiadomień push
Konfiguracja klienta MCP
Przykładowa konfiguracja klienta stdio:Opcje
openclaw mcp serve obsługuje:
--url <url>: adres URL WebSocket bramy Gateway--token <token>: token Gateway--token-file <path>: odczyt tokenu z pliku--password <password>: hasło Gateway--password-file <path>: odczyt hasła z pliku--claude-channel-mode <auto|on|off>: tryb powiadomień Claude-v,--verbose: szczegółowe logi na stderr
--token-file lub --password-file zamiast wpisywania
tajnych danych bezpośrednio w wierszu poleceń.
Bezpieczeństwo i granica zaufania
Most nie tworzy tras samodzielnie. Udostępnia tylko rozmowy, które Gateway już umie kierować. Oznacza to, że:- listy dozwolonych nadawców, parowanie i zaufanie na poziomie kanału nadal należą do bazowej konfiguracji kanałów OpenClaw
messages_sendmoże odpowiadać tylko przez istniejącą zapisaną trasę- stan zatwierdzeń działa 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 zaufałbyś dla każdego innego zdalnego klienta Gateway
conversations_list, zwykle przyczyną nie jest
konfiguracja MCP. Brakuje metadanych tras w bazowej sesji Gateway albo są one niepełne.
Testowanie
OpenClaw dostarcza deterministyczny test smoke Docker dla tego mostu:- uruchamia kontener Gateway z przygotowanymi danymi
- uruchamia drugi kontener, który startuje
openclaw mcp serve - weryfikuje wykrywanie rozmów, odczyty transkryptu, odczyty metadanych załączników, zachowanie kolejki zdarzeń na żywo oraz trasowanie wysyłki wychodzącej
- sprawdza powiadomienia kanału i uprawnień w stylu Claude przez rzeczywisty most stdio MCP
Rozwiązywanie problemów
Nie zwrócono żadnych rozmów
Zwykle oznacza to, że sesja Gateway nie jest jeszcze możliwa do kierowania. Potwierdź, że bazowa sesja ma zapisane metadane trasy kanału/dostawcy, odbiorcy oraz opcjonalnie konta/wątku.events_poll lub events_wait pomija starsze wiadomości
To oczekiwane. Kolejka na żywo zaczyna się w momencie połączenia mostu. Starszą historię
transkryptu odczytuj za pomocą messages_read.
Powiadomienia Claude się nie pojawiają
Sprawdź wszystkie poniższe warunki:- klient utrzymał otwartą sesję stdio MCP
--claude-channel-modema wartośćonlubauto- klient rzeczywiście rozumie metody powiadomień specyficzne dla Claude
- wiadomość przychodząca pojawiła się po połączeniu mostu
Brakuje zatwierdzeń
permissions_list_open pokazuje tylko żądania zatwierdzenia zaobserwowane, gdy most
był połączony. To nie jest trwałe API historii zatwierdzeń.
OpenClaw jako rejestr klienta MCP
To jest ścieżkaopenclaw mcp list, show, set i unset.
Te polecenia nie udostępniają OpenClaw przez MCP. Zarządzają definicjami serwerów MCP
należącymi do OpenClaw w mcp.servers w konfiguracji OpenClaw.
Te zapisane definicje są przeznaczone dla środowisk uruchomieniowych, które OpenClaw uruchamia
lub konfiguruje później, takich jak osadzony Pi i inne adaptery środowiska uruchomieniowego. OpenClaw przechowuje te
definicje centralnie, aby te środowiska nie musiały utrzymywać własnych zduplikowanych
list serwerów MCP.
Ważne zachowanie:
- te polecenia tylko odczytują lub zapisują konfigurację OpenClaw
- nie łączą się z docelowym serwerem MCP
- nie sprawdzają, czy polecenie, URL lub transport zdalny są obecnie osiągalne
- adaptery środowiska uruchomieniowego w czasie wykonania decydują, które kształty transportu faktycznie obsługują
Zapisane definicje serwerów MCP
OpenClaw przechowuje również lekki rejestr serwerów MCP w konfiguracji dla powierzchni, które chcą definicji MCP zarządzanych przez OpenClaw. Polecenia:openclaw mcp listopenclaw mcp show [name]openclaw mcp set <name> <json>openclaw mcp unset <name>
listsortuje nazwy serwerów.showbez nazwy wypisuje pełny skonfigurowany obiekt serwerów MCP.setoczekuje jednej wartości obiektu JSON w wierszu poleceń.unsetkończy się błędem, jeśli serwer o podanej nazwie nie istnieje.
Transport stdio
Uruchamia lokalny proces potomny i komunikuje się przez stdin/stdout.| Pole | Opis |
|---|---|
command | Plik wykonywalny do uruchomienia (wymagane) |
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 HTTP Server-Sent Events.| Pole | Opis |
|---|---|
url | Adres URL HTTP lub HTTPS zdalnego serwera (wymagane) |
headers | Opcjonalna mapa klucz-wartość nagłówków HTTP (na przykład tokeny uwierzytelniające) |
connectionTimeoutMs | Limit czasu połączenia dla serwera w ms (opcjonalne) |
url (userinfo) i headers są ukrywane w logach oraz
wynikach statusu.
Transport Streamable HTTP
streamable-http to dodatkowa opcja transportu obok sse i stdio. Używa przesyłania strumieniowego HTTP do dwukierunkowej komunikacji ze zdalnymi serwerami MCP.
| Pole | Opis |
|---|---|
url | Adres URL HTTP lub HTTPS zdalnego serwera (wymagane) |
transport | Ustaw na "streamable-http", aby wybrać ten transport; gdy zostanie pominięte, OpenClaw używa sse |
headers | Opcjonalna mapa klucz-wartość nagłówków HTTP (na przykład tokeny uwierzytelniające) |
connectionTimeoutMs | Limit czasu połączenia dla serwera w ms (opcjonalne) |
Obecne ograniczenia
Ta strona dokumentuje most w obecnej dostarczanej postaci. Obecne ograniczenia:- wykrywanie rozmów zależy od istniejących metadanych tras sesji Gateway
- brak ogólnego protokołu push poza adapterem specyficznym dla Claude
- brak narzędzi do edycji wiadomości lub reakcji
- transport HTTP/SSE/streamable-http łączy się z jednym zdalnym serwerem; brak jeszcze multipleksowanego upstreamu
permissions_list_openobejmuje tylko zatwierdzenia zaobserwowane, gdy most jest połączony