From 69193430df29917106f3eb36100451302a902e0b Mon Sep 17 00:00:00 2001 From: Sarika Halarnakar Date: Tue, 23 Sep 2025 14:55:14 -0400 Subject: [PATCH] fix: preserve $defs schema definitions in tool generation The customizer was removing $defs from MCP tool parameter schemas, leaving schema references dangling and causing "PointerToNowhere" errors for tools with complex nested schemas. --- src/components/customizers.py | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/components/customizers.py b/src/components/customizers.py index 0d61936..0078a44 100644 --- a/src/components/customizers.py +++ b/src/components/customizers.py @@ -53,12 +53,7 @@ def customize_components( if hasattr(component, 'parameters') and isinstance(component.parameters, dict): if "$defs" in component.parameters: - logger.debug(f" Found $defs with {len(component.parameters['$defs'])} definitions") - new_params = {k: v for k, v in component.parameters.items() if k != "$defs"} - component.parameters = new_params - logger.debug(f" After modification: '$defs' in parameters = {'$defs' in component.parameters}") - mcp_tool = component.to_mcp_tool() - logger.debug(f" In to_mcp_tool result: '$defs' in inputSchema = {'$defs' in mcp_tool.inputSchema}") + logger.debug(f" Found $defs with {len(component.parameters['$defs'])} definitions - preserving them") # Handle output_schema the same way if hasattr(component, 'output_schema') and isinstance(component.output_schema, dict):