zili/mcp-server
If you are the rightful owner of mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The ECCBC MCP Server is a Python-based server designed for integrating with the ECCBC API to manage stock and orders via WhatsApp.
ECCBC MCP Server - Python Version
Serveur MCP (Model Context Protocol) pour ECCBC WhatsApp AI B2B, converti depuis TypeScript vers Python.
Description
Ce serveur MCP permet l'intégration avec l'API ECCBC pour la gestion de stock et de commandes via WhatsApp. Il supporte :
- Recherche de produits multilingue (français, arabe, anglais)
- Vérification de stock en temps réel
- Création de commandes automatisée
- Historique client complet
- Ressources contextuelles (catalogue, guide Darija, contexte business)
Installation
Prérequis
- Python 3.8+
- pip
Installation des dépendances
pip install -r requirements.txt
Installation en mode développement
pip install -e .
Configuration
Le serveur se connecte à l'API ECCBC via :
API_BASE_URL = "http://n8n.xandys.xyz:8000"
Modifiez cette URL dans le fichier eccbc_mcp_server.py selon votre environnement.
Utilisation
Démarrage du serveur
python eccbc_mcp_server.py
Ou si installé :
eccbc-mcp-server
Structure du serveur
Le serveur expose :
Outils (Tools)
-
search_products - Recherche de produits
search_term(string) : Terme de recherchelanguage(string, optionnel) : Langue (fr/ar/en)
-
check_stock - Vérification de stock
product_id(integer) : ID du produitlanguage(string, optionnel) : Langue de réponse
-
get_all_products - Liste complète des produits
active_only(boolean, optionnel) : Produits actifs uniquement
-
create_order - Création de commande
customer_phone(string) : Numéro WhatsAppitems(array) : Produits commandéscustomer_name(string, optionnel) : Nom clientlanguage(string, optionnel) : Languenotes(string, optionnel) : Notes
-
get_customer_history - Historique client
customer_phone(string) : Numéro clientlimit(integer, optionnel) : Nombre max de commandes
Ressources (Resources)
- eccbc://catalog - Catalogue produits avec stock temps réel
- eccbc://darija - Guide expressions Darija pour commandes
- eccbc://context - Contexte business ECCBC
Architecture FastMCP
Le serveur utilise FastMCP avec transport SSE (Server-Sent Events) pour une communication en temps réel :
eccbc_mcp_server.py
├── FastMCP Server (transport="sse")
│ ├── @mcp_server.tool() - Décorateurs pour outils
│ ├── @mcp_server.resource() - Décorateurs pour ressources
│ └── HTTP endpoints automatiques
├── Classes modèles (OrderItem, CreateOrderRequest)
├── Client HTTP global (httpx.AsyncClient)
└── Configuration par variables d'environnement
Avantages FastMCP + SSE
- 🚀 Performance : Transport SSE plus rapide que stdio
- 🌐 Accessibilité HTTP : Serveur accessible via URL
- ⚡ Temps réel : Communication bidirectionnelle
- 🔧 Simplicité : Décorateurs Python pour définir tools/resources
- 📊 Monitoring : Logs structurés et debug facilité
Différences avec la version TypeScript
Améliorations Python
- Gestion d'erreurs robuste avec try/except
- Logging intégré pour debug
- Type hints pour meilleure lisibilité
- Classes modèles pour structures de données
- httpx pour requêtes HTTP asynchrones
- Nettoyage automatique des ressources
Fonctionnalités conservées
- ✅ Tous les outils TypeScript portés
- ✅ Toutes les ressources disponibles
- ✅ Support multilingue complet
- ✅ Gestion des erreurs API
- ✅ Structure des réponses identique
API Endpoints utilisés
GET /api/products/search/{term}?language={lang}
GET /api/stock/check/{id}?language={lang}
GET /api/products?active_only={bool}
POST /api/orders
GET /api/orders/{phone}?limit={n}
Exemple d'utilisation
# Le serveur MCP s'exécute via stdio et répond aux requêtes MCP
# Exemple de recherche via l'outil search_products :
{
"method": "tools/call",
"params": {
"name": "search_products",
"arguments": {
"search_term": "coca",
"language": "fr"
}
}
}
Support multilingue
Le serveur supporte nativement :
- Français : Langue par défaut
- Arabe/Darija : Expressions communes incluses
- Anglais : Support complet
Développement
Structure du projet
.
├── eccbc_mcp_server.py # Serveur principal
├── requirements.txt # Dépendances Python
├── setup.py # Configuration packaging
├── README.md # Documentation
└── tests/ # Tests unitaires (à créer)
Contribution
- Fork du projet
- Créer une branche feature
- Commiter les changements
- Pousser vers la branche
- Créer une Pull Request
Licence
MIT License - voir fichier LICENSE pour détails
Contact
Pour support technique ou questions :
- Email : support@eccbc.ma
- WhatsApp : +212 XXX XXX XXX