Talk to your GSE-Web data in natural language
The GSE-Web MCP server connects AI assistants (Claude, ChatGPT, etc.) directly to your inventory management app. Ask questions, trigger actions, get reports — without writing a single line of code.
What is MCP?
MCP (Model Context Protocol) is an open standard created by Anthropic that allows an AI to connect to external data sources in a secure and structured way.
Think of it as a universal translator: the AI speaks in natural language, the MCP server translates into technical requests (API, SQL), and returns results in a format the AI understands.
Why use the MCP server?
Natural language queries
No need to navigate menus or know SQL. Ask your questions as you would ask a colleague.
Instant answers
The AI analyses the data and synthesises the results. A complete dashboard in one sentence.
Security preserved
Same rules as the application: JWT authentication, role-based permissions (30 rights), organisation isolation.
Automated actions
Create stock entries/exits, change movement slip statuses — directly from the conversation.
Intelligent analytics
Stock-out alerts, expired products, statistics — the AI cross-references data and alerts you proactively.
Training module
Teachers can track classes, scenarios and student progress with a simple question.
Without MCP / With MCP
Without MCP
- Open the GSE-Web application
- Navigate through menus
- Apply filters manually
- Export to CSV, open Excel
- Cross-reference data by hand
- Write a report
With MCP
- "Quels produits ont un stock < 5 dans le magasin Central ?"
- L'IA repond en 3 secondes avec un tableau
- "Compare les sorties de janvier et fevrier"
- L'IA génère l'analyse directement
- "Créeune entrée de 50 unites pour le produit REF-2024"
- Action effectuee, confirmation instantanée
How does it work?
The MCP server is a Node.js process running locally on your machine (or remotely via HTTPS). It authenticates with GSE-Web using your credentials, then exposes 55 tools the AI can call.
stdio (standard input/output) and with GSE-Web via HTTPS. No local web server to expose. Prerequisites
| Element | Required | Note |
|---|---|---|
Node.js | v18 or higher | nodejs.org |
npm | Included with Node.js | - |
Claude Code | Anthropic CLI | npm install -g @anthropic-ai/claude-code |
| Account GSE-Web | Valid credentials | Same login as the mobile/web application |
| Internet connection | Yes | To reach the GSE-Web APIs |
Step-by-step installation
Step 1 — Compile the TypeScript server
Open a terminal in the GSE-Web project folder and run:
cd mcp-server npm install npm run build
The compiled output is in mcp-server/dist/.
Step 2 — Check the configuration
At the project root, a .mcp.json file is already configured:
{
"mcpServers": {
"gse-web": {
"command": "node",
"args": ["dist/index.js"],
"cwd": "/chemin/vers/gse_web_mobile_v2/mcp-server",
"env": {
"GSE_PROXY_BASE_URL": "https://gse-web-dev.xlexe.com",
"GSE_DEFAULT_SERVER": "https://dev.gse-web.online/"
}
}
}
}
cwd field to the actual path of the mcp-server folder on your machine. For production, replace URLs with https://gse-web.xlexe.com and https://www.gse-web.online/. Step 3 — Launch Claude Code
From the project root:
claude
Claude Code automatically detects .mcp.json and offers to activate the gse-web server. Accept.
Step 4 — Authenticate
In the Claude conversation, simply type:
Connecte-moi au serveur de développement GSE-Web avec l'identifiant "mon_login" et le mot de passe "mon_password"
Claude calls the authenticate tool and confirms your connection with your list of rights.
First use: concrete examples
Once authenticated, ask your questions in natural language. Here are some examples:
"Cherche les produits contenant 'cable' dans la référence" "Donne-moi les details du produit n°142 avec son stock par emplacement" "Quelles sont les catégories de produits disponibles ?"
L'IA utilise search_products, get_product_details et get_catégories.
"Montre-moi le stock du magasin Central" "Quels emplacements existent dans mon organisation ?" "Y a-t-il des produits en rupture de stock ?"
L'IA utilise get_stock_levels, get_emplacements et get_stock_alerts.
"Liste les entrées de stock de cette semaine" "Montre-moi les bons de mouvement a traiter" "Affiche les details du bon de mouvement n°85"
L'IA utilise list_entrées, list_bon_mouvements et get_bon_mouvement_details.
"Créeune entrée de 50 unites du produit 142, emplacement A-03, magasin Central" "Sortie de 10 unites du produit 98 avec le commentaire 'Chantier Bordeaux'" "Passe le bon de mouvement 85 au statut 'termine'"
L'IA utilise create_entrée, create_sortie et update_bon_mouvement_statut.
Ces outils requierent des droits spécifiques (EDITER_ENTREE, EDITER_SORTIE, etc.).
"Donne-moi un résumé du tableau de bord : produits, stock, utilisateurs" "Y a-t-il des produits qui périmént dans les 30 jours ?" "Montre-moi les derniers logs d'erreur de l'application"
L'IA utilise get_dashboard_stats, get_stock_alerts et get_recent_logs.
"Liste mes classes de formation" "Quels scenarios pedagogiques sont disponibles ?" "Montre la progression des eleves sur le scenario 12"
L'IA utilise list_classes, list_scenarios et get_student_progress.
Requiert le droit FORMATION_ENSEIGNANT.
Claude Code (CLI) — Main interface
Claude Code is the recommended interface for using the MCP server. It automatically detects the .mcp.json configuration and offers to activate the server.
Installation
npm install -g @anthropic-ai/claude-code
Usage
# Depuis la racine du projet GSE-Web cd /chemin/vers/gse_web_mobile_v2 # Lancer Claude Code (detecte .mcp.json automatiquement) claude # Claude propose d'activer le serveur MCP "gse-web" → acceptez # Vous pouvez ensuite discuter normalement : > Connecte-moi au serveur dev avec login "admin" password "***" > Quels produits sont en rupture de stock ? > Créeune entrée de 20 unites pour le produit 45
Claude Desktop
Compatible with Claude Desktop (Windows/Mac). Configure it by adding the mcpServers section to the configuration file.
Configuration
Edit the Claude Desktop configuration file:
# macOS ~/Library/Application Support/Claude/claude_desktop_config.json # Windows %APPDATA%\Claude\claude_desktop_config.json
Add the mcpServers section:
{
"mcpServers": {
"gse-web": {
"command": "node",
"args": ["/chemin/vers/mcp-server/dist/index.js"],
"env": {
"GSE_PROXY_BASE_URL": "https://gse-web-dev.xlexe.com",
"GSE_DEFAULT_SERVER": "https://dev.gse-web.online/"
}
}
}
}
Restart Claude Desktop. The server appears in the list of available tools.
Claude.ai — Direct integration (recommended)
For Claude Pro, Max or Team users: connect your MCP server directly via the claude.ai interface. No local installation required.
Natural language
Claude (Opus, Sonnet, Haiku) understands natural language. No keywords to remember, ask your questions as you would to a colleague.
Included in your subscription
No additional cost. MCP integration uses your existing Claude subscription (Pro, Max or Team).
100% browser-based
Everything works in the browser. Nothing to download, nothing to configure on your machine.
Claude-grade security
Authentication via your GSE-Web credentials. Strict organisation isolation. No data is stored by the MCP server.
Read + write
View your inventory, but also create entries/exits — with rights verification at each action.
Advanced analytics
Claude can cross-reference data, compare periods, generate reports — it has access to 55 specialised tools.
Setup (once, 2 minutes)
Open Settings
Go to claude.ai and click the gear icon at the bottom left to open Settings.
Add an integration
In the Integrations section, click "Add integration". Enter the MCP server URL:
| Environment | URL to copy |
|---|---|
| Development / Demo | https://gse-web-dev.xlexe.com/api/mcp_remote.php |
| Production | https://gse-web.xlexe.com/api/mcp_remote.php |
The integration appears in your list with the name "gse-web".
Authenticate
In a new Claude conversation, simply say:
Connecte-moi au serveur GSE-Web demo avec l'identifiant "mon_login" et le mot de passe "mon_password"
Claude calls the authenticate tool and confirms your connection with your list of rights.
Ask your questions!
You are connected. Ask whatever you want:
"Quels produits sont en rupture de stock ?" "Montre-moi le stock sur l'emplacement HALLIDAY" "Donne-moi le tableau de bord avec les chiffres clés" "Liste les entrées de la semaine dernière" "Créeune entrée de 50 gants isolants, emplacement A-03" "Compare les sorties de janvier et fevrier"
What Claude can do with your data
- Search products by reference, name, category or barcode
- View product details with stock per location
- List stock filtered by location
- View available categories and locations
- Dashboard: number of products, total quantity, users
- Stockout alerts (products at quantity 0)
- Expiry alerts (products expiring in 30 days)
- Claude can cross-reference and analyze the results of several tools to answer complex questions
- History of in/out movements with date filters
- List of movement vouchers with status filter
- Create stock entries (requires EDITER_ENTREE permission)
- Create stock outflows (requires EDITER_SORTIE permission)
Claude will always ask for confirmation before creating an entry or outflow.
- List of users in the organization
- View rights and roles
Difference with the Web Assistant
Web Assistant (basic chat)
- Free, no subscription
- Keyword-based understanding
- Predefined shortcut buttons
- No cross-analysis
- Simple formatted responses
Claude.ai (full AI)
- Claude subscription required (Pro/Max/Team)
- Full natural language understanding
- Complex questions and context tracking
- Analysis, comparison, data synthesis
- Detailed responses with explanations
Frequently asked questions
No. The MCP integration is included in your Claude subscription (Pro at $20/month, Max at $100/month, Team at $30/month/user). No additional fees on the GSE-Web side.
Data flows between the MCP server and Claude to formulate the answers. Anthropic does not store MCP tool data and does not use it to train its models (Anthropic privacy policy). The connection is HTTPS-encrypted end to end.
No. The MCP server URL only allows seeing the list of available tools (generic names like "search_products"). To access any data, you must authenticate with a real GSE-Web login and password. It is the same security level as a login page.
Yes. Each team member adds the URL in their own Claude settings, then logs in with their own GSE-Web credentials. Each person only sees their organization's data.
Yes, GSE-Web authentication is per conversation. At the start of each new conversation, tell Claude to log you in. The MCP integration itself remains permanently configured in your settings.
ChatGPT Custom GPT (zero installation)
A Custom GPT in ChatGPT allows any user to chat with GSE-Web data directly from chat.openai.com. No installation required.
Configuration by the administrator
Create a Custom GPT
In ChatGPT, go to Explore GPTs → Create.
Add the instructions
Paste these instructions into the GPT's "Instructions" field:
Tu es l'assistant GSE-Web, un expert en gestion de stock. Tu aides les utilisateurs a interroger et gérer leurs données de stock, produits, mouvements et bons de mouvement. Regles : 1. Commence TOUJOURS par authentifier l'utilisateur (action authenticate) 2. Utilise le token recu pour toutes les requêtes suivantes 3. Reponds en francais, de manière claire et synthetique 4. Pour les tableaux de données, formate-les de manière lisible 5. Ne montre JAMAIS le token JWT a l'utilisateur 6. Pour les actions d'écriture, confirme AVANT d'executer
Configure the Actions
In the Actions tab, import the OpenAPI schema available at:
https://gse-web.xlexe.com/api/gse_assistant_openapi.json
Authentication is done via the Authorization: Bearer header automatically managed by the GPT after login.
Publish the GPT
Choose "Only people with a link" or "Anyone at [your organization]" to share with your team.
Use by employees
The user simply opens the Custom GPT link and chats normally:
"Connecte-moi au serveur de production, login jean.dupont, mot de passe ***" "Quels produits sont en rupture ?" "Donne-moi le tableau de bord" "Créeune entrée de 50 gants, emplacement A-03"
Web Assistant (no AI)
The Web Assistant is a quick consultation interface with shortcut buttons and keyword search. It requires no AI subscription but does not use artificial intelligence.
Open the Web Assistant →
Direct access to the chat interface (GSE-Web credentials required).
Other compatible tools
n8n — Automation →
Connect GSE-Web to n8n to create automatic workflows: stock alerts, reports, ERP sync. Complete guide available.
Cursor / Windsurf
IDE with built-in AI. Support the MCP protocol for developers.
Any MCP client
Any MCP-compatible software can connect to the local gse-web server.
Tools reference
55 tools available in the GSE-Web MCP server.
Authentication
| Tool | Description | Access |
|---|---|---|
authenticate |
Connect to a GSE-Web server with login/password | Open |
get_current_user |
View profile and rights of the logged-in user | JWT |
list_servers |
Information about the logged-in user's server | JWT |
Products & Stock (read)
| Tool | Description | Access |
|---|---|---|
search_products |
Search products by keyword (reference, label, category) | JWT |
get_product_details |
Full details of a product with stock per location | JWT |
get_stock_levels |
Stock levels with filters by warehouse / location | JWT |
get_emplacements |
List of storage locations | JWT |
get_catégories |
Distinct product categories | JWT |
Movements (read)
| Tool | Description | Access |
|---|---|---|
list_entrées |
Stock entries with date filters | JWT |
list_sorties |
Stock outflows with date filters | JWT |
list_bon_mouvements |
Movement vouchers with status filter | JWT |
get_bon_mouvement_details |
Full details of a movement voucher | JWT |
Write operations
| Tool | Description | Access |
|---|---|---|
create_entrée |
Create a stock entry (product, quantity, location, magasins_id, no_lot...) | EDITER_ENTREE |
create_sortie |
Create a stock outflow | EDITER_SORTIE |
update_bon_mouvement_statut |
Change the status of a movement voucher | EDITER_STATUTS_BDM |
Users & Organization
| Tool | Description | Access |
|---|---|---|
list_users |
List of users in the organization | ADMIN |
get_user_details |
Details of a user with groups and rights | ADMIN |
get_organisation_info |
Information about the current organization | JWT |
Analytics & Monitoring
| Tool | Description | Access |
|---|---|---|
get_stock_alerts |
Alerts: stockouts, products expiring in 30 days | JWT |
get_dashboard_stats |
Key statistics: number of products, stock quantity, number of users | JWT |
get_recent_logs |
Latest application logs with level filter | SUPERADMIN |
Training
| Tool | Description | Access |
|---|---|---|
list_classes |
Training classes | FORMATION |
list_scenarios |
Educational scenarios (practical work) | FORMATION |
get_student_progress |
Student progress on a scenario | FORMATION |
Educational scenarios (write)
| Tool | Description | Access |
|---|---|---|
create_scenario |
Creates a complete educational scenario (steps, optional resources and step links) in a single call; total points are recomputed as the sum of the steps' points | FORMATION_ENSEIGNANT |
add_scenario_ressource |
Adds a resource (Video, PDF, Schema, Quiz, URL or File) to an existing scenario, with its step links | FORMATION_ENSEIGNANT |
link_quiz_to_scenario |
Attaches an existing library quiz to a scenario (creates a Quiz-type resource, read by the app to display the quiz) | FORMATION_ENSEIGNANT |
Receiving vouchers
| Tool | Description | Access |
|---|---|---|
list_bons_reception |
Receiving vouchers with % received, filters by date and supplier | JWT |
get_bon_reception_details |
Details of a receiving voucher with status per line (received/partial/pending) | JWT |
Customer orders (OMS)
| Tool | Description | Access |
|---|---|---|
list_commandes_clients |
Customer orders from OMS portal with filters by status, date and customer | JWT |
get_commande_client_details |
Full details of a customer order with product lines | JWT |
get_oms_reconciliation_report |
OMS reconciliation report (read-only): validated orders without a movement order, orders with no detail lines, stuck kit explosions. | JWT |
Logistics & Procurement
| Tool | Description | Access |
|---|---|---|
list_commandes_fournisseurs |
Supplier orders with status filters | JWT |
get_commande_fournisseur_details |
Order details with lines (qty ordered/received/remaining) | JWT |
get_reception_status |
Receiving status: % received, pending lines | JWT |
list_expeditions |
Shipments with number of pallets and linked vouchers | JWT |
get_expedition_details |
Shipment details with linked vouchers and pallets | JWT |
get_bon_reliquats |
Remaining vouchers (-R1, -R2) of a partially prepared voucher | JWT |
get_missing_quantities |
Missing quantities (requested - outflowed) per line | JWT |
list_ruptures |
Out-of-stock products with status and supplier | JWT |
get_stock_history |
In/out history of a product over a period | JWT |
list_magasins |
Warehouses of the organization | JWT |
Third parties (Suppliers & Customers)
| Tool | Description | Access |
|---|---|---|
list_tiers |
Suppliers and customers with filters by type and search | JWT |
get_tiers_details |
Full details of a third party (30+ fields) | JWT |
Advanced stock operations
| Tool | Description | Access |
|---|---|---|
modify_stock |
Modify the quantity of an existing stock | EDITER_PRODUIT |
change_emplacement |
Change the location of a stock | EDITER_PRODUIT |
Bulk Create
| Tool | Description | Access |
|---|---|---|
bulk_create_tiers |
Bulk-create up to 100 third parties (suppliers/customers) in one call | EDITER_FOURNISSEUR / EDITER_CLIENT |
bulk_create_quiz_library |
Bulk-create up to 50 library quizzes with their nested questions | FORMATION_ENSEIGNANT |
bulk_create_products |
Bulk-create products (catalogue) in one call claude.ai only | EDITER_PRODUIT |
bulk_create_entrees |
Bulk-create stock entries (receipts) with post-insert stock validation claude.ai only | EDITER_ENTREE |
Lots & Traceability
| Tool | Description | Access |
|---|---|---|
list_lots |
Paginated list of lots (product, quality status, quantity issued, remaining to control, expiry date) | JWT |
get_lot_details |
Full lot detail: info+status, product, entries, exits, stocks, quality control history | JWT |
get_lot_tracking |
Ageing dashboard: lot age, valued expiry deadlines, quality status, top 10 rotation, KPIs | JWT |
get_product_composition |
Bill of materials of a composed product (kit): components + quantity per assembly | JWT |
list_composed_products |
Lists composed products (kits) with their BOM and the number of available assemblies | JWT |
Reference: 3 context resources
Resources provide static context to the AI to better understand the GSE-Web application.
| URI | Description |
|---|---|
gse://schema/tables |
GSE-Web database structure (main tables and relations) |
gse://permissions/list |
The 32 available rights with their description |
gse://docs/api |
Summary of REST API endpoints (products, stocks, movements...) |
Security
The MCP server applies the same security mechanisms as the GSE-Web application.
🔑 JWT authentication
Each session starts with an authenticate call. The generated JWT expires after the session.
👥 Organisation isolation
Impossible to access another client's data. Every SQL query is filtered by organisations_id.
🛡️ 30 granular rights
Write tools verify the logged-in user's rights. Without the EDITER_PRODUIT right, creating an entry is impossible.
🚫 Double/Triple SQL filter
Shared servers: id + org. Dedicated servers: id + org + server name.
⏱️ Rate limiting
60 reads/minute, 10 writes/minute per session. Protects against abuse.
👁️ Traceable logs
Each tool call is logged with timestamp, user, tool and parameters. Full audit trail.
Use cases by role
- "Which products have stock below the alert threshold?"
- "Show me the last 10 movements on the North warehouse"
- "Create an entry of 200 insulating gloves, batch 2026-A, location B-12"
- "How many different products do we have in total stock?"
- "Are there products expiring soon?"
- "How many users are registered in our organization?"
- "What rights does user #23 have?"
- "Show me the error logs from the last 24h"
- "Give me the global dashboard statistics"
- "Which server am I connected to?"
- "List my training classes"
- "What practical work scenarios are available?"
- "Show the progress of my students on the 'Complete inventory' scenario"
- "What is the average class score on the last practical work?"
- "Search for the product with barcode 3700547800126"
- "What is the stock of this product in location C-01?"
- "Record an outflow of 5 units for the Lyon site"
- "Which movement vouchers are 'to process'?"
- "Show me the database structure"
- "What API endpoints are available?" (resource
gse://docs/api) - "What is the response format of the products API?"
- "How many different rights exist in the system?" (resource
gse://permissions/list) - Integrate the MCP server into your own compatible tools
FAQ
No. The MCP server does not persist anything to disk. The JWT obtained after authentication is kept in memory only during the session. When you close Claude Code, everything is erased.
No. All requests include an organisations_id filter derived from your JWT. Additional filters prevent any access outside your organization.
Claude Code always asks for your approval before executing a write tool. You will see the tool and its parameters, and you can decline. A rate limiter also limits writes to 10/minute.
No. The MCP server needs an internet connection to reach the GSE-Web APIs.
Yes. Edit the environment variables in .mcp.json:
"GSE_PROXY_BASE_URL": "https://gse-web.xlexe.com" "GSE_DEFAULT_SERVER": "https://www.gse-web.online/"
The MCP server itself is free (open source, included in the project). The cost lies at the AI level: you need a Claude subscription (Pro, Team or Enterprise) to use Claude Code or Claude Desktop.
After a git pull of the project, simply recompile:
cd mcp-server && npm install && npm run build
Then restart Claude Code.