Integrates OpenAI's LLM capabilities through Spring AI to power an AI assistant for business management tasks including order processing, invoice analysis, and customer data summarization.
Built on Spring Boot framework with Spring AI integration for orchestrating MCP tools and LLM interactions in an enterprise business management system.
Implements role-based access control (RBAC) for MCP capabilities, enforcing security policies that determine which AI-powered business operations users can perform based on their roles (SUPPORT, MANAGER, ADMIN).
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Enterprise Demo - Gestion Commercialeshow me the latest orders for customer CLI-001"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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".