Dlaczego CLI, skoro jest MCP?
Oba kanały prowadzą do tych samych danych i sprawdzają te same uprawnienia. Różnią się tym, kto po nie sięga i w jakiej sytuacji. MCP jest naturalny w rozmowie z agentem. CLI jest naturalny tam, gdzie pracuje programista: w terminalu, w skrypcie, w potoku CI.
| Cecha | MCP | CLI monolynx |
|---|---|---|
| Kto wywołuje | agent AI w rozmowie | człowiek, skrypt albo agent z dostępem do terminala |
| Wynik | tekst i pola dla modelu | tabela w terminalu, JSON poza nim |
| Sygnał błędu | komunikat w odpowiedzi narzędzia | kod wyjścia i komunikat na stderr |
| Skrypty i CI | nie | tak, z MONOLYNX_TOKEN |
| Zakres | wszystkie moduły, 125 narzędzi | projekty, tickety, sprinty, wiki, blog, odczyt grafu |
| Wymaga | klienta MCP | Pythona 3.10 lub nowszego |
monolynx i krótki alias mnxAgent i programista mogą sięgać do Monolynx przez serwer MCP albo przez CLI. CLI rozmawia z REST API v2, MCP z serwerem narzędzi. Oba używają tego samego logowania i tej samej warstwy logiki, więc uprawnienia i wyniki są takie same.
flowchart LR
A["Agent AI"] --> M["Serwer MCP"]
A --> C["CLI monolynx"]
D["Programista, skrypt, CI"] --> C
C --> V["REST API v2"]
M --> S["Wspólna logika i uprawnienia"]
V --> S
S --> B["Tickety, sprinty, wiki, blog, graf"]Instalacja i logowanie
CLI jest zwykłą paczką z PyPI o nazwie monolynx-cli. Wymaga Pythona 3.10 lub nowszego.
pipx install monolynx-cli
uv tool install monolynx-cli
brew install monolynx/tap/monolynx- Zainstaluj
Zalecana droga to
pipx, bo instaluje CLI w osobnym środowisku. Sprawdź wynik komendąmonolynx --version. - Zaloguj się
Komenda
monolynx auth loginotwiera przeglądarkę ze stroną zgody Monolynx. Masz 300 sekund na zatwierdzenie. - Sprawdź sesję
Komenda
monolynx auth whoamipokazuje zalogowanego użytkownika i datę wygaśnięcia sesji. - Zapisz projekt
Komenda
monolynx config set profile.default.project sklepzapamiętuje projekt, żeby nie podawać--projectza każdym razem.
$ monolynx auth login
$ monolynx project list
$ monolynx config set profile.default.project sklep
$ monolynx ticket list --status in_progress
$ monolynx ticket get SKL-41Jak wygląda codzienna praca z CLI?
Komendy mają jedną postać: grupa, akcja, argumenty. Opcje globalne, takie jak --project i -o, stoją przed nazwą grupy.
monolynx --project sklep ticket create --title "Poprawka przekierowania logowania" --priority high --sp 2 --ac "Przekierowanie zachowuje parametr next"
monolynx --project sklep ticket update SKL-44 --status in_progress
git log -1 --format=%B | monolynx --project sklep ticket comment add SKL-44 --body -Ostatnia linia pokazuje, po co jest terminal: wynik jednej komendy staje się treścią komentarza w tickecie, bez kopiowania.
| Grupa | Co robi | Przykład |
|---|---|---|
auth |
logowanie, wylogowanie, stan sesji | monolynx auth whoami |
config |
profile, endpoint, projekt domyślny | monolynx config list |
project, member |
projekty i zespół | monolynx project list |
ticket |
tickety, komentarze, etykiety, kryteria akceptacji | monolynx ticket get SKL-41 |
sprint |
sprinty i ich start oraz zamknięcie | monolynx sprint list |
wiki |
strony wiki i wyszukiwanie | monolynx wiki list --tree |
blog |
metadane, lint i publikacja wpisów | monolynx blog lint <page_id> |
graph |
odczyt grafu zależności kodu | monolynx graph stats |
Opcje globalne i zmienne środowiskowe
| Opcja albo zmienna | Znaczenie |
|---|---|
-o, --output |
format wyniku: table, json, yaml, csv |
--project, MONOLYNX_PROJECT |
slug projektu |
--profile, MONOLYNX_PROFILE |
profil konfiguracji, na przykład osobny dla instancji testowej |
MONOLYNX_ENDPOINT |
adres serwera, domyślnie https://monolynx.com |
MONOLYNX_TOKEN |
token API używany zamiast tokenów z profilu |
-q, --quiet |
wycisza komunikaty postępu na stderr |
--debug |
wypisuje żądania i odpowiedzi HTTP z zamaskowanym tokenem |
--timeout |
limit czasu jednego żądania, domyślnie 30 sekund |
Kolejność rozstrzygania jest zawsze ta sama: opcja w komendzie, potem zmienna środowiskowa, potem plik konfiguracji, na końcu wartość domyślna.
Dlaczego CLI pasuje agentom?
Agent z dostępem do terminala dostaje z CLI dwie rzeczy, których potrzebuje do pewnej pracy: przewidywalny format i jednoznaczny wynik.
Pierwsza to JSON. Gdy wyjście nie jest terminalem, CLI samo przełącza format z tabeli na JSON, więc agent czyta pola zamiast zgadywać strukturę tekstu. Druga to kody wyjścia.
| Kod | Znaczenie | Przykład |
|---|---|---|
0 |
sukces | operacja wykonana |
1 |
błąd API albo lokalny | 404, 422, publikacja odrzucona przez lint |
2 |
błąd użycia | nieznana opcja, brak projektu |
3 |
błąd uwierzytelnienia | brak logowania, brak uprawnienia roli |
4 |
błąd sieci | limit czasu, brak połączenia |
Wykres pokazuje zachowanie przy błędach 5xx: odczyty i usunięcia są ponawiane do czterech prób, a zapisy nie, bo powtórzony zapis mógłby utworzyć duplikat. Zapisy są ponawiane tylko wtedy, gdy serwer odpowie kodem 429, czyli prośbą o zwolnienie tempa.
Jak komendy pluginu wybierają kanał
Komendy /monolynx:* nie wymagają od Ciebie decyzji. Każda z nich na starcie sprawdza, czy CLI jest zainstalowane i zalogowane, i wypisuje jedną linię stanu.
TRANSPORT: mode=cli cli=0.4.0 auth=ok latest=0.4.0 update=no install=pipx| Stan | Co robi komenda pluginu |
|---|---|
| CLI zainstalowane i zalogowane | operacje na ticketach, sprintach, wiki, blogu i odczyt grafu idą przez CLI, reszta przez MCP |
| CLI zainstalowane, bez logowania | wszystko przez MCP, jedna podpowiedź: monolynx auth login |
| Brak CLI | wszystko przez MCP, jedna podpowiedź instalacji |
| Dostępna nowsza wersja CLI | praca bez zmian, jedna podpowiedź z komendą aktualizacji |
MONOLYNX_TRANSPORT=mcp |
wszystko przez MCP, bez podpowiedzi |
Czego CLI jeszcze nie obsługuje?
CLI pokrywa operacje, które mają odpowiednik w REST API v2. Pozostałe moduły zostają przy MCP, dlatego w pracy z pluginem potrzebujesz obu kanałów.
| Przez CLI | Zawsze przez MCP |
|---|---|
| tickety, komentarze, kryteria akceptacji, etykiety | Pipelines, czyli zapis przebiegu pracy agentów |
| sprinty, tablica, burndown | czas pracy i raport pracy |
| strony wiki, wyszukiwanie, konfiguracja wiki | narzędzia metody LLM Wiki: indeks, dziennik, audyt, linki zwrotne |
| blog: metadane, lint, publikacja | zapis grafu kodu |
| odczyt grafu kodu | monitoring, błędy 500, heartbeat, rozliczenia, role |
Najczęstsze pytania
Czy CLI i MCP używają tego samego konta?
Tak. Oba logują się kontem Monolynx, przez OAuth albo token API, i oba podlegają tym samym uprawnieniom roli w projekcie.
Jak zaktualizować CLI?
Komenda monolynx version --check pokazuje zainstalowaną i najnowszą wersję oraz gotową komendę aktualizacji, zależną od sposobu instalacji, na przykład pipx upgrade monolynx-cli.
Jak pracować z dwiema instancjami Monolynx?
Użyj profili. Zaloguj się z opcjami --endpoint i --profile, a potem wybieraj profil opcją --profile albo zmienną MONOLYNX_PROFILE.
Gdzie CLI trzyma tokeny?
W pliku config.toml w katalogu konfiguracji użytkownika, z uprawnieniami tylko dla właściciela. Komendy config get i config list zawsze maskują tokeny.
Czy komendy usuwające pytają o potwierdzenie?
Tak. W terminalu pytają, a poza terminalem odmawiają wykonania bez opcji --yes. Skrypt nie usunie więc niczego przez przypadek.
Słownik i następny krok
- CLI
- interfejs wiersza poleceń, tutaj komenda
monolynxi jej aliasmnx - REST API v2
- interfejs HTTP platformy, z którego korzysta CLI i zewnętrzne integracje
- Profil
- nazwany zestaw ustawień CLI: adres serwera, projekt i dane logowania
- Transport
- kanał, którym komenda pluginu wykonuje operację: CLI albo MCP
- Kod wyjścia
- liczba zwracana przez komendę, po której skrypt i agent poznają wynik
Skoro oba kanały działają, pora ich użyć: Sprint z Monolynx krok po kroku pokazuje cały obieg pracy z agentami.
Chcesz zobaczyć, czym zarządza CLI po stronie platformy?
Zobacz moduł Scrum w Monolynx