Qu’est-ce que MCP
Model Context Protocol (MCP) est une spécification pour la communication standardisée entre clients IA (Claude, Cursor, GitHub Copilot…) et les applications. En implémentant un serveur MCP, votre agent IA peut accéder aux données de votre app Laravel et déclencher des actions.Laravel MCP est un package officiel ajouté sous Laravel 13, disponible sous
laravel/mcp.Installation
routes/ai.php est créé.
Créer un serveur
app/Mcp/Servers :
Enregistrer le serveur
Dansroutes/ai.php, deux modes possibles.
Serveur Web
Accessible via HTTP POST. Idéal pour les clients IA distants ou les intégrations web.Serveur local
Commande Artisan. Pour les clients IA locaux comme Claude Desktop.Tools
Fonctions appelables par le client IA (accès aux données, appel d’API, opérations DB…).Créer un tool
$tools du serveur.
Nom et description
Nom et titre déduits du nom de classe (CurrentWeatherTool → current-weather / Current Weather Tool). Personnalisez avec Name et Title.
Schéma d’entrée
schema() définit les paramètres via le builder de schéma JSON.
Schéma de sortie
outputSchema() structure la réponse, facilitant l’analyse par le client.
Validation
Utilisez la validation Laravel standard danshandle().
Types de réponse
Response::text(), Response::error(), Response::json(), Response::structured().
Notifications et pagination
Pour de longs traitements, envoyez des notifications de progression :Resources
Données/contexte lisible par le client.Créer une resource
$resources.
Prompts
Templates de prompts réutilisables.Créer un prompt
$prompts.
Authentification et autorisation
Un serveur web MCP peut utiliser les middlewares standard.Tests
UtilisezTestServer pour tester votre serveur MCP.
Récapitulatif
Composants principaux
Composants principaux
Web vs Local
Web vs Local
- Web (
Mcp::web) : HTTP POST, clients distants ou intégrations web - Local (
Mcp::local) : Commande Artisan, clients IA locaux (Claude Desktop, etc.)
Bonnes pratiques
Bonnes pratiques
- Une description claire pour chaque tool
- Schémas d’entrée avec
enum/required/defaultpour orienter l’agent - Retournez des
outputSchemastructurés quand pertinent - Utilisez la validation Laravel pour renvoyer des erreurs compréhensibles
- Testez avec
TestServer