CLI commands
MCP
OmeniaClaw mcp ma dwa zadania:
- uruchamiać OmeniaClaw jako serwer MCP za pomocą
OmeniaClaw mcp serve - zarządzać należącymi do OmeniaClaw definicjami wychodzących serwerów MCP za pomocą
list,show,setiunset
Innymi słowy:
serveto OmeniaClaw działający jako serwer MCPlist/show/set/unsetto OmeniaClaw działający jako rejestr po stronie klienta MCP dla innych serwerów MCP, z których jego runtime'y mogą korzystać później
Użyj OmeniaClaw acp, gdy OmeniaClaw ma sam hostować sesję uprzęży kodowania i kierować ten runtime przez ACP.
OmeniaClaw jako serwer MCP
To jest ścieżka OmeniaClaw mcp serve.
Kiedy używać serve
Użyj OmeniaClaw mcp serve, gdy:
- Codex, Claude Code lub inny klient MCP ma komunikować się bezpośrednio z konwersacjami kanałów obsługiwanymi przez OmeniaClaw
- masz już lokalny lub zdalny OmeniaClaw Gateway z routowanymi sesjami
- chcesz jednego serwera MCP, który działa z backendami kanałów OmeniaClaw, zamiast uruchamiać osobne mosty dla każdego kanału
Użyj zamiast tego OmeniaClaw acp, gdy OmeniaClaw ma hostować sam runtime kodowania i utrzymywać sesję agenta wewnątrz OmeniaClaw.
Jak to działa
OmeniaClaw mcp serve uruchamia serwer MCP stdio. Klient MCP jest właścicielem tego procesu. Dopóki klient utrzymuje otwartą sesję stdio, most łączy się z lokalnym lub zdalnym OmeniaClaw Gateway przez WebSocket i udostępnia routowane konwersacje kanałów przez MCP.
Klient uruchamia most
Klient MCP uruchamia OmeniaClaw mcp serve.
Most łączy się z Gateway
Most łączy się z OmeniaClaw Gateway przez WebSocket.
Sesje stają się konwersacjami MCP
Routowane sesje stają się konwersacjami MCP oraz narzędziami transkrypcji/historii.
Kolejka zdarzeń na żywo
Zdarzenia na żywo są kolejkowane w pamięci, gdy most jest połączony.
Opcjonalne wypychanie Claude
Jeśli tryb kanału Claude jest włączony, ta sama sesja może też odbierać powiadomienia push specyficzne dla Claude.
Ważne zachowanie
- stan kolejki na żywo zaczyna się, gdy most się łączy
- starsza historia transkrypcji 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
- jednorazowe punkty wejścia agenta, takie jak
OmeniaClaw agentiOmeniaClaw infer model run, zamykają wszystkie dołączone runtime'y MCP, które otworzą, po ukończeniu odpowiedzi, więc powtarzane uruchomienia skryptowe nie gromadzą procesów potomnych stdio MCP - serwery MCP stdio uruchamiane przez OmeniaClaw (dołączone lub skonfigurowane przez użytkownika) są zamykane jako drzewo procesów przy wyłączaniu, więc podprocesy potomne uruchomione przez serwer nie przetrwają po zakończeniu nadrzędnego klienta stdio
- usunięcie lub zresetowanie sesji usuwa klientów MCP tej sesji przez współdzieloną ścieżkę czyszczenia runtime'u, więc nie pozostają żadne wiszące połączenia stdio powiązane z usuniętą sesją
Wybierz tryb klienta
Używaj tego samego mostu 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_send oraz narzędzi zatwierdzania.
Claude Code
Standardowe narzędzia MCP plus adapter kanału specyficzny dla Claude. Włącz --claude-channel-mode on albo pozostaw domyślne auto.
Co udostępnia serve
Most używa istniejących metadanych tras sesji Gateway, aby udostępniać konwersacje oparte na kanałach. Konwersacja pojawia się, gdy OmeniaClaw ma już stan sesji ze znaną trasą, taką jak:
channel- metadane odbiorcy lub miejsca docelowego
- opcjonalne
accountId - opcjonalne
threadId
Daje to klientom MCP jedno miejsce do tego, aby:
- wyświetlać ostatnie routowane konwersacje
- odczytywać ostatnią historię transkrypcji
- czekać na nowe zdarzenia przychodzące
- wysyłać odpowiedź tą samą trasą
- widzieć żądania zatwierdzenia, które docierają, gdy most jest połączony
Użycie
Lokalny Gateway
OmeniaClaw mcp serveZdalny Gateway (token)
OmeniaClaw mcp serve --url wss://gateway-host:18789 --token-file ~/.OmeniaClaw/gateway.tokenZdalny Gateway (hasło)
OmeniaClaw mcp serve --url wss://gateway-host:18789 --password-file ~/.OmeniaClaw/gateway.passwordSzczegółowo / Claude wyłączony
OmeniaClaw mcp serve --verboseOmeniaClaw mcp serve --claude-channel-mode offNarzędzia mostu
Obecny most udostępnia te narzędzia MCP:
conversations_list
Wyświetla ostatnie konwersacje oparte na sesjach, które mają już metadane trasy w stanie sesji Gateway.
Przydatne filtry:
limitsearchchannelincludeDerivedTitlesincludeLastMessage
conversation_get
Zwraca jedną konwersację według session_key przy użyciu bezpośredniego wyszukiwania sesji Gateway.
messages_read
Odczytuje ostatnie wiadomości transkrypcji dla jednej konwersacji opartej na sesji.
attachments_fetch
Wyodrębnia nietekstowe bloki zawartości wiadomości z jednej wiadomości transkrypcji. To widok metadanych na zawartość transkrypcji, a nie samodzielny trwały magazyn blobów załączników.
events_poll
Odczytuje kolejkowane zdarzenia na żywo od kursora numerycznego.
events_wait
Używa długiego odpytywania, aż nadejdzie następne pasujące kolejkowane zdarzenie albo upłynie limit czasu.
Użyj tego, gdy ogólny klient MCP potrzebuje dostarczania prawie w czasie rzeczywistym bez protokołu push specyficznego dla Claude.
messages_send
Wysyła tekst z powrotem tą samą trasą, która jest już zapisana w sesji.
Obecne zachowanie:
- wymaga istniejącej trasy konwersacji
- używa kanału sesji, odbiorcy, identyfikatora konta i identyfikatora wątku
- wysyła tylko tekst
permissions_list_open
Wyświetla oczekujące żądania zatwierdzenia exec/Plugin, które most zaobserwował od momentu połączenia z Gateway.
permissions_respond
Rozwiązuje 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
Powiadomienia kanału Claude
Most może też udostępniać powiadomienia kanału specyficzne dla Claude. To odpowiednik adaptera kanału Claude Code w OmeniaClaw: standardowe narzędzia MCP pozostają dostępne, ale wiadomości przychodzące na żywo mogą też przychodzić jako powiadomienia MCP specyficzne dla Claude.
off
--claude-channel-mode off: tylko standardowe narzędzia MCP.
on
--claude-channel-mode on: włącza powiadomienia kanału Claude.
auto (domyślnie)
--claude-channel-mode auto: obecna wartość domyślna; takie samo zachowanie mostu jak on.
Gdy tryb kanału Claude jest włączony, 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 odebrane przez MCP są śledzone w pamięci
- jeśli powiązana konwersacja wyśle później
yes abcdelubno abcde, most konwertuje to nanotifications/claude/channel/permission - te powiadomienia istnieją tylko w sesji na żywo; jeśli klient MCP się rozłączy, nie ma celu push
Jest to celowo specyficzne dla klienta. Ogólni klienci MCP powinni polegać na standardowych narzędziach odpytywania.
Konfiguracja klienta MCP
Przykładowa konfiguracja klienta stdio:
{ "mcpServers": { "OmeniaClaw": { "command": "OmeniaClaw", "args": [ "mcp", "serve", "--url", "wss://gateway-host:18789", "--token-file", "/path/to/gateway.token" ] } }}W przypadku większości ogólnych klientów MCP zacznij od standardowej powierzchni narzędzi i ignoruj tryb Claude. Włącz tryb Claude tylko dla klientów, którzy faktycznie rozumieją metody powiadomień specyficzne dla Claude.
Opcje
OmeniaClaw mcp serve obsługuje:
--urlstringURL WebSocket Gateway.
--tokenstringToken Gateway.
--token-filestringOdczytaj token z pliku.
--passwordstringHasło Gateway.
--password-filestringOdczytaj hasło z pliku.
--claude-channel-mode"auto" | "on" | "off"Tryb powiadomień Claude.
-v, --verbosebooleanSzczegółowe logi na stderr.
Bezpieczeństwo i granica zaufania
Most nie wymyśla routingu. Udostępnia tylko konwersacje, które Gateway już umie routować.
Oznacza to, że:
- listy dozwolonych nadawców, parowanie i zaufanie na poziomie kanału nadal należą do bazowej konfiguracji kanału OmeniaClaw
messages_sendmoże odpowiadać tylko przez istniejącą zapisaną trasę- stan zatwierdzeń jest 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 ufałbyś w przypadku każdego innego zdalnego klienta Gateway
Jeśli konwersacji brakuje w conversations_list, zwykłą przyczyną nie jest konfiguracja MCP. Są nią brakujące lub niepełne metadane trasy w bazowej sesji Gateway.
Testowanie
OmeniaClaw dostarcza deterministyczny smoke test Docker dla tego mostu:
pnpm test:docker:mcp-channelsTen smoke test:
- uruchamia wstępnie zasilony kontener Gateway
- uruchamia drugi kontener, który startuje
OmeniaClaw mcp serve - weryfikuje wykrywanie konwersacji, odczyty transkrypcji, odczyty metadanych załączników, zachowanie kolejki zdarzeń na żywo i routing wysyłania wychodzącego
- waliduje powiadomienia kanału i uprawnień w stylu Claude przez rzeczywisty most MCP stdio
To najszybszy sposób, aby udowodnić, że most działa bez podłączania prawdziwego konta Telegram, Discord ani iMessage do przebiegu testowego.
Szerszy kontekst testowania znajdziesz w Testowanie.
Rozwiązywanie problemów
Nie zwrócono żadnych konwersacji
Zwykle oznacza to, że sesja Gateway nie jest jeszcze routowalna. 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
Oczekiwane. Kolejka na żywo zaczyna się, gdy most się łączy. Odczytaj starszą historię transkrypcji za pomocą messages_read.
Powiadomienia Claude się nie pojawiają
Sprawdź wszystkie poniższe elementy:
- klient utrzymał otwartą sesję MCP stdio
--claude-channel-modema wartośćonlubauto- klient faktycznie rozumie metody powiadomień specyficzne dla Claude
- wiadomość przychodząca nastąpiła po połączeniu mostu
Brakuje zatwierdzeń
permissions_list_open pokazuje tylko żądania zatwierdzenia zaobserwowane, gdy most był połączony. Nie jest to API trwałej historii zatwierdzeń.
OmeniaClaw jako rejestr klientów MCP
To jest ścieżka OmeniaClaw mcp list, show, set i unset.
Te polecenia nie udostępniają OmeniaClaw przez MCP. Zarządzają definicjami serwerów MCP należącymi do OmeniaClaw w mcp.servers w konfiguracji OmeniaClaw.
Te zapisane definicje są przeznaczone dla środowisk uruchomieniowych, które OmeniaClaw uruchamia lub konfiguruje później, takich jak osadzony Pi i inne adaptery środowisk uruchomieniowych. OmeniaClaw przechowuje definicje centralnie, aby te środowiska uruchomieniowe nie musiały utrzymywać własnych zduplikowanych list serwerów MCP.
Ważne zachowanie
- te polecenia tylko odczytują lub zapisują konfigurację OmeniaClaw
- nie łączą się z docelowym serwerem MCP
- nie sprawdzają, czy polecenie, URL lub zdalny transport jest w tej chwili osiągalny
- adaptery środowiska uruchomieniowego decydują w czasie wykonania, które kształty transportu faktycznie obsługują
- osadzony Pi udostępnia skonfigurowane narzędzia MCP w zwykłych profilach narzędzi
codingimessaging;minimalnadal je ukrywa, atools.deny: ["bundle-mcp"]jawnie je wyłącza - pakietowe środowiska uruchomieniowe MCP o zakresie sesji są usuwane po
mcp.sessionIdleTtlMsmilisekundach bezczynności (domyślnie 10 minut; ustaw0, aby wyłączyć), a jednorazowe osadzone uruchomienia czyszczą je po zakończeniu działania
Adaptery środowiska uruchomieniowego mogą normalizować ten współdzielony rejestr do kształtu oczekiwanego przez ich klienta podrzędnego. Na przykład osadzony Pi używa wartości transport OmeniaClaw bezpośrednio, podczas gdy Claude Code i Gemini otrzymują natywne dla CLI wartości type, takie jak http, sse lub stdio.
Zapisane definicje serwerów MCP
OmeniaClaw przechowuje też lekki rejestr serwerów MCP w konfiguracji dla powierzchni, które chcą definicji MCP zarządzanych przez OmeniaClaw.
Polecenia:
OmeniaClaw mcp listOmeniaClaw mcp show [name]OmeniaClaw mcp set <name> <json>OmeniaClaw mcp unset <name>
Uwagi:
listsortuje nazwy serwerów.showbez nazwy wypisuje pełny skonfigurowany obiekt serwera MCP.setoczekuje jednej wartości obiektu JSON w wierszu poleceń.- Użyj
transport: "streamable-http"dla serwerów MCP Streamable HTTP.OmeniaClaw mcp setnormalizuje też natywne dla CLItype: "http"do tego samego kanonicznego kształtu konfiguracji w celu zgodności. unsetkończy się niepowodzeniem, jeśli nazwany serwer nie istnieje.
Przykłady:
OmeniaClaw mcp listOmeniaClaw mcp show context7 --jsonOmeniaClaw mcp set context7 '{"command":"uvx","args":["context7-mcp"]}'OmeniaClaw mcp set docs '{"url":"https://mcp.example.com","transport":"streamable-http"}'OmeniaClaw mcp unset context7Przykładowy kształt konfiguracji:
{ "mcp": { "servers": { "context7": { "command": "uvx", "args": ["context7-mcp"] }, "docs": { "url": "https://mcp.example.com", "transport": "streamable-http" } } }}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 |
URL HTTP lub HTTPS zdalnego serwera (wymagane) |
headers |
Opcjonalna mapa klucz-wartość nagłówków HTTP (na przykład tokeny uwierzytelniania) |
connectionTimeoutMs |
Limit czasu połączenia dla serwera w ms (opcjonalne) |
Przykład:
{ "mcp": { "servers": { "remote-tools": { "url": "https://mcp.example.com", "headers": { "Authorization": "Bearer <token>" } } } }}Wartości wrażliwe w url (userinfo) i headers są redagowane w logach i danych statusu.
Transport Streamable HTTP
streamable-http to dodatkowa opcja transportu obok sse i stdio. Używa strumieniowania HTTP do dwukierunkowej komunikacji ze zdalnymi serwerami MCP.
| Pole | Opis |
|---|---|
url |
URL HTTP lub HTTPS zdalnego serwera (wymagane) |
transport |
Ustaw na "streamable-http", aby wybrać ten transport; gdy pominięte, OmeniaClaw używa sse |
headers |
Opcjonalna mapa klucz-wartość nagłówków HTTP (na przykład tokeny uwierzytelniania) |
connectionTimeoutMs |
Limit czasu połączenia dla serwera w ms (opcjonalne) |
Konfiguracja OmeniaClaw używa transport: "streamable-http" jako kanonicznej pisowni. Natywne dla CLI wartości MCP type: "http" są akceptowane przy zapisie przez OmeniaClaw mcp set i naprawiane przez OmeniaClaw doctor --fix w istniejącej konfiguracji, ale transport jest tym, czego osadzony Pi używa bezpośrednio.
Przykład:
{ "mcp": { "servers": { "streaming-tools": { "url": "https://mcp.example.com/stream", "transport": "streamable-http", "connectionTimeoutMs": 10000, "headers": { "Authorization": "Bearer <token>" } } } }}Obecne ograniczenia
Ta strona dokumentuje most w postaci dostarczanej obecnie.
Obecne ograniczenia:
- odnajdywanie konwersacji zależy od istniejących metadanych trasy sesji Gateway
- brak ogólnego protokołu push poza adapterem specyficznym dla Claude
- nie ma jeszcze narzędzi edycji wiadomości ani reakcji
- transport HTTP/SSE/streamable-http łączy się z jednym zdalnym serwerem; nie ma jeszcze multipleksowanego upstreamu
permissions_list_openobejmuje tylko zatwierdzenia zaobserwowane, gdy most jest połączony