Voltar as noticias
Atualização do Claude Desktop quebrou meu servidor MCP: JSON Schema draft-07 vs 2020-12
MCP ProtocolAltaEN

Atualização do Claude Desktop quebrou meu servidor MCP: JSON Schema draft-07 vs 2020-12

Dev.to - MCP·9 de setembro de 2026

Se o seu aplicativo Claude Desktop se atualizou durante a noite e seus servidores MCP locais pararam de registrar na manhã seguinte, essa é provavelmente a razão. Não é sua configuração, e não é o código do seu servidor. Um cliente MCP mais recente começou a rejeitar seus esquemas de ferramenta devido a uma string de versão no esquema.

O erro

No Windows, a versão MSIX do Claude Desktop se atualizou automaticamente para 1.32352.1.0. Depois disso, meu servidor MCP de sistema de arquivos se recusou a registrar em sessões Cowork:

Tool 'list_directory' has an invalid outputSchema: JSON Schema declares an unsupported
dialect ("$schema": "http://json-schema.org/draft-07/schema#"). The default validator
supports JSON Schema 2020-12 only

Re-adicionar o servidor nas configurações não ajudou. Outro usuário reproduziu a mesma falha exata com um servidor MCP n8n, 33 ferramentas, mesmo erro. Não era um servidor ruim.

O que realmente mudou

Claude Desktop envia sua própria cópia do SDK TypeScript MCP. A versão atualizada agrupa @modelcontextprotocol/client 2.0.0-beta.4, e seu validador padrão (Ajv) lança um erro em qualquer esquema de ferramenta que declare um dialeto $schema diferente de 2020-12.

A parte que dói: a especificação MCP (SEP-1613) diz que 2020-12 é apenas o padrão quando $schema está ausente. Declarar draft-07 é legal. O cliente beta foi mais rigoroso do que a especificação.

A outra metade da história: se você construiu um servidor MCP com o SDK TypeScript 1.x, zod-to-json-schema carimbou draft-07 em cada inputSchema e outputSchema que gerou. Portanto, uma atualização do lado do cliente quebrou servidores que nunca mudaram uma linha.

A correção upstream já foi implementada. O PR #2534 do modelcontextprotocol/typescript-sdk foi mesclado e enviado no cliente 2.0.0, que valida qualquer dialeto que você declarar em vez de rejeitar tudo, exceto 2020-12. Claude Desktop ainda agrupa o cliente beta mais antigo. Detalhe interessante: o Claude Code CLI já agrupa o cliente corrigido, mesmos esquemas, mesmo dia, sem erro. O atraso é específico do desktop, e como o MSIX se atualiza automaticamente, você não pode realmente fixar uma versão anterior do desktop.

A correção que funciona hoje

Opção 1: um pequeno proxy stdio que limpa $schema

O proxy inicia seu servidor real, passa mensagens inalteradas e reescreve as respostas tools/list para que nenhuma ferramenta declare um dialeto rejeitado. Duas pessoas confirmaram que isso funciona, 14 de 14 e 33 de 33 ferramentas registrando, com chamadas de ferramentas reais sucedendo após a reescrita.

// mcp-dialect-fix.mjs
import { spawn } from "node:child_process";
import readline from "node:readline";

// inicia o servidor real
const server = spawn("npx", ["-y", "@modelcontextprotocol/server-filesystem", "C:/data"], {
  stdio: ["pipe", "pipe", "inherit"],
});

const rl = readline.createInterface({ input: server.stdout });
rl.on("line", (line) => {
  try {
    const msg = JSON.parse(line);
    // as respostas tools/list carregam result.tools mas não o campo method
    if (msg.result && Array.isArray(msg.result.tools)) {
      for (const tool of msg.result.tools) {
        // delete a declaração do dialeto, ou defina-a para a URI 2020-12
        for (const key of ["inputSchema", "outputSchema"]) {
          if (tool[key]?.$schema) delete tool[key].$schema;
        }
      }
    }
    process.stdout.write(JSON.stringify(msg) + "\n");
  } catch {
    process.stdout.write(line + "\n");
  }
}
Contexto Triplo Up

Empresas brasileiras que utilizam servidores MCP precisam estar atentas a atualizações de software que podem impactar a funcionalidade de suas ferramentas. A implementação de soluções como proxies pode garantir a continuidade dos serviços sem interrupções.

Noticias relacionadas

Gostou do conteudo?

Receba toda semana as principais novidades sobre WebMCP.