# Testador de contratos de servidores MCP (transportes stdio + WebSocket · validação de esquemas JSON Schema 2020-12)

Verificação ponta a ponta de contratos de servidores Model Context Protocol: negociação JSON-RPC 2.0, troca de capabilities, tools/list com tipo raiz object e compilação pelo rascunho 2020-12, leitura de resources, obtenção de prompts, ping, semântica -32601 para métodos desconhecidos, ida e volta de sampling/createMessage e disciplina de enquadramento stdio; por padrão, autoteste offline contra um servidor de referência embutido, ou contra seu comando stdio ou endpoint ws://.

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

- **Categoria:** AI Tools

- **Palavras-chave:** MCP, Model Context Protocol, teste de contrato, JSON-RPC, stdio, WebSocket, esquema de ferramentas, negociação de capacidades, sampling, relatório de conformidade

## Visão geral

Base do protocolo (era initialize, 2024-11-05 … 2025-11-25): a requisição initialize carrega protocolVersion, capabilities do cliente e clientInfo; o servidor responde serverInfo + capabilities; em seguida o cliente deve enviar a notificação notifications/initialized. O transporte oficial stdio é JSON-RPC delimitado por novas linhas (sem quebras embutidas, logs em stderr, stdout apenas com mensagens MCP); WebSocket é um transporte personalizado (§ Custom Transports): uma mensagem JSON-RPC por quadro de texto. O esquema de cada ferramenta deve ter type:object na raiz; este tester compila cada inputSchema com Ajv 2020-12. sampling é uma requisição servidor→cliente: se o cliente declara a capability, o servidor pode enviar sampling/createMessage (messages[] + maxTokens), que o tester responde e valida. A revisão 2026-07-28 adota um núcleo sem estado (servidores não iniciam mais requisições); este tester foca a era initialize clássica e informa isso no relatório. O modo padrão verifica um servidor de referência embarcado totalmente conforme, em dois transportes (par de fluxos stdio em processo + WebSocket TCP real em 127.0.0.1), de forma determinística e offline.

## Entradas

