Issuebage MCP Server

公式

デジタルバッジ発行プラットフォーム

ドキュメント

IssueBadge MCP Server

npm version License: MIT TypeScript MCP

IssueBadge APIと対話するためのModel Context Protocol (MCP) サーバーです。このサーバーにより、ClaudeやChatGPTのようなAIアシスタントが自然言語を使ってデジタルバッジや証明書を管理できるようになります。

🌟 特徴

  • 🤖 AI駆動のバッジ管理: 自然言語でバッジの作成、発行、管理が可能
  • 🔐 二重認証: Laravel SanctumとOAuth2の両方をサポート
  • 🏆 完全なバッジライフサイクル: テンプレート作成、受領者への発行、真正性の検証
  • 📊 マルチテナントサポート: エンタープライズ向けの安全なテナント分離
  • 🛡️ 冪等性保護: 組み込みの保護機能による重複操作の防止
  • 📧 自動通知: 検証URL付きの自動メール配信
  • 🎨 カスタムフィールド: 柔軟なメタデータとカスタムフィールドのサポート

🚀 クイックスタート

前提条件

  • Node.js 18以上
  • npm 8以上
  • APIキーを持つIssueBadge APIアカウント

インストール

  1. リポジトリをクローン

    git clone https://github.com/issuebadge/mcp-server.git
    cd mcp-server
    
  2. 依存関係をインストール

    npm install
    
  3. 環境を設定

    cp .env.example .env
    # Edit .env with your IssueBadge API credentials
    
  4. プロジェクトをビルド

    npm run build
    
  5. サーバーをテスト

    npm test
    

⚙️ 設定

.env.example を基に .env ファイルを作成します:

# API Configuration
ISSUEBADGE_BASE_URL=https://app.issuebadge.com/api/v1
ISSUEBADGE_API_KEY=

# OAuth2 Configuration (Alternative)
ISSUEBADGE_OAUTH_URL=https://app.issuebadge.com/api/v1/oauth
ISSUEBADGE_OAUTH_TOKEN=your_oauth_token_here

# Authentication Method (sanctum or oauth2)
AUTH_METHOD=sanctum

# Server Configuration
MCP_SERVER_NAME=IssueBadge MCP Server
MCP_SERVER_VERSION=1.0.0

# Optional Settings
REQUEST_TIMEOUT=30000
DEBUG=false
MAX_RETRIES=3
RETRY_DELAY=1000

🔧 統合

Claude Desktop

このサーバーをClaude Desktopの設定に追加します:

{
  "mcpServers": {
    "issuebadge": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-server/dist/index.js"],
      "env": {
        "ISSUEBADGE_BASE_URL": "https://app.issuebadge.com
/api/v1",
        "ISSUEBADGE_API_KEY": "",
        "AUTH_METHOD": "sanctum"
      }
    }
  }
}

ChatGPT Actions

  1. ChatGPTで新しいカスタムGPTを作成
  2. IssueBadgeインスタンスからOpenAPI仕様をインポート
  3. APIキーでBearerトークン認証を設定
  4. 会話を通じてバッジ管理を開始!

🛠️ 利用可能なツール

1. validate_key

認証用にIssueBadge APIキーを検証します。

パラメータ:

  • api_key (string, 必須): 検証するAPIキー

例:

"Validate my API key: 1|abcdef123456789..."

2. get_all_badges

認証された組織で利用可能なすべてのバッジを取得します。

パラメータ:

  • limit (number, オプション): 返すバッジの最大数 (デフォルト: 100)

例:

"Show me all available badges"
"List the first 50 badges"

3. create_badge

オプションのカスタムフィールドを持つ新しいバッジテンプレートを作成します。

パラメータ:

  • name (string, 必須): バッジ名
  • description (string, 必須): バッジの説明
  • issuing_organization_name (string, 必須): 組織名
  • idempotency_key (string, 必須): 一意の識別子
  • custom_fields (array, オプション): カスタムフィールド定義
  • その他オプションのパラメータ...

例:

"Create a badge called 'Web Development Certificate' for completing our full-stack course"
"Create a Python certification badge with custom fields for completion date and final score"

4. issue_badge

オプションのメタデータ付きで受領者にバッジを発行します。

パラメータ:

  • badge_id (string, 必須): 作成時のバッジID
  • name (string, 必須): 受領者のフルネーム
  • idempotency_key (string, 必須): 一意の識別子
  • email (string, オプション): 受領者のメールアドレス
  • metadata (object, オプション): カスタムフィールド値

例:

"Issue the Web Development badge to John Doe with email [email protected]"
"Issue Python certification to Alice with completion date today and score 95%"

💬 自然言語の例

バッジの作成

Human: "Create a badge for JavaScript mastery with fields for completion date and project count"

AI: I'll create a JavaScript mastery badge with the custom fields you specified.

