mcp-server

zili/mcp-server

3.1

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.

Tools
5
Resources
0
Prompts
0

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)
  1. search_products - Recherche de produits

    • search_term (string) : Terme de recherche
    • language (string, optionnel) : Langue (fr/ar/en)
  2. check_stock - Vérification de stock

    • product_id (integer) : ID du produit
    • language (string, optionnel) : Langue de réponse
  3. get_all_products - Liste complète des produits

    • active_only (boolean, optionnel) : Produits actifs uniquement
  4. create_order - Création de commande

    • customer_phone (string) : Numéro WhatsApp
    • items (array) : Produits commandés
    • customer_name (string, optionnel) : Nom client
    • language (string, optionnel) : Langue
    • notes (string, optionnel) : Notes
  5. get_customer_history - Historique client

    • customer_phone (string) : Numéro client
    • limit (integer, optionnel) : Nombre max de commandes
Ressources (Resources)
  1. eccbc://catalog - Catalogue produits avec stock temps réel
  2. eccbc://darija - Guide expressions Darija pour commandes
  3. 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

  1. Fork du projet
  2. Créer une branche feature
  3. Commiter les changements
  4. Pousser vers la branche
  5. Créer une Pull Request

Licence

MIT License - voir fichier LICENSE pour détails

Contact

Pour support technique ou questions :