- **Modo de teste** (select)
- **Comando do servidor (modo stdio)** (text): npx -y @modelcontextprotocol/server-everything
- **URL do WebSocket (ws:// ou wss://)** (text): ws://127.0.0.1:3001/mcp
- **Versão do protocolo a solicitar** (select)
- **Tempo limite por requisição (ms)** (number): 5000
- **Validar esquemas de entrada (JSON Schema 2020-12)** (checkbox)

## Quando usar

- Durante o desenvolvimento de novos servidores MCP para verificar a compatibilidade com a especificação JSON-RPC e ciclo de inicialização.
- Antes de publicar ou integrar ferramentas MCP para garantir que seus esquemas de entrada (inputSchema) compilem corretamente no rascunho 2020-12.
- Para auditar o comportamento de servidores em produção ou locais em transportes de subprocesso stdio e endpoints WebSocket.

## Como funciona

- Inicia a conexão via subprocesso stdio, endpoint WebSocket ou servidor de referência integrado e executa a negociação do handshake inicial (initialize e notifications/initialized).
- Dispara consultas às capacidades declaradas: listagem de ferramentas (tools/list), recursos (resources/list), prompts (prompts/list), ping e testes de métodos não suportados para validar o erro -32601.
- Compila e valida todos os esquemas inputSchema com o validador Ajv 2020-12, garantindo nós raiz do tipo objeto e integridade de enquadramento das mensagens.
- Gera um relatório visual detalhado em HTML com o status de cada verificação, matriz de capacidades e pontuação de conformidade.

## Casos de uso

- Homologação de conformidade e integridade de esquemas JSON Schema 2020-12 em pipelines de CI/CD para servidores MCP.
- Depuração de enquadramento de mensagens stdio e isolamento de logs emitidos incorretamente na saída padrão (stdout).
- Verificação de compatibilidade de versões de protocolo (2024-11-05 a 2025-11-25) em serviços MCP remotos expostos via WebSocket.

## Perguntas frequentes

### Quais transportes são suportados pelo testador de contratos MCP?

O testador suporta comunicação via subprocessos stdio delimitados por quebra de linha, conexões WebSocket (ws:// e wss://) e um modo de autoteste com servidor de referência embutido.

### Como os esquemas de ferramentas são validados?

Cada inputSchema listado em tools/list é verificado para garantir raiz com type: object e compilado utilizando a especificação JSON Schema 2020-12 via Ajv.

### O que acontece quando o servidor não reconhece um método JSON-RPC?

O testador verifica se o servidor retorna estritamente o código de erro padrão JSON-RPC -32601 (Method not found).

### É possível executar testes totalmente offline?

Sim, selecionando o modo de autoteste de referência, o tester executa uma suíte completa em memória e loopback TCP local sem necessidade de conexão externa.

### O testador valida a funcionalidade de sampling do servidor?

Sim, o testador declara a capacidade de sampling no handshake, aceita requisições sampling/createMessage enviadas pelo servidor e valida a resposta e a estrutura.

## Ferramentas relacionadas

- [Planejador de migracao CSV para banco de dados](https://elysiatools.com/pt/tools/csv-to-database-migration-planner): Infere um schema relacional a partir de CSV e gera planos CREATE TABLE e ALTER para PostgreSQL, MySQL, SQLite ou SQL Server
- [Extrator de tokens de tema ECharts](https://elysiatools.com/pt/tools/echarts-theme-token-extractor): Extrai design tokens — cores, números, tamanhos de fonte e strings — de um JSON de tema ECharts e os exporta direto no seu design system. Cole um objeto de tema (o registrado e passado a echarts.init(dom, themeName)) e a ferramenta percorre cada folha, marcando cada cor (com normalização opcional nomeada/rgb → hex), número de espaçamento, tamanho de fonte e string, depois emite variáveis CSS limpas, um config theme.extend do Tailwind, tokens.json do Style Dictionary ou variáveis SCSS. Faz a ponte entre um tema de visualização ECharts e os tokens de design Figma/CSS/Tailwind sem copiar cada valor à mão.
- [De paleta de imagem para design tokens](https://elysiatools.com/pt/tools/image-to-design-tokens): Extrai cores dominantes da imagem por k-means e exporta como variáveis CSS / SCSS / config Tailwind / tokens JSON, com nomes e escala de tons
- [Gerador e Analisador de JWK](https://elysiatools.com/pt/tools/jwk-generator): Gera JSON Web Keys (JWK) para RSA, EC (P-256/P-384/P-521/secp256k1) e OKP (Ed25519/Ed448/X25519/X448), ou analisa um JWK existente para inspecionar parâmetros, impressão e metadados
- [Ponte de PDF (OCR) para JSON estruturado](https://elysiatools.com/pt/tools/ocr-pdf-to-structured-json-bridge): Extrai a camada de texto do PDF com geometria (linhas por posição y, tabelas por vaos de coluna, títulos por tamanho de fonte, pares chave-valor com dois pontos) e preenche campo a campo um JSON Schema do usuário — rótulos pareados por chaves normalizadas, valores coagidos aos tipos declarados e validados com ajv.
- [JSON Key Extractor](https://elysiatools.com/pt/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.
- [Gerador de JSON-LD a partir de CSV](https://elysiatools.com/pt/tools/json-ld-generator-from-csv): Transforma linhas de CSV ou Excel em JSON-LD Schema.org para artigos, produtos ou eventos com saida pronta para validacao de SEO
- [Construtor de JSON Schema para tool-calling de LLM](https://elysiatools.com/pt/tools/llm-tool-calling-json-schema-builder): Defina uma ferramenta LLM uma vez e gere payloads de function-calling validados para OpenAI, Anthropic e Gemini.

## Exemplos

- [Exemplos JSON de Chat](https://elysiatools.com/pt/samples/chat-transcript-json): Exemplos JSON para transcricoes de chat multirrole
- [Exemplos JSON de Texto Rico](https://elysiatools.com/pt/samples/rich-media-json): Exemplos JSON para editores de texto rico (TipTap, Quill, Slate)
- [Amostras JSON de Terraform Plan](https://elysiatools.com/pt/samples/terraform-plan-json-samples): Arquivos Terraform plan JSON para visualizacao de dependencias e revisao de mudancas, no estilo terraform show -json
- [Exemplos de JSON](https://elysiatools.com/pt/samples/json): Exemplos de formato JSON (JavaScript Object Notation) de estruturas simples a complexas
