Demander les racines du client
Demandez la liste des répertoires de travail autorisés.
Demander les racines du client est une leçon MCP Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage MCP Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours MCP Academy comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
Now Let's Ask for Them
Knowing roots exist is step one. Step two is actually asking the client for its current list so your server can decide where to read or write. 📨
The Server Initiates
Here the direction flips: your server sends the request and the client answers. The method it calls is roots/list, asking for everything the client currently exposes.
{ "method": "roots/list" }Reach Roots via the Context
In the Python SDK you do not craft raw JSON. You use the request context object handed to your tool, which wraps the live session to the client.
async def my_tool(ctx: Context):
...One Friendly Call
From that context you call list_roots() and await it. The SDK sends roots/list for you and returns the client's answer as a typed result.
result = await ctx.session.list_roots()What Comes Back
The reply holds a roots list. Each item has a uri and an optional name, exactly the small shape you saw before, ready for you to loop over.
for root in result.roots:
print(root.uri, root.name)It May Be Empty
A valid answer can be an empty list. That means the client offers no roots right now, so plan a sensible fallback rather than assuming a folder exists.
Check the Capability First
Calling list_roots only makes sense if the client supports roots. A polite server checks the declared capability before asking, avoiding errors on hosts that lack it.
Ask at the Right Time
Fetch roots when you need them, like at the start of a file tool. Asking lazily keeps you current if the user has since opened a different folder.
Turn a Root into a Path
A root's uri is a string like file:///home/ada. To use it, parse the file:// URI into a real filesystem path before opening anything inside it.
from urllib.parse import urlparse
path = urlparse(root.uri).pathListen for Changes
If the client supports it, it can send a notification when roots change. Catching that lets you re-fetch the list instead of working from a stale view.
notifications/roots/list_changedHandle Failures Gently
The request can still fail or time out. Wrap the call so a missing answer leaves your tool with a clear message instead of a crash. 🛟
Quick Check
Pick the right way to get the client's roots in the SDK.
Recap: Asking for Roots
You await list_roots() on the session, loop over the returned roots, parse each file:// uri, and handle empty or failed replies. Re-ask when roots change. ✅
Questions Fréquemment Posées
La leçon « Demander les racines du client » est-elle gratuite ?
Oui — le texte complet de « Demander les racines du client » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours MCP Academy, passe à CoddyKit PRO. Le cours MCP Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Demander les racines du client » ?
Demandez la liste des répertoires de travail autorisés. Tu pratiques MCP Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer MCP Academy ?
Aucune expérience préalable n'est requise. MCP Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Demander les racines du client » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon MCP Academy ?
Oui. Chaque leçon MCP Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Ce que les racines indiquent à un serveur
- Demander les racines du client
- Négocier les fonctionnalités
- Respecter les limites du client