À propos du projet
MCP Inspector est un outil destiné aux développeurs pour inspecter et tester les serveurs Model Context Protocol (MCP). Il est distribué sous forme d'un seul paquet npm, `@modelcontextprotocol/inspector`, et expose un unique binaire global, `mcp-inspector`, qui s'exécute selon trois modes :
- **Web** — une application monopage Vite + React + Mantine avec un backend Node.js, offrant une interface visuelle pour l'inspection des serveurs.
- **CLI** — un client en ligne de commande scriptable conçu pour l'automatisation, les pipelines CI et les boucles de retour rapides des agents.
- **TUI** — une interface terminal interactive construite avec Ink pour les utilisateurs qui préfèrent un flux de travail en terminal.
Les trois modes sont invoqués via le même binaire avec des options :
```bash
npx @modelcontextprotocol/inspector # interface web (par défaut)
npx @modelcontextprotocol/inspector --cli # mode CLI
npx @modelcontextprotocol/inspector --tui # mode TUI
```
## Architecture
Le projet n'est pas un workspace npm. Chaque client sous `clients/` possède son propre `package.json` et son propre `node_modules`. Le code partagé réside dans `core/` et est consommé via un alias de build `@inspector/core`. Les dépendances d'exécution importées par `core/` sont déclarées une seule fois à la racine du dépôt, tandis que chaque client ne déclare que sa propre pile UI, ses paquets intégrés au bundler et ses outils de développement. Les paquets `clients/cli` et `clients/launcher` n'ont aucune dépendance d'exécution propre.
## Organisation du projet
- `clients/web/` — Client web (Vite + React + Mantine). Le répertoire `src/` contient l'application navigateur ; `server/` héberge le backend Node.
- `clients/cli/` — Client CLI, regroupé avec tsup via l'alias `@inspector/core`.
- `clients/tui/` — Client TUI, construit avec Ink + React et regroupé avec tsup.
- `clients/launcher/` — Lanceur partagé qui fournit le binaire `mcp-inspector` et redirige vers le client approprié.
- `core/` — Code partagé consommé via l'alias `@inspector/core` ; ne possède pas de `package.json`.
- `test-servers/` — Serveurs de test MCP composables et fixtures utilisés dans les tests d'intégration et de fumée.
- `scripts/` — Outillage de build et de vérification à la racine, incluant les cascades d'installation, les tests de fumée et l'automatisation CI.
- `docs/` — Guides orientés tâches couvrant l'architecture, les tests, les barrières de qualité, le stockage des secrets, la migration, l'utilisation de Docker, et plus encore.
- `specification/` — Spécifications de conception et de build.
- `.claude/skills/` — Compétences d'agent, chacune dans son propre répertoire, chargées à la demande par nom de procédure.
## Flux de développement
Node `>=22.19.0` est requis. Après avoir exécuté `npm install` à la racine du dépôt (le script postinstall se propage dans chaque client), exécutez `npm run build` pour compiler le web, le CLI, le TUI et le lanceur en séquence. Pour un développement web rapide, vous pouvez exécuter Vite directement depuis `clients/web` pour un remplacement de module à chaud rapide sans reconstruire le lanceur.
La barrière obligatoire avant push est `npm run local:gate`, qui enchaîne les vérifications de format, le linting, la vérification de types, les builds, les tests unitaires, la vérification de couverture (seuil par fichier de 90 %), les tests de fumée et les tests Storybook. Cela reproduit localement l'intégralité de la vérification CI GitHub.
## Points forts de la documentation
- **Architecture** — Détails sur le paquet partagé `@inspector/core` et le modèle de composants du client web.
- **Tests et barrière de qualité** — Couverture de ce que chaque script de validation vérifie et de la séparation entre la barrière CI et locale.
- **Stockage des secrets** — Comment les secrets sont gérés entre les trousseaux de clés du système d'exploitation, les fichiers en clair et les stockages en mémoire, incluant le chiffrement et le verrouillage.
- **Test de fumée d'un serveur MCP** — Un flux de travail connecter → lister → appeler → vérifier pour les tâches shell ou CI, avec sortie JSON et mappage des codes de sortie.
- **Migration de v1 vers v2** — Changements d'options CLI, la séparation `--config` vs. `--catalog`, la mise à jour du moteur Node et les renommages de variables d'environnement.
- **Feuille de route** — Un plan sur six mois aligné sur la feuille de route MCP publiée, couvrant la conformité aux spécifications, le support des extensions officielles et les améliorations d'expérience.
## Contribution
Les contributions suivent un flux de travail piloté par les issues. Tout le travail doit être suivi sur le tableau de projet v2, avec des PR ouvertes contre `v2/main` et liées via `Closes #<issue>`. Les contributions externes sont acceptées sous forme d'issues plutôt que de pull requests. Le fichier `AGENTS.md` définit les règles du projet pour les contributeurs humains et IA, couvrant le versionnage, les standards TypeScript, les conventions Mantine/React et les exigences de test. Le fichier `CLAUDE.md` sert de point d'entrée pour Claude Code, chargeant automatiquement `AGENTS.md` afin que les agents et les humains opèrent à partir de la même source de vérité.
## Licence
Le projet MCP passe de MIT à Apache-2.0. Les nouvelles contributions sont sous licence Apache-2.0, la documentation (hors spécifications) sous CC-BY-4.0, et les contributions héritées qui n'ont pas accordé de consentement de relicencement restent sous MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.