@ludovicl33/cds-mcp
v1.6.1
Published
MCP server for CDS API with OAuth2 authentication, product search, delivery information, SAV management, and customer service capabilities
Downloads
44
Maintainers
Readme
CDS MCP Server
Un serveur MCP (Model Context Protocol) pour interagir avec l'API CDS et le système d'authentification Peaksys.
Installation
npm install
npm run buildUtilisation
Démarrer le serveur MCP
npm startOu en mode développement :
npm run devMéthodes disponibles
1. Authentification OAuth2
Authentification via le flux OAuth2 avec PKCE (Proof Key for Code Exchange) sur https://auth.peaksys.com.
Fonctionnement :
- Génération d'une URL d'autorisation avec PKCE
- Ouverture automatique du navigateur pour l'authentification utilisateur
- L'utilisateur saisit ses identifiants (login/mot de passe) sur la page Peaksys
- Récupération du code d'autorisation via un serveur de callback local
- Échange du code contre un token d'accès
Paramètres :
clientId(string) : L'ID client OAuthclientSecret(string, optionnel) : Le secret client OAuth (non nécessaire avec PKCE)redirectUri(string, optionnel) : L'URI de redirection (défaut:http://localhost:3000/callback)scope(string, optionnel) : Le scope OAuth (défaut:read write)
Retour : Token d'authentification et informations de session
Sécurité : Utilise PKCE pour sécuriser le flux d'authentification sans nécessiter de client_secret
2. Recherche de produits
Recherche de produits par mot-clé.
Paramètres :
searchWord(string) : Le mot-clé de recherche
Retour : Liste des produits correspondants avec leurs détails
3. Détails d'un produit
Récupération des détails complets d'un produit.
Paramètres :
productId(string) : L'ID du produit
Retour : Détails complets du produit (prix, marque, description, etc.)
4. Informations de livraison
Récupération des meilleures informations de livraison pour un produit.
Paramètres :
productId(string) : L'ID du produitofferId(string) : L'ID de l'offrepostalCode(string) : Code postallongitude(number) : Longitudelatitude(number) : Latitudecity(string) : Villecountry(string) : Code pays (ex: FR)
Retour : Informations de livraison (gratuité, délais, etc.)
Configuration MCP
Pour utiliser ce serveur avec un client MCP en local, ajoutez la configuration suivante :
{
"mcpServers": {
"cdiscount-mcp-local": {
"command": "node",
"args": ["/path/to/your/dist/index.js"],
"env": {}
}
}
}en distant :
{
"mcpServers": {
"cdiscount-mcp": {
"command": "npx",
"args": [
"@ludovicl33/cds-mcp"
]
},
}
}Exemple d'utilisation
Authentification OAuth2
// Exemple d'appel pour l'authentification OAuth2 (sans client_secret)
const authResult = await authenticateOAuth(
"your-client-id",
undefined, // client_secret optionnel - PKCE sécurise le flux
"http://localhost:3000/callback",
"read write"
);
// Le navigateur s'ouvrira automatiquement pour l'authentification
// L'utilisateur devra saisir ses identifiants sur la page Peaksys
Donnée pour le test oauth2
login [email protected]
password Fierce-Kingfisher-16Recherche de produits
// Exemple d'appel pour la recherche
const searchResult = await searchByKeyword("smartphone");Développement
Structure du projet
src/index.ts: Serveur MCP principalsrc/mcp.ts: Implémentation des méthodes CDS et OAuthsrc/http.ts: Utilitaires pour les requêtes HTTPsrc/cli.ts: Interface en ligne de commande
Tests
npm testNotes importantes
- L'authentification OAuth2 utilise le flux d'autorisation avec PKCE pour une sécurité maximale
- Le client_secret n'est pas nécessaire grâce au PKCE qui sécurise le flux sans secret
- Le navigateur s'ouvre automatiquement pour l'authentification utilisateur
- Un serveur de callback local est démarré temporairement pour récupérer le code d'autorisation
- Toutes les requêtes CDS utilisent les headers appropriés pour simuler une requête mobile
- Les erreurs sont gérées et retournées de manière formatée
Licence
ISC
