Jeśli Twój agent ma powłokę, daj mu wiersz poleceń
MCP czy CLI dla agentów AI sprowadza się do jednego pytania: czy agent ma powłokę? Jeśli tak, jak w Claude Code, Codex czy Cursor, dobrze zbudowany wiersz poleceń jest zwykle lepszym interfejsem. Ładuje tylko to, czego agent potrzebuje, łączy się ze wszystkim innym w powłoce, a każde polecenie możesz uruchomić sam. Jeśli agent nie ma powłoki, jak w aplikacji czatu, drogą jest MCP. Dostęp agentów do Time Momentum zbudowaliśmy jako wiersz poleceń, tm, i zdecydowaliśmy się nie budować serwera MCP. Ten poradnik wyjaśnia dlaczego i kiedy ten wybór byłby błędny.
Czym jest MCP
Model Context Protocol to, według własnego opisu, „otwarty standard łączenia aplikacji AI z systemami zewnętrznymi” (modelcontextprotocol.io). Projekt porównuje go do portu USB-C: jedna wtyczka do wielu urządzeń.
Aktualna specyfikacja, wersja 2026-07-28, definiuje hosty (aplikacja AI), klientów (konektory w jej wnętrzu) i serwery (usługi dostarczające dane i narzędzia), komunikujące się przez JSON-RPC. Serwer może oferować zasoby, prompty i narzędzia. Narzędzia to to, czego agenci używają najczęściej: klient pyta serwer o ich listę przez tools/list, a każde narzędzie ma nazwę, opis i JSON Schema dla danych wejściowych.
Projektowanie CLI dla agentów AI: co sprawia, że wiersz poleceń jest przyjazny agentom
Wiersz poleceń nie jest automatycznie dobry dla agentów. Potrzebuje kilku cech, o które ludzie rzadko proszą:
- Opisuje sam siebie jako dane:
--helpi pełny katalog poleceń jako JSON, żeby agent nigdy nie musiał zgadywać flag. - Wynik to kontrakt: z
--jsondokładnie jeden dokument JSON na stdout, błędy jako JSON na stderr. - Kody wyjścia mają znaczenie: popraw wywołanie, zapytaj człowieka, poczekaj, spróbuj ponownie. Jedna liczba mówi agentowi, co zrobić dalej.
- Nigdy nie czeka na dane, których agent nie może podać: bez terminala nic nie pyta. Kroki destrukcyjne wymagają wyraźnej flagi, takiej jak
--yes. - Potrafi pokazać zamiast działać:
--dry-runwypisuje dokładne żądanie bez wysyłania go. - Sekrety nie trafiają do wyniku, także z
--verbosei--dry-run, bo wszystko, co widzi agent, trafia do jego kontekstu. - Łatwo go zainstalować wszędzie, gdzie działa agent, najlepiej bez drzewa zależności.
MCP czy CLI dla agentów AI w skrócie
| Pytanie | Serwer MCP | CLI przyjazne agentom |
|---|---|---|
| Kontekst zużyty przed pierwszym wywołaniem | częściowoCzęsto wszystkie definicje | Tylko na żądanie |
| Wyniki łączą się bez udziału modelu | –Przez model | Potoki, jq, skrypty |
| Możesz powtórzyć to, co zrobił agent | częściowoInspector | To samo polecenie |
| Wersję można przypiąć | częściowoDecyduje serwer | |
| Działa w agentach z powłoką | częściowoJeśli klient to obsługuje | |
| Działa w aplikacjach czatu bez powłoki | – | |
| Standardowe wykrywanie i logowanie | tools/list, OAuth | –Własna konwencja |
Stan na: 10 paź 2026
Kontekst: definicje z góry albo na żądanie
Zespół inżynierski Anthropic opisał problem w listopadzie 2025 roku: „Większość klientów MCP ładuje wszystkie definicje narzędzi z góry bezpośrednio do kontekstu”, a te opisy wydłużają czas odpowiedzi i zwiększają koszt (Code execution with MCP). Ich zalecenie: pozwolić modelowi czytać definicje narzędzi na żądanie.
Uczciwie trzeba dodać, że klienci nadrabiają. Claude Code domyślnie odkłada narzędzia MCP: na starcie sesji ładują się tylko nazwy narzędzi i instrukcje serwerów, a pełna definicja przychodzi, gdy Claude szuka narzędzia (MCP tool search). Inni klienci mogą nadal ładować wszystko.
CLI dostaje ładowanie na żądanie za darmo, bo nic nie jest w kontekście, dopóki agent nie uruchomi polecenia. Zmierzyliśmy, ile jest do załadowania w tm 0.3.0: pełny katalog (tm schema --json) ma 377 203 znaki, przegląd wszystkich grup poleceń (tm --json) 32 110, grupa faktur 104 009. Pojedyncze polecenie ma medianę 934 znaków przy 157 poleceniach. Metoda: npx -y @time-momentum/cli@0.3.0 schema --json | wc -c i to samo dla pozostałych wywołań, 10 paź 2026.
Katalog nie jest mały. I o to chodzi: agent decyduje, co załadować, zwykle jedną grupę albo jedno polecenie.
Składanie poleceń: potoki, jq i skrypty
W MCP „każdy wynik pośredni musi przejść przez model”, jak ujmuje to ten sam artykuł Anthropic. Lista 500 faktur, które agent ma tylko policzyć, i tak trafia do jego kontekstu.
W powłoce agent filtruje, zanim przeczyta. tm payments outstanding --json | jq '[.data[].summary.outstanding_micros] | add / 1000000' zwraca jedną liczbę: sumę należności w euro. tm invoices list --all --json | jq '[.data[] | select(.status == "draft")] | length' liczy szkice na wszystkich stronach. Te same linie działają w cron jobie albo skrypcie powłoki, bez żadnego agenta.
Uwierzytelnianie: OAuth czy klucz API
W MCP autoryzacja jest opcjonalna. Zdalne serwery przez HTTP powinny stosować przepływ OAuth 2.1 ze specyfikacji; lokalne serwery przez stdio biorą dane logowania ze środowiska. W aplikacji czatu, w której każdy loguje się własnym kontem, OAuth jest wygodniejszy.
CLI zwykle pracuje z kluczem API. To proste, ale wymaga ostrożności: klucz nigdy nie może pojawić się w tym, co czyta agent. tm trzyma go w lokalnym pliku z trybem 600 albo w zmiennej środowiskowej, wymienia klucz zapisu na token ważny przez godzinę i nigdy nie wypisuje klucza, nawet z --verbose czy --dry-run. Token z tej wymiany nie może tworzyć nowych kluczy ani usuwać konta.
Testowalność: próbne uruchomienie i to samo polecenie dla Ciebie
Każde wywołanie, które agent wykonuje przez CLI, to linia, którą możesz skopiować, przeczytać i uruchomić sam. --dry-run idzie krok dalej i pokazuje metodę, URL i treść bez wysyłania czegokolwiek. Dzięki temu pracę agenta można sprawdzić, zanim się wydarzy, co ma największe znaczenie przy fakturach.
MCP też ma do tego narzędzia, np. MCP Inspector dla programistów. Ale wywołania narzędzia nie wpiszesz we własnym terminalu, żeby zobaczyć, co się stanie.
Wersjonowanie: przypnij albo pozwól się zmieniać
CLI to pakiet z wersją. Możesz go przypiąć (npx -y @time-momentum/cli@0.3.0), cofnąć (tm update --to <version>) i wiedzieć, że skrypt, który działał wczoraj, działa dziś. Gdy API zmieni się tak, że stara wersja działałaby błędnie, serwer odrzuca tę wersję z jasnym błędem i poleceniem aktualizacji.
MCP wersjonuje protokół datą i pozwala serwerom ogłaszać zmiany listy narzędzi w trakcie działania. Zdalny serwer sam decyduje, jakie narzędzia dostajesz dziś. To wygodne, dopóki nic się nie psuje.
Zasięg: każdy agent z powłoką
Claude Code, Codex, Cursor i większość agentów programistycznych potrafi uruchamiać polecenia powłoki. CLI działa we wszystkich bez potrzeby obsługi czegokolwiek innego przez klienta, także w sandboksach i CI.
Kiedy MCP jest lepszym wyborem
- Klienci bez powłoki. claude.ai, Claude Desktop i aplikacje mobilne Claude docierają do zewnętrznych narzędzi przez konektory, które są serwerami MCP (dokumentacja Claude). Tam CLI nie pomoże.
- Standardowe wykrywanie. Każdy serwer MCP odpowiada na
tools/listw ten sam sposób, a oficjalny MCP Registry wymienia serwery. Każde CLI dokumentuje się na swój sposób. - Logowanie per użytkownik. OAuth pozwala każdemu podłączyć własne konto bez obsługi klucza.
- Użytkownicy nietechniczni. Dodanie konektora w aplikacji czatu jest łatwiejsze niż instalacja wiersza poleceń.
Jak robi to Time Momentum
Agenci naszych użytkowników już pracują w powłoce, nad projektami klientów. Dlatego Time Momentum nie ma serwera MCP. Ma tm, wiersz poleceń, który obsługuje cały produkt: nakład pracy, klientów, zlecenia, projekty, faktury i faktury elektroniczne, płatności, zestawienia godzin i rentowność.
tm nie ma zależności w czasie działania. Każda operacja REST API przeznaczona dla wiersza poleceń ma dokładnie jedno polecenie, 143 operacje w wersji 0.3.0, a test wymusza to przy każdej zmianie API. tm skill zwraca instrukcję użycia zgodną z zainstalowaną wersją. W Claude Code tm skill --install dodaje krótki skill, który do niej prowadzi, a Time Momentum jest też dostępne jako plugin do Claude Code.
Wystawienie albo anulowanie faktury i usuwanie wymagają wyraźnego --yes. Bez terminala tm w przeciwnym razie się zatrzymuje.
Więcej na ten temat
Dla agentów AI
Co Twój agent może zrobić w Time Momentum przez
Dla agentów AItm, model bezpieczeństwa i konfiguracja.Oprogramowanie biznesowe dla agentów AI
Jak sprawdzić, czy oprogramowanie pozwala agentowi bezpiecznie pracować z klientami, fakturami i płatnościami.
Czytaj poradnik
Pozwól agentowi prowadzić rozliczenia z powłoki
- 30 dni Pro
- Bez karty kredytowej
- Potem dalej w planie Free
Najczęstsze pytania
Co jest lepsze dla agentów AI: CLI czy serwer MCP?
Dla agentów z powłoką, takich jak Claude Code, Codex czy Cursor, dobrze zbudowane CLI jest zwykle lepsze: ładuje tylko to, o co prosi agent, wyniki można przefiltrować potokami, zanim przeczyta je model, a każde wywołanie możesz powtórzyć sam. W aplikacjach czatu bez powłoki MCP jest jedyną opcją.
Czy definicje narzędzi MCP zajmują okno kontekstu?
W wielu klientach tak: Anthropic napisał w listopadzie 2025 roku, że większość klientów MCP ładuje wszystkie definicje narzędzi z góry. Claude Code domyślnie je odkłada i na starcie ładuje tylko nazwy narzędzi.
Co sprawia, że CLI jest przyjazne agentom?
Czytelny dla maszyny katalog poleceń, dokładnie jeden dokument JSON na wywołanie, błędy jako JSON, znaczące kody wyjścia, brak interaktywnych pytań bez terminala, wyraźna flaga potwierdzenia dla kroków destrukcyjnych, próbne uruchomienie i brak sekretów w wyniku.
Czy Time Momentum ma serwer MCP?
Nie. Agenci korzystają z wiersza poleceń tm, który obejmuje każdą przeznaczoną dla niego operację API. Claude Code dostaje dodatkowo skill i plugin.