Mécanismes de communication de MCPLes transports dans le Model Context Protocol (MCP) fournissent la base de la communication entre les clients et les serveurs. Un transport gère les mécanismes sous-jacents de la manière dont les messages sont envoyés et reçus.MCP utilise JSON-RPC 2.0 comme format de transmission. La couche de transport est responsable de la conversion des messages du protocole MCP au format JSON-RPC pour la transmission et de la conversion des messages JSON-RPC reçus en messages du protocole MCP.Il existe trois types de messages JSON-RPC utilisés :MCP comprend deux implémentations de transport standard :Le transport stdio permet la communication via les flux d'entrée et de sortie standard. Ceci est particulièrement utile pour les intégrations locales et les outils en ligne de commande.Vous créez des outils en ligne de commande
Vous implémentez des intégrations locales
Vous avez besoin d'une communication simple entre les processus
Vous travaillez avec des scripts shell
Le transport SSE permet la diffusion en continu du serveur vers le client avec des requêtes HTTP POST pour la communication du client vers le serveur.Seule la diffusion en continu du serveur vers le client est nécessaire
Vous travaillez avec des réseaux restreints
Vous implémentez des mises à jour simples
MCP facilite l'implémentation de transports personnalisés pour des besoins spécifiques. Toute implémentation de transport doit simplement être conforme à l'interface Transport :Vous pouvez implémenter des transports personnalisés pour :Des protocoles réseau personnalisés
Des canaux de communication spécialisés
L'intégration avec des systèmes existants
L'optimisation des performances
Notez que bien que les serveurs MCP soient souvent implémentés avec asyncio, nous recommandons d'implémenter des interfaces de bas niveau comme les transports avec anyio
pour une compatibilité plus large.Les implémentations de transport doivent gérer divers scénarios d'erreur :2.
Erreurs d'analyse des messages
4.
Délais d'attente du réseau
Exemple de gestion des erreurs :Notez que bien que les serveurs MCP soient souvent implémentés avec asyncio, nous recommandons d'implémenter des interfaces de bas niveau comme les transports avec anyio
pour une compatibilité plus large.Lors de l'implémentation ou de l'utilisation du transport MCP :1.
Gérez correctement le cycle de vie de la connexion
2.
Implémentez une gestion appropriée des erreurs
3.
Nettoyez les ressources à la fermeture de la connexion
4.
Utilisez des délais d'attente appropriés
5.
Validez les messages avant de les envoyer
6.
Enregistrez les événements de transport pour le débogage
7.
Implémentez une logique de reconnexion le cas échéant
8.
Gérez la contre-pression dans les files d'attente de messages
9.
Surveillez l'état de la connexion
10.
Mettez en œuvre des mesures de sécurité appropriées
Lors de l'implémentation du transport :Implémentez des mécanismes d'authentification appropriés
Validez les informations d'identification du client
Utilisez une gestion sécurisée des jetons
Implémentez des contrôles d'autorisation
Utilisez TLS pour le transport réseau
Chiffrez les données sensibles
Validez l'intégrité des messages
Implémentez des limites de taille des messages
Nettoyez les données d'entrée
Implémentez la limitation du débit
Utilisez des délais d'attente appropriés
Gérez les scénarios de déni de service
Surveillez les schémas inhabituels
Implémentez des règles de pare-feu appropriées
Conseils pour déboguer les problèmes de transport :1.
Activez la journalisation de débogage
2.
Surveillez le flux de messages
3.
Vérifiez les états de connexion
4.
Validez les formats de messages
5.
Testez les scénarios d'erreur
6.
Utilisez des outils d'analyse de réseau
7.
Implémentez des contrôles d'intégrité
8.
Surveillez l'utilisation des ressources
10.
Utilisez un suivi des erreurs approprié
Modified at 2025-03-13 05:39:03