Issuebage MCP Server

offiziell

digitale Badge-Ausstellungsplattform

Was kann man mit Issuebage MCP machen?

  • API-Schlüssel validieren — Bitten Sie den Assistenten, mithilfe von validate_key zu prüfen, ob Ihr IssueBadge-API-Schlüssel gültig ist.
  • Badge-Vorlagen auflisten — Lassen Sie den Assistenten alle Ihre verfügbaren Badge-Vorlagen mit get_all_badges abrufen.
  • Zertifikat ausstellen — Fordern Sie den Assistenten auf, ein Zertifikat an einen Empfänger per Name und E-Mail über issue_badge zu senden.
  • Neue Badges erstellen (nur lokal) — Weisen Sie den Assistenten an, mit create_badge eine neue Badge-Vorlage zu definieren, wenn er lokal ausgeführt wird.

Dokumentation

IssueBadge MCP-Server

Stellen Sie verifizierbare Zertifikate und Badges von jedem KI-Agenten aus. Dieser Model Context Protocol-Server ermöglicht es Cursor, Claude, VS Code und anderen MCP-Clients, Ihre IssueBadge-Badge-Vorlagen aufzulisten und ein Zertifikat an einen Empfänger per Name und E-Mail zu senden.

Zwei Möglichkeiten, ihn auszuführen:

Remote (empfohlen)Lokal (stdio)
Endpointhttps://issuebadge-mcp.issuebadge.workers.dev/mcpnpx issuebadge-mcp-server
AuthentifizierungAuthorization: Bearer <API key>-HeaderISSUEBADGE_API_KEY-Umgebungsvariable
Toolsvalidate_key, get_all_badges, issue_badgedieselben + create_badge
Speicherungkeine, zustandsloskeine

Sie benötigen einen IssueBadge-API-Schlüssel: app.issuebadge.com → Entwickler → API-Schlüssel (https://app.issuebadge.com/developer/index).

Installation

Cursor

Installieren Sie IssueBadge aus dem Cursor Marketplace und fügen Sie Ihren API-Schlüssel ein, wenn Sie dazu aufgefordert werden. Oder fügen Sie ihn manuell unter Einstellungen → MCP hinzu:

{
  "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"

Dieses Repository ist auch ein Claude-Code-Plugin (.claude-plugin/plugin.json) und enthält eine issuebadge-Fähigkeit, die dem Agenten den Arbeitsablauf Liste → Bestätigen → Ausstellen beibringt. Die .mcp.json des Plugins liest den Schlüssel aus der ISSUEBADGE_API_KEY-Umgebungsvariable. Exportieren Sie diese daher, bevor Sie Claude Code starten.

Claude Desktop / jeder stdio-Client

{
  "mcpServers": {
    "issuebadge": {
      "command": "npx",
      "args": ["-y", "issuebadge-mcp-server"],
      "env": { "ISSUEBADGE_API_KEY": "YOUR_ISSUEBADGE_API_KEY" }
    }
  }
}

VS Code (Copilot-Agentenmodus)

.vscode/mcp.json:

{
  "servers": {
    "issuebadge": {
      "type": "http",
      "url": "https://issuebadge-mcp.issuebadge.workers.dev/mcp",
      "headers": { "Authorization": "Bearer YOUR_ISSUEBADGE_API_KEY" }
    }
  }
}

Tools

ToolEingabeRückgabe
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 (nur stdio)name, description, issuing_organization_name, idempotency_key, optional badge_logo_path, custom_fields, …IssueBadge-API-Antwort

issue_badge sendet das Zertifikat per E-Mail an den Empfänger und gibt eine öffentliche Verifizierungs-URL zurück. Jeder Aufruf mit einem neuen idempotency_key stellt ein neues Zertifikat aus (eines wird als mcp-<uuid> generiert, wenn Sie es weglassen). Die API lehnt einen wiederverwendeten Schlüssel ab. Prüfen Sie daher nach einem fehlgeschlagenen Aufruf, ob das Zertifikat ausgestellt wurde, bevor Sie erneut mit einem neuen Schlüssel aufrufen.

Beispielaufforderung nach der Installation: „Stellen Sie das Kursabschluss-Zertifikat für Jane Doe, jane@example.com, aus."

ChatGPT und OAuth

Der Remote-Server unterstützt auch OAuth 2.1 für Hosts, die keinen API-Schlüssel senden können (ChatGPT-Apps, Claude-Connectoren): Eine Anfrage ohne Bearer-Token erhält 401 + WWW-Authenticate: Bearer resource_metadata=…, /.well-known/oauth-protected-resource verweist auf https://app.issuebadge.com (PKCE S256, dynamische Client-Registrierung), und das ausgestellte Zugriffstoken wird genau wie ein API-Schlüssel weitergeleitet. issue_badge enthält ein Widget (ui://widget/certificate.html, MCP-Apps / ChatGPT-Apps-SDK), das die Zertifikatskarte rendert. Siehe CHATGPT.md.

Datenschutz und Sicherheit

  • Der Remote-Server ist zustandslos. Ihr API-Schlüssel wird aus dem Authorization-Header jeder Anfrage gelesen, an app.issuebadge.com weitergeleitet und niemals gespeichert oder protokolliert. Anfragen ohne Schlüssel erhalten 401.
  • Der einzige kontaktierte Host ist app.issuebadge.com. Empfängername, E-Mail und die Badge-ID werden dorthin gesendet, um das Zertifikat zu erstellen.
  • Datenschutzrichtlinie: https://issuebadge.com/h/policy · Nutzungsbedingungen: https://issuebadge.com/h/terms · Support: https://issuebadge.com/h/contact

Remote-Server selbst hosten

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 gibt { ok: true } zurück. Richten Sie ISSUEBADGE_BASE_URL auf einen anderen API-Host für den stdio-Server, wenn Sie IssueBadge woanders ausführen.

Entwicklung

npm install
npm test          # vitest: client, tools, worker (mocked IssueBadge API)
npm run build     # tsc → dist/ (stdio bin)
npm run dev:worker

Aufbau: src/issuebadge.ts (API-Client), src/tools.ts (Tool-Registry, von beiden Hosts gemeinsam genutzt), src/stdio.ts (npm-Bin), src/createBadge.ts (nur-stdio-Tool), worker/index.ts (Cloudflare-Worker), .cursor-plugin/ + mcp.json (Cursor-Plugin), .claude-plugin/ + .mcp.json (Claude-Code-Plugin), skills/issuebadge/SKILL.md, server.json (MCP-Registry).

Lizenz

MIT