Issuebage MCP Server
oficialplataforma de emisión de insignias digitales
Documentación
Servidor MCP IssueBadge
Un servidor del Protocolo de Contexto de Modelo (MCP) para interactuar con la API de IssueBadge. Este servidor permite a asistentes de IA como Claude y ChatGPT gestionar insignias y certificados digitales usando lenguaje natural.
🌟 Características
- 🤖 Gestión de Insignias Potenciada por IA: Usa lenguaje natural para crear, emitir y gestionar insignias
- 🔐 Autenticación Dual: Soporte para Laravel Sanctum y OAuth2
- 🏆 Ciclo de Vida Completo de la Insignia: Crea plantillas, emite a destinatarios y verifica autenticidad
- 📊 Soporte Multi-tenant: Aislamiento seguro de inquilinos para uso empresarial
- 🛡️ Protección de Idempotencia: Previene operaciones duplicadas con salvaguardas integradas
- 📧 Notificaciones Automatizadas: Envío automático de correos electrónicos con URLs de verificación
- 🎨 Campos Personalizados: Soporte flexible para metadatos y campos personalizados
🚀 Inicio Rápido
Prerrequisitos
- Node.js 18+
- npm 8+
- Cuenta de API IssueBadge con clave API
Instalación
-
Clona el repositorio
git clone https://github.com/issuebadge/mcp-server.git cd mcp-server -
Instala las dependencias
npm install -
Configura el entorno
cp .env.example .env # Edit .env with your IssueBadge API credentials -
Construye el proyecto
npm run build -
Prueba el servidor
npm test
⚙️ Configuración
Crea un archivo .env basado en .env.example:
# 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
🔧 Integración
Claude Desktop
Añade este servidor a tu configuración de 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"
}
}
}
}
Acciones de ChatGPT
- Crea un nuevo GPT Personalizado en ChatGPT
- Importa la especificación OpenAPI desde tu instancia de IssueBadge
- Configura la autenticación de token Bearer con tu clave API
- ¡Empieza a gestionar insignias a través de la conversación!
🛠️ Herramientas Disponibles
1. validate_key
Valida las claves API de IssueBadge para autenticación.
Parámetros:
api_key(string, requerido): La clave API a validar
Ejemplo:
"Validate my API key: 1|abcdef123456789..."
2. get_all_badges
Recupera todas las insignias disponibles para la organización autenticada.
Parámetros:
limit(number, opcional): Máximo de insignias a devolver (por defecto: 100)
Ejemplo:
"Show me all available badges"
"List the first 50 badges"
3. create_badge
Crea una nueva plantilla de insignia con campos personalizados opcionales.
Parámetros:
name(string, requerido): Nombre de la insigniadescription(string, requerido): Descripción de la insigniaissuing_organization_name(string, requerido): Nombre de la organizaciónidempotency_key(string, requerido): Identificador únicocustom_fields(array, opcional): Definiciones de campos personalizados- Y más parámetros opcionales...
Ejemplo:
"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
Emite una insignia a un destinatario con metadatos opcionales.
Parámetros:
badge_id(string, requerido): ID de la insignia desde la creaciónname(string, requerido): Nombre completo del destinatarioidempotency_key(string, requerido): Identificador únicoemail(string, opcional): Correo electrónico del destinatariometadata(object, opcional): Valores de campos personalizados
Ejemplo:
"Issue the Web Development badge to John Doe with email [email protected]"
"Issue Python certification to Alice with completion date today and score 95%"
💬 Ejemplos en Lenguaje Natural
Creando Insignias
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)
Emitiendo Insignias
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
Operaciones por Lotes
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]
🏗️ Desarrollo
Construyendo desde el Código Fuente
# 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
Estructura del Proyecto
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
🔒 Seguridad
- Todas las comunicaciones API usan HTTPS
- Las claves API se validan antes de cada solicitud
- Las claves de idempotencia previenen operaciones duplicadas
- Aislamiento de datos multi-tenant
- Protección contra tiempo de espera de solicitudes
- Manejo integral de errores
📊 Manejo de Errores
El servidor MCP proporciona mensajes de error detallados para problemas comunes:
- Errores de Autenticación: Claves API inválidas o tokens expirados
- Errores de Validación: Parámetros requeridos faltantes o formatos inválidos
- Errores de Red: Tiempos de espera de conexión o servicio no disponible
- Errores de Lógica de Negocio: Operaciones duplicadas o permisos insuficientes
🌍 Casos de Uso
Instituciones Educativas
- Finalización de Cursos: Emite insignias automáticamente cuando los estudiantes completan cursos
- Validación de Habilidades: Crea insignias basadas en habilidades con puntuaciones de evaluación
- Certificados de Graduación: Emite insignias de graduación por lotes con detalles académicos
Capacitación Corporativa
- Programas de Certificación: Gestiona certificaciones profesionales con fechas de vencimiento
- Capacitación de Cumplimiento: Rastrea y verifica la finalización de capacitación obligatoria
- Desarrollo de Habilidades: Emite insignias para programas internos de desarrollo de habilidades
Gestión de Eventos
- Asistencia a Conferencias: Emite insignias de asistencia para eventos y talleres
- Seguimiento de Logros: Crea sistemas de insignias progresivas para programas en curso
- Reconocimiento de Oradores: Gestiona insignias de reconocimiento para oradores y participantes
🤝 Contribuciones
¡Agradecemos las contribuciones! Por favor, consulta nuestras pautas de contribución:
- Haz un fork del repositorio
- Crea una rama de funcionalidad:
git checkout -b feature/amazing-feature - Confirma tus cambios:
git commit -m 'Add amazing feature' - Sube a la rama:
git push origin feature/amazing-feature - Abre un Pull Request
Pautas de Desarrollo
- Sigue las mejores prácticas de TypeScript
- Añade manejo integral de errores
- Incluye comentarios JSDoc para funciones
- Actualiza las pruebas para nuevas funcionalidades
- Sigue el versionado semántico
📝 Licencia
Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.
🆘 Soporte
Obtener Ayuda
- 📖 Documentación: Consulta este README y los comentarios de código en línea
- 🐛 Reportes de Errores: Abre un issue
- 💬 Discusiones: Discusiones de GitHub
- 📧 Correo Electrónico: [email protected]
Solución de Problemas
Problemas Comunes
1. Fallo en la Validación de la Clave API
# Check API key format (should start with number|)
# Verify the key hasn't expired
# Ensure correct base URL
2. Tiempo de Espera de Conexión
# Check network connectivity
# Verify IssueBadge service status
# Increase REQUEST_TIMEOUT in .env
3. Errores al Crear Insignias
# Verify required fields are provided
# Check idempotency key uniqueness
# Validate organization permissions
🔗 Proyectos Relacionados
- API IssueBadge: Plataforma central de gestión de insignias
- Protocolo de Contexto de Modelo: Especificación y herramientas MCP
- Claude Desktop: Asistente de IA con soporte MCP
📈 Hoja de Ruta
Versión 1.1
- Operaciones de insignias por lotes
- Filtrado y búsqueda avanzados
- Integración de Webhooks
- Gestión de plantillas de insignias
Versión 1.2
- Herramientas de análisis e informes
- Reglas de validación de insignias personalizadas
- Integración con sistemas de gestión de aprendizaje
- Automatización avanzada de flujos de trabajo
Versión 2.0
- Soporte de verificación blockchain
- Contenido de insignias multilingüe
- Personalización avanzada de marca
- Integración SSO empresarial
¿Listo para revolucionar tu gestión de insignias? ¡Comienza con el Servidor MCP IssueBadge y experimenta el poder de la administración conversacional de insignias!
Construido con ❤️ por el equipo de IssueBadge