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/mcpnpx 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_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)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