MCP Enterprise Demo - Gestion Commerciale
Enables AI assistants to interact with a commercial management system through controlled capabilities for querying orders, analyzing invoices, summarizing customer activity, and creating orders, with role-based access control and audit trails.
README
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:run
Configuration 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/capabilities
Tester 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 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
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/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".
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.