@lyrra/mcp-server
v1.1.3
Published
LYRRA Studio MCP Server - Pilotez LYRRA Studio depuis Claude AI, Cursor, etc.
Readme
LYRRA Studio MCP Server
Serveur MCP (Model Context Protocol) pour piloter LYRRA Studio depuis un outil IA externe (Claude Desktop, Claude.ai, Cursor, Copilot CLI, etc.).
Modes de transport
Mode stdio (Claude Desktop, Cursor)
Transport stdio classique — le serveur MCP tourne en processus local.
Mode HTTP (Claude.ai, applications web)
Transport HTTP Streamable avec OAuth 2.0 — le serveur MCP tourne comme service web accessible via https://lyrrastudio.com/mcp.
Installation
npm install -g @lyrra/mcp-serverOu utilisez directement avec npx (aucune installation requise) — voir la configuration ci-dessous.
Configuration
1. Obtenir vos identifiants
Connectez-vous à LYRRA Studio → Dashboard Entreprise → Serveur MCP → Onglet "Identifiants" → Créer un nouveau client.
Vous obtiendrez un Client ID et un Client Secret (affiché une seule fois).
2. Claude Desktop (mode stdio)
Ajoutez dans ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) ou %APPDATA%\Claude\claude_desktop_config.json (Windows) :
{
"mcpServers": {
"lyrra-studio": {
"command": "npx",
"args": ["-y", "@lyrra/mcp-server"],
"env": {
"LYRRA_CLIENT_ID": "votre_client_id",
"LYRRA_CLIENT_SECRET": "rak_votre_client_secret",
"LYRRA_API_URL": "https://lyrrastudio.com/api",
"LYRRA_EDUFLOW_API_URL": "https://lyrrastudio.com/api/eduflow"
}
}
}
}Après modification, quittez complètement Claude Desktop (Cmd+Q / Ctrl+Q) et relancez-le.
3. Claude.ai (mode HTTP)
Ajoutez le MCP serveur dans Claude.ai Settings → Integrations → Add MCP Server :
- URL :
https://lyrrastudio.com/mcp
Claude.ai lancera automatiquement le flux OAuth :
- Vous serez redirigé vers la page d'autorisation LYRRA Studio
- Entrez votre Client Secret (clé API
rak_...) - L'accès est autorisé, Claude.ai peut utiliser vos outils MCP
4. Cursor (mode stdio)
Ajoutez dans .cursor/mcp.json :
{
"mcpServers": {
"lyrra-studio": {
"command": "npx",
"args": ["-y", "@lyrra/mcp-server"],
"env": {
"LYRRA_CLIENT_ID": "votre_client_id",
"LYRRA_CLIENT_SECRET": "rak_votre_client_secret",
"LYRRA_API_URL": "https://lyrrastudio.com/api",
"LYRRA_EDUFLOW_API_URL": "https://lyrrastudio.com/api/eduflow"
}
}
}
}5. GitHub Copilot CLI / VS Code
Ajoutez dans .vscode/mcp.json ou les settings Copilot :
{
"mcpServers": {
"lyrra-studio": {
"command": "npx",
"args": ["-y", "@lyrra/mcp-server"],
"env": {
"LYRRA_CLIENT_ID": "votre_client_id",
"LYRRA_CLIENT_SECRET": "rak_votre_client_secret",
"LYRRA_API_URL": "https://lyrrastudio.com/api",
"LYRRA_EDUFLOW_API_URL": "https://lyrrastudio.com/api/eduflow"
}
}
}
}Variables d'environnement
| Variable | Défaut | Description |
|---|---|---|
| LYRRA_CLIENT_ID | - | Client ID (nom du client) |
| LYRRA_CLIENT_SECRET | - | Client Secret (clé secrète, préfixe rak_) |
| LYRRA_API_URL | http://localhost:3001/api | URL de l'API REST |
| LYRRA_EDUFLOW_API_URL | http://localhost:3001/api/eduflow | URL de l'API EduFlow |
Tools disponibles (58)
🔐 Authentification
| Tool | Description |
|---|---|
| auth_login | Se connecter avec email/mot de passe |
| auth_get_profile | Profil utilisateur connecté |
| auth_list_api_keys | Lister les clés API |
📚 Parcours EduFlow
| Tool | Description |
|---|---|
| eduflow_list | Lister tous les parcours |
| eduflow_get | Détails d'un parcours |
| eduflow_create | Créer un parcours |
| eduflow_update | Mettre à jour un parcours |
| eduflow_delete | Supprimer un parcours |
| eduflow_duplicate | Dupliquer un parcours |
| eduflow_change_status | Changer le statut (draft/published/archived) |
| eduflow_export | Exporter un parcours |
| eduflow_get_public | Infos publiques d'un parcours |
| eduflow_get_urls | Obtenir les liens (prévisualisation, édition, analytics, etc.) |
🧱 Blocs
| Tool | Description |
|---|---|
| block_list_types | Documentation des 29 types de blocs |
| block_get | Détails d'un bloc |
| block_create | Créer un bloc |
| block_update | Mettre à jour un bloc |
| block_batch_update | Mise à jour en lot |
| block_delete | Supprimer un bloc |
| block_generate_tts | Générer audio TTS |
🔗 Connexions
| Tool | Description |
|---|---|
| connection_list | Lister les connexions |
| connection_add | Ajouter une connexion |
| connection_remove | Supprimer une connexion |
👥 Participants
| Tool | Description |
|---|---|
| participant_list | Lister les participants |
| participant_add | Ajouter des participants |
| participant_remove | Retirer un participant |
| participant_get_progress | Progression d'un participant |
| participant_get_overview | Vue d'ensemble participant |
| participant_get_flow_stats | Stats de tous les participants |
📊 Analytics
| Tool | Description |
|---|---|
| analytics_overview | Dashboard global |
| analytics_flow_learners | Stats apprenants par parcours |
| analytics_flow_dashboard | Dashboard analytics parcours |
| analytics_my_stats | Mes statistiques |
🤖 AI Designer
| Tool | Description |
|---|---|
| ai_generate_plan | Générer un plan de parcours |
| ai_generate_block | Générer le contenu d'un bloc |
| ai_generate_presentation | Générer la page de présentation |
| ai_generate_objectives | Générer les objectifs pédagogiques |
| ai_save_objectives | Sauvegarder les objectifs |
| ai_chat_message | Discuter avec le designer IA |
| ai_get_conversation | Historique de conversation IA |
🎭 Présentation
| Tool | Description |
|---|---|
| presentation_get | Page de présentation |
| presentation_update | Mettre à jour la présentation |
| presentation_toggle | Activer/désactiver |
🏪 Store
| Tool | Description |
|---|---|
| store_list_audiobooks | Lister les audiobooks |
| store_get_audiobook | Détails d'un audiobook |
| store_list_authors | Auteurs en vedette |
| store_my_library | Ma bibliothèque |
| store_search | Rechercher dans le store |
🎵 Projets Audio
| Tool | Description |
|---|---|
| project_list | Lister mes projets |
| project_get | Détails d'un projet |
| project_create | Créer un projet |
| project_update | Mettre à jour un projet |
| project_delete | Supprimer un projet |
📁 Ressources
| Tool | Description |
|---|---|
| resource_list | Lister les ressources |
| resource_delete | Supprimer une ressource |
| resource_list_categories | Catégories disponibles |
🔧 Versions, Gamification & Webhooks
| Tool | Description |
|---|---|
| version_list | Versions d'un parcours |
| version_create | Créer une version |
| version_activate | Activer une version |
| gamification_stats | Stats de gamification |
| gamification_objectives | Objectifs à atteindre |
| activity_history | Historique d'activité |
| activity_stats | Stats d'utilisation |
| webhook_list | Lister les webhooks |
| webhook_create | Créer un webhook |
| webhook_delete | Supprimer un webhook |
| webhook_test | Tester un webhook |
Resources MCP
| URI | Description |
|---|---|
| lyrra://block-types | Documentation complète des 29 types de blocs |
| lyrra://flow-construction-guide | Guide de construction de parcours |
Exemples d'utilisation avec Claude
Créer un parcours complet
"Crée un parcours EduFlow sur les fractions pour des élèves de CM2, avec 3 leçons en texte, un quiz après chaque leçon, et un certificat de réussite à la fin."
Analyser les statistiques
"Montre-moi les statistiques de mon parcours 'Introduction au Python'. Quels sont les blocs où les étudiants passent le plus de temps ?"
Modifier un parcours existant
"Dans mon parcours sur la photosynthèse, ajoute un bloc vidéo après le texte d'introduction et connecte-le au quiz."
Développement
# Lancer en mode stdio (développement local)
npm run dev
# Lancer en mode HTTP (développement local)
npm run dev:http
# Rebuild après modifications
npm run build
# Lancer en production (stdio)
npm start
# Lancer en production (HTTP)
npm run start:httpArchitecture HTTP
Le mode HTTP expose les endpoints suivants :
| Endpoint | Méthode | Description |
|---|---|---|
| /.well-known/oauth-protected-resource/mcp | GET | Métadonnées RFC 9728 |
| /mcp/.well-known/oauth-authorization-server | GET | Métadonnées OAuth AS |
| /mcp/register | POST | Enregistrement dynamique de client OAuth |
| /mcp/authorize | GET | Page d'autorisation OAuth |
| /mcp/approve | POST | Validation des identifiants |
| /mcp/token | POST | Échange de code → token |
| /mcp/revoke | POST | Révocation de token |
| /mcp | POST | Protocole MCP (messages) |
| /mcp | GET | SSE stream (notifications serveur) |
| /mcp | DELETE | Fermeture de session |
| /mcp/health | GET | Health check |
Variables d'environnement (mode HTTP)
| Variable | Défaut | Description |
|---|---|---|
| MCP_HTTP_PORT | 3002 | Port du serveur HTTP |
| MCP_BASE_URL | https://lyrrastudio.com | URL publique de base |
| LYRRA_API_URL | http://localhost:3001/api | URL de l'API backend |
| LYRRA_EDUFLOW_API_URL | http://localhost:3001/api/eduflow | URL de l'API EduFlow |
