@mcptoolshop/registry-stats 2.3.0 → 3.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.
- package/README.es.md +137 -134
- package/README.fr.md +137 -134
- package/README.hi.md +137 -134
- package/README.it.md +137 -134
- package/README.ja.md +137 -134
- package/README.md +47 -5
- package/README.pt-BR.md +137 -134
- package/README.zh.md +137 -134
- package/dist/cli.js +4 -3
- package/dist/index.cjs +311 -3
- package/dist/index.d.cts +108 -1
- package/dist/index.d.ts +108 -1
- package/dist/index.js +304 -3
- package/package.json +1 -1
package/README.fr.md
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
<p align="center">
|
|
2
|
-
<a href="README.ja.md">日本語</a> | <a href="README.zh.md">中文</a> | <a href="README.es.md">Español</a> | <a href="README.md">English</a> | <a href="README.hi.md">हिन्दी</a> | <a href="README.it.md">Italiano</a> | <a href="README.pt-BR.md">Português (BR)</a>
|
|
3
|
-
</p>
|
|
4
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="README.ja.md">日本語</a> | <a href="README.zh.md">中文</a> | <a href="README.es.md">Español</a> | <a href="README.md">English</a> | <a href="README.hi.md">हिन्दी</a> | <a href="README.it.md">Italiano</a> | <a href="README.pt-BR.md">Português (BR)</a>
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
5
|
<p align="center">
|
|
6
6
|
<img src="https://raw.githubusercontent.com/mcp-tool-shop-org/brand/main/logos/registry-stats/readme.png" alt="registry-stats logo" width="400" />
|
|
7
7
|
</p>
|
|
8
|
-
|
|
8
|
+
|
|
9
9
|
<p align="center">
|
|
10
10
|
Five registries. One engine. Dashboard included.
|
|
11
11
|
</p>
|
|
12
|
-
|
|
12
|
+
|
|
13
13
|
<p align="center">
|
|
14
14
|
<a href="https://github.com/mcp-tool-shop-org/registry-stats/actions/workflows/pages.yml"><img src="https://github.com/mcp-tool-shop-org/registry-stats/actions/workflows/pages.yml/badge.svg" alt="CI"></a>
|
|
15
15
|
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="MIT License"></a>
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
<a href="https://mcp-tool-shop-org.github.io/registry-stats/dashboard/"><img src="https://img.shields.io/badge/Dashboard-live-green" alt="Dashboard"></a>
|
|
18
18
|
<a href="https://mcp-tool-shop-org.github.io/registry-stats/"><img src="https://img.shields.io/badge/Landing_Page-live-blue" alt="Landing Page"></a>
|
|
19
19
|
</p>
|
|
20
|
-
|
|
20
|
+
|
|
21
21
|
<p align="center">
|
|
22
22
|
<a href="#dashboard">Dashboard</a> ·
|
|
23
23
|
<a href="#desktop-app">Desktop App</a> ·
|
|
@@ -28,57 +28,60 @@
|
|
|
28
28
|
<a href="#config-file">Config</a> ·
|
|
29
29
|
<a href="#license">License</a>
|
|
30
30
|
</p>
|
|
31
|
-
|
|
31
|
+
|
|
32
32
|
---
|
|
33
|
-
|
|
34
|
-
Vous publiez sur npm, PyPI, NuGet, le Marketplace de VS Code et Docker Hub. Actuellement, répondre à la question "comment vont mes paquets ?" nécessite de consulter cinq sites différents. **registry-stats** est une plateforme complète : un moteur TypeScript (CLI + API + serveur REST), un tableau de bord web interactif et une application de bureau Windows native, le tout regroupé dans un seul dépôt.
|
|
35
|
-
|
|
36
|
-
Aucune dépendance d'exécution. Utilise la fonction native `fetch()`. Node 18+.
|
|
37
|
-
|
|
38
|
-
## Contenu
|
|
39
|
-
|
|
40
|
-
| Couche | Fonctionnalités |
|
|
41
|
-
|-------|-------------|
|
|
42
|
-
| **Engine** | Bibliothèque TypeScript + CLI + serveur REST. Interrogez cinq registres avec une seule interface. Publié sur npm sous le nom `@mcptoolshop/registry-stats`. |
|
|
43
|
-
| **Dashboard** | Application web
|
|
44
|
-
| **Desktop** | Application Windows native utilisant WinUI 3 + WebView2. Inclut le tableau de bord hors ligne et récupère les statistiques en direct à la demande. |
|
|
45
|
-
|
|
46
|
-
## Tableau de bord
|
|
47
|
-
|
|
48
|
-
Un tableau de bord de statistiques qui se met à jour automatiquement est disponible à l'adresse [`/dashboard/`](https://mcp-tool-shop-org.github.io/registry-stats/dashboard/).
|
|
49
|
-
|
|
50
|
-
- **Interface à onglets** — Onglets
|
|
51
|
-
- **Assistant
|
|
52
|
-
- **
|
|
53
|
-
- **Six graphiques interactifs** —
|
|
54
|
-
- **Moteur de croissance intelligent** —
|
|
55
|
-
- **
|
|
56
|
-
- **
|
|
57
|
-
- **
|
|
58
|
-
- **
|
|
59
|
-
- **
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
- **
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
33
|
+
|
|
34
|
+
Vous publiez sur npm, PyPI, NuGet, le Marketplace de VS Code et Docker Hub. Actuellement, répondre à la question "comment vont mes paquets ?" nécessite de consulter cinq sites différents. **registry-stats** est une plateforme complète : un moteur TypeScript (CLI + API + serveur REST), un tableau de bord web interactif et une application de bureau Windows native, le tout regroupé dans un seul dépôt.
|
|
35
|
+
|
|
36
|
+
Aucune dépendance d'exécution. Utilise la fonction native `fetch()`. Node 18+.
|
|
37
|
+
|
|
38
|
+
## Contenu
|
|
39
|
+
|
|
40
|
+
| Couche | Fonctionnalités |
|
|
41
|
+
|-------|-------------|
|
|
42
|
+
| **Engine** | Bibliothèque TypeScript + CLI + serveur REST. Interrogez cinq registres avec une seule interface. Publié sur npm sous le nom `@mcptoolshop/registry-stats`. |
|
|
43
|
+
| **Dashboard** | Application web alimentée par Astro, avec un assistant IA Pulse (reconnaissance vocale, recherche web, mode plein écran, connecteurs de données GitHub), six graphiques interactifs, actualisation en direct, exportation de rapports (PDF / JSONL / Markdown) et un guide d'aide organisé par onglets. Reconstruite chaque semaine par CI ; actualisable à la demande. |
|
|
44
|
+
| **Desktop** | Application Windows native utilisant WinUI 3 + WebView2. Inclut le tableau de bord hors ligne et récupère les statistiques en direct à la demande. |
|
|
45
|
+
|
|
46
|
+
## Tableau de bord
|
|
47
|
+
|
|
48
|
+
Un tableau de bord de statistiques qui se met à jour automatiquement est disponible à l'adresse [`/dashboard/`](https://mcp-tool-shop-org.github.io/registry-stats/dashboard/).
|
|
49
|
+
|
|
50
|
+
- **Interface à onglets** — Onglets Accueil, Analyses, Classement, et Aide.
|
|
51
|
+
- **Assistant IA Pulse** — Assistant conversationnel alimenté par Ollama, avec synthèse vocale en continu (parle pendant que le LLM génère du texte, 4 voix via [mcp-voice-soundboard](https://github.com/mcp-tool-shop-org/mcp-voice-soundboard)), recherche web (Wikipedia + SearXNG optionnel), lecture automatique, mode plein écran, connecteur de données GitHub, sélecteur de modèle, et mémoire de conversation.
|
|
52
|
+
- **Aperçu général** — Score de santé (0–100), indice de diversité, variation hebdomadaire, nombre total de téléchargements sur tous les registres.
|
|
53
|
+
- **Six graphiques interactifs** — Tendance sur 30 jours (agrégée / par registre / top-5), part de marché (aire polaire), risque du portefeuille (histogramme + Gini & P90), top 10 des tendances, suivi de la vitesse avec des mini-graphiques, et carte thermique sur 30 jours avec détection des pics (>2σ).
|
|
54
|
+
- **Moteur de croissance intelligent** — Gère les distorsions liées aux petites bases avec un seuil de référence, un plafond en pourcentage et une formule de vitesse amortie.
|
|
55
|
+
- **Informations exploitables** — Recommandations générées automatiquement et alertes pour les paquets en déclin.
|
|
56
|
+
- **Tableau de bord Pulse** — Vue divisée des paquets établis (≥ 50 téléchargements/semaine) et des paquets émergents et nouveaux, avec des mini-graphiques sur 7 jours, des variations absolues et en pourcentage, un contexte de référence et un résumé exécutif en une ligne.
|
|
57
|
+
- **Actualisation en direct** — Récupération des données les plus récentes directement des API npm et PyPI, avec un indicateur de progression ; les résultats sont mis en cache dans sessionStorage (TTL de 5 minutes) pour des changements d'onglets instantanés.
|
|
58
|
+
- **Exportation de rapports** — Menu déroulant à côté du bouton Actualiser, offrant trois formats : **PDF exécutif** (via jsPDF), **JSONL LLM** (enregistrements typés pour l'ingestion par l'IA) et **Markdown pour développeurs** (tableaux GFM).
|
|
59
|
+
- **Classement** — 132 paquets classés par nombre de téléchargements hebdomadaires, avec des mini-graphiques sur 30 jours et des badges de tendance intelligents.
|
|
60
|
+
- **Page de configuration** — Éditeur de portefeuille avec validation, section de synchronisation des registres et aperçu du pipeline.
|
|
61
|
+
- **Onglet Aide** — Guide convivial couvrant chaque onglet, les concepts clés, des conseils pour l'assistant IA, le pipeline de données et des liens utiles.
|
|
62
|
+
- **Thème sombre / clair** — Suit les préférences du système.
|
|
63
|
+
|
|
64
|
+
Les données sont récupérées au moment de la construction et reconstruites chaque semaine par CI (lundi à 06h00 UTC). L'actualisation en direct récupère les dernières données directement à partir des API des registres. Configurez les paquets suivis dans `site/src/data/packages.json` (132 paquets répartis sur 5 registres).
|
|
65
|
+
|
|
66
|
+
## Application de bureau
|
|
67
|
+
|
|
68
|
+
Une application Windows native qui intègre le tableau de bord dans un environnement WebView2 local :
|
|
69
|
+
|
|
70
|
+
- **Fonctionne hors ligne** — inclut les fichiers HTML/CSS/JS ; fonctionne sans connexion Internet.
|
|
71
|
+
- **Actualisation en direct** — récupère le fichier `stats.json` depuis GitHub Pages à la demande.
|
|
72
|
+
- **Exportation CSV** — exportez les données du classement en un seul clic.
|
|
73
|
+
- **Paquet MSIX** — construit et signé par CI via `desktop-ci.yml`.
|
|
74
|
+
|
|
75
|
+
Le code source de l'application de bureau se trouve dans le répertoire `desktop/`. Développé avec .NET 10 MAUI et ciblant WinUI 3.
|
|
76
|
+
|
|
77
|
+
## Installer
|
|
78
|
+
|
|
76
79
|
```bash
|
|
77
80
|
npm install @mcptoolshop/registry-stats
|
|
78
81
|
```
|
|
79
|
-
|
|
80
|
-
## CLI
|
|
81
|
-
|
|
82
|
+
|
|
83
|
+
## CLI
|
|
84
|
+
|
|
82
85
|
```bash
|
|
83
86
|
# Query a single registry
|
|
84
87
|
registry-stats express -r npm
|
|
@@ -116,11 +119,11 @@ registry-stats express -r npm --range 2025-01-01:2025-06-30 --format chart
|
|
|
116
119
|
# Start a REST API server
|
|
117
120
|
registry-stats serve --port 3000
|
|
118
121
|
```
|
|
119
|
-
|
|
120
|
-
## Fichier de configuration
|
|
121
|
-
|
|
122
|
-
Créez un fichier `registry-stats.config.json` à la racine de votre projet (ou exécutez la commande `registry-stats --init`) :
|
|
123
|
-
|
|
122
|
+
|
|
123
|
+
## Fichier de configuration
|
|
124
|
+
|
|
125
|
+
Créez un fichier `registry-stats.config.json` à la racine de votre projet (ou exécutez la commande `registry-stats --init`) :
|
|
126
|
+
|
|
124
127
|
```json
|
|
125
128
|
{
|
|
126
129
|
"registries": ["npm", "pypi", "nuget", "vscode", "docker"],
|
|
@@ -139,11 +142,11 @@ Créez un fichier `registry-stats.config.json` à la racine de votre projet (ou
|
|
|
139
142
|
"concurrency": 5
|
|
140
143
|
}
|
|
141
144
|
```
|
|
142
|
-
|
|
143
|
-
Exécutez la commande `registry-stats` sans arguments pour obtenir les statistiques de tous les paquets configurés. L'interface en ligne de commande (CLI) remonte à partir du répertoire de travail actuel (cwd) pour trouver le fichier de configuration le plus proche.
|
|
144
|
-
|
|
145
|
-
La configuration est également accessible par programmation :
|
|
146
|
-
|
|
145
|
+
|
|
146
|
+
Exécutez la commande `registry-stats` sans arguments pour obtenir les statistiques de tous les paquets configurés. L'interface en ligne de commande (CLI) remonte à partir du répertoire de travail actuel (cwd) pour trouver le fichier de configuration le plus proche.
|
|
147
|
+
|
|
148
|
+
La configuration est également accessible par programmation :
|
|
149
|
+
|
|
147
150
|
```typescript
|
|
148
151
|
import { loadConfig, defaultConfig, starterConfig } from '@mcptoolshop/registry-stats';
|
|
149
152
|
|
|
@@ -151,9 +154,9 @@ const config = loadConfig(); // finds nearest config file, or null
|
|
|
151
154
|
const defaults = defaultConfig(); // returns default Config object
|
|
152
155
|
const template = starterConfig(); // returns starter JSON string
|
|
153
156
|
```
|
|
154
|
-
|
|
155
|
-
## API programmable
|
|
156
|
-
|
|
157
|
+
|
|
158
|
+
## API programmable
|
|
159
|
+
|
|
157
160
|
```typescript
|
|
158
161
|
import { stats, calc, createCache } from '@mcptoolshop/registry-stats';
|
|
159
162
|
|
|
@@ -194,41 +197,41 @@ const cache = createCache();
|
|
|
194
197
|
await stats('npm', 'express', { cache }); // fetches
|
|
195
198
|
await stats('npm', 'express', { cache }); // cache hit
|
|
196
199
|
```
|
|
197
|
-
|
|
198
|
-
## Support technique pour les registres
|
|
199
|
-
|
|
200
|
-
| Registre. | Format du paquet. | Séries temporelles. | Données disponibles. |
|
|
201
|
-
|----------|---------------|-------------|----------------|
|
|
202
|
-
| `npm` | `express`, `@scope/pkg` | Oui (549 jours). | dernier jour, dernière semaine, dernier mois. |
|
|
203
|
-
| `pypi` | `requests` | Oui (180 jours). | dernier jour, dernière semaine, dernier mois, total. |
|
|
204
|
-
| `nuget` | `Newtonsoft.Json` | No | total |
|
|
205
|
-
| `vscode` | `publisher.extension` | No | total (installations), évaluation, tendances. |
|
|
206
|
-
| `docker` | `namespace/repo` | No | total (nombre de tirages), étoiles. |
|
|
207
|
-
|
|
208
|
-
## Fiabilité intégrée
|
|
209
|
-
|
|
210
|
-
- Nouvelle tentative automatique avec un délai exponentiel en cas d'erreurs 429/5xx.
|
|
211
|
-
- Respect des en-têtes "Retry-After".
|
|
212
|
-
- Limitation de la concurrence pour les requêtes groupées.
|
|
213
|
-
- Cache TTL optionnel (extensible – possibilité d'utiliser votre propre backend Redis ou fichier via l'interface "StatsCache").
|
|
214
|
-
|
|
215
|
-
## Serveur d'API REST
|
|
216
|
-
|
|
217
|
-
Fonctionnez en tant que microservice ou intégrez-le à votre propre serveur :
|
|
218
|
-
|
|
200
|
+
|
|
201
|
+
## Support technique pour les registres
|
|
202
|
+
|
|
203
|
+
| Registre. | Format du paquet. | Séries temporelles. | Données disponibles. |
|
|
204
|
+
|----------|---------------|-------------|----------------|
|
|
205
|
+
| `npm` | `express`, `@scope/pkg` | Oui (549 jours). | dernier jour, dernière semaine, dernier mois. |
|
|
206
|
+
| `pypi` | `requests` | Oui (180 jours). | dernier jour, dernière semaine, dernier mois, total. |
|
|
207
|
+
| `nuget` | `Newtonsoft.Json` | No | total |
|
|
208
|
+
| `vscode` | `publisher.extension` | No | total (installations), évaluation, tendances. |
|
|
209
|
+
| `docker` | `namespace/repo` | No | total (nombre de tirages), étoiles. |
|
|
210
|
+
|
|
211
|
+
## Fiabilité intégrée
|
|
212
|
+
|
|
213
|
+
- Nouvelle tentative automatique avec un délai exponentiel en cas d'erreurs 429/5xx.
|
|
214
|
+
- Respect des en-têtes "Retry-After".
|
|
215
|
+
- Limitation de la concurrence pour les requêtes groupées.
|
|
216
|
+
- Cache TTL optionnel (extensible – possibilité d'utiliser votre propre backend Redis ou fichier via l'interface "StatsCache").
|
|
217
|
+
|
|
218
|
+
## Serveur d'API REST
|
|
219
|
+
|
|
220
|
+
Fonctionnez en tant que microservice ou intégrez-le à votre propre serveur :
|
|
221
|
+
|
|
219
222
|
```bash
|
|
220
223
|
registry-stats serve --port 3000
|
|
221
224
|
```
|
|
222
|
-
|
|
225
|
+
|
|
223
226
|
```
|
|
224
227
|
GET /stats/:package # all registries
|
|
225
228
|
GET /stats/:registry/:package # single registry
|
|
226
229
|
GET /compare/:package?registries=npm,pypi
|
|
227
230
|
GET /range/:registry/:package?start=YYYY-MM-DD&end=YYYY-MM-DD&format=json|csv|chart
|
|
228
231
|
```
|
|
229
|
-
|
|
230
|
-
Utilisation par programmation pour les serveurs personnalisés ou les environnements sans serveur :
|
|
231
|
-
|
|
232
|
+
|
|
233
|
+
Utilisation par programmation pour les serveurs personnalisés ou les environnements sans serveur :
|
|
234
|
+
|
|
232
235
|
```typescript
|
|
233
236
|
import { createHandler, serve } from '@mcptoolshop/registry-stats';
|
|
234
237
|
|
|
@@ -240,9 +243,9 @@ import { createServer } from 'node:http';
|
|
|
240
243
|
const handler = createHandler();
|
|
241
244
|
createServer(handler).listen(3000);
|
|
242
245
|
```
|
|
243
|
-
|
|
244
|
-
## Registres personnalisés
|
|
245
|
-
|
|
246
|
+
|
|
247
|
+
## Registres personnalisés
|
|
248
|
+
|
|
246
249
|
```typescript
|
|
247
250
|
import { registerProvider, type RegistryProvider } from '@mcptoolshop/registry-stats';
|
|
248
251
|
|
|
@@ -263,9 +266,9 @@ const cargo: RegistryProvider = {
|
|
|
263
266
|
registerProvider(cargo);
|
|
264
267
|
await stats('cargo', 'serde');
|
|
265
268
|
```
|
|
266
|
-
|
|
267
|
-
## Structure du dépôt
|
|
268
|
-
|
|
269
|
+
|
|
270
|
+
## Structure du dépôt
|
|
271
|
+
|
|
269
272
|
```
|
|
270
273
|
registry-stats/
|
|
271
274
|
├── src/ # TypeScript engine (published to npm)
|
|
@@ -273,9 +276,9 @@ registry-stats/
|
|
|
273
276
|
├── desktop/ # WinUI 3 desktop app (.NET 10 MAUI)
|
|
274
277
|
└── test/ # Library tests (vitest)
|
|
275
278
|
```
|
|
276
|
-
|
|
277
|
-
## Développement
|
|
278
|
-
|
|
279
|
+
|
|
280
|
+
## Développement
|
|
281
|
+
|
|
279
282
|
```bash
|
|
280
283
|
# Engine
|
|
281
284
|
npm install && npm run build && npm test
|
|
@@ -286,36 +289,36 @@ npm run site:dev
|
|
|
286
289
|
# Dashboard (production build)
|
|
287
290
|
npm run site:build
|
|
288
291
|
```
|
|
289
|
-
|
|
290
|
-
## Sécurité et portée des données
|
|
291
|
-
|
|
292
|
-
| Aspect | Détail |
|
|
293
|
-
|--------|--------|
|
|
294
|
-
| **Data touched** | Statistiques de téléchargement publiques provenant de npm, PyPI, NuGet, VS Code Marketplace, Docker Hub. Cache en mémoire (facultatif). |
|
|
295
|
-
| **Data NOT touched** | Aucune télémétrie. Aucune analyse. Aucun stockage d'informations d'identification. Aucune donnée utilisateur. Aucune écriture de fichiers. |
|
|
296
|
-
| **Permissions** | Lecture : API publiques des registres via HTTPS. Écriture : uniquement vers la sortie standard/erreur standard. |
|
|
297
|
-
| **Network** | Sorties HTTPS vers les API publiques des registres. Serveur REST localhost facultatif. |
|
|
298
|
-
| **Telemetry** | Aucune donnée collectée ou envoyée. |
|
|
299
|
-
|
|
300
|
-
Consultez le fichier [SECURITY.md](SECURITY.md) pour signaler les vulnérabilités.
|
|
301
|
-
|
|
302
|
-
## Tableau de bord
|
|
303
|
-
|
|
304
|
-
| Catégorie | Score |
|
|
305
|
-
|----------|-------|
|
|
306
|
-
| A. Sécurité | 10 |
|
|
307
|
-
| B. Gestion des erreurs | 10 |
|
|
308
|
-
| C. Documentation pour les administrateurs | 10 |
|
|
309
|
-
| D. Bonnes pratiques de déploiement | 10 |
|
|
310
|
-
| E. Identité (facultatif) | 10 |
|
|
311
|
-
| **Overall** | **50/50** |
|
|
312
|
-
|
|
313
|
-
> Audit complet : [SHIP_GATE.md](SHIP_GATE.md) · [SCORECARD.md](SCORECARD.md)
|
|
314
|
-
|
|
315
|
-
## Licence
|
|
316
|
-
|
|
317
|
-
MIT.
|
|
318
|
-
|
|
292
|
+
|
|
293
|
+
## Sécurité et portée des données
|
|
294
|
+
|
|
295
|
+
| Aspect | Détail |
|
|
296
|
+
|--------|--------|
|
|
297
|
+
| **Data touched** | Statistiques de téléchargement publiques provenant de npm, PyPI, NuGet, VS Code Marketplace, Docker Hub. Cache en mémoire (facultatif). |
|
|
298
|
+
| **Data NOT touched** | Aucune télémétrie. Aucune analyse. Aucun stockage d'informations d'identification. Aucune donnée utilisateur. Aucune écriture de fichiers. |
|
|
299
|
+
| **Permissions** | Lecture : API publiques des registres via HTTPS. Écriture : uniquement vers la sortie standard/erreur standard. |
|
|
300
|
+
| **Network** | Sorties HTTPS vers les API publiques des registres. Serveur REST localhost facultatif. |
|
|
301
|
+
| **Telemetry** | Aucune donnée collectée ou envoyée. |
|
|
302
|
+
|
|
303
|
+
Consultez le fichier [SECURITY.md](SECURITY.md) pour signaler les vulnérabilités.
|
|
304
|
+
|
|
305
|
+
## Tableau de bord
|
|
306
|
+
|
|
307
|
+
| Catégorie | Score |
|
|
308
|
+
|----------|-------|
|
|
309
|
+
| A. Sécurité | 10 |
|
|
310
|
+
| B. Gestion des erreurs | 10 |
|
|
311
|
+
| C. Documentation pour les administrateurs | 10 |
|
|
312
|
+
| D. Bonnes pratiques de déploiement | 10 |
|
|
313
|
+
| E. Identité (facultatif) | 10 |
|
|
314
|
+
| **Overall** | **50/50** |
|
|
315
|
+
|
|
316
|
+
> Audit complet : [SHIP_GATE.md](SHIP_GATE.md) · [SCORECARD.md](SCORECARD.md)
|
|
317
|
+
|
|
318
|
+
## Licence
|
|
319
|
+
|
|
320
|
+
MIT.
|
|
321
|
+
|
|
319
322
|
---
|
|
320
|
-
|
|
321
|
-
Construit par <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a>.
|
|
323
|
+
|
|
324
|
+
Construit par <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a>.
|