[ 
https://issues.apache.org/jira/browse/CAMEL-23287?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrea Cosentino resolved CAMEL-23287.
--------------------------------------
    Resolution: Fixed

> Camel-Jbang-mcp: Unify MCP tool return types to use typed records instead of 
> raw JSON strings
> ---------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-23287
>                 URL: https://issues.apache.org/jira/browse/CAMEL-23287
>             Project: Camel
>          Issue Type: Improvement
>            Reporter: Andrea Cosentino
>            Assignee: Andrea Cosentino
>            Priority: Major
>             Fix For: 4.19.0
>
>
> Several MCP tools in {{camel-jbang-mcp}} return raw JSON strings built 
> manually via {{JsonObject}}/{{JsonArray}}, while others return typed Java 
> records that get      
> auto-serialized by the Quarkus MCP framework. This inconsistency makes the 
> codebase harder to maintain and the tool contracts less clear.
>                                                                               
>                                                                               
>              
>   Tools returning typed records (consistent):                                 
>                                                                               
>              
>   - {{CatalogTools}} → {{ComponentListResult}}, {{ComponentDetailResult}}, 
> etc.
>   - {{MigrationTools}} → {{ProjectAnalysisResult}}, {{CompatibilityResult}}, 
> etc.                                                                          
>               
>   - {{VersionTools}} → {{VersionListResult}}                                  
>    
>   - {{OpenApiTools}} → {{ValidateResult}}, {{ScaffoldResult}}                 
>                                                                               
>              
>                                                                         
>   Tools returning raw JSON strings (inconsistent):                            
>                                                                               
>              
>   - {{DiagnoseTools.camel_error_diagnose()}} → returns {{String}}             
>                                                                               
>              
>   - {{DependencyCheckTools.camel_dependency_check()}} → returns {{String}}
>   - {{ExplainTools.camel_route_context()}} → returns {{String}}               
>                                                                               
>              
>   - {{HardenTools.camel_route_harden_context()}} → returns {{String}}   
>                                                                               
>                                                                               
>              
>   Refactor the four raw-JSON tools to return typed records matching the 
> pattern used by {{CatalogTools}} and {{MigrationTools}}. Benefits:
>   - Compile-time type safety                                                  
>                                                                               
>              
>   - Auto-generated JSON schema for MCP tool responses                   
>   - Consistent serialization behavior across all tools                        
>                                                                               
>              
>   - Easier testing (assert on record fields instead of JSON string parsing)
>                                                                               
>                                                                               
>              
>   The JSON output structure must remain unchanged for backward compatibility.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to