@enokdev/springdocs-mcp 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,64 @@
1
+ name: Publish to npm
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+
8
+ jobs:
9
+ publish:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - uses: actions/checkout@v4
13
+
14
+ - name: Setup Node.js
15
+ uses: actions/setup-node@v4
16
+ with:
17
+ node-version: '18'
18
+ registry-url: 'https://registry.npmjs.org'
19
+
20
+ - name: Install dependencies
21
+ run: npm ci
22
+
23
+ - name: Build
24
+ run: npm run build
25
+
26
+ - name: Test
27
+ run: npm test
28
+
29
+ - name: Publish to npm
30
+ run: npm publish --access public
31
+ env:
32
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
33
+
34
+ - name: Create GitHub Release
35
+ uses: actions/create-release@v1
36
+ env:
37
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
38
+ with:
39
+ tag_name: ${{ github.ref }}
40
+ release_name: Release ${{ github.ref }}
41
+ body: |
42
+ ## Changes in this release
43
+
44
+ - Check the [CHANGELOG.md](CHANGELOG.md) for details
45
+
46
+ ## Installation
47
+
48
+ ```bash
49
+ npm install -g @springdocs/mcp-server
50
+ ```
51
+
52
+ ## Configuration for Claude Desktop
53
+
54
+ ```json
55
+ {
56
+ "mcpServers": {
57
+ "spring-docs": {
58
+ "command": "springdocs-mcp"
59
+ }
60
+ }
61
+ }
62
+ ```
63
+ draft: false
64
+ prerelease: false
package/CHANGELOG.md ADDED
@@ -0,0 +1,82 @@
1
+ # Changelog - Spring Boot MCP Server
2
+
3
+ Toutes les modifications notables de ce projet seront documentées dans ce fichier.
4
+
5
+ Le format est basé sur [Keep a Changelog](https://keepachangelog.com/fr/1.0.0/),
6
+ et ce projet adhère au [versioning sémantique](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [1.1.0] - 2025-08-21
9
+
10
+ ### ✨ Ajouté
11
+ - **Support complet de spring.io/projects** - Accès à tous les projets Spring (Security, Data, Cloud, etc.)
12
+ - **Nouvel outil `search_spring_projects`** - Recherche parmi tous les projets Spring disponibles
13
+ - **Nouvel outil `get_spring_project`** - Récupération des détails complets d'un projet Spring spécifique
14
+ - **Nouvel outil `get_all_spring_guides`** - Liste tous les guides Spring avec filtrage par catégorie
15
+ - **Base de connaissances étendue** - Projets Spring populaires intégrés pour un fallback robuste
16
+ - **Documentation enrichie** - Guides d'exemples pratiques (EXAMPLES.md)
17
+ - **Guide de contribution** - Documentation pour les développeurs (CONTRIBUTING.md)
18
+
19
+ ### 🔧 Amélioré
20
+ - **Couverture documentaire élargie** - Passage de 4 à 7 outils MCP
21
+ - **Robustesse du service** - Mécanismes de fallback pour les projets et guides populaires
22
+ - **Performance des requêtes** - Optimisation du parsing HTML et conversion Markdown
23
+ - **Tests étendus** - Script de test mis à jour avec tous les nouveaux outils
24
+
25
+ ### 📚 Sources de documentation ajoutées
26
+ - `https://spring.io/projects` - Catalogue complet des projets Spring
27
+ - `https://spring.io/guides` - Collection étendue de guides pratiques
28
+ - Base de connaissances des projets populaires (Boot, Security, Data, Cloud, etc.)
29
+
30
+ ### 🛠️ Outils MCP (7 au total)
31
+ 1. `search_spring_docs` - Recherche dans la documentation Spring Boot *(existant)*
32
+ 2. `search_spring_projects` - **NOUVEAU** - Recherche de projets Spring
33
+ 3. `get_spring_project` - **NOUVEAU** - Détails d'un projet Spring
34
+ 4. `get_all_spring_guides` - **NOUVEAU** - Liste des guides Spring
35
+ 5. `get_spring_guide` - Récupération d'un guide spécifique *(existant)*
36
+ 6. `get_spring_reference` - Documentation de référence *(existant)*
37
+ 7. `search_spring_concepts` - Recherche de concepts *(existant)*
38
+
39
+ ## [1.0.0] - 2025-08-21
40
+
41
+ ### ✨ Version initiale
42
+ - **Serveur MCP fonctionnel** - Implémentation complète du protocole Model Context Protocol
43
+ - **4 outils de base** - Accès à la documentation Spring Boot essentielle
44
+ - **Architecture TypeScript** - Code moderne avec types stricts
45
+ - **Configuration Claude Desktop** - Intégration prête à l'emploi
46
+ - **Tests automatisés** - Script de validation des fonctionnalités
47
+ - **Documentation complète** - README avec instructions d'installation et usage
48
+
49
+ ### 🛠️ Outils MCP de base
50
+ 1. `search_spring_docs` - Recherche dans la documentation Spring Boot
51
+ 2. `get_spring_guide` - Récupération d'un guide spécifique
52
+ 3. `get_spring_reference` - Documentation de référence
53
+ 4. `search_spring_concepts` - Recherche de concepts Spring Boot
54
+
55
+ ### 📚 Sources de documentation initiales
56
+ - Documentation Spring Boot officielle
57
+ - Guides Spring.io sélectionnés
58
+ - Base de connaissances des concepts Spring Boot
59
+
60
+ ### 🔧 Fonctionnalités techniques
61
+ - Transport stdio pour communication MCP
62
+ - Parsing HTML avec Cheerio
63
+ - Conversion Markdown avec Turndown
64
+ - Gestion d'erreurs robuste
65
+ - Support des requêtes JSON-RPC 2.0
66
+
67
+ ---
68
+
69
+ ## Format des versions
70
+
71
+ - **MAJOR** : Changements incompatibles de l'API
72
+ - **MINOR** : Nouvelles fonctionnalités compatibles
73
+ - **PATCH** : Corrections de bugs compatibles
74
+
75
+ ## Types de changements
76
+
77
+ - `✨ Ajouté` pour les nouvelles fonctionnalités
78
+ - `🔧 Amélioré` pour les modifications de fonctionnalités existantes
79
+ - `🐛 Corrigé` pour les corrections de bugs
80
+ - `❌ Supprimé` pour les fonctionnalités supprimées
81
+ - `⚠️ Déprécié` pour les fonctionnalités bientôt supprimées
82
+ - `🔒 Sécurité` pour les corrections de vulnérabilités
@@ -0,0 +1,215 @@
1
+ # Guide de Contribution - Spring Boot MCP Server
2
+
3
+ Merci de votre intérêt pour contribuer au projet Spring Boot MCP Server ! Ce guide vous aidera à comprendre comment participer au développement.
4
+
5
+ ## 🛠️ Configuration de l'environnement de développement
6
+
7
+ ### Prérequis
8
+ - Node.js >= 18.0.0
9
+ - npm >= 8.0.0
10
+ - TypeScript >= 5.0.0
11
+ - Git
12
+
13
+ ### Installation
14
+ ```bash
15
+ # Cloner le repository
16
+ git clone <votre-fork>
17
+ cd springdocsmcp
18
+
19
+ # Installer les dépendances
20
+ npm install
21
+
22
+ # Compiler le projet
23
+ npm run build
24
+
25
+ # Exécuter les tests
26
+ ./test.sh
27
+ ```
28
+
29
+ ## 📝 Structure du projet
30
+
31
+ ```
32
+ springdocsmcp/
33
+ ├── src/
34
+ │ ├── index.ts # Point d'entrée du serveur MCP
35
+ │ ├── services/
36
+ │ │ └── springboot-docs.ts # Service de documentation Spring Boot
37
+ │ └── tools/
38
+ │ └── index.ts # Définitions des outils MCP
39
+ ├── build/ # Fichiers compilés TypeScript
40
+ ├── package.json # Configuration npm
41
+ ├── tsconfig.json # Configuration TypeScript
42
+ └── README.md # Documentation principale
43
+ ```
44
+
45
+ ## 🔧 Développement
46
+
47
+ ### Scripts disponibles
48
+ - `npm run build` - Compile le TypeScript
49
+ - `npm run dev` - Mode développement avec rechargement automatique
50
+ - `npm run test` - Exécute les tests (ou utilisez `./test.sh`)
51
+ - `npm run lint` - Vérifie le style de code
52
+
53
+ ### Ajouter un nouvel outil
54
+
55
+ 1. **Définir l'outil dans `src/tools/index.ts`** :
56
+ ```typescript
57
+ export const NOUVEAU_OUTIL: Tool = {
58
+ name: "nouveau_outil",
59
+ description: "Description de votre nouvel outil",
60
+ inputSchema: {
61
+ type: "object",
62
+ properties: {
63
+ parametre: {
64
+ type: "string",
65
+ description: "Description du paramètre"
66
+ }
67
+ },
68
+ required: ["parametre"]
69
+ }
70
+ };
71
+ ```
72
+
73
+ 2. **Implémenter la logique dans `src/services/springboot-docs.ts`** :
74
+ ```typescript
75
+ public async nouveauOutil(parametre: string): Promise<string> {
76
+ // Votre logique ici
77
+ return "Résultat de l'outil";
78
+ }
79
+ ```
80
+
81
+ 3. **Ajouter le gestionnaire dans `src/index.ts`** :
82
+ ```typescript
83
+ case "nouveau_outil":
84
+ const result = await this.docsService.nouveauOutil(args.parametre);
85
+ return { content: [{ type: "text", text: result }] };
86
+ ```
87
+
88
+ ### Ajouter une nouvelle source de documentation
89
+
90
+ 1. **Étendre le service** dans `src/services/springboot-docs.ts`
91
+ 2. **Ajouter les nouvelles URLs** dans les constantes
92
+ 3. **Implémenter les méthodes de parsing** spécifiques
93
+ 4. **Tester avec le script de test**
94
+
95
+ ## 🧪 Tests
96
+
97
+ ### Tests automatisés
98
+ Exécutez le script de test pour vérifier que tous les outils fonctionnent :
99
+ ```bash
100
+ ./test.sh
101
+ ```
102
+
103
+ ### Tests manuels
104
+ Testez individuellement avec des requêtes JSON-RPC :
105
+ ```bash
106
+ echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "search_spring_docs", "arguments": {"query": "test"}}}' | node build/index.js
107
+ ```
108
+
109
+ ### Tests d'intégration
110
+ Testez avec Claude Desktop en ajoutant la configuration MCP et en utilisant les outils dans une conversation.
111
+
112
+ ## 📋 Standards de code
113
+
114
+ ### Style TypeScript
115
+ - Utilisez des types stricts
116
+ - Préférez `interface` pour les objets
117
+ - Documentez les fonctions publiques avec JSDoc
118
+ - Utilisez `async/await` pour les opérations asynchrones
119
+
120
+ ### Nommage
121
+ - Fonctions et variables : `camelCase`
122
+ - Classes : `PascalCase`
123
+ - Constantes : `UPPER_SNAKE_CASE`
124
+ - Fichiers : `kebab-case.ts`
125
+
126
+ ### Gestion d'erreurs
127
+ ```typescript
128
+ try {
129
+ // Opération risquée
130
+ } catch (error) {
131
+ console.error('Erreur détaillée:', error);
132
+ throw new Error('Message d'erreur utilisateur');
133
+ }
134
+ ```
135
+
136
+ ## 🐛 Signalement de bugs
137
+
138
+ ### Template de bug report
139
+ ```markdown
140
+ **Description du bug**
141
+ Description claire et concise du problème.
142
+
143
+ **Étapes pour reproduire**
144
+ 1. Étape 1
145
+ 2. Étape 2
146
+ 3. Voir l'erreur
147
+
148
+ **Comportement attendu**
149
+ Ce qui devrait se passer.
150
+
151
+ **Environnement**
152
+ - OS: [ex: macOS 14.0]
153
+ - Node.js: [ex: 18.17.0]
154
+ - Version du serveur: [ex: 1.0.0]
155
+
156
+ **Logs d'erreur**
157
+ ```
158
+ Logs ou messages d'erreur
159
+ ```
160
+
161
+ ## ✨ Demandes de fonctionnalités
162
+
163
+ ### Template de feature request
164
+ ```markdown
165
+ **Fonctionnalité désirée**
166
+ Description claire de la fonctionnalité.
167
+
168
+ **Problème résolu**
169
+ Quel problème cette fonctionnalité résoudrait-elle ?
170
+
171
+ **Solution proposée**
172
+ Description de votre solution idéale.
173
+
174
+ **Alternatives considérées**
175
+ Autres solutions que vous avez envisagées.
176
+ ```
177
+
178
+ ## 🔄 Processus de contribution
179
+
180
+ 1. **Fork** le repository
181
+ 2. **Créez une branche** pour votre fonctionnalité (`git checkout -b feature/nouvelle-fonctionnalite`)
182
+ 3. **Committez** vos changements (`git commit -am 'Ajoute nouvelle fonctionnalité'`)
183
+ 4. **Poussez** vers la branche (`git push origin feature/nouvelle-fonctionnalite`)
184
+ 5. **Créez une Pull Request**
185
+
186
+ ### Checklist pour les Pull Requests
187
+ - [ ] Le code compile sans erreur (`npm run build`)
188
+ - [ ] Les tests passent (`./test.sh`)
189
+ - [ ] La documentation est mise à jour si nécessaire
190
+ - [ ] Les nouveaux outils sont documentés
191
+ - [ ] Le code suit les standards du projet
192
+
193
+ ## 📚 Ressources utiles
194
+
195
+ - [Documentation MCP](https://modelcontextprotocol.io/docs)
196
+ - [Spécification MCP](https://spec.modelcontextprotocol.io/)
197
+ - [Documentation Spring Boot](https://docs.spring.io/spring-boot/docs/current/reference/html/)
198
+ - [TypeScript Handbook](https://www.typescriptlang.org/docs/)
199
+
200
+ ## 🤝 Code de conduite
201
+
202
+ Nous nous engageons à créer un environnement accueillant et inclusif pour tous. Merci de :
203
+ - Être respectueux et professionnel
204
+ - Accepter les critiques constructives
205
+ - Se concentrer sur ce qui est le mieux pour la communauté
206
+ - Faire preuve d'empathie envers les autres
207
+
208
+ ## 📞 Contact
209
+
210
+ Pour toute question ou discussion, n'hésitez pas à :
211
+ - Ouvrir une issue sur GitHub
212
+ - Participer aux discussions
213
+ - Contacter les mainteneurs
214
+
215
+ Merci pour votre contribution ! 🎉
package/DEPLOYMENT.md ADDED
@@ -0,0 +1,205 @@
1
+ # 🚀 Guide de déploiement public - Spring Documentation MCP Server
2
+
3
+ ## ✅ État actuel du projet
4
+
5
+ Votre serveur MCP Spring Documentation est **prêt pour la publication publique** !
6
+
7
+ ### 📦 Configuration npm
8
+ - ✅ **Package scope**: `@enokdev/springdocs-mcp`
9
+ - ✅ **Accès public**: Configuré pour publication publique
10
+ - ✅ **Version**: 1.1.0
11
+ - ✅ **Scripts**: Build, test, publication automatique
12
+ - ✅ **Dependencies**: Toutes les dépendances nécessaires
13
+ - ✅ **Binary**: `springdocs-mcp` pour installation globale
14
+
15
+ ### 📚 Documentation complète
16
+ - ✅ **README.md**: Documentation principale avec badges
17
+ - ✅ **INSTALL.md**: Guide d'installation pour utilisateurs finaux
18
+ - ✅ **EXAMPLES.md**: Exemples d'utilisation pratiques
19
+ - ✅ **CONTRIBUTING.md**: Guide pour contributeurs
20
+ - ✅ **CHANGELOG.md**: Historique des versions
21
+ - ✅ **PUBLISHING.md**: Guide de publication
22
+ - ✅ **docs/index.html**: Site web de documentation
23
+ - ✅ **LICENSE**: Licence MIT
24
+
25
+ ### 🔧 Infrastructure
26
+ - ✅ **GitHub Actions**: Workflow de publication automatique
27
+ - ✅ **Tests**: Script de validation fonctionnelle
28
+ - ✅ **Build**: Compilation TypeScript optimisée
29
+ - ✅ **NPM ignore**: Fichiers exclus de la publication
30
+
31
+ ## 🚀 Étapes pour rendre public
32
+
33
+ ### 1. **Préparer le repository GitHub**
34
+
35
+ ```bash
36
+ # Initialiser Git si pas encore fait
37
+ git init
38
+ git add .
39
+ git commit -m "Ready for public release v1.1.0"
40
+
41
+ # Créer un repository public sur GitHub
42
+ # Nom suggéré: springdocs-mcp
43
+ # Description: "Spring Documentation MCP Server for Claude Desktop"
44
+
45
+ # Connecter le repository local
46
+ git remote add origin https://github.com/tky0065/springdocs-mcp.git
47
+ git branch -M main
48
+ git push -u origin main
49
+ ```
50
+
51
+ ### 2. **Configurer npm pour publication**
52
+
53
+ ```bash
54
+ # Créer un compte npm (si pas encore fait)
55
+ npm adduser
56
+
57
+ # Ou se connecter
58
+ npm login
59
+
60
+ # Vérifier l'authentification
61
+ npm whoami
62
+ ```
63
+
64
+ ### 3. **Publication sur npm**
65
+
66
+ ```bash
67
+ # Test final
68
+ npm run build
69
+ npm test
70
+
71
+ # Publication
72
+ npm publish --access public
73
+ ```
74
+
75
+ ### 4. **Création du tag et release GitHub**
76
+
77
+ ```bash
78
+ # Créer un tag de version
79
+ git tag v1.1.0
80
+ git push origin v1.1.0
81
+
82
+ # La GitHub Action va automatiquement créer une release
83
+ ```
84
+
85
+ ## 🌐 Après publication
86
+
87
+ ### Installation utilisateur
88
+ Les utilisateurs pourront installer avec :
89
+
90
+ ```bash
91
+ npm install -g @enokdev/springdocs-mcp
92
+ ```
93
+
94
+ ### Configuration Claude Desktop
95
+ Configuration simple :
96
+
97
+ ```json
98
+ {
99
+ "mcpServers": {
100
+ "spring-docs": {
101
+ "command": "springdocs-mcp"
102
+ }
103
+ }
104
+ }
105
+ ```
106
+
107
+ ## 📈 Promotion et visibilité
108
+
109
+ ### 1. **Documentation officielle**
110
+ - Ajouter à la documentation MCP d'Anthropic
111
+ - Soumettre aux registres MCP communautaires
112
+
113
+ ### 2. **Communauté Spring**
114
+ - Annoncer sur les forums Spring Boot
115
+ - Partager sur Reddit r/SpringBoot
116
+ - Poster sur Stack Overflow avec tag spring-boot
117
+
118
+ ### 3. **Réseaux sociaux**
119
+ - LinkedIn avec hashtags #SpringBoot #Claude #MCP
120
+ - Twitter/X mention @springboot
121
+ - Dev.to article de présentation
122
+
123
+ ### 4. **GitHub**
124
+ - Ajouter aux listes "Awesome MCP"
125
+ - Topics: `mcp`, `spring-boot`, `claude`, `documentation`
126
+
127
+ ## 🔄 Maintenance continue
128
+
129
+ ### Monitoring
130
+ - GitHub Issues pour support utilisateur
131
+ - npm downloads statistics
132
+ - Feedback et feature requests
133
+
134
+ ### Mises à jour
135
+ - Suivre les versions Spring Boot
136
+ - Améliorer les outils MCP
137
+ - Ajouter de nouvelles sources de documentation
138
+
139
+ ## 📊 Métriques de succès
140
+
141
+ ### Adoption
142
+ - Downloads npm
143
+ - GitHub stars
144
+ - Issues/feedback utilisateurs
145
+
146
+ ### Usage
147
+ - Nombre d'utilisateurs Claude Desktop
148
+ - Fréquence d'utilisation des outils
149
+ - Requêtes de documentation populaires
150
+
151
+ ## 🎯 Roadmap future
152
+
153
+ ### Version 1.2.0
154
+ - Support Spring Boot 3.2+
155
+ - Nouveaux projets Spring
156
+ - Amélioration des performances
157
+
158
+ ### Version 1.3.0
159
+ - Support multi-langues
160
+ - Cache intelligent
161
+ - Analytics d'usage
162
+
163
+ ## 🤝 Contribution communautaire
164
+
165
+ ### Ouverture
166
+ - Issues templates
167
+ - Pull request guidelines
168
+ - Code of conduct
169
+ - Contributor recognition
170
+
171
+ ### Gouvernance
172
+ - Maintenance collaborative
173
+ - Revue de code
174
+ - Tests automatisés
175
+ - Documentation collaborative
176
+
177
+ ---
178
+
179
+ ## 🎉 Commandes de publication rapide
180
+
181
+ ```bash
182
+ # Vérifications finales
183
+ npm run build
184
+ npm test
185
+ npm pack --dry-run
186
+
187
+ # Publication
188
+ npm version patch # ou minor/major selon les changements
189
+ git add .
190
+ git commit -m "Release v$(node -p "require('./package.json').version")"
191
+ git tag "v$(node -p "require('./package.json').version")"
192
+ git push origin main --tags
193
+ npm publish --access public
194
+ ```
195
+
196
+ ## 🌟 Impact attendu
197
+
198
+ Une fois publié, votre serveur MCP permettra à **tous les développeurs utilisant Claude Desktop** d'avoir un accès instantané à :
199
+
200
+ - 📚 **Toute la documentation Spring**
201
+ - 🔍 **Recherche intelligente** dans l'écosystème Spring
202
+ - 💡 **Apprentissage interactif** avec Claude
203
+ - ⚡ **Développement accéléré** Spring Boot
204
+
205
+ **🚀 Votre contribution va révolutionner l'accès à la documentation Spring pour la communauté des développeurs !**