# Testeur de contrats de serveurs MCP (transports stdio + WebSocket · validation des schémas JSON Schema 2020-12)

Vérification de bout en bout des contrats de serveurs Model Context Protocol : négociation JSON-RPC 2.0, échange de capabilities, tools/list avec type racine object et compilation selon le brouillon 2020-12, lecture des resources, obtention des prompts, ping, sémantique -32601 pour méthodes inconnues, aller-retour sampling/createMessage et discipline de cadrage stdio ; par défaut auto-test hors ligne contre un serveur de référence intégré, ou contre votre commande stdio ou point de terminaison ws://.

> Page canonique: https://elysiatools.com/fr/tools/model-context-protocol-mcp-server-tool-schema-stdio-websocket-transport-contract-tester

- **Catégorie:** AI Tools

- **Mots-clés:** MCP, Model Context Protocol, test de contrat, JSON-RPC, stdio, WebSocket, schéma d'outils, négociation de capacités, sampling, rapport de conformité

## Présentation

Base du protocole (ère initialize, 2024-11-05 … 2025-11-25) : la requête initialize transporte protocolVersion, les capabilities du client et clientInfo ; le serveur répond serverInfo + capabilities ; le client doit ensuite envoyer la notification notifications/initialized. Le transport officiel stdio est du JSON-RPC délimité par des sauts de ligne (aucun saut imbriqué, journaux sur stderr, stdout limité aux messages MCP) ; WebSocket est un transport personnalisé (§ Custom Transports) : un message JSON-RPC par trame texte. Le schéma de chaque outil doit avoir type:object à la racine ; ce testeur compile chaque inputSchema avec Ajv 2020-12. sampling est une requête serveur→client : si le client déclare la capability, le serveur peut envoyer sampling/createMessage (messages[] + maxTokens), que le testeur répond et valide. La révision 2026-07-28 adopte un noyau sans état (les serveurs n'émettent plus de requêtes) ; ce testeur cible l'ère initialize classique et le signale dans le rapport. Le mode par défaut vérifie un serveur de référence embarqué pleinement conforme, sur deux transports (paire de flux stdio en processus + WebSocket TCP réel sur 127.0.0.1), de façon déterministe et hors ligne.

## Entrées

- **Mode de test** (select)
- **Commande du serveur (mode stdio)** (text): npx -y @modelcontextprotocol/server-everything
- **URL WebSocket (ws:// ou wss://)** (text): ws://127.0.0.1:3001/mcp
- **Version du protocole à demander** (select)
- **Délai de requête (ms)** (number): 5000
- **Valider les schémas d'entrée (JSON Schema 2020-12)** (checkbox)

## Quand l'utiliser

- Lors du développement ou du débogage d'un serveur MCP personnalisé exécuté via stdio ou WebSocket.
- Avant de déployer un serveur MCP pour vérifier la validité des schémas d'outils et le respect de la norme JSON Schema 2020-12.
- Pour valider la gestion des erreurs JSON-RPC (-32601), les méthodes de cycle de vie (initialize, ping) et les flux de sampling.

## Fonctionnement

- Sélectionnez le mode de test souhaité : auto-test hors ligne avec le serveur de référence, sous-processus local via commande stdio, ou connexion à une URL WebSocket distante.
- Définissez la version du protocole MCP cible (de 2024-11-05 à 2025-11-25), le délai d'expiration des requêtes et l'activation de la validation des schémas d'entrée.
- L'outil établit la liaison de transport, exécute la séquence d'initialisation JSON-RPC, interroge les ressources, prompts et outils, puis compile chaque inputSchema avec Ajv 2020-12.
- Un rapport d'évaluation visuel HTML est généré, affichant le score de conformité, la matrice des capacités et le détail des contrôles réussis ou échoués.

## Cas d'usage

- Vérification d'intégration continue (CI) pour certifier la conformité de bibliothèques et serveurs MCP avant publication.
- Audit de schémas d'outils complexes pour s'assurer de leur compilabilité sous le standard JSON Schema draft 2020-12.
- Débogage des problèmes de cadrage de flux stdio, notamment la séparation stricte entre messages MCP sur stdout et logs sur stderr.

## Questions fréquentes

### Quels modes de transport sont pris en charge par ce testeur ?

L'outil prend en charge le transport officiel stdio délimité par des sauts de ligne et le transport personnalisé WebSocket (ws:// ou wss://).

### Pourquoi les schémas d'outils (inputSchema) doivent-ils avoir un type racine object ?

La spécification MCP exige que chaque inputSchema soit un objet JSON Schema valide afin de structurer correctement les paramètres d'appel.

### Comment le testeur gère-t-il la requête de sampling (sampling/createMessage) ?

Le testeur déclare la capacité de sampling lors de l'initialisation, répond aux requêtes émises par le serveur et valide la structure des messages renvoyés.

### Que vérifie le test de l'erreur JSON-RPC -32601 ?

Il envoie un nom de méthode inconnu au serveur pour vérifier qu'il retourne bien le code d'erreur standard -32601 (Method not found).

### Peut-on exécuter les tests sans serveur externe actif ?

Oui, le mode reference-selftest utilise un serveur de référence intégré pour valider les deux transports de façon déterministe et hors ligne.

## Outils associés

- [Planificateur de migration CSV vers base de donnees](https://elysiatools.com/fr/tools/csv-to-database-migration-planner): Infere un schema relationnel a partir dun CSV et genere CREATE TABLE et ALTER pour PostgreSQL, MySQL, SQLite ou SQL Server
- [Extracteur de tokens de thème ECharts](https://elysiatools.com/fr/tools/echarts-theme-token-extractor): Extrait des design tokens — couleurs, nombres, tailles de police et chaînes — d'un JSON de thème ECharts et les exporte directement dans votre design system. Collez un objet thème (celui enregistré et passé à echarts.init(dom, themeName)) et l'outil parcourt chaque feuille, étiquetant chaque couleur (avec normalisation optionnelle nommé/rgb → hex), nombre d'espacement, taille de police et chaîne, puis émet des variables CSS propres, un thème.extend Tailwind, un tokens.json Style Dictionary ou des variables SCSS. Pont entre un thème de visualisation ECharts et les tokens de design Figma/CSS/Tailwind sans recopier chaque valeur à la main.
- [De la palette d’image aux design tokens](https://elysiatools.com/fr/tools/image-to-design-tokens): Extrait les couleurs dominantes d’une image par k-means et les exporte en variables CSS / SCSS / config Tailwind / tokens JSON, avec noms et échelle de teintes
- [Générateur et Analyseur JWK](https://elysiatools.com/fr/tools/jwk-generator): Génère des JSON Web Keys (JWK) pour RSA, EC (P-256/P-384/P-521/secp256k1) et OKP (Ed25519/Ed448/X25519/X448), ou analyse un JWK existant pour inspecter ses paramètres, empreinte et métadonnées
- [Pont PDF (OCR) vers JSON structuré](https://elysiatools.com/fr/tools/ocr-pdf-to-structured-json-bridge): Extrait la couche texte du PDF avec la géométrie (lignes par position y, tableaux par écarts de colonnes, titres par taille de police, paires clé-valeur à deux-points) puis remplit champ par champ un JSON Schema fourni — libellés appariés par clés normalisées, valeurs coercées vers les types déclarés et validées par ajv.
- [JSON Key Extractor](https://elysiatools.com/fr/tools/json-key-extractor): Extract all keys from JSON objects with multiple output formats. Perfect for analyzing JSON structure, documentation generation, and understanding complex nested objects.
- [Generateur JSON-LD depuis CSV](https://elysiatools.com/fr/tools/json-ld-generator-from-csv): Transforme des lignes CSV ou Excel en JSON-LD Schema.org pour des articles, produits ou evenements avec une sortie prete a etre validee
- [Constructeur de JSON Schema pour tool-calling LLM](https://elysiatools.com/fr/tools/llm-tool-calling-json-schema-builder): Définissez un outil LLM une fois et générez des payloads de function-calling validés pour OpenAI, Anthropic et Gemini.

## Exemples

- [Exemples JSON de Chat](https://elysiatools.com/fr/samples/chat-transcript-json): Exemples JSON pour transcriptions de chat multi-rôles
- [Exemples JSON de Texte Riche](https://elysiatools.com/fr/samples/rich-media-json): Exemples JSON pour éditeurs de texte riche (TipTap, Quill, Slate)
- [Exemples JSON de Terraform Plan](https://elysiatools.com/fr/samples/terraform-plan-json-samples): Fichiers Terraform plan JSON pour visualiser les dependances et revoir les changements, proches de terraform show -json
- [Exemples JSON](https://elysiatools.com/fr/samples/json): Exemples de format JSON (JavaScript Object Notation) de structures simples à complexes
