Descript MCP connector
OAuth 2.1/DCRMediaAIProductivityConnect to Descript MCP. Import media, export transcripts, publish projects, run AI editing agents, and manage jobs from your AI workflows.
Descript MCP connector
-
Install the SDK
Section titled “Install the SDK”Terminal window npm install @scalekit-sdk/nodeTerminal window pip install scalekit -
Set your credentials
Section titled “Set your credentials”Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret> -
Authorize and make your first call
Section titled “Authorize and make your first call”quickstart.ts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENV_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'descriptmcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Descript MCP:', link)process.stdout.write('Press Enter after authorizing...')await new Promise(r => process.stdin.once('data', r))// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'descriptmcp_list_jobs',toolInput: {},})console.log(result)quickstart.py import osfrom scalekit.client import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENV_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "descriptmcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Descript MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="descriptmcp_list_jobs",connection_name=connection_name,identifier=identifier,)print(result)
What you can do
Section titled “What you can do”Connect this agent connector to let your agent:
- Job wait for, cancel — Poll a Descript job until it completes, streaming progress updates, with an optional timeout
- Project publish — Publish a Descript project composition as video or audio and return a shareable URL
- Agent prompt project — Use Descript’s AI agent to query, create, or edit a project using a natural language prompt
- List projects, jobs — List Descript projects accessible to the authenticated user, with optional filtering and sorting
- Media import — Import media into a Descript project from URLs (Google Drive, Dropbox, direct links) or direct file upload
- Get project — Retrieve detailed information about a Descript project, including its media files and compositions
Tool list
Section titled “Tool list”Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.
descriptmcp_cancel_job#Cancel a queued or running Descript job by its ID.1 param
Cancel a queued or running Descript job by its ID.
job_idstringrequiredUUID of the job to cancel.descriptmcp_export_transcript#Export a project composition as a transcript document in txt, markdown, HTML, or RTF format.6 params
Export a project composition as a transcript document in txt, markdown, HTML, or RTF format.
formatstringrequiredTranscript format.project_idstringrequiredUUID of the project to export from.composition_idstringoptionalUUID of a specific composition. Omit to use the first composition.include_markersbooleanoptionalInclude markers in transcript.include_speaker_labelsstringoptionalSpeaker label mode. off=none, changes=on speaker change, every_paragraph=every paragraph. Defaults to changes.timecodesobjectoptionalTimecode options. When provided, timecodes are included in the output.descriptmcp_get_project#Retrieve detailed information about a Descript project, including its media files and compositions.1 param
Retrieve detailed information about a Descript project, including its media files and compositions.
project_idstringrequiredUUID of the project.descriptmcp_import_media#Import media into a Descript project from URLs (Google Drive, Dropbox, direct links) or direct file upload.7 params
Import media into a Descript project from URLs (Google Drive, Dropbox, direct links) or direct file upload.
add_mediaobjectrequiredMap of display name → media entry. Keys can include folder paths (e.g. "Recordings/intro.mp4") to organize media into folders in the project. Each entry is one of: a URL import (provide "url"), a direct upload (provide "content_type" and "file_size"), or a multitrack sequence (provide "tracks" array). Use exactly one variant per entry. URL imports and direct uploads accept an optional "language" for transcription.add_compositionsarrayoptionalCompositions (timelines) to create from the imported media. Include this when creating a new project so media appears on the timeline. Omit when importing into an existing project unless the user asks to add to the timeline.callback_urlstringoptionalWebhook URL for job completion.folder_namestringoptionalFolder path to place the new project in (e.g. "Clients/Acme/Videos"). Use "/" to separate nested folders. Only valid when creating a new project (no project_id). Existing folders along the path are reused; missing segments are created automatically. Requires team_access to be set to "edit", "comment", or "view" — projects in folders must be accessible to drive members.project_idstringoptionalUUID of an existing project. Mutually exclusive with project_name.project_namestringoptionalName for a new project. Mutually exclusive with project_id.team_accessstringoptionalTeam access for new projects.descriptmcp_list_jobs#List recent Descript jobs with optional filtering by project or job type.2 params
List recent Descript jobs with optional filtering by project or job type.
project_idstringoptionalFilter by project UUID.typestringoptionalFilter by job type.descriptmcp_list_projects#List Descript projects accessible to the authenticated user, with optional filtering and sorting.11 params
List Descript projects accessible to the authenticated user, with optional filtering and sorting.
created_afterstringoptionalFilter projects created after this ISO 8601 timestamp.created_beforestringoptionalFilter projects created before this ISO 8601 timestamp.created_bystringoptionalFilter projects created by this user UUID. Pass `me` to filter by the authenticated user.cursorstringoptionalPagination cursor from a previous response's next_cursor.directionstringoptionalSort direction (default: desc).folder_pathstringoptionalFilter projects by folder path (e.g. "Clients/Acme/Videos"). Use "/" to separate nested folders. Returns only projects directly inside the deepest folder.limitnumberoptionalNumber of projects per page (1-100, default 20).namestringoptionalFilter projects whose name contains this string (case-insensitive).sortstringoptionalSort field (default: created_at).updated_afterstringoptionalFilter projects updated after this ISO 8601 timestamp.updated_beforestringoptionalFilter projects updated before this ISO 8601 timestamp.descriptmcp_prompt_project_agent#Use Descript's AI agent to query, create, or edit a project using a natural language prompt.7 params
Use Descript's AI agent to query, create, or edit a project using a natural language prompt.
promptstringrequiredNatural language instructions for the agent.callback_urlstringoptionalWebhook URL for job completion.composition_idstringoptionalComposition to target. Accepts a full UUID, a 5-character short ID from the project's Descript URL, or the project's full Descript URL (e.g. https://web.descript.com/{project_id}/{short_id}). Use get_project to find available composition IDs for this project. Omit to target the whole project.conversation_idstringoptionalConversation ID (UUID) from a previous agent job to continue that conversation. Omit to start a new conversation. The conversation_id is returned in the job result.modelstringoptionalAI model override. Omit for default.project_idstringoptionalUUID of an existing project to edit. Provide either project_id or project_name, not both.project_namestringoptionalName for a new project to create. Provide either project_id or project_name, not both.descriptmcp_publish_project#Publish a Descript project composition as video or audio and return a shareable URL.6 params
Publish a Descript project composition as video or audio and return a shareable URL.
project_idstringrequiredUUID of the project to publish.access_levelstringoptionalDesired access level for the published share page. Defaults to the drive default. Fails with 403 if the requested level is not permitted by the drive publish settings.callback_urlstringoptionalWebhook URL for job completion.composition_idstringoptionalComposition to publish. Accepts a full UUID, a 5-character short ID from the project's Descript URL, or the project's full Descript URL (e.g. https://web.descript.com/{project_id}/{short_id}). Use get_project to find available composition IDs for this project. Defaults to the first composition if omitted.media_typestringoptionalMedia type of the published output (default "Video").resolutionstringoptionalResolution for the published output (default determined by project).descriptmcp_wait_for_job#Poll a Descript job until it completes, streaming progress updates, with an optional timeout.2 params
Poll a Descript job until it completes, streaming progress updates, with an optional timeout.
job_idstringrequiredThe job_id returned by import_media, prompt_project_agent, or publish_project.wait_secondsnumberoptionalSeconds to poll for completion (default 300, max 300). Set 0 to return immediately.