fix: handle mcp array and object type

This commit is contained in:
Novice
2025-06-19 16:48:15 +08:00
parent 9dd1cd9df8
commit 986e2794bd
3 changed files with 15 additions and 2 deletions

View File

@ -39,6 +39,10 @@ class PluginParameterType(enum.StrEnum):
# deprecated, should not use.
SYSTEM_FILES = CommonParameterType.SYSTEM_FILES.value
# MCP object and array type parameters
ARRAY = CommonParameterType.ARRAY.value
OBJECT = CommonParameterType.OBJECT.value
class MCPServerParameterType(enum.StrEnum):
"""
@ -143,6 +147,14 @@ def cast_parameter_value(typ: enum.StrEnum, value: Any, /):
if value and not isinstance(value, list):
raise ValueError("The tools selector must be a list.")
return value
case PluginParameterType.ARRAY:
if not isinstance(value, list):
return [value]
return value
case PluginParameterType.OBJECT:
if not isinstance(value, dict):
return {}
return value
case _:
return str(value)
except ValueError: