Issuebage MCP Server
officielplateforme d'émission de badges numériques
Que pouvez-vous faire avec Issuebage MCP ?
- Valider la clé API — Demandez à l’assistant de vérifier si votre clé API IssueBadge est valide à l’aide de
validate_key. - Lister les modèles de badges — Faites récupérer par l’assistant tous vos modèles de badges disponibles avec
get_all_badges. - Délivrer un certificat — Demandez à l’assistant d’envoyer un certificat à un destinataire par nom et e-mail via
issue_badge. - Créer de nouveaux badges (local uniquement) — Donnez pour instruction à l’assistant de définir un nouveau modèle de badge avec
create_badgelorsqu’il est exécuté localement.
Documentation
Serveur MCP IssueBadge
Délivrez des certificats et badges vérifiables depuis n'importe quel agent IA. Ce serveur Model Context Protocol permet à Cursor, Claude, VS Code et d'autres clients MCP de lister vos modèles de badges IssueBadge et d'envoyer un certificat à un destinataire par nom et e-mail.
Deux façons de l'exécuter :
| À distance (recommandé) | Local (stdio) | |
|---|---|---|
| Point de terminaison | https://issuebadge-mcp.issuebadge.workers.dev/mcp | npx issuebadge-mcp-server |
| Authentification | En-tête Authorization: Bearer <API key> | Variable d'environnement ISSUEBADGE_API_KEY |
| Outils | validate_key, get_all_badges, issue_badge | les mêmes + create_badge |
| Stockage | aucun, sans état | aucun |
Vous avez besoin d'une clé API IssueBadge : app.issuebadge.com → Developer → API key (https://app.issuebadge.com/developer/index).
Installation
Cursor
Installez IssueBadge depuis le Cursor Marketplace et collez votre clé API lorsque vous y êtes invité. Ou ajoutez-le manuellement dans Settings → MCP :
{
"mcpServers": {
"issuebadge": {
"type": "streamable-http",
"url": "https://issuebadge-mcp.issuebadge.workers.dev/mcp",
"headers": { "Authorization": "Bearer YOUR_ISSUEBADGE_API_KEY" }
}
}
}
Claude Code
claude mcp add --transport http issuebadge https://issuebadge-mcp.issuebadge.workers.dev/mcp \
--header "Authorization: Bearer YOUR_ISSUEBADGE_API_KEY"
Ce dépôt est également un plugin Claude Code (.claude-plugin/plugin.json) et inclut une compétence issuebadge qui apprend à l'agent le flux liste → confirmer → délivrer. Le .mcp.json du plugin lit la clé depuis la variable d'environnement ISSUEBADGE_API_KEY, alors exportez-la avant de démarrer Claude Code.
Claude Desktop / tout client stdio
{
"mcpServers": {
"issuebadge": {
"command": "npx",
"args": ["-y", "issuebadge-mcp-server"],
"env": { "ISSUEBADGE_API_KEY": "YOUR_ISSUEBADGE_API_KEY" }
}
}
}
VS Code (mode agent Copilot)
.vscode/mcp.json :
{
"servers": {
"issuebadge": {
"type": "http",
"url": "https://issuebadge-mcp.issuebadge.workers.dev/mcp",
"headers": { "Authorization": "Bearer YOUR_ISSUEBADGE_API_KEY" }
}
}
}
Outils
| Outil | Entrée | Retourne |
|---|---|---|
validate_key | – | { valid, message } |
get_all_badges | limit? | { badges: [{ id, name, description?, created_at? }] } |
issue_badge | badge_id, name, email?, phone?, idempotency_key?, metadata? | { issue_id, certificate_url, idempotency_key } |
create_badge (stdio uniquement) | name, description, issuing_organization_name, idempotency_key, optionnel badge_logo_path, custom_fields, … | Réponse de l'API IssueBadge |
issue_badge envoie le certificat par e-mail au destinataire et renvoie une URL de vérification publique. Chaque appel avec un nouveau idempotency_key émet un nouveau certificat (un est généré comme mcp-<uuid> si vous l'omettez). L'API rejette une clé réutilisée, donc après un appel échoué, vérifiez si le certificat a été émis avant de rappeler avec une nouvelle clé.
Exemple d'invite une fois installé : "Délivrez le certificat de fin de cours à Jane Doe, jane@example.com."
ChatGPT et OAuth
Le serveur distant prend également en charge OAuth 2.1 pour les hôtes qui ne peuvent pas envoyer de clé API (applications ChatGPT, connecteurs Claude) : une requête sans jeton d'accès obtient 401 + WWW-Authenticate: Bearer resource_metadata=…, /.well-known/oauth-protected-resource pointe vers https://app.issuebadge.com (PKCE S256, enregistrement dynamique de client), et le jeton d'accès émis est transmis exactement comme une clé API. issue_badge contient un widget (ui://widget/certificate.html, MCP Apps / ChatGPT Apps SDK) qui affiche la carte de certificat. Voir CHATGPT.md.
Confidentialité et sécurité
- Le serveur distant est sans état. Votre clé API est lue depuis l'en-tête
Authorizationde chaque requête, transmise àapp.issuebadge.com, et jamais stockée ni journalisée. Les requêtes sans clé reçoivent401. - Le seul hôte contacté est
app.issuebadge.com. Le nom du destinataire, l'e-mail et l'identifiant du badge y sont envoyés pour créer le certificat. - Politique de confidentialité : https://issuebadge.com/h/policy · Conditions : https://issuebadge.com/h/terms · Support : https://issuebadge.com/h/contact
Auto-héberger le serveur distant
git clone https://github.com/issuebadge/mcp-server && cd mcp-server
npm install
npm test
npx wrangler deploy --config worker/wrangler.toml # needs a Cloudflare account
GET /health renvoie { ok: true }. Pointez ISSUEBADGE_BASE_URL vers un hôte API différent pour le serveur stdio si vous exécutez IssueBadge ailleurs.
Développement
npm install
npm test # vitest: client, tools, worker (mocked IssueBadge API)
npm run build # tsc → dist/ (stdio bin)
npm run dev:worker
Disposition : src/issuebadge.ts (client API), src/tools.ts (registre d'outils partagé par les deux hôtes), src/stdio.ts (bin npm), src/createBadge.ts (outil stdio uniquement), worker/index.ts (Cloudflare Worker), .cursor-plugin/ + mcp.json (plugin Cursor), .claude-plugin/ + .mcp.json (plugin Claude Code), skills/issuebadge/SKILL.md, server.json (MCP Registry).
Licence
MIT