Négocier les fonctionnalités
Vérifiez quelles fonctionnalités sont prises en charge par les deux parties.
Négocier les fonctionnalités est une leçon MCP Academy gratuite sur CoddyKit. Ceci est la leçon 3 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.
Not Everyone Speaks Every Feature
MCP is rich, but no client or server supports it all. So at startup both sides negotiate which features they have, like two devices agreeing on what they can do. 🤝
It Happens at Initialize
This deal is struck during the initialize handshake, the very first exchange. After it, each side knows what the other offers and what is off the table.
Two Capability Bundles
The client announces its clientCapabilities and the server announces its serverCapabilities. Each bundle is just a map of feature flags and small options.
What a Server Declares
A server lists what it provides: things like tools, resources, and prompts. If a key is absent, clients know not to expect that primitive from you.
"capabilities": { "tools": {}, "resources": {} }What a Client Declares
A client lists features it can offer back, such as roots, sampling, and elicitation. That is how your server learns it may even ask for roots at all.
"capabilities": { "roots": {}, "sampling": {} }Sub-flags Add Detail
A capability can hold extra options. For example, roots may carry listChanged: true, meaning the client will notify you when its root set changes.
"roots": { "listChanged": true }Absence Means No
The rule is simple: if a capability is missing, treat the feature as unavailable. Never call something the other side never promised it could do.
Version Comes First
Alongside features, both sides send a protocolVersion. They must agree on a shared version, or the session is rejected before any real work begins.
The SDK Does the Heavy Lifting
You rarely build these maps by hand. The Python SDK fills in your server capabilities from the tools and resources you registered, then exchanges them for you.
Read the Other Side's Flags
After init, you can inspect the client capabilities your session captured. That check is exactly what guards an optional call like list_roots.
caps = ctx.session.client_params.capabilitiesNegotiate Once, Trust Throughout
Capabilities are settled at startup and hold for the session. You can rely on them for the connection's life without re-negotiating on every call.
Quick Check
Recall when and how features get agreed on.
Recap: The Capability Deal
At initialize, client and server swap capability maps and a protocol version. A missing flag means unsupported, and the SDK builds and reads these for you. 🎯
Questions Fréquemment Posées
La leçon « Négocier les fonctionnalités » est-elle gratuite ?
Oui — le texte complet de « Négocier les fonctionnalités » 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 « Négocier les fonctionnalités » ?
Vérifiez quelles fonctionnalités sont prises en charge par les deux parties. 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 3 sur 4.
Combien de temps prend la leçon « Négocier les fonctionnalités » ?
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