FastMCP 3.0 breaking changes from 2.14.x:

FastMCP 3.0 breaking changes from 2.14.x: (1) on_duplicate_tools parameter renamed to on_duplicate in FastMCP() constructor. (2) mcp>=1.26.0,<2 still needed as explicit dependency — pin to <2 because v2 imminent. (3) Native OTEL integration available. (4) Python submodule name collision: if package/init.py defines api_client = get_api_client() and package/api_client.py exists, Python overwrites the variable with submodule reference. Fix: in consumer modules, from .package import get_api_client then api_client = get_api_client() locally. (5) _tool_manager._tools removed — use await mcp.list_tools(). (6) useradd needs -m flag for writable home. (7) peteryin21/microcheck replaced by ghcr.io/tarampampam/microcheck:1 (binary: /bin/httpcheck).