Aperçu
En juin 2026, le blog officiel Laravel a annoncé qu’un agent IA construit avec le Laravel AI SDK peut désormais se connecter à un serveur MCP (Model Context Protocol). Jusqu’ici, Laravel MCP proposait de « publier une application Laravel en tant que serveur MCP ». La nouveauté fonctionne dans l’autre sens : une application Laravel peut désormais se comporter comme un client MCP et se connecter à d’autres serveurs MCP.Pour les détails sur le protocole MCP lui-même, consultez la documentation de Laravel MCP. Cette page se concentre sur la fonctionnalité client.
Pourquoi implémenter cela dans Laravel MCP plutôt que dans l’AI SDK ?
MCP est un protocole large : négociation de transport, handshake, flux d’authentification, etc. L’implémenter directement dans l’AI SDK empêcherait de le réutiliser dans des cas où l’on souhaite dialoguer avec un serveur MCP sans agent (jobs de queue, commandes console…). L’équipe Laravel a donc scindé la fonctionnalité en deux.laravel/mcp: le client MCP proprement dit, chargé de la connexion, de la négociation, de l’authentification et des appels d’outils.laravel/ai: une fine couche d’intégration permettant à l’agent d’utiliser ce client depuistools()sans friction.
Se connecter à un serveur MCP
Les deux modes de transport sont pris en charge : serveur STDIO lancé en processus local et serveur distant via HTTP.tools().
Authentification
Jeton Bearer
OAuth
De nombreux serveurs MCP hébergés — comme Nightwatch — exigent OAuth. Enregistrez un client nommé dans un service provider.mcp.oauth.nightwatch.connect ainsi que la route de callback correspondante. Il ne reste qu’à ajouter un bouton de connexion côté Blade.
Intégration à un agent
Le point clé est que la méthodetools() de l’agent reste inchangée : on peut y intégrer des outils MCP.
tools() sont des outils MCP et les enveloppe pour respecter le contrat des outils de l’agent. Le schéma d’entrée MCP est converti en un schéma JSON Laravel ; lorsque le modèle appelle un outil, l’appel distant est effectué, puis le résultat est normalisé avant d’être renvoyé. Les erreurs, les données structurées, le texte brut ou les mises à jour en streaming sont pris en charge automatiquement : aucun détail MCP ne remonte dans le code de l’agent.
Vous pouvez même mélanger plusieurs transports au sein d’un même agent.
Mettre en cache la liste des outils
La récupération de la liste des outils implique un aller-retour avec le serveur. C’est particulièrement coûteux avec les serveurs distants OAuth, et inutile à chaque prompt puisque la liste évolue rarement : c’est un bon candidat au cache.Tests
Même sans serveur MCP actif, vous pouvez tester un agent grâce aux fakes de Laravel AI. Les noms des outils MCP suivent la conventionmcp_tools_<name> : un outil nommé search apparaît donc sous le nom mcp_tools_search.
Périmètre actuel
Cette première version prend en charge à la fois les transports STDIO et Streamable HTTP, ainsi que les outils et les prompts. L’authentification par jeton Bearer et OAuth est disponible. Le périmètre continuera de s’étendre au fil de l’évolution du protocole MCP lui-même.Pages associées
Créer un provider personnalisé pour l'AI SDK
Comment implémenter un provider personnalisé pour un service d’IA non pris en charge nativement.
Introduction à Laravel Nightwatch
Présentation du service de monitoring hébergé Nightwatch utilisé en exemple dans cet article.