À 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.