Model Context Protocol dans ADK-Rust
Le Model Context Protocol (MCP) est la limite entre une application d'IA et une capacité détenue séparément. Un serveur MCP peut publier des outils, des ressources lisibles, des prompt templates et des argument completion. Le client découvre ce catalogue et communique via des protocol methods négociées plutôt qu'une intégration privée.
ADK-Rust 2 utilise l'rmcp 2.2 SDK officiel et les 2025-11-25 types MCP.
Où s'intègre ADK-Rust
McpToolset adapte une connexion client MCP initialisée à ADK-Rust.
McpServerManager possède un registre évolutif de processus enfants stdio locaux et
agrège leurs outils. Les applications qui publient des capacités peuvent construire des serveurs MCP avec adk_tool::mcp::rmcp, qui est la version exacte du SDK utilisée par le
framework.
Choisir la bonne surface
| Vous avez besoin de | Utiliser | Propriété |
|---|---|---|
| Connecter un serveur local connu | McpToolset + TokioChildProcess | L'application démarre le processus enfant |
| Connecter un service MCP distant | McpHttpClientBuilder | Le déploiement distant gère la disponibilité |
| Modifier les définitions de serveur local à l'exécution | McpServerManager | L'application possède un registre local et des processus enfants |
| Publier un serveur MCP | adk_tool::mcp::rmcp | Votre service possède les schemas, l'authorization et les side effects |
| Maintenir une intégration d'échantillonnage obsolète en fonctionnement | mcp-sampling feature | Compatibilité uniquement sous SEP-2577 |
Carte des capacités implémentées
| Capacité | ADK-Rust API | Comportement |
|---|---|---|
| Découverte et appels d'outils | McpToolset, Toolset | Les schémas bruts et les résultats multimodaux sont préservés |
| Filtrage d'outils | with_filter, with_tools | Le modèle ne voit que les outils sélectionnés |
| Ressources et modèles | list_resources, list_resource_templates, read_resource | Lire le contexte via des URI stables |
| Invites | list_prompts, get_prompt | Résoudre les messages réutilisables appartenant au serveur |
| Complétion | complete_prompt_argument, complete_resource_argument | Demander au serveur des suggestions d'arguments |
| Abonnements aux ressources | subscribe_resource, unsubscribe_resource | Les gestionnaires personnalisés reçoivent des notifications de mise à jour |
| Élicitation | ElicitationHandler | Modes formulaire et URL |
| Tâches | McpTaskConfig | Création, interrogation, résultat et annulation de tâches d'appel d'outil négociées |
| HTTP streamable | McpHttpClientBuilder | Délais d'attente, en-têtes, injection d'authentification, récupération de session expirée |
| Registre local dynamique | McpServerManager | Ajouter, mettre à jour, activer, désactiver, supprimer, sauvegarder, surveiller et redémarrer |
| Travaux SDK avancés | adk_tool::mcp::rmcp | Gestionnaires de serveur, transports, notifications et types d'extension |
Chemin de la documentation
- Construire un client MCP
- Gérer les serveurs MCP locaux dynamiquement
- Publier un serveur MCP
- Sécurité et autorisation
- Test et vérification
- Normalisation de schéma consciente du fournisseur
Limites importantes
- La gestion dynamique cible actuellement les processus enfants stdio locaux.
- La surveillance de l'état du gestionnaire détecte une connexion MCP fermée. Cela ne prouve pas que la base de données du serveur ou l'API externe est saine.
autoApproveest préservé pour une configuration compatible ; ADK-Rust ne l'interprète pas comme une autorisation.OAuth2Configeffectue une requête de jeton client-credentials fixe. Ce n'est pas le flux complet de découverte d'autorisation MCP et d'autorisation par navigateur.- L'échantillonnage, les racines et la journalisation sont dépréciés en amont via SEP-2577.
Ces limites font partie du contrat public et doivent être prises en compte dans la conception du déploiement.