fastmcp/tests/tools
Jeremiah Lowin baced6281c
Always emit a tool title, derived from name when unset (#4694)
* Always emit a tool title, derived from name when unset

Some MCP clients (e.g. ChatGPT) drop tools with no `title` instead of
falling back to `name` for display as the spec allows. Deriving a
default title in Tool.to_mcp_tool() fixes this for every tool built on
top of it, including the search-transform, code-mode, and session
proxy tools that never set one explicitly.

Fixes #4414

* Derive fallback title from the overridden name, document it

Addresses Codex review on #4694.

* Resolve title precedence from effective overrides

* Normalize mapping annotations before deriving the title
2026-07-28 17:30:20 -04:00
..
tool Always emit a tool title, derived from name when unset (#4694) 2026-07-28 17:30:20 -04:00
tool_transform Late-bind app tool names so UIs survive composition (#4682) 2026-07-28 10:54:19 -04:00
__init__.py Support mounting FastMCPs as sub-servers 2025-04-07 17:54:55 -04:00
test_standalone_decorator.py Remove 3.x-era compatibility shims (#4661) 2026-07-27 14:59:43 -04:00
test_tool_future_annotations.py Migrate to MCP Python SDK v2 (#4437) 2026-07-06 17:36:45 -04:00
test_tool_run_in_thread.py Make the unit suite fast: in-process HTTP tests, no real sleeps, parallel Windows CI (#4554) 2026-07-20 10:51:14 -04:00
test_tool_timeout.py Make the unit suite fast: in-process HTTP tests, no real sleeps, parallel Windows CI (#4554) 2026-07-20 10:51:14 -04:00