|
| 1 | +# Assessment: MCP Package for Vue-Skuilder Course Content Agent Access |
| 2 | + |
| 3 | +## Context Analysis |
| 4 | + |
| 5 | +Vue-Skuilder est un système sophistiqué de gestion de contenu éducatif avec une architecture modulaire bien conçue. Le système actuel comprend : |
| 6 | + |
| 7 | +### Architecture Existante |
| 8 | + |
| 9 | +**Backend Core:** |
| 10 | +- `@vue-skuilder/db` - Couche d'abstraction de données supportant CouchDB dynamique et données statiques JSON |
| 11 | +- `@vue-skuilder/express` - Serveur API REST avec authentification, préprocessing de médias, gestion de cours |
| 12 | +- `@vue-skuilder/common` - Types partagés, interfaces, et utilitaires métier |
| 13 | + |
| 14 | +**Data Models Clés:** |
| 15 | +- **Courses**: Configuration, cartes, ratings ELO, système de révision espacée |
| 16 | +- **Cards**: Contenu d'apprentissage avec tags, attachments media, données ELO |
| 17 | +- **DataShapes**: Système de types pour différents formats de questions |
| 18 | +- **Study Sessions**: Logique de présentation de contenu avec tracking de progression |
| 19 | +- **Content Sources**: Abstraction pour cours et salles de classe |
| 20 | + |
| 21 | +**Patterns Architecturaux:** |
| 22 | +- Interface Provider pattern pour la couche de données |
| 23 | +- Dual export system (CommonJS/ESM) pour compatibilité maximale |
| 24 | +- Système de registration de composants pour découverte automatique |
| 25 | +- Configuration build partagée avec alias cross-package |
| 26 | + |
| 27 | +## Objectif du Package MCP |
| 28 | + |
| 29 | +Créer un nouveau package `@vue-skuilder/mcp` qui : |
| 30 | +1. Expose les données de cours via le protocole MCP pour accès par des agents |
| 31 | +2. Permettra l'intégration avec le serveur Express existant |
| 32 | +3. Activera la génération automatisée de contenu de quiz annoté et lié aux sources |
| 33 | +4. Supportera l'attachement d'un processus agentique à un répertoire source |
| 34 | + |
| 35 | +## Options d'Architecture |
| 36 | + |
| 37 | +### Option A: Serveur MCP Standalone Intégré |
| 38 | + |
| 39 | +**Approche:** Créer un serveur MCP autonome qui utilise la couche `db` existante et s'intègre comme middleware Express. |
| 40 | + |
| 41 | +**Structure Proposée:** |
| 42 | +``` |
| 43 | +packages/mcp/ |
| 44 | +├── src/ |
| 45 | +│ ├── server/ # Serveur MCP core |
| 46 | +│ ├── resources/ # Ressources MCP (courses, cards, content) |
| 47 | +│ ├── tools/ # Outils MCP (create, update, analyze) |
| 48 | +│ ├── prompts/ # Templates de prompts pour génération de contenu |
| 49 | +│ ├── integrations/ # Intégration Express middleware |
| 50 | +│ └── types/ # Types spécifiques MCP |
| 51 | +└── examples/ # Exemples d'usage |
| 52 | +``` |
| 53 | + |
| 54 | +**Avantages:** |
| 55 | +- Réutilise l'infrastructure data layer existante |
| 56 | +- Intégration native avec l'écosystème Vue-Skuilder |
| 57 | +- Peut bénéficier de l'authentification Express existante |
| 58 | +- Support direct des DataShapes et patterns existants |
| 59 | + |
| 60 | +**Inconvénients:** |
| 61 | +- Complexité d'intégration avec l'Express server existant |
| 62 | +- Nécessite coordination avec l'architecture existante |
| 63 | + |
| 64 | +### Option B: Serveur MCP Hybride avec Accès Direct |
| 65 | + |
| 66 | +**Approche:** Serveur MCP qui peut fonctionner standalone OU comme service intégré, avec accès direct aux APIs data layer. |
| 67 | + |
| 68 | +**Structure Proposée:** |
| 69 | +``` |
| 70 | +packages/mcp/ |
| 71 | +├── src/ |
| 72 | +│ ├── core/ # Core MCP functionality |
| 73 | +│ ├── adapters/ # Adaptateurs pour différentes sources (db, files, git) |
| 74 | +│ ├── services/ # Services métier (quiz generation, content analysis) |
| 75 | +│ ├── transports/ # Transports MCP (stdio, http) |
| 76 | +│ ├── middleware/ # Express integration layer |
| 77 | +│ └── cli/ # CLI pour usage standalone |
| 78 | +└── docs/ # Documentation et exemples |
| 79 | +``` |
| 80 | + |
| 81 | +**Avantages:** |
| 82 | +- Flexibilité maximale (standalone ou intégré) |
| 83 | +- Peut accéder à différents types de sources de contenu |
| 84 | +- Extensible pour futurs cas d'usage |
| 85 | +- Découplage propre des concerns |
| 86 | + |
| 87 | +**Inconvénients:** |
| 88 | +- Plus complexe à implémenter initialement |
| 89 | +- Risque de duplication avec la couche db existante |
| 90 | + |
| 91 | +### Option C: Extension MCP de la Couche DB |
| 92 | + |
| 93 | +**Approche:** Étendre les interfaces de la couche `db` existante avec des capabilities MCP natives. |
| 94 | + |
| 95 | +**Structure Proposée:** |
| 96 | +``` |
| 97 | +packages/mcp/ |
| 98 | +├── src/ |
| 99 | +│ ├── providers/ # MCP data providers étendant DataLayerProvider |
| 100 | +│ ├── transforms/ # Transformateurs data → MCP resources |
| 101 | +│ ├── generators/ # Générateurs de contenu (quiz, annotations) |
| 102 | +│ └── server.ts # MCP server factory |
| 103 | +└── integration/ # Helpers d'intégration Express |
| 104 | +``` |
| 105 | + |
| 106 | +**Avantages:** |
| 107 | +- Réutilisation maximale du code existant |
| 108 | +- Consistency avec les patterns architecturaux |
| 109 | +- Implémentation plus rapide |
| 110 | +- Intégration naturelle avec les types existants |
| 111 | + |
| 112 | +**Inconvénients:** |
| 113 | +- Couplage plus fort avec l'architecture db |
| 114 | +- Moins de flexibilité pour sources externes |
| 115 | + |
| 116 | +## Services MCP Proposés |
| 117 | + |
| 118 | +### Resources |
| 119 | +- `course://[courseId]` - Configuration et métadonnées de cours |
| 120 | +- `cards://[courseId]/[filter]` - Cartes de cours avec filtres optionnels |
| 121 | +- `content://[courseId]/[cardId]` - Contenu détaillé d'une carte |
| 122 | +- `tags://[courseId]` - Système de tags et taxonomie |
| 123 | +- `schema://[courseId]` - DataShapes et structure de données |
| 124 | + |
| 125 | +### Tools |
| 126 | +- `analyze_content` - Analyser le contenu source pour opportunités de quiz |
| 127 | +- `generate_quiz` - Générer des questions basées sur le contenu source |
| 128 | +- `annotate_content` - Créer des annotations liées aux sources |
| 129 | +- `validate_quiz` - Valider la qualité des questions générées |
| 130 | +- `link_sources` - Créer des liens entre contenu et sources |
| 131 | + |
| 132 | +### Prompts |
| 133 | +- `quiz_generation` - Template pour génération structurée de quiz |
| 134 | +- `content_analysis` - Template pour analyse de contenu source |
| 135 | +- `annotation_creation` - Template pour création d'annotations |
| 136 | + |
| 137 | +## Phases d'Implémentation |
| 138 | + |
| 139 | +### Phase 1: Foundation (MVP) |
| 140 | +1. Création du package structure de base |
| 141 | +2. Serveur MCP minimal avec ressources cours read-only |
| 142 | +3. Integration basique avec Express middleware |
| 143 | +4. Tests de bout en bout avec Claude Desktop |
| 144 | + |
| 145 | +### Phase 2: Content Access |
| 146 | +1. Resources complètes (courses, cards, tags, schema) |
| 147 | +2. Tools de lecture et navigation |
| 148 | +3. Support des DataShapes existants |
| 149 | +4. Documentation et exemples |
| 150 | + |
| 151 | +### Phase 3: Content Generation |
| 152 | +1. Tools de création et modification de contenu |
| 153 | +2. Générateurs de quiz avec templates |
| 154 | +3. Système d'annotations linkées aux sources |
| 155 | +4. Integration avec file system pour source scanning |
| 156 | + |
| 157 | +### Phase 4: Advanced Features |
| 158 | +1. Support de différents transports (stdio, HTTP) |
| 159 | +2. Authentication et permissions |
| 160 | +3. Streaming et performance optimization |
| 161 | +4. Analytics et monitoring |
| 162 | + |
| 163 | +# Recommendation |
| 164 | + |
| 165 | +**Option B - Serveur MCP Hybride** est l'approche recommandée car elle offre : |
| 166 | + |
| 167 | +1. **Flexibilité maximale** pour différents cas d'usage |
| 168 | +2. **Extensibilité** pour futurs besoins |
| 169 | +3. **Découplage propre** des concerns |
| 170 | +4. **Path de migration naturel** vers des fonctionnalités avancées |
| 171 | + |
| 172 | +L'implémentation commencerait par un serveur MCP minimal réutilisant la couche `db` existante, puis évolurait vers un système plus sophistiqué avec support de sources multiples et génération de contenu avancée. |
| 173 | + |
| 174 | +Cette approche permet une **verification incrémentale** à chaque phase et une **integration graduelle** avec l'écosystème Vue-Skuilder existant. |
0 commit comments