Issuebage MCP Server

officiel

plateforme 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_badge lorsqu’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 terminaisonhttps://issuebadge-mcp.issuebadge.workers.dev/mcpnpx issuebadge-mcp-server
AuthentificationEn-tête Authorization: Bearer <API key>Variable d'environnement ISSUEBADGE_API_KEY
Outilsvalidate_key, get_all_badges, issue_badgeles mêmes + create_badge
Stockageaucun, sans étataucun

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

OutilEntréeRetourne
validate_key–{ valid, message }
get_all_badgeslimit?{ badges: [{ id, name, description?, created_at? }] }
issue_badgebadge_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 Authorization de chaque requête, transmise à app.issuebadge.com, et jamais stockée ni journalisée. Les requêtes sans clé reçoivent 401.
  • 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