Le SDK Python du protocole Model Context Protocol (MCP) a publié la version 2.1.0, introduisant le support des contenus multimodaux et simplifiant la configuration des clients. Les principales mises à jour incluent la possibilité de passer `StdioServerParameters` directement au constructeur `Client` et d'accepter `Image` et `Audio` dans les messages de prompt.

  • Les messages de prompt acceptent désormais `Image` et `Audio`, et les fonctions de prompt peuvent renvoyer des blocs de contenu bruts.
  • La classe `Client` accepte `StdioServerParameters` directement, permettant une instanciation telle que `Client(StdioServerParameters(command="uv", args=["run", "server.py"]))`.
  • La limite de corps de requête de 4 MiB est désormais appliquée au transport SSE et aux points de terminaison OAuth via `max_request_body_size`.
  • Les exceptions des gestionnaires sont journalisées au niveau ERROR avec les traces, tandis que les clients voient des messages d'erreur génériques ; lever `ToolError` ou `ResourceError` préserve les détails pour le modèle.
  • Les annotations de retour des outils pour les blocs de contenu n'annoncent plus par défaut `outputSchema` ou ne renvoient plus `structuredContent` ; `structured_output=True` restaure le comportement précédent.
  • Les résultats d'outils TypedDict omettent les clés `NotRequired` au lieu de les sérialiser en `null`, corrigeant les échecs d'enregistrement sur Python 3.10.

Ces modifications améliorent la sécurité en limitant les tailles de requête sur tous les transports, améliorent l'expérience développeur avec une configuration client plus simple et assurent une meilleure compatibilité avec les sessions MCP antérieures à 2026.