Repository navigation
Commit e316fcc
committed
fix(func_metadata): give bare dict/list/tuple returns a structured output model
A tool annotated with a bare `dict` (or `list` / `tuple`) produced no output
model: those classes have no type hints, so they reached the generic class
branch, `get_type_hints()` came back empty and the model stayed None. The tool
therefore advertised no outputSchema and returned no structuredContent, and
`structured_output=True` raised InvalidSignature claiming the return type was
not serializable for structured output.
Treat bare containers like their parameterised equivalents (wrapped in
{"result": ...}), which is what `dict[str, Any]` already did.
Fixes #37251 parent 2af9e30 commit e316fcc
2 files changed
Lines changed: 36 additions & 0 deletions
File tree
- src/mcp/server/mcpserver/utilities
- tests/server/mcpserver
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
535 | 535 | | |
536 | 536 | | |
537 | 537 | | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
538 | 547 | | |
539 | 548 | | |
540 | 549 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1520 | 1520 | | |
1521 | 1521 | | |
1522 | 1522 | | |
| 1523 | + | |
| 1524 | + | |
| 1525 | + | |
| 1526 | + | |
| 1527 | + | |
| 1528 | + | |
| 1529 | + | |
| 1530 | + | |
| 1531 | + | |
| 1532 | + | |
| 1533 | + | |
| 1534 | + | |
| 1535 | + | |
| 1536 | + | |
| 1537 | + | |
| 1538 | + | |
| 1539 | + | |
| 1540 | + | |
| 1541 | + | |
| 1542 | + | |
| 1543 | + | |
| 1544 | + | |
| 1545 | + | |
| 1546 | + | |
| 1547 | + | |
| 1548 | + | |
| 1549 | + | |
0 commit comments