MCP Hub
Back to servers

MCP Enterprise Demo - Gestion Commerciale

An enterprise-grade MCP server for commercial management that provides AI-driven access to orders, invoices, and customer data with built-in RBAC security and audit trails.

Tools
5
Updated
Jan 1, 2026

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ôlefindOrderanalyzeInvoicesummarizeCustomercreateOrdervalidateOrder
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".

Reviews

No reviews yet

Sign in to write a review