Issuebage MCP Server
officielplateforme d'émission de badges numériques
Documentation
Serveur MCP IssueBadge
Un serveur Model Context Protocol (MCP) pour interagir avec l'API IssueBadge. Ce serveur permet aux assistants IA comme Claude et ChatGPT de gérer des badges numériques et des certificats en langage naturel.
🌟 Fonctionnalités
- 🤖 Gestion de badges assistée par IA : Utilisez le langage naturel pour créer, émettre et gérer des badges
- 🔐 Double authentification : Prise en charge de Laravel Sanctum et OAuth2
- 🏆 Cycle de vie complet des badges : Créez des modèles, émettez-les aux destinataires et vérifiez leur authenticité
- 📊 Support multi-tenant : Isolation sécurisée des locataires pour une utilisation en entreprise
- 🛡️ Protection d'idempotence : Empêchez les opérations en double grâce à des sécurités intégrées
- 📧 Notifications automatisées : Envoi automatique d'e-mails avec des URL de vérification
- 🎨 Champs personnalisés : Métadonnées flexibles et prise en charge des champs personnalisés
🚀 Démarrage rapide
Prérequis
- Node.js 18+
- npm 8+
- Compte API IssueBadge avec clé API
Installation
-
Cloner le dépôt
git clone https://github.com/issuebadge/mcp-server.git cd mcp-server -
Installer les dépendances
npm install -
Configurer l'environnement
cp .env.example .env # Edit .env with your IssueBadge API credentials -
Compiler le projet
npm run build -
Tester le serveur
npm test
⚙️ Configuration
Créez un fichier .env basé sur .env.example :
# API Configuration
ISSUEBADGE_BASE_URL=https://app.issuebadge.com/api/v1
ISSUEBADGE_API_KEY=
# OAuth2 Configuration (Alternative)
ISSUEBADGE_OAUTH_URL=https://app.issuebadge.com/api/v1/oauth
ISSUEBADGE_OAUTH_TOKEN=your_oauth_token_here
# Authentication Method (sanctum or oauth2)
AUTH_METHOD=sanctum
# Server Configuration
MCP_SERVER_NAME=IssueBadge MCP Server
MCP_SERVER_VERSION=1.0.0
# Optional Settings
REQUEST_TIMEOUT=30000
DEBUG=false
MAX_RETRIES=3
RETRY_DELAY=1000
🔧 Intégration
Claude Desktop
Ajoutez ce serveur à votre configuration Claude Desktop :
{
"mcpServers": {
"issuebadge": {
"command": "node",
"args": ["/absolute/path/to/mcp-server/dist/index.js"],
"env": {
"ISSUEBADGE_BASE_URL": "https://app.issuebadge.com
/api/v1",
"ISSUEBADGE_API_KEY": "",
"AUTH_METHOD": "sanctum"
}
}
}
}
Actions ChatGPT
- Créez un GPT personnalisé dans ChatGPT
- Importez la spécification OpenAPI depuis votre instance IssueBadge
- Configurez l'authentification par jeton Bearer avec votre clé API
- Commencez à gérer les badges par la conversation !
🛠️ Outils disponibles
1. validate_key
Valide les clés API IssueBadge pour l'authentification.
Paramètres :
api_key(chaîne, requis) : La clé API à valider
Exemple :
"Validate my API key: 1|abcdef123456789..."
2. get_all_badges
Récupère tous les badges disponibles pour l'organisation authentifiée.
Paramètres :
limit(nombre, optionnel) : Nombre maximum de badges à retourner (par défaut : 100)
Exemple :
"Show me all available badges"
"List the first 50 badges"
3. create_badge
Crée un nouveau modèle de badge avec des champs personnalisés optionnels.
Paramètres :
name(chaîne, requis) : Nom du badgedescription(chaîne, requis) : Description du badgeissuing_organization_name(chaîne, requis) : Nom de l'organisationidempotency_key(chaîne, requis) : Identifiant uniquecustom_fields(tableau, optionnel) : Définitions de champs personnalisés- Et d'autres paramètres optionnels...
Exemple :
"Create a badge called 'Web Development Certificate' for completing our full-stack course"
"Create a Python certification badge with custom fields for completion date and final score"
4. issue_badge
Émet un badge à un destinataire avec des métadonnées optionnelles.
Paramètres :
badge_id(chaîne, requis) : ID du badge issu de la créationname(chaîne, requis) : Nom complet du destinataireidempotency_key(chaîne, requis) : Identifiant uniqueemail(chaîne, optionnel) : E-mail du destinatairemetadata(objet, optionnel) : Valeurs des champs personnalisés
Exemple :
"Issue the Web Development badge to John Doe with email [email protected]"
"Issue Python certification to Alice with completion date today and score 95%"
💬 Exemples en langage naturel
Création de badges
Human: "Create a badge for JavaScript mastery with fields for completion date and project count"
AI: I'll create a JavaScript mastery badge with the custom fields you specified.
✨ Badge Created Successfully!
🏷️ Badge Name: JavaScript Mastery Certificate
🆔 Badge ID: js_mastery_2024_001
📋 Custom fields: completion_date (date), project_count (number)
Émission de badges
Human: "Issue the JavaScript badge to Sarah Chen with completion date December 1st and 5 projects completed"
AI: I'll issue the JavaScript mastery badge to Sarah Chen with the specified details.
🎉 Badge Issued Successfully!
📧 Recipient: Sarah Chen
🔗 Verification URL: https://yourdomain.com/verify/xyz123
📅 Completion Date: 2024-12-01
📊 Projects: 5
Opérations par lots
Human: "Create completion badges for all students in my Python course who scored above 85%"
AI: I'll help you create and issue completion badges for high-performing students. First, let me create a Python Course Completion badge, then we can issue it to qualified students.
[Creates badge and processes student list]
🏗️ Développement
Compilation depuis les sources
# Clone the repository
git clone https://github.com/issuebadge/mcp-server.git
cd mcp-server
# Install dependencies
npm install
# Build TypeScript
npm run build
# Run in development mode
npm run dev
# Lint code
npm run lint
# Format code
npm run format
Structure du projet
mcp-server/
├── src/
│ └── index.ts # Main MCP server implementation
├── dist/ # Compiled JavaScript (generated)
├── .env.example # Environment configuration template
├── package.json # Node.js dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── README.md # This file
🔒 Sécurité
- Toutes les communications API utilisent HTTPS
- Les clés API sont validées avant chaque requête
- Les clés d'idempotence empêchent les opérations en double
- Isolation des données multi-tenant
- Protection contre les délais de requête
- Gestion complète des erreurs
📊 Gestion des erreurs
Le serveur MCP fournit des messages d'erreur détaillés pour les problèmes courants :
- Erreurs d'authentification : Clés API invalides ou jetons expirés
- Erreurs de validation : Paramètres requis manquants ou formats invalides
- Erreurs réseau : Délais de connexion ou indisponibilité du service
- Erreurs de logique métier : Opérations en double ou permissions insuffisantes
🌍 Cas d'utilisation
Établissements d'enseignement
- Achèvement de cours : Émettez automatiquement des badges lorsque les étudiants terminent des cours
- Validation des compétences : Créez des badges basés sur les compétences avec des scores d'évaluation
- Certificats de fin d'études : Émettez en masse des badges de fin d'études avec des détails académiques
Formation en entreprise
- Programmes de certification : Gérez les certifications professionnelles avec des dates d'expiration
- Formation à la conformité : Suivez et vérifiez l'achèvement des formations obligatoires
- Développement des compétences : Émettez des badges pour les programmes internes de développement des compétences
Gestion d'événements
- Participation à des conférences : Émettez des badges de participation pour des événements et ateliers
- Suivi des réalisations : Créez des systèmes de badges progressifs pour des programmes continus
- Reconnaissance des intervenants : Gérez les badges de reconnaissance pour les intervenants et participants
🤝 Contribution
Nous accueillons les contributions ! Veuillez consulter nos directives de contribution :
- Forker le dépôt
- Créer une branche de fonctionnalité :
git checkout -b feature/amazing-feature - Valider vos modifications :
git commit -m 'Add amazing feature' - Pousser vers la branche :
git push origin feature/amazing-feature - Ouvrir une Pull Request
Directives de développement
- Suivez les meilleures pratiques TypeScript
- Ajoutez une gestion complète des erreurs
- Incluez des commentaires JSDoc pour les fonctions
- Mettez à jour les tests pour les nouvelles fonctionnalités
- Suivez le versionnage sémantique
📝 Licence
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.
🆘 Support
Obtenir de l'aide
- 📖 Documentation : Consultez ce README et les commentaires de code en ligne
- 🐛 Rapports de bugs : Ouvrir un ticket
- 💬 Discussions : Discussions GitHub
- 📧 E-mail : [email protected]
Dépannage
Problèmes courants
1. Échec de la validation de la clé API
# Check API key format (should start with number|)
# Verify the key hasn't expired
# Ensure correct base URL
2. Délai de connexion
# Check network connectivity
# Verify IssueBadge service status
# Increase REQUEST_TIMEOUT in .env
3. Erreurs de création de badge
# Verify required fields are provided
# Check idempotency key uniqueness
# Validate organization permissions
🔗 Projets connexes
- API IssueBadge : Plateforme principale de gestion de badges
- Model Context Protocol : Spécification et outils MCP
- Claude Desktop : Assistant IA avec support MCP
📈 Feuille de route
Version 1.1
- Opérations de badges par lots
- Filtrage et recherche avancés
- Intégration de webhooks
- Gestion des modèles de badges
Version 1.2
- Outils d'analyse et de reporting
- Règles de validation de badges personnalisées
- Intégration avec les systèmes de gestion de l'apprentissage
- Automatisation avancée des flux de travail
Version 2.0
- Support de vérification par blockchain
- Contenu de badge multilingue
- Personnalisation avancée de la marque
- Intégration SSO d'entreprise
Prêt à révolutionner votre gestion de badges ? Démarrez avec le serveur MCP IssueBadge et découvrez la puissance de l'administration conversationnelle des badges !
Construit avec ❤️ par l'équipe IssueBadge