MCP Enterprise Demo - Gestion Commerciale
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
# Cloner le projet
cd mcp-enterprise-demo
# Compiler
mvn clean install
# Lancer l'application
mvn spring-boot:runConfiguration OpenAI (optionnel)
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
# 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/capabilitiesTester via l'interface web (IHM)
Une application Angular est disponible pour tester les capacitรฉs MCP via une interface utilisateur moderne.
cd mcp-frontend
npm install
npm startL'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
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).
# 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/messageSi 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:enterprisedbUser:
saPassword: (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".
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
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