MCP servers rejected from --mcp-config are now listed on stderr and in the init message instead of vanishing.
What's wrong with this entry?
Servers passed via --mcp-config that fail validation are no longer silently absent; they are collected, surfaced on the SDK init message, and printed to stderr on a TTY.
- Validation warnings carrying
mcpErrorMetadata.skipReasonand a server name are collected, and servers that ended up unregistered are recorded - A new optional
mcp_server_errorsarray on the system/init payload lists each skipped entry with name, a stabletypecategory (unknown_type, url_missing_type, invalid_config, reserved_name) and a message, filtered to servers with no live client - On a TTY the same list is printed to stderr as a control-character-scrubbed warning
- Affected servers no longer appear only as gaps in
mcp_servers[], so CI can fail on a non-empty list - Also new on init:
fast_mode_disabled_reason - Neither the collection nor the init-message field existed in 2.1.218
MCP server config entries from --mcp-config that failed validation and were skipped, skipped due to invalid config
Strings lifted out of the shipped bundle, so the claim above can be checked against them.
Related
Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.
-
v2.1.242
Plugins can carry a server-issued id in a sidecar file
Both mention server
-
v2.1.228
API rejections are classified from a structured marker instead of prose alone
Both mention error
-
v2.1.234
Empty or malformed API responses now report what actually answered
Both mention error