# Chapitre 7 : Cas d'usage concrets
## 🎯 Objectifs du chapitre
- Voir MCP en action avec des exemples réels
- Comprendre le flux complet utilisateur → IA → MCP → SI
- Analyser les réponses et leur formatage
---
## 7.1 Cas 1 : Recherche de commande
### Contexte
Un agent support reçoit un appel client qui demande l'état de sa commande.
### Conversation
```
┌─────────────────────────────────────────────────────────────────┐
│ 👤 Support (Marie) │
├─────────────────────────────────────────────────────────────────┤
│ "Le client TechCorp appelle pour sa commande CMD-20240115-TC001" │
└─────────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────┐
│ 🤖 Assistant IA │
├─────────────────────────────────────────────────────────────────┤
│ [Analyse: L'utilisateur veut les infos d'une commande] │
│ [Sélection tool: findOrder] │
│ [Appel: findOrder("CMD-20240115-TC001")] │
└─────────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────┐
│ 🔧 MCP Server │
├─────────────────────────────────────────────────────────────────┤
│ 1. Vérification: SUPPORT a accès à FIND_ORDER ✅ │
│ 2. Audit: MCP-1702847562-A1B2C3D4 | STARTED │
│ 3. Appel: OrderService.findByOrderNumber() │
│ 4. Formatage de la réponse │
│ 5. Audit: MCP-1702847562-A1B2C3D4 | COMPLETED │
└─────────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────┐
│ 🤖 Réponse IA │
├─────────────────────────────────────────────────────────────────┤
│ Voici les informations sur la commande CMD-20240115-TC001 : │
│ │
│ === Commande CMD-20240115-TC001 === │
│ │
│ **Client:** TechCorp Solutions │
│ **Statut:** DELIVERED ✅ │
│ **Date de commande:** 15/01/2024 │
│ │
│ **Lignes de commande:** │
│ - Licence Logiciel Enterprise (PROD-001) x 5 @ 2 500,00 € │
│ = 12 500,00 € │
│ - Support Premium 1 an (PROD-002) x 1 @ 5 000,00 € │
│ = 5 000,00 € │
│ │
│ **Total HT:** 17 500,00 € │
│ **TVA (20%):** 3 500,00 € │
│ **Total TTC:** 21 000,00 € │
│ │
│ La commande a été livrée. Le client peut être informé que tout │
│ est en ordre. │
└─────────────────────────────────────────────────────────────────┘
```
### Logs d'audit générés
```
2024-01-20 14:32:42 [INFO] [AUDIT-START] MCP-1702847562-A1B2C3D4
| User: marie.support | Role: SUPPORT | Capability: findOrder
| Params: {orderNumber=CMD-20240115-TC001}
2024-01-20 14:32:42 [INFO] [AUDIT-COMPLETE] MCP-1702847562-A1B2C3D4
| Capability: findOrder | Result: Commande trouvée: CMD-20240115-TC001
```
---
## 7.2 Cas 2 : Analyse de facture en retard
### Contexte
Un manager veut évaluer le risque d'une facture signalée comme problématique.
### Conversation
```
┌─────────────────────────────────────────────────────────────────┐
│ 👤 Manager (Pierre) │
├─────────────────────────────────────────────────────────────────┤
│ "Analyse la facture FAC-2024-000100, elle semble en retard" │
└─────────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────┐
│ 🤖 Assistant IA │
├─────────────────────────────────────────────────────────────────┤
│ [Analyse: Demande d'analyse de facture avec indicateurs] │
│ [Sélection tool: analyzeInvoice] │
│ [Appel: analyzeInvoice("FAC-2024-000100")] │
└─────────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────┐
│ 🔧 MCP Server │
├─────────────────────────────────────────────────────────────────┤
│ 1. Vérification: MANAGER a accès à ANALYZE_INVOICE ✅ │
│ 2. Audit: MCP-1702847890-E5F6G7H8 | STARTED │
│ 3. Appel: InvoiceService.analyzeInvoice() │
│ - Calcul niveau de risque │
│ - Génération recommandations │
│ - Récupération historique client │
│ 4. Formatage du rapport │
│ 5. Audit: MCP-1702847890-E5F6G7H8 | COMPLETED │
└─────────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────┐
│ 🤖 Réponse IA │
├─────────────────────────────────────────────────────────────────┤
│ === Analyse de la Facture FAC-2024-000100 === │
│ │
│ **Client:** Startup Digital (CLI-003) │
│ **Statut:** OVERDUE │
│ **Date d'émission:** 01/11/2023 │
│ **Date d'échéance:** 01/12/2023 │
│ │
│ **Situation financière:** │
│ - Montant total: 1 800,00 € │
│ - Montant payé: 0,00 € (0%) │
│ - Reste à payer: 1 800,00 € │
│ │
│ **Évaluation du risque:** 🔴 ÉLEVÉ │
│ ⚠️ FACTURE EN RETARD DE 45 JOURS │
│ │
│ **Recommandations:** │
│ → Envoyer une deuxième relance - contacter le client par │
│ téléphone │
│ → Escalader au service recouvrement │
│ → Envisager la suspension du compte client │
│ │
│ **Historique client:** │
│ - Total facturé (payé): 0,00 € │
│ - Encours actuel: 1 800,00 € │
│ - Nombre de factures: 1 │
│ │
│ ⚠️ Ce client n'a jamais payé de facture. Il s'agit peut-être │
│ d'un nouveau client à surveiller de près. │
└─────────────────────────────────────────────────────────────────┘
```
---
## 7.3 Cas 3 : Résumé d'activité client
### Contexte
Avant un rendez-vous commercial, le manager veut une vue synthétique du client.
### Conversation
```
┌─────────────────────────────────────────────────────────────────┐
│ 👤 Manager (Pierre) │
├─────────────────────────────────────────────────────────────────┤
│ "J'ai un RDV avec Grand Groupe SA demain, fais-moi un résumé" │
└─────────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────┐
│ 🤖 Assistant IA │
├─────────────────────────────────────────────────────────────────┤
│ [Analyse: Besoin d'un résumé complet d'activité client] │
│ [Recherche du code client: "Grand Groupe SA" → CLI-004] │
│ [Sélection tool: summarizeCustomerActivity] │
│ [Appel: summarizeCustomerActivity("CLI-004")] │
└─────────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────┐
│ 🤖 Réponse IA │
├─────────────────────────────────────────────────────────────────┤
│ Voici le résumé de l'activité de Grand Groupe SA pour votre RDV:│
│ │
│ === Résumé Client: Grand Groupe SA === │
│ │
│ **Informations générales:** │
│ - Code client: CLI-004 │
│ - Segment: VIP 🌟 │
│ - Statut: ACTIVE │
│ - Contact: Sophie Bernard │
│ - Email: sophie.bernard@grandgroupe.fr │
│ │
│ **Activité commerciale:** │
│ - Nombre total de commandes: 1 │
│ - Chiffre d'affaires total: 165 000,00 € │
│ │
│ **Situation financière:** │
│ - Nombre total de factures: 1 │
│ - Montant total payé: 100 000,00 € │
│ - Montant en attente: 98 000,00 € │
│ - Factures impayées: 1 │
│ │
│ **Dernières commandes:** │
│ - CMD-20240105-GG001 | DELIVERED | 165 000,00 € | 05/01/2024 │
│ │
│ **Dernières factures:** │
│ - FAC-2024-000125 | PARTIALLY_PAID | 198 000,00 € │
│ Échéance: 19/02/2024 │
│ │
│ **Points clés pour le RDV:** │
│ ✅ Client VIP avec CA important (165k€) │
│ ⚠️ Encours élevé (98k€) - 50% de la facture non payé │
│ 💡 Opportunité: Discuter du solde et des prochaines commandes │
└─────────────────────────────────────────────────────────────────┘
```
---
## 7.4 Cas 4 : Création de commande (avec confirmation)
### Contexte
Un commercial veut créer une commande rapidement via l'assistant.
### Conversation complète
```
┌─────────────────────────────────────────────────────────────────┐
│ 👤 Commercial (Manager - Thomas) │
├─────────────────────────────────────────────────────────────────┤
│ "Crée une commande pour PME Innovation avec 3 modules Analytics │
│ à 3500€ pièce" │
└─────────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────┐
│ 🤖 Assistant IA │
├─────────────────────────────────────────────────────────────────┤
│ [Analyse: Demande de création de commande] │
│ [Sélection tool: createOrder] │
│ [Appel: createOrder(customerCode="CLI-002", lines=[...], │
│ confirmed=false)] │
└─────────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────┐
│ 🔧 MCP Server - Étape 1: Validation │
├─────────────────────────────────────────────────────────────────┤
│ 1. Vérification: MANAGER a accès à CREATE_ORDER ✅ │
│ 2. Audit: MCP-1702848200-I9J0K1L2 | STARTED │
│ 3. Validation de la commande: │
│ - Client CLI-002 existe ✅ │
│ - Client actif ✅ │
│ - Limite crédit OK ✅ │
│ - Lignes valides ✅ │
│ 4. Commande > 10 000€ → Warning ajouté │
│ 5. Audit: PENDING_CONFIRMATION │
│ 6. Retour: REQUIRES_CONFIRMATION │
└─────────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────┐
│ 🤖 Réponse IA (demande de confirmation) │
├─────────────────────────────────────────────────────────────────┤
│ Je vais créer la commande suivante. Merci de confirmer: │
│ │
│ === Confirmation de commande === │
│ │
│ Client: PME Innovation (CLI-002) │
│ Adresse de livraison: 123 Rue de l'Entreprise, 75001 Paris │
│ │
│ Articles: │
│ - Module Analytics (PROD-004) x 3 @ 3 500,00 € = 10 500,00 € │
│ │
│ Total HT: 10 500,00 € │
│ TVA (20%): 2 100,00 € │
│ Total TTC: 12 600,00 € │
│ │
│ ✅ La commande est valide et peut être créée. │
│ ⚠️ Point d'attention: Commande > 10 000€ - validation │
│ managériale recommandée │
│ │
│ 🔔 **Confirmez-vous la création de cette commande?** │
│ │
│ [ID de corrélation: MCP-1702848200-I9J0K1L2] │
└─────────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────┐
│ 👤 Commercial (Thomas) │
├─────────────────────────────────────────────────────────────────┤
│ "Oui, je confirme la création" │
└─────────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────┐
│ 🤖 Assistant IA │
├─────────────────────────────────────────────────────────────────┤
│ [Analyse: Confirmation reçue] │
│ [Appel: createOrder(..., confirmed=true)] │
└─────────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────┐
│ 🔧 MCP Server - Étape 2: Création │
├─────────────────────────────────────────────────────────────────┤
│ 1. Audit: CONFIRMED par thomas.commercial │
│ 2. Re-validation (sécurité) ✅ │
│ 3. Création de la commande │
│ - Génération numéro: CMD-20240120-M3N4O5P6 │
│ - Calcul des totaux │
│ - Statut: PENDING_VALIDATION │
│ 4. Sauvegarde en base │
│ 5. Audit: COMPLETED - Commande créée │
└─────────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────┐
│ 🤖 Réponse IA (succès) │
├─────────────────────────────────────────────────────────────────┤
│ ✅ Commande créée avec succès! │
│ │
│ **Numéro de commande:** CMD-20240120-M3N4O5P6 │
│ **Client:** PME Innovation │
│ **Montant total:** 10 500,00 € HT │
│ **Statut:** En attente de validation │
│ │
│ La commande a été créée et est en attente de validation par │
│ le service concerné. │
│ │
│ Souhaitez-vous que je fasse autre chose? │
└─────────────────────────────────────────────────────────────────┘
```
### Logs d'audit complets
```
2024-01-20 15:10:00 [INFO] [AUDIT-START] MCP-1702848200-I9J0K1L2
| User: thomas.commercial | Role: MANAGER | Capability: createOrder
| Params: {customerCode=CLI-002, confirmed=false}
2024-01-20 15:10:00 [INFO] [AUDIT-CONFIRM-REQUIRED] MCP-1702848200-I9J0K1L2
| Capability: createOrder | Action: Commande 10500€ pour PME Innovation
2024-01-20 15:10:15 [INFO] [AUDIT-CONFIRMATION] MCP-1702848200-I9J0K1L2
| Confirmed: true | By: thomas.commercial
2024-01-20 15:10:15 [INFO] [AUDIT-COMPLETE] MCP-1702848200-I9J0K1L2
| Capability: createOrder | Result: Commande créée: CMD-20240120-M3N4O5P6
```
---
## 7.5 Cas 5 : Accès refusé
### Contexte
Un agent support essaie de créer une commande (non autorisé).
### Conversation
```
┌─────────────────────────────────────────────────────────────────┐
│ 👤 Support (Marie) │
├─────────────────────────────────────────────────────────────────┤
│ "Crée une commande pour TechCorp" │
└─────────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────┐
│ 🔧 MCP Server │
├─────────────────────────────────────────────────────────────────┤
│ 1. Vérification: SUPPORT a accès à CREATE_ORDER ❌ │
│ 2. Audit: ACCESS_DENIED │
│ 3. Exception: McpAccessDeniedException │
└─────────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────┐
│ 🤖 Réponse IA │
├─────────────────────────────────────────────────────────────────┤
│ 🚫 Désolé, vous n'avez pas les droits nécessaires pour créer │
│ une commande. │
│ │
│ Votre rôle (SUPPORT) permet de: │
│ - Rechercher des commandes │
│ - Analyser des factures │
│ - Consulter l'activité des clients │
│ │
│ Pour créer une commande, veuillez contacter un manager ou │
│ un administrateur. │
│ │
│ Puis-je vous aider avec autre chose? │
└─────────────────────────────────────────────────────────────────┘
```
### Log d'audit
```
2024-01-20 15:20:00 [WARN] [AUDIT-ACCESS-DENIED] MCP-1702848800-Q7R8S9T0
| User: marie.support | Role: SUPPORT | Capability: createOrder
```
---
## 📝 Points clés à retenir
1. **Flux complet** : Question → Analyse → Tool → Service → Formatage → Réponse
2. **Audit systématique** : Chaque étape est tracée
3. **Confirmation obligatoire** : Pour les actions d'écriture
4. **Refus explicite** : L'utilisateur est informé clairement
5. **Formatage adapté** : Réponses lisibles et structurées
---
## 🎯 Quiz de validation
1. Combien d'appels MCP sont nécessaires pour créer une commande ?
2. Que se passe-t-il si un SUPPORT essaie de créer une commande ?
3. Quel information contient le log d'audit ?
4. Pourquoi le résumé client inclut-il des "points clés pour le RDV" ?
---
[← Chapitre précédent](./06-securite-audit.md) | [Chapitre suivant →](./08-erreurs-antipatterns.md)