npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@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-server

Ou 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 :

  1. Vous serez redirigé vers la page d'autorisation LYRRA Studio
  2. Entrez votre Client Secret (clé API rak_...)
  3. 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:http

Architecture 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 |