def extract_tool_parameters(tool): parameters = [] if not hasattr(tool, 'args_schema'): return parameters schema = tool.args_schema if isinstance(schema, dict): schema_dict = schema else: schema_dict = schema.schema() properties = schema_dict.get('properties', {}) required = schema_dict.get('required', []) for name, info in properties.items(): param_type = info.get('type', 'string') title = info.get('title', name) default = info.get('default', None) is_required = name in required desc = f"{title} ({param_type})" desc += " - required" if is_required else " - optional" if default is not None: desc += f" [default: {default}]" parameters.append(desc) return parameters