✨ Badge Created Successfully!
🏷️ Badge Name: JavaScript Mastery Certificate
🆔 Badge ID: js_mastery_2024_001
📋 Custom fields: completion_date (date), project_count (number)

バッジの発行

Human: "Issue the JavaScript badge to Sarah Chen with completion date December 1st and 5 projects completed"

AI: I'll issue the JavaScript mastery badge to Sarah Chen with the specified details.

🎉 Badge Issued Successfully!
📧 Recipient: Sarah Chen  
🔗 Verification URL: https://yourdomain.com/verify/xyz123
📅 Completion Date: 2024-12-01
📊 Projects: 5

バッチ操作

Human: "Create completion badges for all students in my Python course who scored above 85%"

AI: I'll help you create and issue completion badges for high-performing students. First, let me create a Python Course Completion badge, then we can issue it to qualified students.

[Creates badge and processes student list]

🏗️ 開発

ソースからのビルド

# Clone the repository
git clone https://github.com/issuebadge/mcp-server.git
cd mcp-server

# Install dependencies
npm install

# Build TypeScript
npm run build

# Run in development mode
npm run dev

# Lint code
npm run lint

# Format code
npm run format

プロジェクト構造

mcp-server/
├── src/
│   └── index.ts          # Main MCP server implementation
├── dist/                 # Compiled JavaScript (generated)
├── .env.example         # Environment configuration template
├── package.json         # Node.js dependencies and scripts
├── tsconfig.json        # TypeScript configuration
└── README.md           # This file

🔒 セキュリティ

  • すべてのAPI通信はHTTPSを使用
  • 各リクエスト前にAPIキーを検証
  • 冪等性キーによる重複操作の防止
  • マルチテナントデータの分離
  • リクエストタイムアウト保護
  • 包括的なエラーハンドリング

📊 エラーハンドリング

MCPサーバーは一般的な問題に対して詳細なエラーメッセージを提供します:

  • 認証エラー: 無効なAPIキーまたは期限切れトークン
  • 検証エラー: 必須パラメータの欠落または無効な形式
  • ネットワークエラー: 接続タイムアウトまたはサービス利用不可
  • ビジネスロジックエラー: 重複操作または不十分な権限

🌍 ユースケース

教育機関

  • コース修了: 学生がコースを修了した際に自動でバッジを発行
  • スキル検証: 評価スコア付きのスキルベースのバッジを作成
  • 卒業証明書: 学業詳細付きの卒業バッジを一括発行

企業研修

  • 認定プログラム: 有効期限付きの専門認定を管理
  • コンプライアンス研修: 必須研修の修了を追跡・検証
  • スキル開発: 社内スキル開発プログラム用のバッジを発行

イベント管理

  • 会議出席: イベントやワークショップの出席バッジを発行
  • 達成度追跡: 継続的プログラム向けの段階的バッジシステムを作成
  • スピーカー表彰: スピーカーや参加者の表彰バッジを管理

🤝 貢献

貢献を歓迎します!貢献ガイドラインをご覧ください:

  1. リポジトリをフォーク
  2. フィーチャーブランチを作成: git checkout -b feature/amazing-feature
  3. 変更をコミット: git commit -m 'Add amazing feature'
  4. ブランチにプッシュ: git push origin feature/amazing-feature
  5. プルリクエストをオープン

開発ガイドライン

  • TypeScriptのベストプラクティスに従う
  • 包括的なエラーハンドリングを追加
  • 関数にJSDocコメントを含める
  • 新機能のテストを更新
  • セマンティックバージョニングに従う

📝 ライセンス

このプロジェクトはMITライセンスの下で提供されています - 詳細はLICENSEファイルを参照してください。

🆘 サポート

ヘルプの入手

トラブルシューティング

一般的な問題

1. APIキー検証の失敗

# Check API key format (should start with number|)
# Verify the key hasn't expired
# Ensure correct base URL

2. 接続タイムアウト

# Check network connectivity
# Verify IssueBadge service status
# Increase REQUEST_TIMEOUT in .env

3. バッジ作成エラー

# Verify required fields are provided
# Check idempotency key uniqueness
# Validate organization permissions

🔗 関連プロジェクト

📈 ロードマップ

バージョン 1.1

  • バッチバッジ操作
  • 高度なフィルタリングと検索
  • Webhook統合
  • バッジテンプレート管理

バージョン 1.2

  • 分析およびレポートツール
  • カスタムバッジ検証ルール
  • 学習管理システムとの統合
  • 高度なワークフロー自動化

バージョン 2.0

  • ブロックチェーン検証サポート
  • 多言語バッジコンテンツ
  • 高度なブランディングカスタマイズ
  • エンタープライズSSO統合

バッジ管理に革命を起こす準備はできましたか? IssueBadge MCP Serverを始めて、会話型バッジ管理のパワーを体験してください!

IssueBadgeチームによって❤️を込めて作られました