fix(kosong): strip JSON Schema metadata from Google GenAI tool parameters #739
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Related Issue
Resolves #734
Description
This PR fixes a compatibility issue between Google GenAI provider and MCP tools that include standard JSON Schema metadata fields.
Problem
When using MCP tools (like Exa MCP) with Google GenAI provider, the following validation error occurs:
Root cause:
inputSchemaincludes standard JSON Schema metadata fieldsextra='forbid', which rejects these additional fieldsSolution
Strip JSON Schema metadata fields in
tool_to_google_genai()function before passing to Google GenAI SDK. We filter 4 fields that are rejected by the SDK:$schema,$id,$comment- JSON Schema metadataexamples- Example values (not part of validation schema)Note:
$defsanddefinitionsare already removed by kosong'sderef_json_schema()function, so we don't need to filter them here.Impact
Testing
Manually verified the 4 rejected fields with Google GenAI SDK:
Checklist
make gen-changelogto update the changelog.make gen-docsto update the user documentation.