# MCP-Server-Vertragstester (stdio- + WebSocket-Transport · JSON-Schema-2020-12-Validierung)

Protokollgrundlage (Initialize-Ära, 2024-11-05 … 2025-11-25): Die initialize-Anfrage trägt protocolVersion, Client-Capabilities und clientInfo; der Server antwortet mit serverInfo + capabilities; danach muss der Client die notifications/initialized-Meldung senden. Der offizielle stdio-Transport ist zeilenumbruch-getrenntes JSON-RPC (keine eingebetteten Umbrüche, Logs auf stderr, stdout nur MCP-Nachrichten); WebSocket ist ein Custom-Transport (§ Custom Transports): eine JSON-RPC-Nachricht pro Textframe. Jedes Werkzeug-Schema muss an der Wurzel type:object haben; dieser Tester kompiliert jedes inputSchema mit Ajv 2020-12. sampling ist eine Server→Client-Anfrage: deklariert der Client die Capability, darf der Server sampling/createMessage (messages[] + maxTokens) senden, was der Tester beantwortet und prüft. Die Revision 2026-07-28 definiert einen Stateless-Kern (Server initiieren keine Anfragen mehr); dieser Tester zielt auf die klassische Initialize-Ära und weist dies im Bericht aus. Der Standardmodus verifiziert einen vollständig konformen eingebetteten Referenzserver über zwei Transporte (In-Process-stdio-Strompaar + echtes TCP-WebSocket auf 127.0.0.1) — deterministisch und offline.

> Kanonische Seite: https://elysiatools.com/de/tools/model-context-protocol-mcp-server-tool-schema-stdio-websocket-transport-contract-tester

- **Kategorie:** AI Tools

- **Schlagwörter:** MCP, Model Context Protocol, Vertragstest, JSON-RPC, stdio, WebSocket, Werkzeug-Schema, Capability-Aushandlung, Sampling, Compliance-Bericht

## Überblick

Protokollgrundlage (Initialize-Ära, 2024-11-05 … 2025-11-25): Die initialize-Anfrage trägt protocolVersion, Client-Capabilities und clientInfo; der Server antwortet mit serverInfo + capabilities; danach muss der Client die notifications/initialized-Meldung senden. Der offizielle stdio-Transport ist zeilenumbruch-getrenntes JSON-RPC (keine eingebetteten Umbrüche, Logs auf stderr, stdout nur MCP-Nachrichten); WebSocket ist ein Custom-Transport (§ Custom Transports): eine JSON-RPC-Nachricht pro Textframe. Jedes Werkzeug-Schema muss an der Wurzel type:object haben; dieser Tester kompiliert jedes inputSchema mit Ajv 2020-12. sampling ist eine Server→Client-Anfrage: deklariert der Client die Capability, darf der Server sampling/createMessage (messages[] + maxTokens) senden, was der Tester beantwortet und prüft. Die Revision 2026-07-28 definiert einen Stateless-Kern (Server initiieren keine Anfragen mehr); dieser Tester zielt auf die klassische Initialize-Ära und weist dies im Bericht aus. Der Standardmodus verifiziert einen vollständig konformen eingebetteten Referenzserver über zwei Transporte (In-Process-stdio-Strompaar + echtes TCP-WebSocket auf 127.0.0.1) — deterministisch und offline.

## Eingaben

