feat: handle none value in mcp tool node

This commit is contained in:
Novice
2025-06-20 14:48:22 +08:00
parent c1884c2e40
commit db001e1511
2 changed files with 31 additions and 0 deletions

View File

@ -149,10 +149,30 @@ def cast_parameter_value(typ: enum.StrEnum, value: Any, /):
return value
case PluginParameterType.ARRAY:
if not isinstance(value, list):
# Try to parse JSON string for arrays
if isinstance(value, str):
try:
import json
parsed_value = json.loads(value)
if isinstance(parsed_value, list):
return parsed_value
except (json.JSONDecodeError, ValueError):
pass
return [value]
return value
case PluginParameterType.OBJECT:
if not isinstance(value, dict):
# Try to parse JSON string for objects
if isinstance(value, str):
try:
import json
parsed_value = json.loads(value)
if isinstance(parsed_value, dict):
return parsed_value
except (json.JSONDecodeError, ValueError):
pass
return {}
return value
case _: