Summary
Every Zephyr tool in @smartbear/mcp fails client-side validation in Claude Desktop and never reaches the Zephyr API. The server advertises outputSchema (and inputSchema) with the JSON Schema draft-07 dialect; the client validates against 2020-12 only and rejects the tool before dispatch.
Reproduced on 0.28.0 (Anthropic extension directory build) and 0.33.0 (side-loaded smartbear-mcp-0.33.0.mcpb).
Error
Identical for every tool, only the tool name changes:
Error: Tool 'zephyr_get_test_case' 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; pass a pre-configured
Ajv instance to AjvJs
Affected tools (all tested, all fail)
zephyr_get_projects
zephyr_get_test_cases
zephyr_get_test_case
zephyr_get_test_case_steps
zephyr_get_test_plans — note this tool is new in 0.33.0, so the dialect is still being emitted by newly written code
This is not Zephyr-specific in principle — any toolset declaring outputSchema this way should be affected.
Direct evidence of the dialect
The schema the server advertises for zephyr_get_test_plans arrives as:
json
{
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": { "default": 10, "type": "number" },
"projectKey": { "type": "string" },
"startAtId": { "type": "number" },
"updatedAfter": { "type": "string" }
},
"type": "object"
}
Likely cause
zod-to-json-schema — used by servers on @modelcontextprotocol/sdk v1.x — stamps "$schema": ".../draft-07/schema#" onto every generated schema. Clients migrated to the v2 SDK validate against 2020-12 and reject the declared draft-07 dialect.
Worth noting the MCP spec permits an explicitly declared draft-07 on all protocol versions (2020-12 is the default only when $schema is absent), so there is a client-side strictness bug here too. But the practical unblock is server-side.
Requested fixes
Stop emitting draft-07. Either upgrade to an SDK version that generates 2020-12, or strip/override $schema on generated inputSchema/outputSchema before tool registration.
Republish to the Anthropic extension directory. The directory build is pinned at 0.28.0 (released 2026-07-07), roughly six weeks behind. Directory extensions auto-update, so users on that channel cannot move forward — a restart does not pick up a newer version, and reinstalling returns the same build. Side-loading the .mcpb is the only current workaround, and it is blocked for users whose org disables extension side-loading.
Item 2 matters independently of item 1: without a republish, any fix you ship won't reach users on the directory channel.
Environment
@smartbear/mcp 0.28.0 and 0.33.0
Claude Desktop (Cowork mode), Windows
Toolset: Zephyr Scale
Related upstream issues
anthropics/claude-code#86142
modelcontextprotocol/typescript-sdk#2532
modelcontextprotocol/typescript-sdk#745
modelcontextprotocol/modelcontextprotocol#1613 (SEP-1613)
Summary
Every Zephyr tool in @smartbear/mcp fails client-side validation in Claude Desktop and never reaches the Zephyr API. The server advertises outputSchema (and inputSchema) with the JSON Schema draft-07 dialect; the client validates against 2020-12 only and rejects the tool before dispatch.
Reproduced on 0.28.0 (Anthropic extension directory build) and 0.33.0 (side-loaded smartbear-mcp-0.33.0.mcpb).
Error
Identical for every tool, only the tool name changes:
Error: Tool 'zephyr_get_test_case' 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; pass a pre-configured
Ajv instance to AjvJs
Affected tools (all tested, all fail)
zephyr_get_projects
zephyr_get_test_cases
zephyr_get_test_case
zephyr_get_test_case_steps
zephyr_get_test_plans — note this tool is new in 0.33.0, so the dialect is still being emitted by newly written code
This is not Zephyr-specific in principle — any toolset declaring outputSchema this way should be affected.
Direct evidence of the dialect
The schema the server advertises for zephyr_get_test_plans arrives as:
json
{
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": { "default": 10, "type": "number" },
"projectKey": { "type": "string" },
"startAtId": { "type": "number" },
"updatedAfter": { "type": "string" }
},
"type": "object"
}
Likely cause
zod-to-json-schema — used by servers on @modelcontextprotocol/sdk v1.x — stamps "$schema": ".../draft-07/schema#" onto every generated schema. Clients migrated to the v2 SDK validate against 2020-12 and reject the declared draft-07 dialect.
Worth noting the MCP spec permits an explicitly declared draft-07 on all protocol versions (2020-12 is the default only when $schema is absent), so there is a client-side strictness bug here too. But the practical unblock is server-side.
Requested fixes
Stop emitting draft-07. Either upgrade to an SDK version that generates 2020-12, or strip/override $schema on generated inputSchema/outputSchema before tool registration.
Republish to the Anthropic extension directory. The directory build is pinned at 0.28.0 (released 2026-07-07), roughly six weeks behind. Directory extensions auto-update, so users on that channel cannot move forward — a restart does not pick up a newer version, and reinstalling returns the same build. Side-loading the .mcpb is the only current workaround, and it is blocked for users whose org disables extension side-loading.
Item 2 matters independently of item 1: without a republish, any fix you ship won't reach users on the directory channel.
Environment
@smartbear/mcp 0.28.0 and 0.33.0
Claude Desktop (Cowork mode), Windows
Toolset: Zephyr Scale
Related upstream issues
anthropics/claude-code#86142
modelcontextprotocol/typescript-sdk#2532
modelcontextprotocol/typescript-sdk#745
modelcontextprotocol/modelcontextprotocol#1613 (SEP-1613)