Use preflight before project runs
Error contract
Launch denials are errors:- MCP returns tool errors with structured payloads (
error,http_status,detail). - Python raises typed exceptions (
ResearchInsufficientCreditsError, limit errors, and related SMR errors). - Direct
/smrREST is not the public external integration path.
HTTP status codes customers see
Console and SDK copy should name the blocking resource and the next action, not a generic failure string.