Carnet · Article
TutorielsLaravel 12 + MCP : Connecter vos applications à Claude et GPT-4
Laravel 12 intègre officiellement le Model Context Protocol (MCP). Apprenez à exposer des tools, resources et prompts pour connecter vos applications à Claude, ChatGPT et Cursor.
[IMAGE HERO À INSÉRER ICI]
Qu'est-ce que le MCP ?
Le Model Context Protocol est un protocole ouvert développé par Anthropic qui standardise la communication entre les applications et les assistants IA. Pensez-y comme une API conçue spécifiquement pour les agents IA — elle leur permet de :
- Exécuter des fonctions (tools) avec validation des entrées
- Accéder à des ressources (fichiers, APIs, bases de données)
- Recevoir des prompts structurés qui guident leur comportement
Avec plus d'un milliard d'utilisateurs envoyant plus de 20 milliards de messages aux applications IA chaque semaine, MCP devient un point d'entrée incontournable pour vos applications — au même titre que le web et les APIs REST.
Installation de Laravel MCP
L'installation est simple via Composer :
composer require laravel/mcp
Puis publiez la configuration :
php artisan vendor:publish --tag=mcp-config
Exposer des Tools à l'IA
Les tools permettent aux agents IA d'agir dans votre application. Tout ce que vous pouvez coder peut être exposé comme un tool — de la création de facture au démarrage d'un robot aspirateur.
Créez vos tools dans routes/mcp.php :
<?php
use Illuminate\Support\Facades\Mcp;
use App\Models\Task;
use App\Models\Invoice;
// Tool simple : validation d'email
Mcp::tool(function (string $email): array {
$isValid = filter_var($email, FILTER_VALIDATE_EMAIL) !== false;
return [
'email' => $email,
'is_valid' => $isValid,
'domain' => $isValid ? substr(strrchr($email, "@"), 1) : null,
];
})->name('validate_email')
->description('Valide une adresse email et extrait le domaine');
// Tool métier : créer une tâche
Mcp::tool(function (string $title, string $description, ?string $due_date = null): array {
$task = Task::create([
'title' => $title,
'description' => $description,
'due_date' => $due_date ? Carbon::parse($due_date) : null,
'status' => 'pending',
]);
return [
'success' => true,
'task_id' => $task->id,
'message' => "Tâche '{$title}' créée avec succès",
];
})->name('create_task')
->description('Crée une nouvelle tâche dans le système');
// Tool de lecture : lister les factures impayées
Mcp::tool(function (): array {
$invoices = Invoice::where('status', 'unpaid')
->with('client')
->get()
->map(fn($inv) => [
'id' => $inv->id,
'client' => $inv->client->name,
'amount' => $inv->total_amount,
'due_date' => $inv->due_date->format('Y-m-d'),
]);
return ['unpaid_invoices' => $invoices];
})->name('list_unpaid_invoices')
->description('Liste toutes les factures impayées avec leurs détails');
[IMAGE ARCHITECTURE À INSÉRER ICI]
Exposer des Resources
Les resources permettent à l'IA de consulter des données structurées de votre application :
// Resource : statistiques du tableau de bord
Mcp::resource(function (): array {
return [
'total_clients' => Client::count(),
'active_projects' => Project::where('status', 'active')->count(),
'pending_tasks' => Task::where('status', 'pending')->count(),
'unpaid_invoices_total' => Invoice::where('status', 'unpaid')->sum('total_amount'),
'generated_at' => now()->toIso8601String(),
];
})->name('dashboard_stats')
->description('Statistiques globales du tableau de bord');
// Resource : configuration de l'application
Mcp::resource(function (): array {
return [
'app_name' => config('app.name'),
'environment' => config('app.env'),
'php_version' => PHP_VERSION,
'laravel_version' => app()->version(),
];
})->name('app_config')
->description('Configuration et versions de l\'application');
Créer des Prompts réutilisables
Les prompts structurent les interactions de l'IA avec votre backend :
Mcp::prompt(function (string $context): string {
$templates = [
'support' => "Tu es un assistant support pour {$context}. Réponds de manière professionnelle et concise.",
'sales' => "Tu es un assistant commercial pour {$context}. Mets en avant les avantages et réponds aux objections.",
'technical' => "Tu es un assistant technique pour {$context}. Fournis des réponses précises avec des exemples de code si nécessaire.",
];
$style = request()->input('style', 'support');
return $templates[$style] ?? $templates['support'];
})->name('generate_assistant_prompt')
->description('Génère un prompt d\'assistant adapté au contexte');
Intégration avec Laravel Boost
Laravel Boost va plus loin en fournissant plus de 15 outils spécialisés qui donnent aux agents IA une compréhension profonde de votre application :
composer require laravel/boost
php artisan boost:install
Boost expose automatiquement :
- Introspection de l'application : versions PHP/Laravel, packages installés, configuration
- Outils de base de données : schéma, requêtes read-only, structure des données
- Routes et contrôleurs : endpoints disponibles, middlewares
- Modèles Eloquent : relations, scopes, attributs
[IMAGE CODE EXAMPLE À INSÉRER ICI]
Configuration avec Claude Desktop
Pour connecter votre serveur MCP à Claude Desktop, ajoutez cette configuration dans claude_desktop_config.json :
{
"mcpServers": {
"mon-app-laravel": {
"command": "php",
"args": ["/chemin/vers/mon-app/artisan", "mcp:serve"]
}
}
}
Pour Cursor ou VS Code avec MCP :
claude mcp add laravel-boost -- php artisan boost:mcp
Sécurité et authentification
Laravel MCP supporte plusieurs mécanismes d'authentification :
// config/mcp.php
return [
'auth' => [
'driver' => 'sanctum', // ou 'oauth2.1'
'guard' => 'api',
],
'rate_limiting' => [
'enabled' => true,
'max_requests' => 100,
'decay_minutes' => 1,
],
];
Pour OAuth 2.1 (recommandé en production) :
// Protéger un tool avec des permissions
Mcp::tool(function () {
// Action sensible
})->name('delete_data')
->middleware('auth:sanctum')
->can('admin');
Cas d'usage concrets
Voici quelques exemples de ce que vous pouvez construire :
| Cas d'usage | Tools exposés |
|---|---|
| CRM intelligent | Créer/modifier contacts, rechercher clients, générer rapports |
| Gestion de projet | Créer tâches, assigner équipe, mettre à jour statuts |
| Facturation | Générer factures, relancer impayés, calculer TVA |
| E-commerce | Rechercher produits, vérifier stock, traiter commandes |
| Support client | Consulter historique, créer tickets, escalader problèmes |
Bonnes pratiques
- Nommez clairement vos tools :
create_invoiceplutôt queinv_new - Documentez les descriptions : l'IA s'en sert pour comprendre quand utiliser un tool
- Validez les entrées : utilisez les Form Requests Laravel
- Limitez les permissions : principe du moindre privilège
- Loggez les actions : traçabilité des décisions de l'IA
Conclusion
MCP représente un changement de paradigme : vos applications Laravel deviennent des partenaires des agents IA, pas de simples sources de données. Avec Laravel MCP et Boost, cette intégration est native, sécurisée et idiomatique.
Le code généré par l'IA ressemble enfin à du code écrit par un développeur Laravel expérimenté — pas à du PHP générique assemblé de bric et de broc.
Sources
- Laravel Blog - Introducing Laravel MCP
- Laravel Docs - AI Assisted Development
- DEV.to - Complete Guide to MCP Integration
- Medium - Laravel + Claude AI with MCP Servers
- GitHub - Laravel Claude Code Setup
- Official PHP SDK for MCP
Prompts pour générer les images
Charte graphique "Le Laboratoire Numérique" à respecter :
- Style moderne, épuré et digital
- Fond sombre (bleu foncé / presque noir)
- Éléments clairs (blanc) pour la lisibilité
- Une couleur d'accent vive (cyan) pour les points clés
- Esthétique technologique avec motifs abstraits, grilles, lignes ou éléments géométriques
- Typographie sans serif, moderne et discrète (si du texte est nécessaire, le reformuler et le limiter)
Image Hero
Respecter la charte graphique du site "Le Laboratoire Numérique" : style moderne, épuré et digital, fond sombre (bleu foncé / presque noir), éléments clairs (blanc) pour la lisibilité, une couleur d'accent vive (cyan) pour les points clés, esthétique technologique avec motifs abstraits, grilles, lignes ou éléments géométriques, typographie sans serif moderne et discrète. Create a technical illustration showing the Laravel logo (stylized red geometric shape) connected via glowing cyan data streams to AI brain/neural network symbols representing Claude, GPT-4. Include floating code snippets, API endpoint visualizations, and MCP protocol symbols as connecting bridges. Professional tech blog aesthetic, clean and modern.
Image Architecture
Respecter la charte graphique du site "Le Laboratoire Numérique" : style moderne, épuré et digital, fond sombre (bleu foncé / presque noir), éléments clairs (blanc) pour la lisibilité, une couleur d'accent vive (cyan) pour les points clés, esthétique technologique avec motifs abstraits, grilles, lignes ou éléments géométriques, typographie sans serif moderne et discrète. Create an isometric technical diagram showing a Laravel application server (represented as a sleek monolith with PHP/Laravel branding) in the center, with MCP protocol connections (glowing cyan pipes/channels) extending to multiple AI clients: Claude Desktop icon, VS Code/Cursor icon, ChatGPT icon. Include small tool icons (gear, database, document) flowing through the connections. Clean geometric tech aesthetic with white labels.
Image Code Example
Respecter la charte graphique du site "Le Laboratoire Numérique" : style moderne, épuré et digital, fond sombre (bleu foncé / presque noir), éléments clairs (blanc) pour la lisibilité, une couleur d'accent vive (cyan) pour les points clés, esthétique technologique avec motifs abstraits, grilles, lignes ou éléments géométriques, typographie sans serif moderne et discrète. Create a developer-focused illustration showing a code editor window with PHP/Laravel syntax highlighted in cyan and white. Surrounding the editor, show abstract representations of AI tools being exposed: a task creation tool, an invoice tool, a database query tool - each as small glowing geometric icons. Include subtle MCP protocol symbols and data flow indicators. Clean, minimal tech aesthetic suitable for a coding tutorial article.]]>
À lire ensuite
Articles similaires.
Filament PHP : construire un back-office en 2h
Filament PHP permet de construire un back-office Laravel complet en quelques heures. Voici comment j'ai créé l'admin de ce blog : articles, catégories, tags, dashboard, le tout sans écrire une ligne de JavaScript.
MCP : le protocole qui connecte l'IA au monde réel
Le Model Context Protocol (MCP) est devenu le standard universel pour connecter les IA à vos outils. Adopté par Anthropic, OpenAI, Google et Microsoft, il change la façon dont on construit des applications IA. Guide complet et pratique.