We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bengaly/mcp-gestion-commerciale-demo'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
# MCP Enterprise Demo - Gestion Commerciale avec IA
## ๐ฏ Prรฉsentation
Ce projet dรฉmontre l'intรฉgration de **MCP (Model Context Protocol)** dans un Systรจme d'Information d'entreprise pour la gestion commerciale (Commandes, Factures, Clients).
**Objectif** : Crรฉer un assistant IA interne capable de :
- Rรฉpondre ร des questions mรฉtier en langage naturel
- Analyser commandes et factures
- Rรฉsumer l'activitรฉ d'un client
- Dรฉclencher des actions contrรดlรฉes
## ๐๏ธ Architecture
```
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ UTILISATEUR โ
โ (Support / Manager / Admin) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ASSISTANT IA (LLM) โ
โ (Spring AI + OpenAI/Claude) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ MCP SERVER โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ CAPACITรS MCP (Tools) โ โ
โ โ โข findOrder โข analyzeInvoice โ โ
โ โ โข summarizeCustomer โข createOrder โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ SรCURITร & GOUVERNANCE โ โ
โ โ โข Contrรดle d'accรจs (RBAC) โข Audit des appels โ โ
โ โ โข Validation mรฉtier โข Traรงabilitรฉ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ SERVICES MรTIERS โ
โ โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โ
โ โ OrderService โ โInvoiceService โ โCustomerServiceโ โ
โ โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ BASE DE DONNรES โ
โ (H2 en mรฉmoire pour la dรฉmo) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
```
## ๐ Rรดles et Capacitรฉs
| Rรดle | findOrder | analyzeInvoice | summarizeCustomer | createOrder | validateOrder |
|------|-----------|----------------|-------------------|-------------|---------------|
| SUPPORT | โ
| โ
| โ
| โ | โ |
| MANAGER | โ
| โ
| โ
| โ
| โ
|
| ADMIN | โ
| โ
| โ
| โ
| โ
|
## ๐ Dรฉmarrage rapide
### Prรฉrequis
- Java 17+
- Maven 3.8+
- (Optionnel) Clรฉ API OpenAI pour le LLM
### Installation
```bash
# Cloner le projet
cd mcp-enterprise-demo
# Compiler
mvn clean install
# Lancer l'application
mvn spring-boot:run
```
### Configuration OpenAI (optionnel)
```bash
export OPENAI_API_KEY=votre-clรฉ-api
```
## ๐ก Endpoints de test
### Authentification
Utilisateurs de dรฉmonstration :
- `support` / `support123` (rรดle SUPPORT)
- `manager` / `manager123` (rรดle MANAGER)
- `admin` / `admin123` (rรดle ADMIN)
### Tester les capacitรฉs MCP
```bash
# Rechercher une commande
curl -u manager:manager123 http://localhost:8080/api/chat/test/find-order/CMD-20240115-TC001
# Analyser une facture
curl -u support:support123 http://localhost:8080/api/chat/test/analyze-invoice/FAC-2024-000123
# Rรฉsumรฉ client
curl -u support:support123 http://localhost:8080/api/chat/test/customer-summary/CLI-001
# Voir les capacitรฉs disponibles
curl -u manager:manager123 http://localhost:8080/api/chat/capabilities
```
### Tester via l'interface web (IHM)
Une application Angular est disponible pour tester les capacitรฉs MCP via une interface utilisateur moderne.
```bash
cd mcp-frontend
npm install
npm start
```
L'application sera accessible sur `http://localhost:4200/`.
**Fonctionnalitรฉs disponibles :**
- **Dashboard** - Vue d'ensemble avec capacitรฉs MCP disponibles selon le rรดle
- **Commandes** - Recherche de commandes via MCP
- **Factures** - Analyse de factures via MCP
- **Clients** - Rรฉsumรฉ d'activitรฉ client via MCP
- **Produits** - Gestion du catalogue produits
- **Assistant IA** - Chat avec l'IA pour interagir en langage naturel
๐ **[Documentation complรจte du frontend](mcp-frontend/README.md)**
### Tester via LLM (OpenAI / Spring AI)
L'endpoint `POST /api/chat/llm/message` envoie le message au LLM (via Spring AI) et autorise l'appel des tools MCP selon le rรดle courant.
Important : pour conserver le contexte (ex: workflow de confirmation), utilisez un `conversationId` et rรฉutilisez-le ร chaque tour.
Sous PowerShell, utilisez `curl.exe` (car `curl` est un alias de `Invoke-WebRequest`).
```bash
# 1) Premier message (le serveur renvoie un conversationId)
curl.exe -u manager:manager123 -H "Content-Type: application/json" -d "{\"message\":\"Crรฉe une commande pour CLI-001 avec 2 PROD-001\"}" http://localhost:8080/api/chat/llm/message
# 2) Confirmer (rรฉutiliser le conversationId reรงu ร l'รฉtape 1)
curl.exe -u manager:manager123 -H "Content-Type: application/json" -d "{\"message\":\"Oui je confirme\",\"conversationId\":\"<COLLER_ICI>\"}" http://localhost:8080/api/chat/llm/message
```
Si l'utilisateur n'a pas les droits (ex: rรดle SUPPORT), le LLM est informรฉ des capacitรฉs autorisรฉes et doit refuser l'action au lieu d'appeler un tool non autorisรฉ.
### Console H2
Accรฉdez ร `http://localhost:8080/h2-console` pour explorer la base de donnรฉes.
- JDBC URL: `jdbc:h2:mem:enterprisedb`
- User: `sa`
- Password: (vide)
## ๐ Structure du projet
```
src/main/java/com/enterprise/mcp/
โโโ McpEnterpriseApplication.java # Point d'entrรฉe
โโโ domain/
โ โโโ entity/ # Entitรฉs JPA
โ โ โโโ Customer.java
โ โ โโโ Order.java
โ โ โโโ OrderLine.java
โ โ โโโ Invoice.java
โ โ โโโ InvoiceLine.java
โ โโโ repository/ # Repositories Spring Data
โโโ service/
โ โโโ CustomerService.java # Service mรฉtier clients
โ โโโ OrderService.java # Service mรฉtier commandes
โ โโโ InvoiceService.java # Service mรฉtier factures
โ โโโ dto/ # Objets de transfert
โโโ mcp/
โ โโโ McpCapabilityHandler.java # Gestionnaire des capacitรฉs
โ โโโ McpResponse.java # Rรฉponse standardisรฉe
โ โโโ McpToolsConfiguration.java # Configuration Spring AI
โโโ security/
โ โโโ McpRole.java # Dรฉfinition des rรดles
โ โโโ McpCapability.java # Enum des capacitรฉs
โ โโโ McpSecurityContext.java # Contexte de sรฉcuritรฉ
โ โโโ McpAccessDeniedException.java # Exception accรจs refusรฉ
โโโ audit/
โ โโโ McpAuditService.java # Service d'audit
โโโ config/
โ โโโ SecurityConfig.java # Configuration Spring Security
โ โโโ DataInitializer.java # Donnรฉes de dรฉmonstration
โโโ controller/
โโโ ChatController.java # API REST
```
## ๐ Formation associรฉe
Ce projet est accompagnรฉ d'une formation complรจte en Markdown :
โ Voir le dossier `docs/formation/`
## โ ๏ธ Points clรฉs MCP
### Ce que MCP fait
- โ
Expose des **capacitรฉs mรฉtier contrรดlรฉes** ร l'IA
- โ
Applique la **sรฉcuritรฉ par rรดle** (RBAC)
- โ
**Audite** toutes les interactions IA
- โ
**Valide** les donnรฉes cรดtรฉ serveur
- โ
Demande **confirmation** pour les actions sensibles
### Ce que MCP ne fait pas
- โ L'IA n'accรจde **jamais directement** ร la base de donnรฉes
- โ Pas d'exรฉcution de code arbitraire
- โ Pas de contournement des rรจgles mรฉtier
## ๐ Licence
Projet de dรฉmonstration ร usage pรฉdagogique.
## ๐ค Auteur
Projet crรฉรฉ pour la formation "MCP pour ingรฉnieurs Java".