Aller au contenu principal

Guide de Développement

Ce guide fournit des instructions pour développer et contribuer au serveur MCP de CWCloud.

Structure du Projet

cwcloud-mcp/
├── cmd/server/ # Point d'entrée de l'application
│ └── main.go # Bootstrap de l'application principale
├── internal/ # Code interne de l'application (privé)
│ ├── types/ # DÉFINITIONS DE TYPES CENTRALISÉES
│ │ └── types.go # Tous les types du projet en un seul endroit
│ ├── config/ # Gestion de la configuration
│ │ └── config.go # Chargement de l'environnement et de la configuration
│ ├── cwapi/ # Client API CWCloud
│ │ ├── client.go # Implémentation du client HTTP
│ │ └── auth.go # Logique d'authentification
│ ├── mcp/ # Implémentation du protocole MCP
│ │ ├── server.go # Cœur du serveur MCP
│ │ ├── handlers.go # Gestionnaires de messages
│ │ ├── tools.go # Constructeurs d'outils
│ │ └── errors.go # Gestion des erreurs
│ └── tools/ # Implémentations des outils MCP
│ ├── generate_ai_prompt.go # Outil de génération IA
│ └── list_conversations.go # Outil de gestion des conversations
├── pkg/ # PAQUETAGES PUBLICS (importables par d'autres projets Go)
│ └── mcp/ # Bibliothèque publique MCP de CWCloud
│ ├── client.go # Interface client publique
│ ├── types.go # Définitions de types publiques
│ ├── tools.go # Aides pour les outils MCP
│ └── README.md # Documentation de la bibliothèque
├── examples/ # EXEMPLES D'UTILISATION
│ └── usage.go # Exemples d'utilisation complets
└── docs/ # Documentation

Compilation depuis la Source

# Installer les dépendances
go mod tidy

# Compiler pour la production
go build -ldflags="-w -s" -o cwcloud-mcp ./cmd/server

# Construire l'image Docker
make docker
# ou manuellement :
docker build -t cwcloud-mcp .

Exécution des Tests

Test d'intégration

# Tests interactifs avec la fonctionnalité IA (nécessite des clés API valides)
./test-interactive.sh

# Ou vous pouvez faire la même chose en utilisant les commandes Make
make test-interactive # Exécuter les tests IA interactifs

Tests unitaires

# Note : Les tests unitaires seront ajoutés à mesure que le projet mûrira

# Exécuter les tests
go test ./...

# Ou vous pouvez faire la même chose en utilisant les commandes Make
make test

Dépannage

Mode Débogage

Activer la journalisation de débogage pour un dépannage détaillé :

LOG_LEVEL=debug