# Probador de contratos para servidores MCP (transportes stdio + WebSocket · validación de esquemas JSON Schema 2020-12)

Verificación end-to-end de contratos para servidores Model Context Protocol: negociación JSON-RPC 2.0, intercambio de capabilities, tools/list con tipo raíz object y compilación bajo el borrador 2020-12, lectura de resources, obtención de prompts, ping, semántica -32601 para métodos desconocidos, ida y vuelta de sampling/createMessage y disciplina de encuadre stdio; por defecto autoprueba offline contra un servidor de referencia integrado, o contra tu comando stdio o endpoint ws://.

> Página canónica: https://elysiatools.com/es/tools/model-context-protocol-mcp-server-tool-schema-stdio-websocket-transport-contract-tester

- **Categoría:** AI Tools

- **Palabras clave:** MCP, Model Context Protocol, prueba de contratos, JSON-RPC, stdio, WebSocket, esquema de herramientas, negociación de capacidades, sampling, informe de cumplimiento

## Descripción general

Base del protocolo (era initialize, 2024-11-05 … 2025-11-25): la petición initialize lleva protocolVersion, capabilities del cliente y clientInfo; el servidor responde serverInfo + capabilities; después el cliente debe enviar la notificación notifications/initialized. El transporte oficial stdio usa JSON-RPC delimitado por saltos de línea (sin saltos incrustados, registros por stderr, stdout solo mensajes MCP); WebSocket es un transporte personalizado (§ Custom Transports): un mensaje JSON-RPC por fotograma de texto. El esquema de cada herramienta debe tener type:object en la raíz; este tester compila cada inputSchema con Ajv 2020-12. sampling es una petición servidor→cliente: si el cliente declara la capability, el servidor puede enviar sampling/createMessage (messages[] + maxTokens), que el tester contesta y valida. La revisión 2026-07-28 define un núcleo sin estado (los servidores ya no inician peticiones); este tester se centra en la era initialize clásica y lo indica en el informe. El modo por defecto autoverifica un servidor de referencia íntegramente conforme, en doble transporte (par de flujos stdio en proceso + WebSocket TCP real en 127.0.0.1), de forma determinista y sin red.

## Entradas

