Descript MCP connector
OAuth 2.1/DCR MediaAIProductivityConnect 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_id string required UUID 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.
format string required Transcript format. project_id string required UUID of the project to export from. composition_id string optional UUID of a specific composition. Omit to use the first composition. include_markers boolean optional Include markers in transcript. include_speaker_labels string optional Speaker label mode. off=none, changes=on speaker change, every_paragraph=every paragraph. Defaults to changes. timecodes object optional Timecode 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_id string required UUID 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_media object required Map 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_compositions array optional Compositions (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_url string optional Webhook URL for job completion. folder_name string optional Folder 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_id string optional UUID of an existing project. Mutually exclusive with project_name. project_name string optional Name for a new project. Mutually exclusive with project_id. team_access string optional Team 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_id string optional Filter by project UUID. type string optional Filter 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_after string optional Filter projects created after this ISO 8601 timestamp. created_before string optional Filter projects created before this ISO 8601 timestamp. created_by string optional Filter projects created by this user UUID. Pass `me` to filter by the authenticated user. cursor string optional Pagination cursor from a previous response's next_cursor. direction string optional Sort direction (default: desc). folder_path string optional Filter projects by folder path (e.g. "Clients/Acme/Videos"). Use "/" to separate nested folders. Returns only projects directly inside the deepest folder. limit number optional Number of projects per page (1-100, default 20). name string optional Filter projects whose name contains this string (case-insensitive). sort string optional Sort field (default: created_at). updated_after string optional Filter projects updated after this ISO 8601 timestamp. updated_before string optional Filter 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.
prompt string required Natural language instructions for the agent. callback_url string optional Webhook URL for job completion. composition_id string optional Composition 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_id string optional Conversation 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. model string optional AI model override. Omit for default. project_id string optional UUID of an existing project to edit. Provide either project_id or project_name, not both. project_name string optional Name 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_id string required UUID of the project to publish. access_level string optional Desired 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_url string optional Webhook URL for job completion. composition_id string optional Composition 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_type string optional Media type of the published output (default "Video"). resolution string optional Resolution 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_id string required The job_id returned by import_media, prompt_project_agent, or publish_project. wait_seconds number optional Seconds to poll for completion (default 300, max 300). Set 0 to return immediately.