Żądanie katalogów roots klienta
Poproś o listę dozwolonych katalogów roboczych.
Żądanie katalogów roots klienta to bezpłatna lekcja MCP Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej MCP Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs MCP Academy zawiera 4 lekcji w sumie.
Poprośmy o nie
Wiedza o istnieniu korzeni to dopiero pierwszy krok. Drugim jest faktyczne poproszenie klienta o jego aktualną listę, aby serwer mógł zdecydować, skąd czytać i gdzie zapisywać dane. 📨
Żądanie inicjuje serwer
Tutaj kierunek się odwraca: serwer wysyła żądanie, a klient odpowiada. Wywoływana metoda to roots/list — służy do pobrania wszystkich korzeni aktualnie udostępnianych przez klienta.
{ "method": "roots/list" }Dostęp do korzeni przez kontekst
W Python SDK nie trzeba tworzyć surowego kodu JSON. Należy użyć obiektu kontekstu żądania przekazanego narzędziu, który opakowuje aktywną sesję z klientem.
async def my_tool(ctx: Context):
...Jedno proste wywołanie
Z tego kontekstu należy wywołać list_roots() i użyć await. SDK wyśle za Ciebie roots/list i zwróci odpowiedź klienta jako wynik o określonym typie.
result = await ctx.session.list_roots()Co wraca w odpowiedzi
Odpowiedź zawiera listę roots. Każdy element ma uri oraz opcjonalną nazwę — dokładnie taką prostą strukturę, jaką widziałeś wcześniej — więc można od razu przejść po niej w pętli.
for root in result.roots:
print(root.uri, root.name)Lista może być pusta
Poprawna odpowiedź może zawierać pustą listę. Oznacza to, że klient obecnie nie udostępnia żadnych korzeni, dlatego należy zaplanować rozsądne rozwiązanie awaryjne, zamiast zakładać, że jakiś folder istnieje.
Najpierw sprawdź możliwości
Wywołanie list_roots ma sens tylko wtedy, gdy klient obsługuje korzenie. Uprzejmy serwer najpierw sprawdza zadeklarowaną możliwość, aby uniknąć błędów na hostach, które jej nie mają.
Pytaj we właściwym momencie
Pobieraj korzenie wtedy, gdy ich potrzebujesz, na przykład na początku działania narzędzia plikowego. Późne pobieranie zapewnia aktualność listy, jeśli użytkownik zdążył otworzyć inny folder.
Zamień korzeń na ścieżkę
Uri korzenia to ciąg znaków, na przykład file:///home/ada. Aby go użyć, należy przeanalizować URI file:// i zamienić je na rzeczywistą ścieżkę systemu plików, zanim otworzy się cokolwiek w jej obrębie.
from urllib.parse import urlparse
path = urlparse(root.uri).pathNasłuchuj zmian
Jeśli klient to obsługuje, może wysłać powiadomienie o zmianie korzeni. Obsłużenie go pozwala ponownie pobrać listę zamiast pracować na nieaktualnym obrazie.
notifications/roots/list_changedŁagodnie obsługuj błędy
Żądanie nadal może się nie powieść albo przekroczyć limit czasu. Owiń wywołanie tak, aby brak odpowiedzi skutkował jasnym komunikatem dla narzędzia, a nie jego awarią. 🛟
Szybkie sprawdzenie
Wybierz właściwy sposób pobierania korzeni klienta w SDK.
Podsumowanie: pobieranie korzeni
Należy użyć await dla list_roots() w sesji, przejść po zwróconych korzeniach, przeanalizować każde uri file:// oraz obsłużyć puste i nieudane odpowiedzi. Gdy korzenie się zmienią, zapytaj ponownie. ✅
Ucz się Python dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 30
- Lekcje
- 120
Często zadawane pytania
Czy lekcja „Żądanie katalogów roots klienta” jest bezpłatna?
Tak — pełny tekst „Żądanie katalogów roots klienta” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu MCP Academy, przejdź na CoddyKit PRO. Kurs MCP Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Żądanie katalogów roots klienta”?
Poproś o listę dozwolonych katalogów roboczych. Ćwiczysz MCP Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć MCP Academy?
Nie wymagamy żadnego doświadczenia. MCP Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Żądanie katalogów roots klienta”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji MCP Academy?
Tak. Każda lekcja MCP Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Co katalogi roots mówią serwerowi
- Żądanie katalogów roots klienta
- Uzgadnianie możliwości
- Respektowanie ograniczeń klienta