使用说明
Demo MCP - Application FAQ avec Laravel MCP
Une application de démonstration qui illustre l'utilisation du Model Context Protocol (MCP) de Laravel pour exposer une base de connaissances FAQ à des clients MCP comme Claude.
🎯 Objectif
Ce projet démontre comment utiliser Laravel MCP pour créer un serveur qui expose :
- Tools : Outils pour rechercher et filtrer des FAQs
- Resources : Accès à la base de connaissances complète
- Une interface web pour gérer les FAQs
🚀 Stack Technique
- Backend : Laravel 12
- Frontend : Vue.js 3 + Inertia.js
- Runtime : PHP 8.4 + Node.js 22
- Base de données : SQLite
- MCP : Laravel MCP (
laravel/mcp)
📦 Installation
1. Cloner et installer les dépendances
# Installer les dépendances PHP
composer install
# Installer les dépendances frontend
yarn install --frozen-lockfile
# Copier le fichier .env
cp .env.example .env
# Générer la clé d'application
php artisan key:generate
2. Configurer la base de données
# Créer la base de données et exécuter les migrations avec données de test
php artisan migrate:fresh --seed
3. Compiler les assets
# En développement
yarn dev
# Pour la production
yarn build
🧪 Tester le serveur MCP
Avec MCP Inspector
La méthode la plus simple pour tester le serveur MCP :
php artisan mcp:inspector faq
Cette commande :
- Lance le serveur MCP en local
- Démarre un proxy sur
localhost:6277 - Ouvre l'inspecteur web sur
localhost:6274 - Vous permet de tester interactivement les tools et resources
Serveurs MCP disponibles
Serveur Local
# Handle: faq
php artisan mcp:start faq
Serveur Web
Accessible via HTTP sur la route /mcp/faq
🛠️ Fonctionnalités MCP
Tools (Outils)
1. search_faqs
Recherche dans la base de connaissances FAQ.
Paramètres :
query(string) : Texte à recherchercategory(string, optionnel) : Filtrer par catégorielimit(integer, défaut: 10) : Nombre de résultats
Exemple d'utilisation :
{
"query": "mot de passe",
"category": "Compte",
"limit": 5
}
2. get_faq_categories
Récupère la liste de toutes les catégories disponibles.
Paramètres : Aucun
Resources
faqs://all
Accès en lecture à la liste complète de toutes les FAQs publiées, organisées par catégorie.
📋 Structure du projet MCP
app/Mcp/
├── Servers/
│ └── FaqServer.php # Serveur MCP principal
├── Tools/
│ ├── SearchFaqsTool.php # Outil de recherche
│ └── GetFaqCategoriesTool.php # Outil pour les catégories
└── Resources/
└── FaqListResource.php # Ressource liste des FAQs
routes/
└── ai.php # Routes MCP
🔧 Configuration MCP
Le serveur MCP est configuré dans routes/ai.php :
use App\Mcp\Servers\FaqServer;
use Laravel\Mcp\Facades\Mcp;
// Serveur local (via artisan)
Mcp::local('faq', FaqServer::class);
// Serveur web (via HTTP)
Mcp::web('/mcp/faq', FaqServer::class);
💡 Cas d'usage
Intégration avec Claude Desktop
Configuration automatique (recommandé)
./setup-claude-desktop.sh
Ce script va :
- Détecter automatiquement votre système d'exploitation
- Créer la configuration Claude Desktop
- Sauvegarder votre configuration existante si elle existe
Configuration manuelle
Consultez le guide détaillé : CLAUDE_DESKTOP_SETUP.md
Résumé rapide :
-
Localisez votre fichier de configuration Claude Desktop :
- macOS :
~/Library/Application Support/Claude/claude_desktop_config.json - Linux :
~/.config/Claude/claude_desktop_config.json - Windows :
%APPDATA%\Claude\claude_desktop_config.json
- macOS :
-
Ajoutez cette configuration :
{
"mcpServers": {
"demo-faq": {
"command": "php",
"args": [
"/chemin/absolu/vers/demo-mcp/artisan",
"mcp:start",
"faq"
],
"env": {
"APP_ENV": "local"
}
}
}
}
- Redémarrez Claude Desktop
Testez avec ces questions :
- "Liste les catégories de FAQ disponibles"
- "Recherche des FAQs sur le mot de passe"
- "Montre-moi les FAQs de la catégorie Compte"
API pour chatbots
Le serveur web MCP peut être utilisé par :
- Des chatbots de support client
- Des assistants virtuels
- Des intégrations tierces via HTTP
📚 Documentation
🧑💻 Développement
Ajouter un nouvel outil MCP
php artisan make:mcp-tool MonNouveauTool
Ajouter une nouvelle ressource MCP
php artisan make:mcp-resource MaNouvelleResource
Créer un nouveau serveur MCP
php artisan make:mcp-server MonServeur
📝 Notes
- Les FAQs sont créées avec des données de test via le seeder
- 5 FAQs réalistes + 15 FAQs générées aléatoirement
- Catégories : Technique, Facturation, Compte, Général, Sécurité
🤝 Contribution
Ce projet est une démonstration. N'hésitez pas à l'utiliser comme base pour vos propres projets MCP !
📄 Licence
MIT