MCP Enterprise Demo - Gestion Commerciale

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.

Category
Visit Server

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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
Kagi MCP Server

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.

Official
Featured
Python
graphlit-mcp-server

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.

Official
Featured
TypeScript
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured