cancel_job
ChatGPTCancel a queued or running job.
get_project
ChatGPTGet a detailed project summary including all media files and compositions. Returns the project's id, name, drive_id, created_at, updated_at, folder_path (if in a folder), a map of media files (keyed by display path) with type and duration, and a list of compositions with id, name, duration, and media type. Use this to inspect a project's contents before editing or importing media.
import_media
ChatGPTImport media into a Descript project via URLs (direct links, Google Drive, Dropbox) or direct file upload. Pass URLs as-is. Pass empty add_media ({}) with project_name to create an empty project. ADDING TO COMPOSITION: When creating a new project, include add_compositions so imported media appears on the timeline — this is the expected default. Only omit add_compositions for new projects when the user explicitly asks to import without adding to the composition. When importing into an existing project, omit add_compositions unless the user requests it, to avoid disrupting existing edits. DIRECT FILE UPLOAD: Instead of a url, provide content_type (MIME type) and file_size (bytes). The response includes upload_urls — a map of media key → { upload_url, asset_id, artifact_id }. PUT each file to its upload_url with header Content-Type: application/octet-stream. The uploaded file size must match the file_size declared in the request. Returns immediately with a job_id. Please use the wait_for_job tool with the returned job_id to wait for the job to complete.
list_jobs
ChatGPTList recent jobs, optionally filtered by project or type. Job states: queued, running, stopped (check result.status), cancelled.
list_projects
ChatGPTList projects accessible to the authenticated user. Returns each project's id, name, created_at, updated_at, and folder_path (if the project is inside a folder). Use this to discover project IDs before editing or importing media. Supports cursor-based pagination — pass the next_cursor from a previous response's pagination field to fetch the next page.
prompt_project_agent
ChatGPTAI agent that queries, creates, and edits Descript projects using natural language. Use project_id for existing projects, project_name to create new ones. Returns immediately with a job_id. Please use the wait_for_job tool with the returned job_id to wait for the job to complete.
publish_project
ChatGPTPublish a Descript project composition as video or audio, producing a shareable URL. Requires a project_id. Optionally specify a composition_id (defaults to the first composition). Publishing the same composition again automatically reuses the previous share URL, overwriting its content; Video and Audio publishes of the same composition get separate share URLs. Returns immediately with a job_id. Please use the wait_for_job tool with the returned job_id to wait for the job to complete.
wait_for_job
ChatGPTWait for a job to complete. Polls for completion by default (300s) and streams progress updates. Set wait_seconds to 0 to return immediately without waiting. Job states: queued, running, stopped, cancelled. A stopped job has a result object — check result.status for "success" or "error".
cancel_job
Claudeget_job
Claudeimport_media
Claudelist_jobs
Claudeprompt_project_agent
Claude