MCP
Jobs and results
FoxCut creation is asynchronous: submit, poll, then use output URLs.
Lifecycle
Example
queued → running → succeeded
↘ failed
queued/running → canceledSubmission returns a job ID, credit cost, status, and a hint to poll with get_generation. Finished jobs include output asset URLs and thumbnails.
Audio provenance and review
Audio jobs expose speech.provider and speech.model. model_source is job_snapshot before submission and request_header when a provider receipt exists. The recorded Fish model ID is distinct from FoxCut's foxcut-speak product label. Fish does not return an immutable serving version, so speech.model_version is null. Success means playable audio was saved; speech.content_verification=not_performed means spoken wording and performance still need listening review.
Polling guidance
- Poll every 3–10 seconds; do not create a replacement merely because a job is still running.
- Treat failed and canceled as terminal states.
- Use list_generations to recover after a client restart.
- Output URLs belong to the authenticated account; never infer IDs from another account.