Issuebage MCP Server
官方数字徽章发行平台
你可以用 Issuebage MCP 做什么?
- 验证 API 密钥 — 让助手使用
validate_key检查您的 IssueBadge API 密钥是否有效。 - 列出徽章模板 — 让助手通过
get_all_badges获取您所有可用的徽章模板。 - 颁发证书 — 请求助手通过
issue_badge按姓名和电子邮件向收件人发送证书。 - 创建新徽章(仅限本地) — 在本地运行时,指示助手使用
create_badge定义新的徽章模板。
文档
IssueBadge MCP 服务器
从任何 AI 代理颁发可验证的证书和徽章。这个 Model Context Protocol 服务器让 Cursor、Claude、VS Code 和其他 MCP 客户端能够列出您的 IssueBadge 徽章模板,并通过姓名和电子邮件向接收者发送证书。
两种运行方式:
| 远程(推荐) | 本地(stdio) | |
|---|---|---|
| 端点 | https://issuebadge-mcp.issuebadge.workers.dev/mcp | npx issuebadge-mcp-server |
| 认证 | Authorization: Bearer <API key> 请求头 | ISSUEBADGE_API_KEY 环境变量 |
| 工具 | validate_key、get_all_badges、issue_badge | 相同工具 + create_badge |
| 存储 | 无,无状态 | 无 |
您需要一个 IssueBadge API 密钥:app.issuebadge.com → 开发者 → API 密钥(https://app.issuebadge.com/developer/index)。
安装
Cursor
从 Cursor 市场 安装 IssueBadge,并在提示时粘贴您的 API 密钥。或者通过 设置 → 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"
此仓库也是一个 Claude Code 插件(.claude-plugin/plugin.json),并附带一个 issuebadge 技能,教代理掌握 列出 → 确认 → 颁发 的工作流程。插件的 .mcp.json 从 ISSUEBADGE_API_KEY 环境变量读取密钥,因此在启动 Claude Code 之前请先导出该变量。
Claude Desktop / 任何 stdio 客户端
{
"mcpServers": {
"issuebadge": {
"command": "npx",
"args": ["-y", "issuebadge-mcp-server"],
"env": { "ISSUEBADGE_API_KEY": "YOUR_ISSUEBADGE_API_KEY" }
}
}
}
VS Code(Copilot 代理模式)
.vscode/mcp.json:
{
"servers": {
"issuebadge": {
"type": "http",
"url": "https://issuebadge-mcp.issuebadge.workers.dev/mcp",
"headers": { "Authorization": "Bearer YOUR_ISSUEBADGE_API_KEY" }
}
}
}
工具
| 工具 | 输入 | 返回 |
|---|---|---|
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) | name、description、issuing_organization_name、idempotency_key、可选 badge_logo_path、custom_fields、… | IssueBadge API 响应 |
issue_badge 将证书通过电子邮件发送给接收者,并返回一个公开的验证 URL。每次使用新的 idempotency_key 调用都会颁发新证书(如果您省略,则会生成一个作为 mcp-<uuid>)。API 会拒绝重复使用的密钥,因此在失败的调用后,请检查证书是否已颁发,然后再使用新密钥重新调用。
安装后的示例提示:"向 Jane Doe(jane@example.com)颁发课程完成证书。"
ChatGPT 和 OAuth
远程服务器还支持 OAuth 2.1,适用于无法发送 API 密钥的主机(ChatGPT 应用、Claude 连接器):没有 bearer 的请求会收到 401 + WWW-Authenticate: Bearer resource_metadata=…,/.well-known/oauth-protected-resource 指向 https://app.issuebadge.com(PKCE S256,动态客户端注册),颁发的访问令牌会像 API 密钥一样被转发。issue_badge 携带一个小部件(ui://widget/certificate.html,MCP 应用 / ChatGPT 应用 SDK),用于渲染证书卡片。参见 CHATGPT.md。
隐私与安全
- 远程服务器是无状态的。您的 API 密钥从每个请求的
Authorization请求头中读取,转发到app.issuebadge.com,并且从不存储或记录。没有密钥的请求会收到401。 - 唯一联系的主机是
app.issuebadge.com。接收者姓名、电子邮件和徽章 ID 会被发送到那里以创建证书。 - 隐私政策:https://issuebadge.com/h/policy · 条款:https://issuebadge.com/h/terms · 支持:https://issuebadge.com/h/contact
自托管远程服务器
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 返回 { ok: true }。如果您在其他地方运行 IssueBadge,请将 ISSUEBADGE_BASE_URL 指向不同的 API 主机以用于 stdio 服务器。
开发
npm install
npm test # vitest: client, tools, worker (mocked IssueBadge API)
npm run build # tsc → dist/ (stdio bin)
npm run dev:worker
布局:src/issuebadge.ts(API 客户端)、src/tools.ts(两个主机共享的工具注册表)、src/stdio.ts(npm bin)、src/createBadge.ts(仅 stdio 工具)、worker/index.ts(Cloudflare Worker)、.cursor-plugin/ + mcp.json(Cursor 插件)、.claude-plugin/ + .mcp.json(Claude Code 插件)、skills/issuebadge/SKILL.md、server.json(MCP 注册表)。
许可证
MIT