- **Testmodus** (select)
- **Server-Befehl (stdio-Modus)** (text): npx -y @modelcontextprotocol/server-everything
- **WebSocket-URL (ws:// oder wss://)** (text): ws://127.0.0.1:3001/mcp
- **Anzufordernde Protokollversion** (select)
- **Request-Timeout (ms)** (number): 5000
- **Eingabeschemata prüfen (JSON Schema 2020-12)** (checkbox)

## Wann verwenden

- Vor dem Release eines eigenen MCP-Servers zur Validierung von Initialisierung, Framing und Schemastruktur.
- Zur Fehlersuche bei Verbindungsabbrüchen, ungültigen Werkzeug-Schemata oder fehlerhafter Versionsaushandlung.
- Für automatisierte Konformitätsprüfungen von stdio-Prozessbefehlen oder WebSocket-basierten MCP-Endpunkten.

## Funktionsweise

- Testmodus wählen: Den Offline-Referenz-Selbsttest ausführen, einen lokalen stdio-Befehl starten oder eine WebSocket-URL angeben.
- Protokollversion und Optionen konfigurieren, darunter Timeout-Werte und die Validierung von Eingabeschemata nach JSON Schema Draft 2020-12.
- Der Tester führt den Handshake (initialize, notifications/initialized), Werkzeug-Abfragen, Resources/Prompts-Tests, Sampling-Routinen und Fehlerprüfungen durch.
- Einen strukturierten HTML-Konformitätsbericht mit Scores, bestandenen Prüfungen und Schemadetails erhalten.

## Anwendungsfälle

- Validierung eines neu implementierten stdio-MCP-Servers gegen fehlerhafte stdout-Logausgaben und Zeilenumbruch-Disziplin.
- Überprüfung von WebSocket-basierten MCP-Servern auf korrekte Frame-Trennung und Antwortzeiten unter Last.
- Prüfung von deklarierten Server-Capabilities wie sampling/createMessage, prompts/get und resources/read vor der Client-Integration.

## Häufig gestellte Fragen

### Welche Protokollversionen werden vom Tester unterstützt?

Der Tester unterstützt die Spezifikationsrevisionen 2025-06-18, 2025-11-25, 2025-03-26 sowie die ursprüngliche Version 2024-11-05.

### Wie werden Werkzeug-Schemata validiert?

Jedes tool inputSchema muss als Wurzelknoten type:object besitzen und wird mit Ajv gegen den Standard JSON Schema 2020-12 kompiliert.

### Was unterscheidet den stdio-Transport vom WebSocket-Transport?

Bei stdio werden JSON-RPC-Nachrichten zeilenumbruch-getrennt über stdout übertragen, während WebSocket pro Textframe genau eine JSON-RPC-Nachricht sendet.

### Kann der Tester ohne externe Serverinstanz verwendet werden?

Ja, der Modus 'Referenz-Selbsttest' nutzt einen integrierten, vollständig konformen Referenzserver deterministisch und offline.

### Wie reagiert der Tester auf unbekannte Methodenaufrufe?

Er prüft, ob der MCP-Server ordnungsgemäß mit dem JSON-RPC-Standardfehlercode -32601 (Method not found) antwortet.

## Ähnliche Tools

- [CSV-zu-Datenbank-Migrationsplaner](https://elysiatools.com/de/tools/csv-to-database-migration-planner): Leitet aus CSV-Daten ein relationales Schema ab und erzeugt CREATE-TABLE- und ALTER-Plaene fuer PostgreSQL, MySQL, SQLite oder SQL Server
- [ECharts-Theme-Token-Extraktor](https://elysiatools.com/de/tools/echarts-theme-token-extractor): Extrahiert Design-Tokens — Farben, Zahlen, Schriftgrößen und Strings — aus einem ECharts-Theme-JSON und exportiert sie direkt in Ihr Design-System. Fügen Sie ein Theme-Objekt ein (das per echarts.init(dom, themeName) registriert wird) und das Werkzeug durchläuft jedes Leaf, taggt jede Farbe (optional Named/rgb → hex normalisiert), jeden Abstand, jede Schriftgröße und jeden String und gibt saubere CSS-Variablen, ein Tailwind theme.extend, ein Style Dictionary tokens.json oder SCSS-Variablen aus. Überbrückt die Lücke zwischen einem ECharts-Visualisierungs-Theme und Figma/CSS/Tailwind-Design-Tokens, ohne jeden Wert von Hand zu kopieren.
- [Bild-Palette zu Design-Tokens](https://elysiatools.com/de/tools/image-to-design-tokens): Extrahiert dominante Farben per k-Means und exportiert sie als CSS-/SCSS-Variablen, Tailwind-Config oder JSON-Tokens mit Namen und Farbskala
- [JWK-Generator & Parser](https://elysiatools.com/de/tools/jwk-generator): Generiert JSON Web Keys (JWK) für RSA, EC (P-256/P-384/P-521/secp256k1) und OKP (Ed25519/Ed448/X25519/X448) oder parst einen bestehenden JWK zur Inspektion von Parametern, Fingerabdruck und Metadaten
- [OCR-PDF-zu-strukturiertes-JSON-Brücke](https://elysiatools.com/de/tools/ocr-pdf-to-structured-json-bridge): Extrahiert die PDF-Textebene mit Geometrie (Zeilen nach y-Position, Tabellen nach Spaltenlücken, Überschriften nach Schriftgröße, Doppelpunkt-Schlüsselwerte) und füllt Feld für Feld ein benutzerdefiniertes JSON Schema — Labels werden über normalisierte Schlüssel gepaart, Werte zu deklarierten Typen konvertiert und mit ajv validiert.
- [JSON Key Extractor](https://elysiatools.com/de/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.
- [JSON-LD-Generator aus CSV](https://elysiatools.com/de/tools/json-ld-generator-from-csv): Wandelt CSV- oder Excel-Zeilen in Schema.org-JSON-LD fuer Artikel, Produkte oder Events um und liefert validierungsbereite SEO-Ausgaben
- [JSON-Schema-Builder für LLM-Tool-Calling](https://elysiatools.com/de/tools/llm-tool-calling-json-schema-builder): Definiere ein LLM-Tool einmal und erzeuge validierte Function-Calling-Payloads für OpenAI, Anthropic und Gemini.

## Beispiele

- [Chat-JSON-Beispiele](https://elysiatools.com/de/samples/chat-transcript-json): JSON-Beispiele für Chat-Transkripte mit mehreren Rollen
- [Rich-Text-JSON-Beispiele](https://elysiatools.com/de/samples/rich-media-json): JSON-Beispiele für Rich-Text-Editoren (TipTap, Quill, Slate)
- [Terraform-Plan-JSON-Beispiele](https://elysiatools.com/de/samples/terraform-plan-json-samples): Terraform-Plan-JSON-Dateien fuer Abhaengigkeitsvisualisierung und Change-Review, passend zu terraform show -json
- [JSON-Beispiele](https://elysiatools.com/de/samples/json): JSON (JavaScript Object Notation)-Formatbeispiele von einfachen bis komplexen Strukturen
