litellm/ui
Aliaksei Venski 6cc81584b9 fix(ui): render the correct widget for nullable MCP tool schema properties
JSON Schema allows "type" to be an array (e.g. ["string", "null"]) for a
nullable/optional field, the shape Pydantic's model_json_schema() emits for
Optional[str] / str | None. A real Azure DevOps MCP tool schema
(testplan_test_suite_write) declares its optional parameters exactly this
way. Both ToolTestPanel (the MCP Tool Testing Playground) and
MCPToolArgumentsForm (the chat playground's tool-call argument form) compare
a property's type with strict equality against a single string, with no
fallback for the array case.

In ToolTestPanel this leaves the field with no input at all, since none of
the type checks match and there is no default branch: the field's label
renders with nothing to type into, and the same strict comparison in the
submit-time value conversion would also skip type coercion for it.
MCPToolArgumentsForm has a final else branch, so the same schema shape
instead renders the wrong widget (a plain text input for what should be a
number or boolean field).

Add resolveSchemaType to both files, resolving to the first non-"null" type
when given an array, and use it everywhere a property's type decides a
widget or a value conversion. Widen InputSchemaProperty.type in the shared
types module to string | string[] to match.
2026-08-25 11:11:02 +02:00
..
litellm-dashboard fix(ui): render the correct widget for nullable MCP tool schema properties 2026-08-25 11:11:02 +02:00
Dockerfile chore(build): move the Admin UI toolchain to Node 24 (#35801) 2026-08-04 12:36:07 -07:00
nginx.conf fix(ui): boot the UI image as an arbitrary uid by anchoring nginx writes under /tmp (#37982) 2026-08-24 11:57:36 -07:00