Issuebage MCP Server
offizielldigitale Badge-Ausstellungsplattform
Was kann man mit Issuebage MCP machen?
- API-Schlüssel validieren — Bitten Sie den Assistenten, mithilfe von
validate_keyzu 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_badgesabrufen. - Zertifikat ausstellen — Fordern Sie den Assistenten auf, ein Zertifikat an einen Empfänger per Name und E-Mail über
issue_badgezu senden. - Neue Badges erstellen (nur lokal) — Weisen Sie den Assistenten an, mit
create_badgeeine 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) | |
|---|---|---|
| Endpoint | https://issuebadge-mcp.issuebadge.workers.dev/mcp | npx issuebadge-mcp-server |
| Authentifizierung | Authorization: Bearer <API key>-Header | ISSUEBADGE_API_KEY-Umgebungsvariable |
| Tools | validate_key, get_all_badges, issue_badge | dieselben + create_badge |
| Speicherung | keine, zustandslos | keine |
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
| Tool | Eingabe | Rückgabe |
|---|---|---|
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 (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, anapp.issuebadge.comweitergeleitet und niemals gespeichert oder protokolliert. Anfragen ohne Schlüssel erhalten401. - 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