Types catch malformed tool payloads before they hit the model. The JS ecosystem is where web UIs and many MCP servers live, so TS is the default for product code even when training stays in Python. Generated clients from OpenAPI keep model APIs honest.