[
https://issues.apache.org/jira/browse/CAMEL-23962?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18097240#comment-18097240
]
Omar Atie commented on CAMEL-23962:
-----------------------------------
I would like to work on this https://issues.apache.org/jira/browse/CAMEL-23962
> camel-openai: McpToolConverter drops JSON Schema keywords beyond
> type/properties/required
> -----------------------------------------------------------------------------------------
>
> Key: CAMEL-23962
> URL: https://issues.apache.org/jira/browse/CAMEL-23962
> Project: Camel
> Issue Type: Bug
> Components: camel-openai
> Affects Versions: 4.21.0
> Reporter: Federico Mariani
> Priority: Minor
> Labels: ai
>
> {{McpToolConverter.convertTool}} copies only three keys from the MCP tool's
> {{inputSchema}} into the OpenAI {{FunctionParameters}}:
> {code:java}
> paramsBuilder.putAdditionalProperty("type", ...);
> ... get("properties") ...
> ... get("required") ...
> {code}
> Everything else is silently dropped: {{$defs}}/{{definitions}} (referenced by
> {{$ref}} inside {{properties}} — the schema sent to the model then contains
> dangling references), {{additionalProperties}} (needed for strict function
> calling), {{description}}, root-level {{enum}}/{{oneOf}}/{{anyOf}}, etc. MCP
> servers with non-trivial tool schemas therefore advertise broken or lossy
> schemas to the model, degrading argument quality.
> h3. Suggested fix
> Copy *all* entries of {{inputSchema}} into {{FunctionParameters}} (defaulting
> {{type}} to {{object}} when absent), instead of an allow-list:
> {code:java}
> for (Map.Entry<String, Object> e : tool.inputSchema().entrySet()) {
> paramsBuilder.putAdditionalProperty(e.getKey(),
> JsonValue.from(e.getValue()));
> }
> {code}
> _This issue was drafted by Claude Code on behalf of Federico Mariani_
--
This message was sent by Atlassian Jira
(v8.20.10#820010)