- **Modo de prueba** (select)
- **Comando del servidor (modo stdio)** (text): npx -y @modelcontextprotocol/server-everything
- **URL de WebSocket (ws:// o wss://)** (text): ws://127.0.0.1:3001/mcp
- **Versión de protocolo a solicitar** (select)
- **Tiempo de espera por solicitud (ms)** (number): 5000
- **Validar esquemas de entrada (JSON Schema 2020-12)** (checkbox)

## Cuándo usarlo

- Al desarrollar o actualizar un servidor MCP personalizado y requerir la validación de esquemas JSON Schema 2020-12 de las herramientas declaradas.
- Al diagnosticar problemas de delimitación de líneas en stdout o fallos de protocolo durante el handshake initialize sobre subprocesos stdio.
- Al verificar la compatibilidad de endpoints WebSocket locales o remotos antes de integrarlos con clientes MCP de producción.

## Cómo funciona

- Inicia la sesión MCP mediante la negociación initialize y valida la respuesta del servidor junto con el envío de notifications/initialized.
- Recorre los métodos de descubrimiento tools/list, resources/list y prompts/list, evaluando que cada inputSchema posea un nodo raíz de tipo object.
- Envía solicitudes de prueba de sampling, ping y métodos no implementados para comprobar el estándar JSON-RPC y la semántica de error -32601.
- Genera una tarjeta de cumplimiento visual en formato HTML con métricas de éxito, estado de transportes y diagnósticos detallados.

## Casos de uso

- Auditoría continua de conformidad de servidores MCP empaquetados en Node.js, Python o Go.
- Depuración de esquemas de parámetros inválidos en catálogos de herramientas antes de exponerlos a modelos de lenguaje.
- Pruebas de regresión offline sobre transporte stdio y sockets TCP locales en entornos de integración continua.

## Preguntas frecuentes

### ¿Qué versiones de protocolo MCP admite el comprobador?

Permite negociar versiones de la era initialize, incluyendo 2025-06-18, 2025-11-25, 2025-03-26 y 2024-11-05.

### ¿Cómo se gestionan los mensajes de depuración en el transporte stdio?

El servidor debe emitir registros exclusivamente por stderr; la salida stdout queda reservada para mensajes JSON-RPC delimitados por saltos de línea.

### ¿Qué validador se utiliza para los esquemas de herramientas?

Se utiliza el motor Ajv configurado con la especificación JSON Schema borrador 2020-12, verificando que la raíz sea type:object.

### ¿Es necesario levantar un servidor externo para probar la herramienta?

No, el modo por defecto ejecuta una autoprueba determinista fuera de línea contra un servidor de referencia integrado en memoria y bucle local.

### ¿Qué ocurre si un endpoint WebSocket o comando stdio no responde?

El fallo de conexión o timeout se registra como una comprobación fallida en el informe HTML sin detener de forma crítica la aplicación.

## Herramientas relacionadas

- [Planificador de migracion CSV a base de datos](https://elysiatools.com/es/tools/csv-to-database-migration-planner): Infiere un schema relacional desde CSV y genera planes CREATE TABLE y ALTER para PostgreSQL, MySQL, SQLite o SQL Server
- [Extractor de tokens de tema ECharts](https://elysiatools.com/es/tools/echarts-theme-token-extractor): Extrae design tokens — colores, números, tamaños de fuente y cadenas — de un JSON de tema ECharts y expórtalos directamente a tu design system. Pega un objeto de tema (el que registras y pasas a echarts.init(dom, themeName)) y la herramienta recorre cada hoja, etiquetando cada color (con normalización opcional nombrado/rgb → hex), número de espaciado, tamaño de fuente y cadena, para luego emitir variables CSS limpias, una configuración theme.extend de Tailwind, tokens.json de Style Dictionary o variables SCSS. Tiende el puente entre un tema de visualización ECharts y los tokens de diseño Figma/CSS/Tailwind sin copiar cada valor a mano.
- [De paleta de imagen a design tokens](https://elysiatools.com/es/tools/image-to-design-tokens): Extrae los colores dominantes de una imagen con k-means y expórtalos como variables CSS / SCSS / configuración Tailwind / tokens JSON, con nombres y escala de tonos
- [Generador y Analizador de JWK](https://elysiatools.com/es/tools/jwk-generator): Genera JSON Web Keys (JWK) para RSA, EC (P-256/P-384/P-521/secp256k1) y OKP (Ed25519/Ed448/X25519/X448), o analiza un JWK existente para inspeccionar parámetros, huella y metadatos
- [Puente de PDF (OCR) a JSON estructurado](https://elysiatools.com/es/tools/ocr-pdf-to-structured-json-bridge): Extrae la capa de texto del PDF con geometría (líneas por posición y, tablas por huecos de columna, títulos por tamaño de fuente, pares clave-valor con dos puntos) y rellena campo a campo un JSON Schema del usuario — etiquetas emparejadas por claves normalizadas, valores coaccionados a los tipos declarados y validados con ajv.
- [Extractor de Claves JSON](https://elysiatools.com/es/tools/json-key-extractor): Extrae todas las claves de objetos JSON con múltiples formatos de salida. Perfecto para analizar estructura JSON, generación de documentación y entender objetos anidados complejos.
- [Generador de JSON-LD desde CSV](https://elysiatools.com/es/tools/json-ld-generator-from-csv): Convierte filas de CSV o Excel en JSON-LD de Schema.org para articulos, productos o eventos con salida lista para validacion SEO
- [Constructor de JSON Schema para tool-calling de LLM](https://elysiatools.com/es/tools/llm-tool-calling-json-schema-builder): Define una herramienta LLM una vez y genera payloads de function-calling validados para OpenAI, Anthropic y Gemini.

## Ejemplos

- [Ejemplos JSON de Chat](https://elysiatools.com/es/samples/chat-transcript-json): Ejemplos JSON para transcripciones de chat multirrol
- [Ejemplos JSON de Texto Enriquecido](https://elysiatools.com/es/samples/rich-media-json): Ejemplos JSON para editores de texto enriquecido (TipTap, Quill, Slate)
- [Muestras JSON de Terraform Plan](https://elysiatools.com/es/samples/terraform-plan-json-samples): Archivos Terraform plan JSON para visualizacion de dependencias y revision de cambios, similares a terraform show -json
- [Ejemplos de JSON](https://elysiatools.com/es/samples/json): Ejemplos de formato JSON (JavaScript Object Notation) desde estructuras simples hasta complejas
