What happened?
Calling listTools against a server whose outputSchemas use a custom format (e.g. Google Monitoring MCP with format google-duration) prints one Ajv warning per subschema path:
unknown format google-duration ignored in schema at path #/defs/Aggregation/properties/alignmentPeriod
Comes from AjvJsonSchemaValidator default instance (strict:false, validateFormats:true) in src/validation/ajv-provider.ts, via Client.cacheToolMetadata compiling every tool outputSchema. Dozens of lines for a single listTools.
What did you expect?
A generic way to stay quiet: either silence unknown-format warnings (custom logger / validateFormats handling) or support registering extra formats, so one vendor-specific format cannot spam every client.
Code to reproduce
getValidator({ type: object, properties: { d: { type: string, format: google-duration } } })
SDK version
@modelcontextprotocol/sdk 1.29.x / 1.30.x (v1.x line)
Area
Client
What happened?
Calling listTools against a server whose outputSchemas use a custom format (e.g. Google Monitoring MCP with format google-duration) prints one Ajv warning per subschema path:
unknown format google-duration ignored in schema at path #/defs/Aggregation/properties/alignmentPeriod
Comes from AjvJsonSchemaValidator default instance (strict:false, validateFormats:true) in src/validation/ajv-provider.ts, via Client.cacheToolMetadata compiling every tool outputSchema. Dozens of lines for a single listTools.
What did you expect?
A generic way to stay quiet: either silence unknown-format warnings (custom logger / validateFormats handling) or support registering extra formats, so one vendor-specific format cannot spam every client.
Code to reproduce
getValidator({ type: object, properties: { d: { type: string, format: google-duration } } })
SDK version
@modelcontextprotocol/sdk 1.29.x / 1.30.x (v1.x line)
Area
Client